@payloadcms/richtext-lexical 3.0.0-canary.b8dd0db → 3.0.0-canary.bb00d64

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 (512) hide show
  1. package/dist/cell/rscEntry.d.ts +12 -0
  2. package/dist/cell/rscEntry.d.ts.map +1 -0
  3. package/dist/cell/rscEntry.js +82 -0
  4. package/dist/cell/rscEntry.js.map +1 -0
  5. package/dist/exports/client/Field-LKCJPU2R.js +2 -0
  6. package/dist/exports/client/Field-LKCJPU2R.js.map +7 -0
  7. package/dist/exports/client/RelationshipComponent-IMM4CFBE.js +2 -0
  8. package/dist/exports/client/RelationshipComponent-IMM4CFBE.js.map +7 -0
  9. package/dist/exports/client/bundled.css +1 -1
  10. package/dist/exports/client/chunk-5PBXL4HT.js +2 -0
  11. package/dist/exports/client/chunk-5PBXL4HT.js.map +7 -0
  12. package/dist/exports/client/chunk-NNE6RSU5.js +2 -0
  13. package/dist/exports/client/chunk-NNE6RSU5.js.map +7 -0
  14. package/dist/exports/client/{chunk-LGUXX2QH.js → chunk-O4IOO4EU.js} +2 -2
  15. package/dist/exports/client/{chunk-LGUXX2QH.js.map → chunk-O4IOO4EU.js.map} +2 -2
  16. package/dist/exports/client/chunk-PDAZFJVO.js +2 -0
  17. package/dist/exports/client/chunk-PDAZFJVO.js.map +7 -0
  18. package/dist/exports/client/chunk-PSABE6CO.js +2 -0
  19. package/dist/exports/client/chunk-PSABE6CO.js.map +7 -0
  20. package/dist/exports/client/{chunk-V2LKLT2F.js → chunk-XCEM47RI.js} +3 -3
  21. package/dist/exports/client/{chunk-V2LKLT2F.js.map → chunk-XCEM47RI.js.map} +3 -3
  22. package/dist/exports/client/chunk-ZFVIUTHB.js +2 -0
  23. package/dist/exports/client/chunk-ZFVIUTHB.js.map +7 -0
  24. package/dist/exports/client/{chunk-OKMIHD2R.js → chunk-ZOYGBIAN.js} +2 -2
  25. package/dist/exports/client/{chunk-OKMIHD2R.js.map → chunk-ZOYGBIAN.js.map} +2 -2
  26. package/dist/exports/client/component-4OBXHYCD.js +2 -0
  27. package/dist/exports/client/component-4OBXHYCD.js.map +7 -0
  28. package/dist/exports/client/component-ANB7VZLA.js +2 -0
  29. package/dist/exports/client/component-ANB7VZLA.js.map +7 -0
  30. package/dist/exports/client/component-P25AKAUU.js +2 -0
  31. package/dist/exports/client/component-P25AKAUU.js.map +7 -0
  32. package/dist/exports/client/componentInline-N5LJ2LY2.js +2 -0
  33. package/dist/exports/client/componentInline-N5LJ2LY2.js.map +7 -0
  34. package/dist/exports/client/index.d.ts +3 -4
  35. package/dist/exports/client/index.d.ts.map +1 -1
  36. package/dist/exports/client/index.js +7 -7
  37. package/dist/exports/client/index.js.map +4 -4
  38. package/dist/exports/server/rsc.d.ts +3 -0
  39. package/dist/exports/server/rsc.d.ts.map +1 -0
  40. package/dist/exports/server/rsc.js +3 -0
  41. package/dist/exports/server/rsc.js.map +1 -0
  42. package/dist/features/align/client/index.d.ts +1 -4
  43. package/dist/features/align/client/index.d.ts.map +1 -1
  44. package/dist/features/blockquote/client/index.d.ts +1 -4
  45. package/dist/features/blockquote/client/index.d.ts.map +1 -1
  46. package/dist/features/blockquote/markdownTransformer.js.map +1 -1
  47. package/dist/features/blockquote/server/index.d.ts +1 -1
  48. package/dist/features/blockquote/server/index.d.ts.map +1 -1
  49. package/dist/features/blockquote/server/index.js +5 -1
  50. package/dist/features/blockquote/server/index.js.map +1 -1
  51. package/dist/features/blocks/client/component/BlockContent.d.ts +1 -0
  52. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  53. package/dist/features/blocks/client/component/BlockContent.js +28 -28
  54. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  55. package/dist/features/blocks/client/component/index.d.ts +1 -1
  56. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  57. package/dist/features/blocks/client/component/index.js +94 -55
  58. package/dist/features/blocks/client/component/index.js.map +1 -1
  59. package/dist/features/blocks/client/componentInline/index.d.ts +1 -1
  60. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  61. package/dist/features/blocks/client/componentInline/index.js +27 -29
  62. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  63. package/dist/features/blocks/client/index.d.ts +1 -4
  64. package/dist/features/blocks/client/index.d.ts.map +1 -1
  65. package/dist/features/blocks/client/index.js +35 -23
  66. package/dist/features/blocks/client/index.js.map +1 -1
  67. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +2 -2
  68. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  69. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  70. package/dist/features/blocks/client/plugin/index.d.ts +2 -2
  71. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  72. package/dist/features/blocks/client/plugin/index.js +96 -93
  73. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  74. package/dist/features/blocks/server/index.d.ts.map +1 -1
  75. package/dist/features/blocks/server/index.js +41 -27
  76. package/dist/features/blocks/server/index.js.map +1 -1
  77. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +11 -5
  78. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  79. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  80. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +3 -3
  81. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  82. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  83. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  84. package/dist/features/blocks/server/validate.js +8 -5
  85. package/dist/features/blocks/server/validate.js.map +1 -1
  86. package/dist/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
  87. package/dist/features/converters/html/converter/converters/paragraph.js +4 -0
  88. package/dist/features/converters/html/converter/converters/paragraph.js.map +1 -1
  89. package/dist/features/converters/html/converter/converters/text.d.ts.map +1 -1
  90. package/dist/features/converters/html/converter/converters/text.js +2 -1
  91. package/dist/features/converters/html/converter/converters/text.js.map +1 -1
  92. package/dist/features/converters/html/converter/index.d.ts +11 -7
  93. package/dist/features/converters/html/converter/index.d.ts.map +1 -1
  94. package/dist/features/converters/html/converter/index.js +17 -1
  95. package/dist/features/converters/html/converter/index.js.map +1 -1
  96. package/dist/features/converters/html/converter/types.d.ts +3 -1
  97. package/dist/features/converters/html/converter/types.d.ts.map +1 -1
  98. package/dist/features/converters/html/converter/types.js.map +1 -1
  99. package/dist/features/converters/html/field/index.d.ts.map +1 -1
  100. package/dist/features/converters/html/field/index.js +7 -1
  101. package/dist/features/converters/html/field/index.js.map +1 -1
  102. package/dist/features/debug/testRecorder/client/index.d.ts +1 -4
  103. package/dist/features/debug/testRecorder/client/index.d.ts.map +1 -1
  104. package/dist/features/debug/testRecorder/client/plugin/index.js +180 -345
  105. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
  106. package/dist/features/debug/treeView/client/index.d.ts +1 -4
  107. package/dist/features/debug/treeView/client/index.d.ts.map +1 -1
  108. package/dist/features/experimental_table/client/index.d.ts +1 -1
  109. package/dist/features/experimental_table/client/index.d.ts.map +1 -1
  110. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -1
  111. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +250 -488
  112. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  113. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
  114. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +39 -39
  115. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  116. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +1 -1
  117. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  118. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +60 -124
  119. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  120. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
  121. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +52 -50
  122. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  123. package/dist/features/experimental_table/client/utils/debounce.js +4 -4
  124. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
  125. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  126. package/dist/features/experimental_table/server/index.d.ts.map +1 -1
  127. package/dist/features/experimental_table/server/index.js +20 -4
  128. package/dist/features/experimental_table/server/index.js.map +1 -1
  129. package/dist/features/format/bold/feature.client.d.ts +1 -4
  130. package/dist/features/format/bold/feature.client.d.ts.map +1 -1
  131. package/dist/features/format/inlineCode/feature.client.d.ts +1 -4
  132. package/dist/features/format/inlineCode/feature.client.d.ts.map +1 -1
  133. package/dist/features/format/italic/feature.client.d.ts +1 -4
  134. package/dist/features/format/italic/feature.client.d.ts.map +1 -1
  135. package/dist/features/format/strikethrough/feature.client.d.ts +1 -4
  136. package/dist/features/format/strikethrough/feature.client.d.ts.map +1 -1
  137. package/dist/features/format/subscript/feature.client.d.ts +1 -4
  138. package/dist/features/format/subscript/feature.client.d.ts.map +1 -1
  139. package/dist/features/format/superscript/feature.client.d.ts +1 -4
  140. package/dist/features/format/superscript/feature.client.d.ts.map +1 -1
  141. package/dist/features/format/underline/feature.client.d.ts +1 -4
  142. package/dist/features/format/underline/feature.client.d.ts.map +1 -1
  143. package/dist/features/heading/client/index.d.ts +1 -4
  144. package/dist/features/heading/client/index.d.ts.map +1 -1
  145. package/dist/features/heading/server/index.d.ts.map +1 -1
  146. package/dist/features/heading/server/index.js +4 -0
  147. package/dist/features/heading/server/index.js.map +1 -1
  148. package/dist/features/horizontalRule/client/component/index.d.ts +1 -1
  149. package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -1
  150. package/dist/features/horizontalRule/client/component/index.js +12 -9
  151. package/dist/features/horizontalRule/client/component/index.js.map +1 -1
  152. package/dist/features/horizontalRule/client/index.d.ts +1 -4
  153. package/dist/features/horizontalRule/client/index.d.ts.map +1 -1
  154. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +2 -2
  155. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  156. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  157. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  158. package/dist/features/indent/client/index.d.ts +1 -4
  159. package/dist/features/indent/client/index.d.ts.map +1 -1
  160. package/dist/features/indent/client/index.js +2 -1
  161. package/dist/features/indent/client/index.js.map +1 -1
  162. package/dist/features/link/client/index.d.ts +1 -13
  163. package/dist/features/link/client/index.d.ts.map +1 -1
  164. package/dist/features/link/client/index.js +2 -2
  165. package/dist/features/link/client/index.js.map +1 -1
  166. package/dist/features/link/client/plugins/autoLink/index.d.ts +1 -1
  167. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
  168. package/dist/features/link/client/plugins/autoLink/index.js +3 -1
  169. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  170. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  171. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +21 -20
  172. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  173. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  174. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +1 -1
  175. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  176. package/dist/features/link/nodes/AutoLinkNode.js +2 -2
  177. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  178. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  179. package/dist/features/link/nodes/LinkNode.js +12 -7
  180. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  181. package/dist/features/link/nodes/types.d.ts +3 -3
  182. package/dist/features/link/nodes/types.d.ts.map +1 -1
  183. package/dist/features/link/nodes/types.js.map +1 -1
  184. package/dist/features/link/server/baseFields.d.ts +1 -1
  185. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  186. package/dist/features/link/server/baseFields.js +15 -3
  187. package/dist/features/link/server/baseFields.js.map +1 -1
  188. package/dist/features/link/server/index.d.ts.map +1 -1
  189. package/dist/features/link/server/index.js +17 -4
  190. package/dist/features/link/server/index.js.map +1 -1
  191. package/dist/features/link/server/transformExtraFields.d.ts +1 -1
  192. package/dist/features/link/server/transformExtraFields.d.ts.map +1 -1
  193. package/dist/features/link/server/transformExtraFields.js.map +1 -1
  194. package/dist/features/link/server/validate.d.ts.map +1 -1
  195. package/dist/features/link/server/validate.js +8 -5
  196. package/dist/features/link/server/validate.js.map +1 -1
  197. package/dist/features/lists/checklist/client/index.d.ts +1 -4
  198. package/dist/features/lists/checklist/client/index.d.ts.map +1 -1
  199. package/dist/features/lists/htmlConverter.d.ts.map +1 -1
  200. package/dist/features/lists/htmlConverter.js +8 -0
  201. package/dist/features/lists/htmlConverter.js.map +1 -1
  202. package/dist/features/lists/orderedList/client/index.d.ts +1 -4
  203. package/dist/features/lists/orderedList/client/index.d.ts.map +1 -1
  204. package/dist/features/lists/shared/markdown.js.map +1 -1
  205. package/dist/features/lists/unorderedList/client/index.d.ts +1 -4
  206. package/dist/features/lists/unorderedList/client/index.d.ts.map +1 -1
  207. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -1
  208. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +1 -0
  209. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -1
  210. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +1 -4
  211. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -1
  212. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  213. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  214. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  215. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -1
  216. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -1
  217. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -1
  218. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -1
  219. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -1
  220. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -1
  221. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -1
  222. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +1 -1
  223. package/dist/features/migrations/slateToLexical/converter/index.js +1 -0
  224. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -1
  225. package/dist/features/migrations/slateToLexical/feature.client.d.ts +1 -4
  226. package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +1 -1
  227. package/dist/features/migrations/slateToLexical/feature.client.js +1 -3
  228. package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -1
  229. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +1 -1
  230. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  231. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
  232. package/dist/features/paragraph/client/index.d.ts +1 -4
  233. package/dist/features/paragraph/client/index.d.ts.map +1 -1
  234. package/dist/features/paragraph/server/index.d.ts +1 -1
  235. package/dist/features/paragraph/server/index.d.ts.map +1 -1
  236. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  237. package/dist/features/relationship/client/components/RelationshipComponent.js +42 -29
  238. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  239. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
  240. package/dist/features/relationship/client/drawer/index.js +27 -26
  241. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  242. package/dist/features/relationship/client/index.d.ts +2 -17
  243. package/dist/features/relationship/client/index.d.ts.map +1 -1
  244. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  245. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  246. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  247. package/dist/features/relationship/client/plugins/index.js +1 -1
  248. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  249. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +1 -1
  250. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  251. package/dist/features/relationship/server/index.d.ts +1 -1
  252. package/dist/features/relationship/server/index.d.ts.map +1 -1
  253. package/dist/features/relationship/server/index.js +50 -40
  254. package/dist/features/relationship/server/index.js.map +1 -1
  255. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +8 -6
  256. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  257. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  258. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  259. package/dist/features/toolbars/fixed/client/Toolbar/index.js +93 -66
  260. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  261. package/dist/features/toolbars/fixed/client/index.d.ts +1 -4
  262. package/dist/features/toolbars/fixed/client/index.d.ts.map +1 -1
  263. package/dist/features/toolbars/inline/client/Toolbar/index.js +43 -46
  264. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  265. package/dist/features/toolbars/inline/client/index.d.ts +1 -4
  266. package/dist/features/toolbars/inline/client/index.d.ts.map +1 -1
  267. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
  268. package/dist/features/toolbars/shared/ToolbarButton/index.js +4 -1
  269. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  270. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +2 -2
  271. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  272. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +12 -6
  273. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  274. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +4 -5
  275. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  276. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +119 -116
  277. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  278. package/dist/features/toolbars/types.d.ts +23 -11
  279. package/dist/features/toolbars/types.d.ts.map +1 -1
  280. package/dist/features/toolbars/types.js.map +1 -1
  281. package/dist/features/typesClient.d.ts +10 -11
  282. package/dist/features/typesClient.d.ts.map +1 -1
  283. package/dist/features/typesClient.js.map +1 -1
  284. package/dist/features/typesServer.d.ts +17 -26
  285. package/dist/features/typesServer.d.ts.map +1 -1
  286. package/dist/features/typesServer.js.map +1 -1
  287. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  288. package/dist/features/upload/client/component/index.js +69 -58
  289. package/dist/features/upload/client/component/index.js.map +1 -1
  290. package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
  291. package/dist/features/upload/client/drawer/index.js +34 -32
  292. package/dist/features/upload/client/drawer/index.js.map +1 -1
  293. package/dist/features/upload/client/feature.client.d.ts +1 -4
  294. package/dist/features/upload/client/feature.client.d.ts.map +1 -1
  295. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  296. package/dist/features/upload/client/nodes/UploadNode.js +1 -1
  297. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  298. package/dist/features/upload/client/plugin/index.js +1 -1
  299. package/dist/features/upload/client/plugin/index.js.map +1 -1
  300. package/dist/features/upload/server/feature.server.d.ts.map +1 -1
  301. package/dist/features/upload/server/feature.server.js +17 -8
  302. package/dist/features/upload/server/feature.server.js.map +1 -1
  303. package/dist/features/upload/server/nodes/UploadNode.d.ts +9 -7
  304. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  305. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  306. package/dist/features/upload/server/validate.d.ts.map +1 -1
  307. package/dist/features/upload/server/validate.js +7 -4
  308. package/dist/features/upload/server/validate.js.map +1 -1
  309. package/dist/field/Field.d.ts.map +1 -1
  310. package/dist/field/Field.js +29 -44
  311. package/dist/field/Field.js.map +1 -1
  312. package/dist/field/bundled.css +1 -1
  313. package/dist/field/index.d.ts.map +1 -1
  314. package/dist/field/index.js +63 -73
  315. package/dist/field/index.js.map +1 -1
  316. package/dist/field/rscEntry.d.ts +9 -0
  317. package/dist/field/rscEntry.d.ts.map +1 -0
  318. package/dist/field/rscEntry.js +37 -0
  319. package/dist/field/rscEntry.js.map +1 -0
  320. package/dist/index.d.ts +4 -3
  321. package/dist/index.d.ts.map +1 -1
  322. package/dist/index.js +94 -103
  323. package/dist/index.js.map +1 -1
  324. package/dist/lexical/EditorPlugin.d.ts.map +1 -1
  325. package/dist/lexical/EditorPlugin.js +2 -1
  326. package/dist/lexical/EditorPlugin.js.map +1 -1
  327. package/dist/lexical/LexicalEditor.d.ts +1 -1
  328. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  329. package/dist/lexical/LexicalEditor.js +10 -10
  330. package/dist/lexical/LexicalEditor.js.map +1 -1
  331. package/dist/lexical/LexicalProvider.d.ts +2 -2
  332. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  333. package/dist/lexical/LexicalProvider.js +9 -7
  334. package/dist/lexical/LexicalProvider.js.map +1 -1
  335. package/dist/lexical/config/client/EditorConfigProvider.d.ts +6 -5
  336. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  337. package/dist/lexical/config/client/EditorConfigProvider.js +13 -12
  338. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  339. package/dist/lexical/config/client/loader.d.ts +1 -3
  340. package/dist/lexical/config/client/loader.d.ts.map +1 -1
  341. package/dist/lexical/config/client/loader.js +7 -19
  342. package/dist/lexical/config/client/loader.js.map +1 -1
  343. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  344. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  345. package/dist/lexical/config/client/sanitize.js +4 -4
  346. package/dist/lexical/config/client/sanitize.js.map +1 -1
  347. package/dist/lexical/config/server/loader.d.ts +2 -1
  348. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  349. package/dist/lexical/config/server/loader.js +2 -0
  350. package/dist/lexical/config/server/loader.js.map +1 -1
  351. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  352. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  353. package/dist/lexical/config/server/sanitize.js +12 -11
  354. package/dist/lexical/config/server/sanitize.js.map +1 -1
  355. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +4 -4
  356. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  357. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +82 -113
  358. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  359. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +2 -2
  360. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  361. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +2 -2
  362. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  363. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +3 -2
  364. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -1
  365. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -1
  366. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  367. package/dist/lexical/plugins/SlashMenu/index.js +24 -30
  368. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  369. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  370. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +93 -130
  371. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
  372. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +1 -1
  373. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
  374. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
  375. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
  376. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +1 -1
  377. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -1
  378. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -1
  379. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +119 -137
  380. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  381. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -1
  382. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +16 -32
  383. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -1
  384. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.d.ts.map +1 -1
  385. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +3 -1
  386. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -1
  387. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -1
  388. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +3 -4
  389. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  390. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -1
  391. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +4 -6
  392. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -1
  393. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -1
  394. package/dist/lexical/theme/EditorTheme.js +1 -2
  395. package/dist/lexical/theme/EditorTheme.js.map +1 -1
  396. package/dist/lexical/ui/icons/Caret/index.svg +2 -2
  397. package/dist/lexical/utils/nodeFormat.d.ts +2 -2
  398. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  399. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  400. package/dist/lexical/utils/rect.d.ts +4 -4
  401. package/dist/lexical/utils/rect.d.ts.map +1 -1
  402. package/dist/lexical/utils/rect.js.map +1 -1
  403. package/dist/lexical/utils/setFloatingElemPosition.d.ts +1 -1
  404. package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -1
  405. package/dist/lexical/utils/setFloatingElemPosition.js +1 -1
  406. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -1
  407. package/dist/lexical/utils/url.d.ts +5 -0
  408. package/dist/lexical/utils/url.d.ts.map +1 -1
  409. package/dist/lexical/utils/url.js +25 -5
  410. package/dist/lexical/utils/url.js.map +1 -1
  411. package/dist/populateGraphQL/populate.d.ts +3 -2
  412. package/dist/populateGraphQL/populate.d.ts.map +1 -1
  413. package/dist/populateGraphQL/populate.js +3 -1
  414. package/dist/populateGraphQL/populate.js.map +1 -1
  415. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +1 -1
  416. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
  417. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +5 -4
  418. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -1
  419. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -1
  420. package/dist/types.d.ts +20 -7
  421. package/dist/types.d.ts.map +1 -1
  422. package/dist/types.js.map +1 -1
  423. package/dist/utilities/createClientFeature.d.ts +3 -5
  424. package/dist/utilities/createClientFeature.d.ts.map +1 -1
  425. package/dist/utilities/createClientFeature.js +1 -4
  426. package/dist/utilities/createClientFeature.js.map +1 -1
  427. package/dist/utilities/createServerFeature.d.ts +1 -0
  428. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  429. package/dist/utilities/createServerFeature.js +2 -0
  430. package/dist/utilities/createServerFeature.js.map +1 -1
  431. package/dist/utilities/fieldsDrawer/Drawer.d.ts +1 -0
  432. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
  433. package/dist/utilities/fieldsDrawer/Drawer.js +68 -27
  434. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  435. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  436. package/dist/utilities/fieldsDrawer/DrawerContent.js +115 -139
  437. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  438. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts +13 -0
  439. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -0
  440. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +129 -0
  441. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -0
  442. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts +10 -0
  443. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -0
  444. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +136 -0
  445. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -0
  446. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts +16 -0
  447. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -0
  448. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +144 -0
  449. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -0
  450. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  451. package/dist/utilities/generateImportMap.js +2 -3
  452. package/dist/utilities/generateImportMap.js.map +1 -1
  453. package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
  454. package/dist/utilities/generateSchemaMap.js +13 -10
  455. package/dist/utilities/generateSchemaMap.js.map +1 -1
  456. package/dist/utilities/initLexicalFeatures.d.ts +18 -0
  457. package/dist/utilities/initLexicalFeatures.d.ts.map +1 -0
  458. package/dist/utilities/initLexicalFeatures.js +95 -0
  459. package/dist/utilities/initLexicalFeatures.js.map +1 -0
  460. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +1 -1
  461. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
  462. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +1 -1
  463. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  464. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts +1 -1
  465. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  466. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +5 -1
  467. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  468. package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
  469. package/dist/utilities/useLexicalFeature.js +12 -4
  470. package/dist/utilities/useLexicalFeature.js.map +1 -1
  471. package/dist/validate/index.d.ts.map +1 -1
  472. package/dist/validate/index.js +2 -2
  473. package/dist/validate/index.js.map +1 -1
  474. package/dist/validate/validateNodes.d.ts +2 -2
  475. package/dist/validate/validateNodes.d.ts.map +1 -1
  476. package/dist/validate/validateNodes.js +4 -4
  477. package/dist/validate/validateNodes.js.map +1 -1
  478. package/package.json +51 -49
  479. package/dist/cell/index.d.ts +0 -9
  480. package/dist/cell/index.d.ts.map +0 -1
  481. package/dist/cell/index.js +0 -135
  482. package/dist/cell/index.js.map +0 -1
  483. package/dist/exports/client/Field-63NGLPJB.js +0 -2
  484. package/dist/exports/client/Field-63NGLPJB.js.map +0 -7
  485. package/dist/exports/client/RelationshipComponent-3QWBV4GT.js +0 -2
  486. package/dist/exports/client/RelationshipComponent-3QWBV4GT.js.map +0 -7
  487. package/dist/exports/client/chunk-G5DTIOPI.js +0 -2
  488. package/dist/exports/client/chunk-G5DTIOPI.js.map +0 -7
  489. package/dist/exports/client/chunk-NI6Z4GBD.js +0 -2
  490. package/dist/exports/client/chunk-NI6Z4GBD.js.map +0 -7
  491. package/dist/exports/client/chunk-TO2W7Q2G.js +0 -2
  492. package/dist/exports/client/chunk-TO2W7Q2G.js.map +0 -7
  493. package/dist/exports/client/component-3OFD6Q4Z.js +0 -2
  494. package/dist/exports/client/component-3OFD6Q4Z.js.map +0 -7
  495. package/dist/exports/client/component-LCAAX56T.js +0 -2
  496. package/dist/exports/client/component-LCAAX56T.js.map +0 -7
  497. package/dist/exports/client/component-LLWMZU6K.js +0 -2
  498. package/dist/exports/client/component-LLWMZU6K.js.map +0 -7
  499. package/dist/exports/client/componentInline-72VZAAHP.js +0 -2
  500. package/dist/exports/client/componentInline-72VZAAHP.js.map +0 -7
  501. package/dist/features/createClientComponent.d.ts +0 -7
  502. package/dist/features/createClientComponent.d.ts.map +0 -1
  503. package/dist/features/createClientComponent.js +0 -13
  504. package/dist/features/createClientComponent.js.map +0 -1
  505. package/dist/features/createFeaturePropComponent.d.ts +0 -6
  506. package/dist/features/createFeaturePropComponent.d.ts.map +0 -1
  507. package/dist/features/createFeaturePropComponent.js +0 -19
  508. package/dist/features/createFeaturePropComponent.js.map +0 -1
  509. package/dist/utilities/generateComponentMap.d.ts +0 -6
  510. package/dist/utilities/generateComponentMap.d.ts.map +0 -1
  511. package/dist/utilities/generateComponentMap.js +0 -99
  512. package/dist/utilities/generateComponentMap.js.map +0 -1
@@ -9,7 +9,9 @@ const replacedElements = ['IMG', 'INPUT', 'TEXTAREA', 'SELECT', 'BUTTON', 'VIDEO
9
9
  * @param htmlElem
10
10
  */
11
11
  export function doesLineHeightAffectElement(htmlElem) {
12
- if (!htmlElem) return false;
12
+ if (!htmlElem) {
13
+ return false;
14
+ }
13
15
  // Check for replaced elements, elements that typically don't support line-height adjustments,
14
16
  // and elements without visible content
15
17
  if (replacedElements.includes(htmlElem.tagName) || htmlElem.offsetHeight === 0 || htmlElem.offsetWidth === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"doesLineHeightAffectElement.js","names":["replacedElements","doesLineHeightAffectElement","htmlElem","includes","tagName","offsetHeight","offsetWidth","style","window","getComputedStyle","display","position","visibility","opacity"],"sources":["../../../../../src/lexical/plugins/handles/utils/doesLineHeightAffectElement.ts"],"sourcesContent":["'use client'\nconst replacedElements = [\n 'IMG',\n 'INPUT',\n 'TEXTAREA',\n 'SELECT',\n 'BUTTON',\n 'VIDEO',\n 'OBJECT',\n 'EMBED',\n 'IFRAME',\n 'HR',\n]\n\n/**\n * From ChatGPT, only that verified it works for HR elements.\n *\n * HTML Elements can have CSS lineHeight applied to them, but it doesn't always affect the visual layout.\n * This function checks if the line-height property has an effect on the element's layout.\n * @param htmlElem\n */\nexport function doesLineHeightAffectElement(htmlElem: HTMLElement) {\n if (!htmlElem) return false\n\n // Check for replaced elements, elements that typically don't support line-height adjustments,\n // and elements without visible content\n\n if (\n replacedElements.includes(htmlElem.tagName) ||\n htmlElem.offsetHeight === 0 ||\n htmlElem.offsetWidth === 0\n ) {\n return false\n }\n\n // Check for specific CSS properties that negate line-height's visual effects\n const style = window.getComputedStyle(htmlElem)\n if (\n style.display === 'table-cell' ||\n style.position === 'absolute' ||\n style.visibility === 'hidden' ||\n style.opacity === '0'\n ) {\n return false\n }\n\n // This is a basic check, and there can be more complex scenarios where line-height doesn't have an effect.\n return true\n}\n"],"mappings":"AAAA;;AACA,MAAMA,gBAAA,GAAmB,CACvB,OACA,SACA,YACA,UACA,UACA,SACA,UACA,SACA,UACA,KACD;AAED;;;;;;;AAOA,OAAO,SAASC,4BAA4BC,QAAqB;EAC/D,IAAI,CAACA,QAAA,EAAU,OAAO;EAEtB;EACA;EAEA,IACEF,gBAAA,CAAiBG,QAAQ,CAACD,QAAA,CAASE,OAAO,KAC1CF,QAAA,CAASG,YAAY,KAAK,KAC1BH,QAAA,CAASI,WAAW,KAAK,GACzB;IACA,OAAO;EACT;EAEA;EACA,MAAMC,KAAA,GAAQC,MAAA,CAAOC,gBAAgB,CAACP,QAAA;EACtC,IACEK,KAAA,CAAMG,OAAO,KAAK,gBAClBH,KAAA,CAAMI,QAAQ,KAAK,cACnBJ,KAAA,CAAMK,UAAU,KAAK,YACrBL,KAAA,CAAMM,OAAO,KAAK,KAClB;IACA,OAAO;EACT;EAEA;EACA,OAAO;AACT","ignoreList":[]}
1
+ {"version":3,"file":"doesLineHeightAffectElement.js","names":["replacedElements","doesLineHeightAffectElement","htmlElem","includes","tagName","offsetHeight","offsetWidth","style","window","getComputedStyle","display","position","visibility","opacity"],"sources":["../../../../../src/lexical/plugins/handles/utils/doesLineHeightAffectElement.ts"],"sourcesContent":["'use client'\nconst replacedElements = [\n 'IMG',\n 'INPUT',\n 'TEXTAREA',\n 'SELECT',\n 'BUTTON',\n 'VIDEO',\n 'OBJECT',\n 'EMBED',\n 'IFRAME',\n 'HR',\n]\n\n/**\n * From ChatGPT, only that verified it works for HR elements.\n *\n * HTML Elements can have CSS lineHeight applied to them, but it doesn't always affect the visual layout.\n * This function checks if the line-height property has an effect on the element's layout.\n * @param htmlElem\n */\nexport function doesLineHeightAffectElement(htmlElem: HTMLElement) {\n if (!htmlElem) {\n return false\n }\n\n // Check for replaced elements, elements that typically don't support line-height adjustments,\n // and elements without visible content\n\n if (\n replacedElements.includes(htmlElem.tagName) ||\n htmlElem.offsetHeight === 0 ||\n htmlElem.offsetWidth === 0\n ) {\n return false\n }\n\n // Check for specific CSS properties that negate line-height's visual effects\n const style = window.getComputedStyle(htmlElem)\n if (\n style.display === 'table-cell' ||\n style.position === 'absolute' ||\n style.visibility === 'hidden' ||\n style.opacity === '0'\n ) {\n return false\n }\n\n // This is a basic check, and there can be more complex scenarios where line-height doesn't have an effect.\n return true\n}\n"],"mappings":"AAAA;;AACA,MAAMA,gBAAA,GAAmB,CACvB,OACA,SACA,YACA,UACA,UACA,SACA,UACA,SACA,UACA,KACD;AAED;;;;;;;AAOA,OAAO,SAASC,4BAA4BC,QAAqB;EAC/D,IAAI,CAACA,QAAA,EAAU;IACb,OAAO;EACT;EAEA;EACA;EAEA,IACEF,gBAAA,CAAiBG,QAAQ,CAACD,QAAA,CAASE,OAAO,KAC1CF,QAAA,CAASG,YAAY,KAAK,KAC1BH,QAAA,CAASI,WAAW,KAAK,GACzB;IACA,OAAO;EACT;EAEA;EACA,MAAMC,KAAA,GAAQC,MAAA,CAAOC,gBAAgB,CAACP,QAAA;EACtC,IACEK,KAAA,CAAMG,OAAO,KAAK,gBAClBH,KAAA,CAAMI,QAAQ,KAAK,cACnBJ,KAAA,CAAMK,UAAU,KAAK,YACrBL,KAAA,CAAMM,OAAO,KAAK,KAClB;IACA,OAAO;EACT;EAEA;EACA,OAAO;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getNodeCloseToPoint.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/utils/getNodeCloseToPoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAW/C,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,WAAW,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,aAAa,CAAA;IACrB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,yBAAyB,EAAE,OAAO,CAAA;CACnC,CAAA;AAaD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAmKxD"}
1
+ {"version":3,"file":"getNodeCloseToPoint.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/utils/getNodeCloseToPoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAW/C,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,WAAW,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,aAAa,CAAA;IACrB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,yBAAyB,EAAE,OAAO,CAAA;CACnC,CAAA;AAaD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkKxD"}
@@ -31,8 +31,7 @@ export function getNodeCloseToPoint(props) {
31
31
  y
32
32
  },
33
33
  startIndex = 0,
34
- useEdgeAsDefault = false,
35
- verbose = false
34
+ useEdgeAsDefault = false
36
35
  } = props;
37
36
  // Use cache
38
37
  if (cache_threshold > 0 && cache.props && cache.result && cache.props.fuzzy === props.fuzzy && cache.props.horizontalOffset === props.horizontalOffset && cache.props.useEdgeAsDefault === props.useEdgeAsDefault && isPointClose(cache.props.point, props.point, cache_threshold)) {
@@ -51,8 +50,8 @@ export function getNodeCloseToPoint(props) {
51
50
  editor.getEditorState().read(() => {
52
51
  if (useEdgeAsDefault) {
53
52
  const [firstNode, lastNode] = [editor.getElementByKey(topLevelNodeKeys[0]), editor.getElementByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1])];
54
- const [firstNodeRect, lastNodeRect] = [getBoundingClientRectWithoutTransform(firstNode), getBoundingClientRectWithoutTransform(lastNode)];
55
- if (firstNodeRect && lastNodeRect) {
53
+ if (firstNode && lastNode) {
54
+ const [firstNodeRect, lastNodeRect] = [getBoundingClientRectWithoutTransform(firstNode), getBoundingClientRectWithoutTransform(lastNode)];
56
55
  if (y < firstNodeRect.top) {
57
56
  closestBlockElem.blockElem = firstNode;
58
57
  closestBlockElem.distance = firstNodeRect.top - y;
@@ -1 +1 @@
1
- {"version":3,"file":"getNodeCloseToPoint.js","names":["$getNodeByKey","Point","Rect","getBoundingClientRectWithoutTransform","getCollapsedMargins","getTopLevelNodeKeys","Downward","Upward","Indeterminate","cache","props","result","isPointClose","previous","current","threshold","dx","x","dy","y","getNodeCloseToPoint","anchorElem","cache_threshold","editor","fuzzy","horizontalOffset","point","startIndex","useEdgeAsDefault","verbose","anchorElementRect","getBoundingClientRect","topLevelNodeKeys","closestBlockElem","blockElem","blockNode","distance","Infinity","foundAtIndex","isFoundNodeEmptyParagraph","getEditorState","read","firstNode","lastNode","getElementByKey","length","firstNodeRect","lastNodeRect","top","bottom","index","direction","key","elem","domRect","fromDOMRect","marginBottom","marginTop","rect","generateNewRect","left","right","isOnBottomSide","isOnTopSide","distanceFromPoint","getType","getTextContent","returnEmptyParagraphs"],"sources":["../../../../../src/lexical/plugins/handles/utils/getNodeCloseToPoint.ts"],"sourcesContent":["'use client'\nimport type { LexicalEditor, LexicalNode } from 'lexical'\n\nimport { $getNodeByKey } from 'lexical'\n\nimport { Point } from '../../../utils/point.js'\nimport { Rect } from '../../../utils/rect.js'\nimport { getBoundingClientRectWithoutTransform } from '../DraggableBlockPlugin/getBoundingRectWithoutTransform.js'\nimport { getCollapsedMargins } from '../utils/getCollapsedMargins.js'\nimport { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js'\n\n// Directions\nconst Downward = 1\nconst Upward = -1\nconst Indeterminate = 0\n\ntype Props = {\n anchorElem: HTMLElement\n cache_threshold?: number\n editor: LexicalEditor\n /** fuzzy makes the search not exact. If no exact match found, find the closes node instead of returning null */\n fuzzy?: boolean\n horizontalOffset?: number\n point: Point\n /**\n * By default, empty paragraphs are not returned. Set this to true to return empty paragraphs. @default false\n */\n returnEmptyParagraphs?: boolean\n /**\n * The index to start searching from. It can be a considerable performance optimization to start searching from the index of the\n * previously found node, as the node is likely to be close to the next node.\n */\n startIndex?: number\n useEdgeAsDefault?: boolean\n verbose?: boolean\n}\n\ntype Output = {\n blockElem: HTMLElement | null\n blockNode: LexicalNode | null\n foundAtIndex: number\n isFoundNodeEmptyParagraph: boolean\n}\n\nconst cache = {\n props: null as Props | null,\n result: null as Output | null,\n}\n\nfunction isPointClose(previous: Point, current: Point, threshold: number = 20): boolean {\n const dx = previous.x - current.x\n const dy = previous.y - current.y\n return dx * dx + dy * dy <= threshold * threshold\n}\n\nexport function getNodeCloseToPoint(props: Props): Output {\n const {\n anchorElem,\n cache_threshold = 20,\n editor,\n fuzzy = false,\n horizontalOffset = 0,\n point: { x, y },\n startIndex = 0,\n useEdgeAsDefault = false,\n verbose = false,\n } = props\n\n // Use cache\n if (\n cache_threshold > 0 &&\n cache.props &&\n cache.result &&\n cache.props.fuzzy === props.fuzzy &&\n cache.props.horizontalOffset === props.horizontalOffset &&\n cache.props.useEdgeAsDefault === props.useEdgeAsDefault &&\n isPointClose(cache.props.point, props.point, cache_threshold)\n ) {\n return cache.result\n }\n\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const closestBlockElem: {\n blockElem: HTMLElement | null\n blockNode: LexicalNode | null\n distance: number\n foundAtIndex: number\n isFoundNodeEmptyParagraph: boolean\n } = {\n blockElem: null,\n blockNode: null,\n distance: Infinity,\n foundAtIndex: -1,\n isFoundNodeEmptyParagraph: false,\n }\n\n // Return null if matching block element is the first or last node\n editor.getEditorState().read(() => {\n if (useEdgeAsDefault) {\n const [firstNode, lastNode] = [\n editor.getElementByKey(topLevelNodeKeys[0]),\n editor.getElementByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1]),\n ]\n\n const [firstNodeRect, lastNodeRect] = [\n getBoundingClientRectWithoutTransform(firstNode),\n getBoundingClientRectWithoutTransform(lastNode),\n ]\n\n if (firstNodeRect && lastNodeRect) {\n if (y < firstNodeRect.top) {\n closestBlockElem.blockElem = firstNode\n closestBlockElem.distance = firstNodeRect.top - y\n closestBlockElem.blockNode = $getNodeByKey(topLevelNodeKeys[0])\n closestBlockElem.foundAtIndex = 0\n } else if (y > lastNodeRect.bottom) {\n closestBlockElem.distance = y - lastNodeRect.bottom\n closestBlockElem.blockNode = $getNodeByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1])\n closestBlockElem.blockElem = lastNode\n closestBlockElem.foundAtIndex = topLevelNodeKeys.length - 1\n }\n\n if (closestBlockElem?.blockElem) {\n return {\n blockElem: null,\n isFoundNodeEmptyParagraph: false,\n } as Output\n }\n }\n }\n\n // Find matching block element\n let index = startIndex\n let direction = Indeterminate\n\n while (index >= 0 && index < topLevelNodeKeys.length) {\n const key = topLevelNodeKeys[index]\n const elem = editor.getElementByKey(key)\n if (elem === null) {\n break\n }\n const point = new Point(x + horizontalOffset, y)\n //const domRect = Rect.fromDOM(elem)\n // Do not consider transform of blocks when calculating distance\n const domRect = Rect.fromDOMRect(getBoundingClientRectWithoutTransform(elem))\n\n const { marginBottom, marginTop } = getCollapsedMargins(elem)\n\n const rect = domRect.generateNewRect({\n bottom: domRect.bottom + marginBottom,\n left: anchorElementRect.left,\n right: anchorElementRect.right,\n top: domRect.top - marginTop,\n })\n\n const { distance, isOnBottomSide, isOnTopSide } = rect.distanceFromPoint(point)\n\n if (distance === 0) {\n closestBlockElem.blockElem = elem\n closestBlockElem.blockNode = $getNodeByKey(key)\n closestBlockElem.foundAtIndex = index\n closestBlockElem.distance = distance\n\n // Check if blockNode is an empty text node\n if (\n closestBlockElem.blockNode &&\n closestBlockElem.blockNode.getType() === 'paragraph' &&\n closestBlockElem.blockNode.getTextContent() === ''\n ) {\n if (!fuzzy && !props.returnEmptyParagraphs) {\n closestBlockElem.blockElem = null\n closestBlockElem.blockNode = null\n }\n\n closestBlockElem.isFoundNodeEmptyParagraph = true\n }\n break\n } else if (fuzzy) {\n if (distance < closestBlockElem.distance) {\n closestBlockElem.blockElem = elem\n closestBlockElem.blockNode = $getNodeByKey(key)\n closestBlockElem.distance = distance\n closestBlockElem.foundAtIndex = index\n }\n }\n\n if (direction === Indeterminate) {\n if (isOnTopSide) {\n direction = Upward\n } else if (isOnBottomSide) {\n direction = Downward\n } else {\n // stop search block element\n direction = Infinity\n }\n }\n\n index += direction\n }\n })\n\n // Store in cache before returning\n cache.props = props\n cache.result = {\n blockElem: closestBlockElem.blockElem,\n blockNode: closestBlockElem.blockNode,\n foundAtIndex: closestBlockElem.foundAtIndex,\n isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph,\n }\n\n return {\n blockElem: closestBlockElem.blockElem,\n blockNode: closestBlockElem.blockNode,\n foundAtIndex: closestBlockElem.foundAtIndex,\n isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getNodeCloseToPoint.js","names":["$getNodeByKey","Point","Rect","getBoundingClientRectWithoutTransform","getCollapsedMargins","getTopLevelNodeKeys","Downward","Upward","Indeterminate","cache","props","result","isPointClose","previous","current","threshold","dx","x","dy","y","getNodeCloseToPoint","anchorElem","cache_threshold","editor","fuzzy","horizontalOffset","point","startIndex","useEdgeAsDefault","anchorElementRect","getBoundingClientRect","topLevelNodeKeys","closestBlockElem","blockElem","blockNode","distance","Infinity","foundAtIndex","isFoundNodeEmptyParagraph","getEditorState","read","firstNode","lastNode","getElementByKey","length","firstNodeRect","lastNodeRect","top","bottom","index","direction","key","elem","domRect","fromDOMRect","marginBottom","marginTop","rect","generateNewRect","left","right","isOnBottomSide","isOnTopSide","distanceFromPoint","getType","getTextContent","returnEmptyParagraphs"],"sources":["../../../../../src/lexical/plugins/handles/utils/getNodeCloseToPoint.ts"],"sourcesContent":["'use client'\nimport type { LexicalEditor, LexicalNode } from 'lexical'\n\nimport { $getNodeByKey } from 'lexical'\n\nimport { Point } from '../../../utils/point.js'\nimport { Rect } from '../../../utils/rect.js'\nimport { getBoundingClientRectWithoutTransform } from '../DraggableBlockPlugin/getBoundingRectWithoutTransform.js'\nimport { getCollapsedMargins } from '../utils/getCollapsedMargins.js'\nimport { getTopLevelNodeKeys } from '../utils/getTopLevelNodeKeys.js'\n\n// Directions\nconst Downward = 1\nconst Upward = -1\nconst Indeterminate = 0\n\ntype Props = {\n anchorElem: HTMLElement\n cache_threshold?: number\n editor: LexicalEditor\n /** fuzzy makes the search not exact. If no exact match found, find the closes node instead of returning null */\n fuzzy?: boolean\n horizontalOffset?: number\n point: Point\n /**\n * By default, empty paragraphs are not returned. Set this to true to return empty paragraphs. @default false\n */\n returnEmptyParagraphs?: boolean\n /**\n * The index to start searching from. It can be a considerable performance optimization to start searching from the index of the\n * previously found node, as the node is likely to be close to the next node.\n */\n startIndex?: number\n useEdgeAsDefault?: boolean\n verbose?: boolean\n}\n\ntype Output = {\n blockElem: HTMLElement | null\n blockNode: LexicalNode | null\n foundAtIndex: number\n isFoundNodeEmptyParagraph: boolean\n}\n\nconst cache = {\n props: null as null | Props,\n result: null as null | Output,\n}\n\nfunction isPointClose(previous: Point, current: Point, threshold: number = 20): boolean {\n const dx = previous.x - current.x\n const dy = previous.y - current.y\n return dx * dx + dy * dy <= threshold * threshold\n}\n\nexport function getNodeCloseToPoint(props: Props): Output {\n const {\n anchorElem,\n cache_threshold = 20,\n editor,\n fuzzy = false,\n horizontalOffset = 0,\n point: { x, y },\n startIndex = 0,\n useEdgeAsDefault = false,\n } = props\n\n // Use cache\n if (\n cache_threshold > 0 &&\n cache.props &&\n cache.result &&\n cache.props.fuzzy === props.fuzzy &&\n cache.props.horizontalOffset === props.horizontalOffset &&\n cache.props.useEdgeAsDefault === props.useEdgeAsDefault &&\n isPointClose(cache.props.point, props.point, cache_threshold)\n ) {\n return cache.result\n }\n\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const topLevelNodeKeys = getTopLevelNodeKeys(editor)\n\n const closestBlockElem: {\n blockElem: HTMLElement | null\n blockNode: LexicalNode | null\n distance: number\n foundAtIndex: number\n isFoundNodeEmptyParagraph: boolean\n } = {\n blockElem: null,\n blockNode: null,\n distance: Infinity,\n foundAtIndex: -1,\n isFoundNodeEmptyParagraph: false,\n }\n\n // Return null if matching block element is the first or last node\n editor.getEditorState().read(() => {\n if (useEdgeAsDefault) {\n const [firstNode, lastNode] = [\n editor.getElementByKey(topLevelNodeKeys[0]),\n editor.getElementByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1]),\n ]\n\n if (firstNode && lastNode) {\n const [firstNodeRect, lastNodeRect] = [\n getBoundingClientRectWithoutTransform(firstNode),\n getBoundingClientRectWithoutTransform(lastNode),\n ]\n\n if (y < firstNodeRect.top) {\n closestBlockElem.blockElem = firstNode\n closestBlockElem.distance = firstNodeRect.top - y\n closestBlockElem.blockNode = $getNodeByKey(topLevelNodeKeys[0])\n closestBlockElem.foundAtIndex = 0\n } else if (y > lastNodeRect.bottom) {\n closestBlockElem.distance = y - lastNodeRect.bottom\n closestBlockElem.blockNode = $getNodeByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1])\n closestBlockElem.blockElem = lastNode\n closestBlockElem.foundAtIndex = topLevelNodeKeys.length - 1\n }\n\n if (closestBlockElem?.blockElem) {\n return {\n blockElem: null,\n isFoundNodeEmptyParagraph: false,\n } as Output\n }\n }\n }\n\n // Find matching block element\n let index = startIndex\n let direction = Indeterminate\n\n while (index >= 0 && index < topLevelNodeKeys.length) {\n const key = topLevelNodeKeys[index]\n const elem = editor.getElementByKey(key)\n if (elem === null) {\n break\n }\n const point = new Point(x + horizontalOffset, y)\n //const domRect = Rect.fromDOM(elem)\n // Do not consider transform of blocks when calculating distance\n const domRect = Rect.fromDOMRect(getBoundingClientRectWithoutTransform(elem))\n\n const { marginBottom, marginTop } = getCollapsedMargins(elem)\n\n const rect = domRect.generateNewRect({\n bottom: domRect.bottom + marginBottom,\n left: anchorElementRect.left,\n right: anchorElementRect.right,\n top: domRect.top - marginTop,\n })\n\n const { distance, isOnBottomSide, isOnTopSide } = rect.distanceFromPoint(point)\n\n if (distance === 0) {\n closestBlockElem.blockElem = elem\n closestBlockElem.blockNode = $getNodeByKey(key)\n closestBlockElem.foundAtIndex = index\n closestBlockElem.distance = distance\n\n // Check if blockNode is an empty text node\n if (\n closestBlockElem.blockNode &&\n closestBlockElem.blockNode.getType() === 'paragraph' &&\n closestBlockElem.blockNode.getTextContent() === ''\n ) {\n if (!fuzzy && !props.returnEmptyParagraphs) {\n closestBlockElem.blockElem = null\n closestBlockElem.blockNode = null\n }\n\n closestBlockElem.isFoundNodeEmptyParagraph = true\n }\n break\n } else if (fuzzy) {\n if (distance < closestBlockElem.distance) {\n closestBlockElem.blockElem = elem\n closestBlockElem.blockNode = $getNodeByKey(key)\n closestBlockElem.distance = distance\n closestBlockElem.foundAtIndex = index\n }\n }\n\n if (direction === Indeterminate) {\n if (isOnTopSide) {\n direction = Upward\n } else if (isOnBottomSide) {\n direction = Downward\n } else {\n // stop search block element\n direction = Infinity\n }\n }\n\n index += direction\n }\n })\n\n // Store in cache before returning\n cache.props = props\n cache.result = {\n blockElem: closestBlockElem.blockElem,\n blockNode: closestBlockElem.blockNode,\n foundAtIndex: closestBlockElem.foundAtIndex,\n isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph,\n }\n\n return {\n blockElem: closestBlockElem.blockElem,\n blockNode: closestBlockElem.blockNode,\n foundAtIndex: closestBlockElem.foundAtIndex,\n isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"setHandlePosition.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/utils/setHandlePosition.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,WAAW,GAAG,IAAI,EAC9B,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,WAAW,EACvB,UAAU,GAAE,MAAU,QAuCvB"}
1
+ {"version":3,"file":"setHandlePosition.d.ts","sourceRoot":"","sources":["../../../../../src/lexical/plugins/handles/utils/setHandlePosition.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,WAAW,GAAG,IAAI,EAC9B,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,WAAW,EACvB,UAAU,GAAE,MAAU,QAmCvB"}
@@ -12,16 +12,14 @@ export function setHandlePosition(targetElem, handleElem, anchorElem, leftOffset
12
12
  const floatingElemRect = handleElem.getBoundingClientRect();
13
13
  const anchorElementRect = anchorElem.getBoundingClientRect();
14
14
  let top;
15
- const shouldDisplayHandleInCenter = targetRect.height < 60;
16
- if (!shouldDisplayHandleInCenter) {
15
+ const isBlockStyle = ['lexical-block', 'lexical-upload', 'lexical-relationship'].some(classes => targetElem.firstElementChild?.classList.contains(classes));
16
+ if (!isBlockStyle) {
17
17
  // No need to let line height affect the re-positioning of the floating element if line height has no
18
18
  // visual effect on the element. Otherwise, the floating element will be positioned incorrectly.
19
19
  const actualLineHeight = doesLineHeightAffectElement(targetElem) ? parseInt(targetStyle.lineHeight, 10) : 0;
20
- top = targetRect.top + (actualLineHeight - floatingElemRect.height) / 2 - anchorElementRect.top - 1 // 1px inaccuracy
21
- ;
20
+ top = targetRect.top + (actualLineHeight - floatingElemRect.height) / 2 - anchorElementRect.top;
22
21
  } else {
23
- top = targetRect.top - floatingElemRect.height / 2 - anchorElementRect.top + targetRect.height / 2 - 1 // 1px inaccuracy
24
- ;
22
+ top = targetRect.top + 8 - anchorElementRect.top;
25
23
  }
26
24
  const left = leftOffset;
27
25
  handleElem.style.opacity = '1';
@@ -1 +1 @@
1
- {"version":3,"file":"setHandlePosition.js","names":["doesLineHeightAffectElement","setHandlePosition","targetElem","handleElem","anchorElem","leftOffset","style","opacity","transform","targetRect","getBoundingClientRect","targetStyle","window","getComputedStyle","floatingElemRect","anchorElementRect","top","shouldDisplayHandleInCenter","height","actualLineHeight","parseInt","lineHeight","left"],"sources":["../../../../../src/lexical/plugins/handles/utils/setHandlePosition.ts"],"sourcesContent":["'use client'\nimport { doesLineHeightAffectElement } from './doesLineHeightAffectElement.js'\n\nexport function setHandlePosition(\n targetElem: HTMLElement | null,\n handleElem: HTMLElement,\n anchorElem: HTMLElement,\n leftOffset: number = 0, // SPACE\n) {\n if (!targetElem) {\n handleElem.style.opacity = '0'\n handleElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const targetRect = targetElem.getBoundingClientRect()\n const targetStyle = window.getComputedStyle(targetElem)\n const floatingElemRect = handleElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n\n let top: number\n\n const shouldDisplayHandleInCenter = targetRect.height < 60\n\n if (!shouldDisplayHandleInCenter) {\n // No need to let line height affect the re-positioning of the floating element if line height has no\n // visual effect on the element. Otherwise, the floating element will be positioned incorrectly.\n const actualLineHeight = doesLineHeightAffectElement(targetElem)\n ? parseInt(targetStyle.lineHeight, 10)\n : 0\n\n top =\n targetRect.top + (actualLineHeight - floatingElemRect.height) / 2 - anchorElementRect.top - 1 // 1px inaccuracy\n } else {\n top =\n targetRect.top -\n floatingElemRect.height / 2 -\n anchorElementRect.top +\n targetRect.height / 2 -\n 1 // 1px inaccuracy\n }\n\n const left = leftOffset\n\n handleElem.style.opacity = '1'\n handleElem.style.transform = `translate(${left}px, ${top}px)`\n}\n"],"mappings":"AAAA;;AACA,SAASA,2BAA2B,QAAQ;AAE5C,OAAO,SAASC,kBACdC,UAA8B,EAC9BC,UAAuB,EACvBC,UAAuB,EACvBC,UAAA,GAAqB,CAAC;EAEtB,IAAI,CAACH,UAAA,EAAY;IACfC,UAAA,CAAWG,KAAK,CAACC,OAAO,GAAG;IAC3BJ,UAAA,CAAWG,KAAK,CAACE,SAAS,GAAG;IAC7B;EACF;EAEA,MAAMC,UAAA,GAAaP,UAAA,CAAWQ,qBAAqB;EACnD,MAAMC,WAAA,GAAcC,MAAA,CAAOC,gBAAgB,CAACX,UAAA;EAC5C,MAAMY,gBAAA,GAAmBX,UAAA,CAAWO,qBAAqB;EACzD,MAAMK,iBAAA,GAAoBX,UAAA,CAAWM,qBAAqB;EAE1D,IAAIM,GAAA;EAEJ,MAAMC,2BAAA,GAA8BR,UAAA,CAAWS,MAAM,GAAG;EAExD,IAAI,CAACD,2BAAA,EAA6B;IAChC;IACA;IACA,MAAME,gBAAA,GAAmBnB,2BAAA,CAA4BE,UAAA,IACjDkB,QAAA,CAAST,WAAA,CAAYU,UAAU,EAAE,MACjC;IAEJL,GAAA,GACEP,UAAA,CAAWO,GAAG,GAAG,CAACG,gBAAA,GAAmBL,gBAAA,CAAiBI,MAAM,IAAI,IAAIH,iBAAA,CAAkBC,GAAG,GAAG,EAAE;IAAA;EAClG,OAAO;IACLA,GAAA,GACEP,UAAA,CAAWO,GAAG,GACdF,gBAAA,CAAiBI,MAAM,GAAG,IAC1BH,iBAAA,CAAkBC,GAAG,GACrBP,UAAA,CAAWS,MAAM,GAAG,IACpB,EAAE;IAAA;EACN;EAEA,MAAMI,IAAA,GAAOjB,UAAA;EAEbF,UAAA,CAAWG,KAAK,CAACC,OAAO,GAAG;EAC3BJ,UAAA,CAAWG,KAAK,CAACE,SAAS,GAAG,aAAac,IAAA,OAAWN,GAAA,KAAQ;AAC/D","ignoreList":[]}
1
+ {"version":3,"file":"setHandlePosition.js","names":["doesLineHeightAffectElement","setHandlePosition","targetElem","handleElem","anchorElem","leftOffset","style","opacity","transform","targetRect","getBoundingClientRect","targetStyle","window","getComputedStyle","floatingElemRect","anchorElementRect","top","isBlockStyle","some","classes","firstElementChild","classList","contains","actualLineHeight","parseInt","lineHeight","height","left"],"sources":["../../../../../src/lexical/plugins/handles/utils/setHandlePosition.ts"],"sourcesContent":["'use client'\nimport { doesLineHeightAffectElement } from './doesLineHeightAffectElement.js'\n\nexport function setHandlePosition(\n targetElem: HTMLElement | null,\n handleElem: HTMLElement,\n anchorElem: HTMLElement,\n leftOffset: number = 0, // SPACE\n) {\n if (!targetElem) {\n handleElem.style.opacity = '0'\n handleElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const targetRect = targetElem.getBoundingClientRect()\n const targetStyle = window.getComputedStyle(targetElem)\n const floatingElemRect = handleElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n\n let top: number\n\n const isBlockStyle = ['lexical-block', 'lexical-upload', 'lexical-relationship'].some((classes) =>\n targetElem.firstElementChild?.classList.contains(classes),\n )\n\n if (!isBlockStyle) {\n // No need to let line height affect the re-positioning of the floating element if line height has no\n // visual effect on the element. Otherwise, the floating element will be positioned incorrectly.\n const actualLineHeight = doesLineHeightAffectElement(targetElem)\n ? parseInt(targetStyle.lineHeight, 10)\n : 0\n\n top = targetRect.top + (actualLineHeight - floatingElemRect.height) / 2 - anchorElementRect.top\n } else {\n top = targetRect.top + 8 - anchorElementRect.top\n }\n\n const left = leftOffset\n\n handleElem.style.opacity = '1'\n handleElem.style.transform = `translate(${left}px, ${top}px)`\n}\n"],"mappings":"AAAA;;AACA,SAASA,2BAA2B,QAAQ;AAE5C,OAAO,SAASC,kBACdC,UAA8B,EAC9BC,UAAuB,EACvBC,UAAuB,EACvBC,UAAA,GAAqB,CAAC;EAEtB,IAAI,CAACH,UAAA,EAAY;IACfC,UAAA,CAAWG,KAAK,CAACC,OAAO,GAAG;IAC3BJ,UAAA,CAAWG,KAAK,CAACE,SAAS,GAAG;IAC7B;EACF;EAEA,MAAMC,UAAA,GAAaP,UAAA,CAAWQ,qBAAqB;EACnD,MAAMC,WAAA,GAAcC,MAAA,CAAOC,gBAAgB,CAACX,UAAA;EAC5C,MAAMY,gBAAA,GAAmBX,UAAA,CAAWO,qBAAqB;EACzD,MAAMK,iBAAA,GAAoBX,UAAA,CAAWM,qBAAqB;EAE1D,IAAIM,GAAA;EAEJ,MAAMC,YAAA,GAAe,CAAC,iBAAiB,kBAAkB,uBAAuB,CAACC,IAAI,CAAEC,OAAA,IACrFjB,UAAA,CAAWkB,iBAAiB,EAAEC,SAAA,CAAUC,QAAA,CAASH,OAAA;EAGnD,IAAI,CAACF,YAAA,EAAc;IACjB;IACA;IACA,MAAMM,gBAAA,GAAmBvB,2BAAA,CAA4BE,UAAA,IACjDsB,QAAA,CAASb,WAAA,CAAYc,UAAU,EAAE,MACjC;IAEJT,GAAA,GAAMP,UAAA,CAAWO,GAAG,GAAG,CAACO,gBAAA,GAAmBT,gBAAA,CAAiBY,MAAM,IAAI,IAAIX,iBAAA,CAAkBC,GAAG;EACjG,OAAO;IACLA,GAAA,GAAMP,UAAA,CAAWO,GAAG,GAAG,IAAID,iBAAA,CAAkBC,GAAG;EAClD;EAEA,MAAMW,IAAA,GAAOtB,UAAA;EAEbF,UAAA,CAAWG,KAAK,CAACC,OAAO,GAAG;EAC3BJ,UAAA,CAAWG,KAAK,CAACE,SAAS,GAAG,aAAamB,IAAA,OAAWX,GAAA,KAAQ;AAC/D","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"EditorTheme.d.ts","sourceRoot":"","sources":["../../../src/lexical/theme/EditorTheme.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,kBAAkB,EAAE,kBAuGhC,CAAA"}
1
+ {"version":3,"file":"EditorTheme.d.ts","sourceRoot":"","sources":["../../../src/lexical/theme/EditorTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,kBAAkB,EAAE,kBAwGhC,CAAA"}
@@ -1,5 +1,3 @@
1
- 'use client';
2
-
3
1
  export const LexicalEditorTheme = {
4
2
  block: 'LexicalEditorTheme__block',
5
3
  blockCursor: 'LexicalEditorTheme__blockCursor',
@@ -85,6 +83,7 @@ export const LexicalEditorTheme = {
85
83
  tableCellSelected: 'LexicalEditorTheme__tableCellSelected',
86
84
  tableCellSortedIndicator: 'LexicalEditorTheme__tableCellSortedIndicator',
87
85
  tableResizeRuler: 'LexicalEditorTheme__tableCellResizeRuler',
86
+ tableRowStriping: 'LexicalEditorTheme__tableRowStriping',
88
87
  tableSelected: 'LexicalEditorTheme__tableSelected',
89
88
  text: {
90
89
  bold: 'LexicalEditorTheme__textBold',
@@ -1 +1 @@
1
- {"version":3,"file":"EditorTheme.js","names":["LexicalEditorTheme","block","blockCursor","characterLimit","code","codeHighlight","atrule","attr","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","important","inserted","keyword","namespace","number","operator","prolog","property","punctuation","regex","selector","string","symbol","tag","url","variable","embedBlock","base","focus","hashtag","heading","h1","h2","h3","h4","h5","h6","hr","indent","inlineImage","link","list","checklist","listitem","listitemChecked","listitemUnchecked","nested","olDepth","ul","ltr","mark","markOverlap","paragraph","quote","relationship","rtl","table","tableAddColumns","tableAddRows","tableCell","tableCellActionButton","tableCellActionButtonContainer","tableCellEditing","tableCellHeader","tableCellPrimarySelected","tableCellResizer","tableCellSelected","tableCellSortedIndicator","tableResizeRuler","tableSelected","text","bold","italic","strikethrough","subscript","superscript","underline","underlineStrikethrough","upload"],"sources":["../../../src/lexical/theme/EditorTheme.tsx"],"sourcesContent":["'use client'\nimport type { EditorThemeClasses } from 'lexical'\n\nexport const LexicalEditorTheme: EditorThemeClasses = {\n block: 'LexicalEditorTheme__block',\n blockCursor: 'LexicalEditorTheme__blockCursor',\n characterLimit: 'LexicalEditorTheme__characterLimit',\n code: 'LexicalEditorTheme__code',\n codeHighlight: {\n atrule: 'LexicalEditorTheme__tokenAttr',\n attr: 'LexicalEditorTheme__tokenAttr',\n boolean: 'LexicalEditorTheme__tokenProperty',\n builtin: 'LexicalEditorTheme__tokenSelector',\n cdata: 'LexicalEditorTheme__tokenComment',\n char: 'LexicalEditorTheme__tokenSelector',\n class: 'LexicalEditorTheme__tokenFunction',\n 'class-name': 'LexicalEditorTheme__tokenFunction',\n comment: 'LexicalEditorTheme__tokenComment',\n constant: 'LexicalEditorTheme__tokenProperty',\n deleted: 'LexicalEditorTheme__tokenProperty',\n doctype: 'LexicalEditorTheme__tokenComment',\n entity: 'LexicalEditorTheme__tokenOperator',\n function: 'LexicalEditorTheme__tokenFunction',\n important: 'LexicalEditorTheme__tokenVariable',\n inserted: 'LexicalEditorTheme__tokenSelector',\n keyword: 'LexicalEditorTheme__tokenAttr',\n namespace: 'LexicalEditorTheme__tokenVariable',\n number: 'LexicalEditorTheme__tokenProperty',\n operator: 'LexicalEditorTheme__tokenOperator',\n prolog: 'LexicalEditorTheme__tokenComment',\n property: 'LexicalEditorTheme__tokenProperty',\n punctuation: 'LexicalEditorTheme__tokenPunctuation',\n regex: 'LexicalEditorTheme__tokenVariable',\n selector: 'LexicalEditorTheme__tokenSelector',\n string: 'LexicalEditorTheme__tokenSelector',\n symbol: 'LexicalEditorTheme__tokenProperty',\n tag: 'LexicalEditorTheme__tokenProperty',\n url: 'LexicalEditorTheme__tokenOperator',\n variable: 'LexicalEditorTheme__tokenVariable',\n },\n embedBlock: {\n base: 'LexicalEditorTheme__embedBlock',\n focus: 'LexicalEditorTheme__embedBlockFocus',\n },\n hashtag: 'LexicalEditorTheme__hashtag',\n heading: {\n h1: 'LexicalEditorTheme__h1',\n h2: 'LexicalEditorTheme__h2',\n h3: 'LexicalEditorTheme__h3',\n h4: 'LexicalEditorTheme__h4',\n h5: 'LexicalEditorTheme__h5',\n h6: 'LexicalEditorTheme__h6',\n },\n hr: 'LexicalEditorTheme__hr',\n indent: 'LexicalEditorTheme__indent',\n inlineImage: 'LexicalEditor__inline-image',\n link: 'LexicalEditorTheme__link',\n list: {\n checklist: 'LexicalEditorTheme__checklist',\n listitem: 'LexicalEditorTheme__listItem',\n listitemChecked: 'LexicalEditorTheme__listItemChecked',\n listitemUnchecked: 'LexicalEditorTheme__listItemUnchecked',\n nested: {\n listitem: 'LexicalEditorTheme__nestedListItem',\n },\n olDepth: [\n 'LexicalEditorTheme__ol1',\n 'LexicalEditorTheme__ol2',\n 'LexicalEditorTheme__ol3',\n 'LexicalEditorTheme__ol4',\n 'LexicalEditorTheme__ol5',\n ],\n ul: 'LexicalEditorTheme__ul',\n },\n ltr: 'LexicalEditorTheme__ltr',\n mark: 'LexicalEditorTheme__mark',\n markOverlap: 'LexicalEditorTheme__markOverlap',\n paragraph: 'LexicalEditorTheme__paragraph',\n quote: 'LexicalEditorTheme__quote',\n relationship: 'LexicalEditorTheme__relationship',\n rtl: 'LexicalEditorTheme__rtl',\n table: 'LexicalEditorTheme__table',\n tableAddColumns: 'LexicalEditorTheme__tableAddColumns',\n tableAddRows: 'LexicalEditorTheme__tableAddRows',\n tableCell: 'LexicalEditorTheme__tableCell',\n tableCellActionButton: 'LexicalEditorTheme__tableCellActionButton',\n tableCellActionButtonContainer: 'LexicalEditorTheme__tableCellActionButtonContainer',\n tableCellEditing: 'LexicalEditorTheme__tableCellEditing',\n tableCellHeader: 'LexicalEditorTheme__tableCellHeader',\n tableCellPrimarySelected: 'LexicalEditorTheme__tableCellPrimarySelected',\n tableCellResizer: 'LexicalEditorTheme__tableCellResizer',\n tableCellSelected: 'LexicalEditorTheme__tableCellSelected',\n tableCellSortedIndicator: 'LexicalEditorTheme__tableCellSortedIndicator',\n tableResizeRuler: 'LexicalEditorTheme__tableCellResizeRuler',\n tableSelected: 'LexicalEditorTheme__tableSelected',\n text: {\n bold: 'LexicalEditorTheme__textBold',\n code: 'LexicalEditorTheme__textCode',\n italic: 'LexicalEditorTheme__textItalic',\n strikethrough: 'LexicalEditorTheme__textStrikethrough',\n subscript: 'LexicalEditorTheme__textSubscript',\n superscript: 'LexicalEditorTheme__textSuperscript',\n underline: 'LexicalEditorTheme__textUnderline',\n underlineStrikethrough: 'LexicalEditorTheme__textUnderlineStrikethrough',\n },\n upload: 'editor-upload',\n}\n"],"mappings":"AAAA;;AAGA,OAAO,MAAMA,kBAAA,GAAyC;EACpDC,KAAA,EAAO;EACPC,WAAA,EAAa;EACbC,cAAA,EAAgB;EAChBC,IAAA,EAAM;EACNC,aAAA,EAAe;IACbC,MAAA,EAAQ;IACRC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;IACTC,KAAA,EAAO;IACPC,IAAA,EAAM;IACNC,KAAA,EAAO;IACP,cAAc;IACdC,OAAA,EAAS;IACTC,QAAA,EAAU;IACVC,OAAA,EAAS;IACTC,OAAA,EAAS;IACTC,MAAA,EAAQ;IACRC,QAAA,EAAU;IACVC,SAAA,EAAW;IACXC,QAAA,EAAU;IACVC,OAAA,EAAS;IACTC,SAAA,EAAW;IACXC,MAAA,EAAQ;IACRC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,QAAA,EAAU;IACVC,WAAA,EAAa;IACbC,KAAA,EAAO;IACPC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,GAAA,EAAK;IACLC,GAAA,EAAK;IACLC,QAAA,EAAU;EACZ;EACAC,UAAA,EAAY;IACVC,IAAA,EAAM;IACNC,KAAA,EAAO;EACT;EACAC,OAAA,EAAS;EACTC,OAAA,EAAS;IACPC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;EACN;EACAC,EAAA,EAAI;EACJC,MAAA,EAAQ;EACRC,WAAA,EAAa;EACbC,IAAA,EAAM;EACNC,IAAA,EAAM;IACJC,SAAA,EAAW;IACXC,QAAA,EAAU;IACVC,eAAA,EAAiB;IACjBC,iBAAA,EAAmB;IACnBC,MAAA,EAAQ;MACNH,QAAA,EAAU;IACZ;IACAI,OAAA,EAAS,CACP,2BACA,2BACA,2BACA,2BACA,0BACD;IACDC,EAAA,EAAI;EACN;EACAC,GAAA,EAAK;EACLC,IAAA,EAAM;EACNC,WAAA,EAAa;EACbC,SAAA,EAAW;EACXC,KAAA,EAAO;EACPC,YAAA,EAAc;EACdC,GAAA,EAAK;EACLC,KAAA,EAAO;EACPC,eAAA,EAAiB;EACjBC,YAAA,EAAc;EACdC,SAAA,EAAW;EACXC,qBAAA,EAAuB;EACvBC,8BAAA,EAAgC;EAChCC,gBAAA,EAAkB;EAClBC,eAAA,EAAiB;EACjBC,wBAAA,EAA0B;EAC1BC,gBAAA,EAAkB;EAClBC,iBAAA,EAAmB;EACnBC,wBAAA,EAA0B;EAC1BC,gBAAA,EAAkB;EAClBC,aAAA,EAAe;EACfC,IAAA,EAAM;IACJC,IAAA,EAAM;IACN5E,IAAA,EAAM;IACN6E,MAAA,EAAQ;IACRC,aAAA,EAAe;IACfC,SAAA,EAAW;IACXC,WAAA,EAAa;IACbC,SAAA,EAAW;IACXC,sBAAA,EAAwB;EAC1B;EACAC,MAAA,EAAQ;AACV","ignoreList":[]}
1
+ {"version":3,"file":"EditorTheme.js","names":["LexicalEditorTheme","block","blockCursor","characterLimit","code","codeHighlight","atrule","attr","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","important","inserted","keyword","namespace","number","operator","prolog","property","punctuation","regex","selector","string","symbol","tag","url","variable","embedBlock","base","focus","hashtag","heading","h1","h2","h3","h4","h5","h6","hr","indent","inlineImage","link","list","checklist","listitem","listitemChecked","listitemUnchecked","nested","olDepth","ul","ltr","mark","markOverlap","paragraph","quote","relationship","rtl","table","tableAddColumns","tableAddRows","tableCell","tableCellActionButton","tableCellActionButtonContainer","tableCellEditing","tableCellHeader","tableCellPrimarySelected","tableCellResizer","tableCellSelected","tableCellSortedIndicator","tableResizeRuler","tableRowStriping","tableSelected","text","bold","italic","strikethrough","subscript","superscript","underline","underlineStrikethrough","upload"],"sources":["../../../src/lexical/theme/EditorTheme.tsx"],"sourcesContent":["import type { EditorThemeClasses } from 'lexical'\n\nexport const LexicalEditorTheme: EditorThemeClasses = {\n block: 'LexicalEditorTheme__block',\n blockCursor: 'LexicalEditorTheme__blockCursor',\n characterLimit: 'LexicalEditorTheme__characterLimit',\n code: 'LexicalEditorTheme__code',\n codeHighlight: {\n atrule: 'LexicalEditorTheme__tokenAttr',\n attr: 'LexicalEditorTheme__tokenAttr',\n boolean: 'LexicalEditorTheme__tokenProperty',\n builtin: 'LexicalEditorTheme__tokenSelector',\n cdata: 'LexicalEditorTheme__tokenComment',\n char: 'LexicalEditorTheme__tokenSelector',\n class: 'LexicalEditorTheme__tokenFunction',\n 'class-name': 'LexicalEditorTheme__tokenFunction',\n comment: 'LexicalEditorTheme__tokenComment',\n constant: 'LexicalEditorTheme__tokenProperty',\n deleted: 'LexicalEditorTheme__tokenProperty',\n doctype: 'LexicalEditorTheme__tokenComment',\n entity: 'LexicalEditorTheme__tokenOperator',\n function: 'LexicalEditorTheme__tokenFunction',\n important: 'LexicalEditorTheme__tokenVariable',\n inserted: 'LexicalEditorTheme__tokenSelector',\n keyword: 'LexicalEditorTheme__tokenAttr',\n namespace: 'LexicalEditorTheme__tokenVariable',\n number: 'LexicalEditorTheme__tokenProperty',\n operator: 'LexicalEditorTheme__tokenOperator',\n prolog: 'LexicalEditorTheme__tokenComment',\n property: 'LexicalEditorTheme__tokenProperty',\n punctuation: 'LexicalEditorTheme__tokenPunctuation',\n regex: 'LexicalEditorTheme__tokenVariable',\n selector: 'LexicalEditorTheme__tokenSelector',\n string: 'LexicalEditorTheme__tokenSelector',\n symbol: 'LexicalEditorTheme__tokenProperty',\n tag: 'LexicalEditorTheme__tokenProperty',\n url: 'LexicalEditorTheme__tokenOperator',\n variable: 'LexicalEditorTheme__tokenVariable',\n },\n embedBlock: {\n base: 'LexicalEditorTheme__embedBlock',\n focus: 'LexicalEditorTheme__embedBlockFocus',\n },\n hashtag: 'LexicalEditorTheme__hashtag',\n heading: {\n h1: 'LexicalEditorTheme__h1',\n h2: 'LexicalEditorTheme__h2',\n h3: 'LexicalEditorTheme__h3',\n h4: 'LexicalEditorTheme__h4',\n h5: 'LexicalEditorTheme__h5',\n h6: 'LexicalEditorTheme__h6',\n },\n hr: 'LexicalEditorTheme__hr',\n indent: 'LexicalEditorTheme__indent',\n inlineImage: 'LexicalEditor__inline-image',\n link: 'LexicalEditorTheme__link',\n list: {\n checklist: 'LexicalEditorTheme__checklist',\n listitem: 'LexicalEditorTheme__listItem',\n listitemChecked: 'LexicalEditorTheme__listItemChecked',\n listitemUnchecked: 'LexicalEditorTheme__listItemUnchecked',\n nested: {\n listitem: 'LexicalEditorTheme__nestedListItem',\n },\n olDepth: [\n 'LexicalEditorTheme__ol1',\n 'LexicalEditorTheme__ol2',\n 'LexicalEditorTheme__ol3',\n 'LexicalEditorTheme__ol4',\n 'LexicalEditorTheme__ol5',\n ],\n ul: 'LexicalEditorTheme__ul',\n },\n ltr: 'LexicalEditorTheme__ltr',\n mark: 'LexicalEditorTheme__mark',\n markOverlap: 'LexicalEditorTheme__markOverlap',\n paragraph: 'LexicalEditorTheme__paragraph',\n quote: 'LexicalEditorTheme__quote',\n relationship: 'LexicalEditorTheme__relationship',\n rtl: 'LexicalEditorTheme__rtl',\n table: 'LexicalEditorTheme__table',\n tableAddColumns: 'LexicalEditorTheme__tableAddColumns',\n tableAddRows: 'LexicalEditorTheme__tableAddRows',\n tableCell: 'LexicalEditorTheme__tableCell',\n tableCellActionButton: 'LexicalEditorTheme__tableCellActionButton',\n tableCellActionButtonContainer: 'LexicalEditorTheme__tableCellActionButtonContainer',\n tableCellEditing: 'LexicalEditorTheme__tableCellEditing',\n tableCellHeader: 'LexicalEditorTheme__tableCellHeader',\n tableCellPrimarySelected: 'LexicalEditorTheme__tableCellPrimarySelected',\n tableCellResizer: 'LexicalEditorTheme__tableCellResizer',\n tableCellSelected: 'LexicalEditorTheme__tableCellSelected',\n tableCellSortedIndicator: 'LexicalEditorTheme__tableCellSortedIndicator',\n tableResizeRuler: 'LexicalEditorTheme__tableCellResizeRuler',\n tableRowStriping: 'LexicalEditorTheme__tableRowStriping',\n tableSelected: 'LexicalEditorTheme__tableSelected',\n text: {\n bold: 'LexicalEditorTheme__textBold',\n code: 'LexicalEditorTheme__textCode',\n italic: 'LexicalEditorTheme__textItalic',\n strikethrough: 'LexicalEditorTheme__textStrikethrough',\n subscript: 'LexicalEditorTheme__textSubscript',\n superscript: 'LexicalEditorTheme__textSuperscript',\n underline: 'LexicalEditorTheme__textUnderline',\n underlineStrikethrough: 'LexicalEditorTheme__textUnderlineStrikethrough',\n },\n upload: 'editor-upload',\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAA,GAAyC;EACpDC,KAAA,EAAO;EACPC,WAAA,EAAa;EACbC,cAAA,EAAgB;EAChBC,IAAA,EAAM;EACNC,aAAA,EAAe;IACbC,MAAA,EAAQ;IACRC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;IACTC,KAAA,EAAO;IACPC,IAAA,EAAM;IACNC,KAAA,EAAO;IACP,cAAc;IACdC,OAAA,EAAS;IACTC,QAAA,EAAU;IACVC,OAAA,EAAS;IACTC,OAAA,EAAS;IACTC,MAAA,EAAQ;IACRC,QAAA,EAAU;IACVC,SAAA,EAAW;IACXC,QAAA,EAAU;IACVC,OAAA,EAAS;IACTC,SAAA,EAAW;IACXC,MAAA,EAAQ;IACRC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,QAAA,EAAU;IACVC,WAAA,EAAa;IACbC,KAAA,EAAO;IACPC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,GAAA,EAAK;IACLC,GAAA,EAAK;IACLC,QAAA,EAAU;EACZ;EACAC,UAAA,EAAY;IACVC,IAAA,EAAM;IACNC,KAAA,EAAO;EACT;EACAC,OAAA,EAAS;EACTC,OAAA,EAAS;IACPC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;IACJC,EAAA,EAAI;EACN;EACAC,EAAA,EAAI;EACJC,MAAA,EAAQ;EACRC,WAAA,EAAa;EACbC,IAAA,EAAM;EACNC,IAAA,EAAM;IACJC,SAAA,EAAW;IACXC,QAAA,EAAU;IACVC,eAAA,EAAiB;IACjBC,iBAAA,EAAmB;IACnBC,MAAA,EAAQ;MACNH,QAAA,EAAU;IACZ;IACAI,OAAA,EAAS,CACP,2BACA,2BACA,2BACA,2BACA,0BACD;IACDC,EAAA,EAAI;EACN;EACAC,GAAA,EAAK;EACLC,IAAA,EAAM;EACNC,WAAA,EAAa;EACbC,SAAA,EAAW;EACXC,KAAA,EAAO;EACPC,YAAA,EAAc;EACdC,GAAA,EAAK;EACLC,KAAA,EAAO;EACPC,eAAA,EAAiB;EACjBC,YAAA,EAAc;EACdC,SAAA,EAAW;EACXC,qBAAA,EAAuB;EACvBC,8BAAA,EAAgC;EAChCC,gBAAA,EAAkB;EAClBC,eAAA,EAAiB;EACjBC,wBAAA,EAA0B;EAC1BC,gBAAA,EAAkB;EAClBC,iBAAA,EAAmB;EACnBC,wBAAA,EAA0B;EAC1BC,gBAAA,EAAkB;EAClBC,gBAAA,EAAkB;EAClBC,aAAA,EAAe;EACfC,IAAA,EAAM;IACJC,IAAA,EAAM;IACN7E,IAAA,EAAM;IACN8E,MAAA,EAAQ;IACRC,aAAA,EAAe;IACfC,SAAA,EAAW;IACXC,WAAA,EAAa;IACbC,SAAA,EAAW;IACXC,sBAAA,EAAwB;EAC1B;EACAC,MAAA,EAAQ;AACV","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  <svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M1.25 3.5L3.75 1L6.25 3.5" stroke="#000000" />
3
- </svg>
2
+ <path d="M1.25 3.5L3.75 1L6.25 3.5" />
3
+ </svg>
@@ -32,8 +32,8 @@ export declare const NON_BREAKING_SPACE = "\u00A0";
32
32
  export declare const DOUBLE_LINE_BREAK = "\n\n";
33
33
  export declare const RTL_REGEX: RegExp;
34
34
  export declare const LTR_REGEX: RegExp;
35
- export declare const TEXT_TYPE_TO_FORMAT: Record<TextFormatType | string, number>;
36
- export declare const DETAIL_TYPE_TO_DETAIL: Record<TextDetailType | string, number>;
35
+ export declare const TEXT_TYPE_TO_FORMAT: Record<string | TextFormatType, number>;
36
+ export declare const DETAIL_TYPE_TO_DETAIL: Record<string | TextDetailType, number>;
37
37
  export declare const ELEMENT_TYPE_TO_FORMAT: Record<Exclude<ElementFormatType, ''>, number>;
38
38
  export declare const ELEMENT_FORMAT_TO_TYPE: Record<number, ElementFormatType>;
39
39
  export declare const TEXT_MODE_TO_TYPE: Record<TextModeType, 0 | 1 | 2>;
@@ -1 +1 @@
1
- {"version":3,"file":"nodeFormat.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/nodeFormat.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,YAAY,CAAA;AAG3D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Bb,CAAA;AAEV,eAAO,MAAM,iBAAiB,QAQL,CAAA;AAGzB,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,eAAO,MAAM,iBAAiB,SAAS,CAAA;AAYvC,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,EAAE,MAAM,CASvE,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,EAAE,MAAM,CAGzE,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,MAAM,CAOjF,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAOpE,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAI7D,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAI1D,CAAA"}
1
+ {"version":3,"file":"nodeFormat.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/nodeFormat.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,YAAY,CAAA;AAG3D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Bb,CAAA;AAEV,eAAO,MAAM,iBAAiB,QAQL,CAAA;AAGzB,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,eAAO,MAAM,iBAAiB,SAAS,CAAA;AAYvC,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,SAAS,QAA8C,CAAA;AAEpE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,MAAM,CASvE,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,MAAM,CAGzE,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,MAAM,CAOjF,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAOpE,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAI7D,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAI1D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeFormat.js","names":["NodeFormat","DOM_ELEMENT_TYPE","DOM_TEXT_TYPE","NO_DIRTY_NODES","HAS_DIRTY_NODES","FULL_RECONCILE","IS_NORMAL","IS_TOKEN","IS_SEGMENTED","IS_INERT","IS_BOLD","IS_ITALIC","IS_STRIKETHROUGH","IS_UNDERLINE","IS_CODE","IS_SUBSCRIPT","IS_SUPERSCRIPT","IS_HIGHLIGHT","IS_DIRECTIONLESS","IS_UNMERGEABLE","IS_ALIGN_LEFT","IS_ALIGN_CENTER","IS_ALIGN_RIGHT","IS_ALIGN_JUSTIFY","IS_ALIGN_START","IS_ALIGN_END","IS_ALL_FORMATTING","NON_BREAKING_SPACE","DOUBLE_LINE_BREAK","RTL","LTR","RTL_REGEX","RegExp","LTR_REGEX","TEXT_TYPE_TO_FORMAT","bold","code","highlight","italic","strikethrough","subscript","superscript","underline","DETAIL_TYPE_TO_DETAIL","directionless","unmergeable","ELEMENT_TYPE_TO_FORMAT","center","end","justify","left","right","start","ELEMENT_FORMAT_TO_TYPE","TEXT_MODE_TO_TYPE","normal","segmented","token","TEXT_TYPE_TO_MODE"],"sources":["../../../src/lexical/utils/nodeFormat.ts"],"sourcesContent":["/* eslint-disable perfectionist/sort-objects */\n/* eslint-disable regexp/no-obscure-range */\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n/* eslint-disable regexp/no-misleading-unicode-character */\n//This copy-and-pasted from lexical here: https://github.com/facebook/lexical/blob/c2ceee223f46543d12c574e62155e619f9a18a5d/packages/lexical/src/LexicalConstants.ts\n\nimport type { ElementFormatType, TextFormatType, TextModeType } from 'lexical'\nexport type TextDetailType = 'directionless' | 'unmergable'\n\n// DOM\nexport const NodeFormat = {\n DOM_ELEMENT_TYPE: 1,\n DOM_TEXT_TYPE: 3,\n // Reconciling\n NO_DIRTY_NODES: 0,\n HAS_DIRTY_NODES: 1,\n FULL_RECONCILE: 2,\n // Text node modes\n IS_NORMAL: 0,\n IS_TOKEN: 1,\n IS_SEGMENTED: 2,\n IS_INERT: 3,\n // Text node formatting\n IS_BOLD: 1,\n IS_ITALIC: 1 << 1,\n IS_STRIKETHROUGH: 1 << 2,\n IS_UNDERLINE: 1 << 3,\n IS_CODE: 1 << 4,\n IS_SUBSCRIPT: 1 << 5,\n IS_SUPERSCRIPT: 1 << 6,\n IS_HIGHLIGHT: 1 << 7,\n // Text node details\n IS_DIRECTIONLESS: 1,\n IS_UNMERGEABLE: 1 << 1,\n // Element node formatting\n IS_ALIGN_LEFT: 1,\n IS_ALIGN_CENTER: 2,\n IS_ALIGN_RIGHT: 3,\n IS_ALIGN_JUSTIFY: 4,\n IS_ALIGN_START: 5,\n IS_ALIGN_END: 6,\n} as const\n\nexport const IS_ALL_FORMATTING =\n NodeFormat.IS_BOLD |\n NodeFormat.IS_ITALIC |\n NodeFormat.IS_STRIKETHROUGH |\n NodeFormat.IS_UNDERLINE |\n NodeFormat.IS_CODE |\n NodeFormat.IS_SUBSCRIPT |\n NodeFormat.IS_SUPERSCRIPT |\n NodeFormat.IS_HIGHLIGHT\n\n// Reconciliation\nexport const NON_BREAKING_SPACE = '\\u00A0'\n\nexport const DOUBLE_LINE_BREAK = '\\n\\n'\n\n// For FF, we need to use a non-breaking space, or it gets composition\n// in a stuck state.\n\nconst RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n// eslint-disable-next-line no-misleading-character-class\nexport const RTL_REGEX = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\n// eslint-disable-next-line no-misleading-character-class\nexport const LTR_REGEX = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nexport const TEXT_TYPE_TO_FORMAT: Record<TextFormatType | string, number> = {\n bold: NodeFormat.IS_BOLD,\n code: NodeFormat.IS_CODE,\n highlight: NodeFormat.IS_HIGHLIGHT,\n italic: NodeFormat.IS_ITALIC,\n strikethrough: NodeFormat.IS_STRIKETHROUGH,\n subscript: NodeFormat.IS_SUBSCRIPT,\n superscript: NodeFormat.IS_SUPERSCRIPT,\n underline: NodeFormat.IS_UNDERLINE,\n}\n\nexport const DETAIL_TYPE_TO_DETAIL: Record<TextDetailType | string, number> = {\n directionless: NodeFormat.IS_DIRECTIONLESS,\n unmergeable: NodeFormat.IS_UNMERGEABLE,\n}\n\nexport const ELEMENT_TYPE_TO_FORMAT: Record<Exclude<ElementFormatType, ''>, number> = {\n center: NodeFormat.IS_ALIGN_CENTER,\n end: NodeFormat.IS_ALIGN_END,\n justify: NodeFormat.IS_ALIGN_JUSTIFY,\n left: NodeFormat.IS_ALIGN_LEFT,\n right: NodeFormat.IS_ALIGN_RIGHT,\n start: NodeFormat.IS_ALIGN_START,\n}\n\nexport const ELEMENT_FORMAT_TO_TYPE: Record<number, ElementFormatType> = {\n [NodeFormat.IS_ALIGN_CENTER]: 'center',\n [NodeFormat.IS_ALIGN_END]: 'end',\n [NodeFormat.IS_ALIGN_JUSTIFY]: 'justify',\n [NodeFormat.IS_ALIGN_LEFT]: 'left',\n [NodeFormat.IS_ALIGN_RIGHT]: 'right',\n [NodeFormat.IS_ALIGN_START]: 'start',\n}\n\nexport const TEXT_MODE_TO_TYPE: Record<TextModeType, 0 | 1 | 2> = {\n normal: NodeFormat.IS_NORMAL,\n segmented: NodeFormat.IS_SEGMENTED,\n token: NodeFormat.IS_TOKEN,\n}\n\nexport const TEXT_TYPE_TO_MODE: Record<number, TextModeType> = {\n [NodeFormat.IS_NORMAL]: 'normal',\n [NodeFormat.IS_SEGMENTED]: 'segmented',\n [NodeFormat.IS_TOKEN]: 'token',\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"nodeFormat.js","names":["NodeFormat","DOM_ELEMENT_TYPE","DOM_TEXT_TYPE","NO_DIRTY_NODES","HAS_DIRTY_NODES","FULL_RECONCILE","IS_NORMAL","IS_TOKEN","IS_SEGMENTED","IS_INERT","IS_BOLD","IS_ITALIC","IS_STRIKETHROUGH","IS_UNDERLINE","IS_CODE","IS_SUBSCRIPT","IS_SUPERSCRIPT","IS_HIGHLIGHT","IS_DIRECTIONLESS","IS_UNMERGEABLE","IS_ALIGN_LEFT","IS_ALIGN_CENTER","IS_ALIGN_RIGHT","IS_ALIGN_JUSTIFY","IS_ALIGN_START","IS_ALIGN_END","IS_ALL_FORMATTING","NON_BREAKING_SPACE","DOUBLE_LINE_BREAK","RTL","LTR","RTL_REGEX","RegExp","LTR_REGEX","TEXT_TYPE_TO_FORMAT","bold","code","highlight","italic","strikethrough","subscript","superscript","underline","DETAIL_TYPE_TO_DETAIL","directionless","unmergeable","ELEMENT_TYPE_TO_FORMAT","center","end","justify","left","right","start","ELEMENT_FORMAT_TO_TYPE","TEXT_MODE_TO_TYPE","normal","segmented","token","TEXT_TYPE_TO_MODE"],"sources":["../../../src/lexical/utils/nodeFormat.ts"],"sourcesContent":["/* eslint-disable perfectionist/sort-objects */\n/* eslint-disable regexp/no-obscure-range */\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n/* eslint-disable regexp/no-misleading-unicode-character */\n//This copy-and-pasted from lexical here: https://github.com/facebook/lexical/blob/c2ceee223f46543d12c574e62155e619f9a18a5d/packages/lexical/src/LexicalConstants.ts\n\nimport type { ElementFormatType, TextFormatType, TextModeType } from 'lexical'\nexport type TextDetailType = 'directionless' | 'unmergable'\n\n// DOM\nexport const NodeFormat = {\n DOM_ELEMENT_TYPE: 1,\n DOM_TEXT_TYPE: 3,\n // Reconciling\n NO_DIRTY_NODES: 0,\n HAS_DIRTY_NODES: 1,\n FULL_RECONCILE: 2,\n // Text node modes\n IS_NORMAL: 0,\n IS_TOKEN: 1,\n IS_SEGMENTED: 2,\n IS_INERT: 3,\n // Text node formatting\n IS_BOLD: 1,\n IS_ITALIC: 1 << 1,\n IS_STRIKETHROUGH: 1 << 2,\n IS_UNDERLINE: 1 << 3,\n IS_CODE: 1 << 4,\n IS_SUBSCRIPT: 1 << 5,\n IS_SUPERSCRIPT: 1 << 6,\n IS_HIGHLIGHT: 1 << 7,\n // Text node details\n IS_DIRECTIONLESS: 1,\n IS_UNMERGEABLE: 1 << 1,\n // Element node formatting\n IS_ALIGN_LEFT: 1,\n IS_ALIGN_CENTER: 2,\n IS_ALIGN_RIGHT: 3,\n IS_ALIGN_JUSTIFY: 4,\n IS_ALIGN_START: 5,\n IS_ALIGN_END: 6,\n} as const\n\nexport const IS_ALL_FORMATTING =\n NodeFormat.IS_BOLD |\n NodeFormat.IS_ITALIC |\n NodeFormat.IS_STRIKETHROUGH |\n NodeFormat.IS_UNDERLINE |\n NodeFormat.IS_CODE |\n NodeFormat.IS_SUBSCRIPT |\n NodeFormat.IS_SUPERSCRIPT |\n NodeFormat.IS_HIGHLIGHT\n\n// Reconciliation\nexport const NON_BREAKING_SPACE = '\\u00A0'\n\nexport const DOUBLE_LINE_BREAK = '\\n\\n'\n\n// For FF, we need to use a non-breaking space, or it gets composition\n// in a stuck state.\n\nconst RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n// eslint-disable-next-line no-misleading-character-class\nexport const RTL_REGEX = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\n// eslint-disable-next-line no-misleading-character-class\nexport const LTR_REGEX = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nexport const TEXT_TYPE_TO_FORMAT: Record<string | TextFormatType, number> = {\n bold: NodeFormat.IS_BOLD,\n code: NodeFormat.IS_CODE,\n highlight: NodeFormat.IS_HIGHLIGHT,\n italic: NodeFormat.IS_ITALIC,\n strikethrough: NodeFormat.IS_STRIKETHROUGH,\n subscript: NodeFormat.IS_SUBSCRIPT,\n superscript: NodeFormat.IS_SUPERSCRIPT,\n underline: NodeFormat.IS_UNDERLINE,\n}\n\nexport const DETAIL_TYPE_TO_DETAIL: Record<string | TextDetailType, number> = {\n directionless: NodeFormat.IS_DIRECTIONLESS,\n unmergeable: NodeFormat.IS_UNMERGEABLE,\n}\n\nexport const ELEMENT_TYPE_TO_FORMAT: Record<Exclude<ElementFormatType, ''>, number> = {\n center: NodeFormat.IS_ALIGN_CENTER,\n end: NodeFormat.IS_ALIGN_END,\n justify: NodeFormat.IS_ALIGN_JUSTIFY,\n left: NodeFormat.IS_ALIGN_LEFT,\n right: NodeFormat.IS_ALIGN_RIGHT,\n start: NodeFormat.IS_ALIGN_START,\n}\n\nexport const ELEMENT_FORMAT_TO_TYPE: Record<number, ElementFormatType> = {\n [NodeFormat.IS_ALIGN_CENTER]: 'center',\n [NodeFormat.IS_ALIGN_END]: 'end',\n [NodeFormat.IS_ALIGN_JUSTIFY]: 'justify',\n [NodeFormat.IS_ALIGN_LEFT]: 'left',\n [NodeFormat.IS_ALIGN_RIGHT]: 'right',\n [NodeFormat.IS_ALIGN_START]: 'start',\n}\n\nexport const TEXT_MODE_TO_TYPE: Record<TextModeType, 0 | 1 | 2> = {\n normal: NodeFormat.IS_NORMAL,\n segmented: NodeFormat.IS_SEGMENTED,\n token: NodeFormat.IS_TOKEN,\n}\n\nexport const TEXT_TYPE_TO_MODE: Record<number, TextModeType> = {\n [NodeFormat.IS_NORMAL]: 'normal',\n [NodeFormat.IS_SEGMENTED]: 'segmented',\n [NodeFormat.IS_TOKEN]: 'token',\n}\n"],"mappings":"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","ignoreList":[]}
@@ -30,10 +30,10 @@ export declare class Rect {
30
30
  };
31
31
  equals({ bottom, left, right, top }: Rect): boolean;
32
32
  generateNewRect({ bottom, left, right, top, }: {
33
- bottom?: number;
34
- left?: number;
35
- right?: number;
36
- top?: number;
33
+ bottom?: number | undefined;
34
+ left?: number | undefined;
35
+ right?: number | undefined;
36
+ top?: number | undefined;
37
37
  }): Rect;
38
38
  intersectsWith(rect: Rect): boolean;
39
39
  get bottom(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/rect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAW,MAAM,YAAY,CAAA;AAEhD,UAAU,mBAAmB;IAC3B,MAAM,EAAE;QACN,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;gBAEjB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWpE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAKtC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/E,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAMpD,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,mBAAmB;IAE9C,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAqCrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG;QACtC,QAAQ,EAAE,MAAM,CAAA;QAChB,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB;IA2CM,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAMnD,eAAe,CAAC,EACrB,MAAoB,EACpB,IAAgB,EAChB,KAAkB,EAClB,GAAc,GACf;;;;;KAAA,GAAG,IAAI;IAID,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAU1C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;CACF"}
1
+ {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/rect.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAEhD,UAAU,mBAAmB;IAC3B,MAAM,EAAE;QACN,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;gBAEjB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWpE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAKtC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/E,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI;IAMpD,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,mBAAmB;IAE9C,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAqCrD,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG;QACtC,QAAQ,EAAE,MAAM,CAAA;QAChB,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,OAAO,CAAA;QACrB,aAAa,EAAE,OAAO,CAAA;QACtB,WAAW,EAAE,OAAO,CAAA;KACrB;IA2CM,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,OAAO;IAMnD,eAAe,CAAC,EACrB,MAAoB,EACpB,IAAgB,EAChB,KAAkB,EAClB,GAAc,GACf;;;;;KAAA,GAAG,IAAI;IAID,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAU1C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"rect.js","names":["isPoint","Rect","_bottom","_left","_right","_top","constructor","left","top","right","bottom","physicTop","physicBottom","physicLeft","physicRight","fromDOM","dom","height","width","getBoundingClientRect","fromLWTH","fromDOMRect","domRect","fromLTRB","fromPoints","startPoint","endPoint","x","y","contains","target","isOnTopSide","isOnBottomSide","isOnLeftSide","isOnRightSide","result","reason","distanceFromPoint","point","containsResult","distance","dx","dy","Math","sqrt","equals","generateNewRect","intersectsWith","rect","h1","x1","y1","w1","h2","x2","y2","w2","maxX","maxY","minX","minY","abs"],"sources":["../../../src/lexical/utils/rect.ts"],"sourcesContent":["'use client'\nimport { type Point, isPoint } from './point.js'\n\ninterface ContainsPointReturn {\n reason: {\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n }\n result: boolean\n}\n\nexport class Rect {\n private readonly _bottom: number\n\n private readonly _left: number\n\n private readonly _right: number\n\n private readonly _top: 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 static fromDOM(dom: HTMLElement): Rect {\n const { height, left, top, width } = dom.getBoundingClientRect()\n return Rect.fromLWTH(left, width, top, height)\n }\n\n static fromDOMRect(domRect: DOMRect): Rect {\n const { height, left, top, width } = domRect\n return Rect.fromLWTH(left, width, top, height)\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 { x: left, y: top } = startPoint\n const { x: right, y: bottom } = endPoint\n return Rect.fromLTRB(left, top, right, bottom)\n }\n\n public contains({ x, y }: Point): ContainsPointReturn\n\n public contains({ bottom, left, right, top }: Rect): boolean\n\n public contains(target: Point | Rect): ContainsPointReturn | boolean {\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 }\n const { bottom, left, right, top } = 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 public distanceFromPoint(point: Point): {\n distance: number\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n } {\n const containsResult = this.contains(point)\n if (containsResult.result) {\n return {\n distance: 0,\n isOnBottomSide: containsResult.reason.isOnBottomSide,\n isOnLeftSide: containsResult.reason.isOnLeftSide,\n isOnRightSide: containsResult.reason.isOnRightSide,\n isOnTopSide: containsResult.reason.isOnTopSide,\n }\n }\n\n let dx = 0 // Horizontal distance to the closest edge\n let dy = 0 // Vertical distance to the closest edge\n\n // If the point is to the left of the rectangle\n if (point.x < this._left) {\n dx = this._left - point.x\n }\n // If the point is to the right of the rectangle\n else if (point.x > this._right) {\n dx = point.x - this._right\n }\n\n // If the point is above the rectangle\n if (point.y < this._top) {\n dy = this._top - point.y\n }\n // If the point is below the rectangle\n else if (point.y > this._bottom) {\n dy = point.y - this._bottom\n }\n\n // Use the Pythagorean theorem to calculate the distance\n return {\n distance: Math.sqrt(dx * dx + dy * dy),\n isOnBottomSide: point.y > this._bottom,\n isOnLeftSide: point.x < this._left,\n isOnRightSide: point.x > this._right,\n isOnTopSide: point.y < this._top,\n }\n }\n\n public equals({ bottom, left, right, top }: Rect): boolean {\n return (\n top === this._top && bottom === this._bottom && left === this._left && right === this._right\n )\n }\n\n public generateNewRect({\n bottom = this.bottom,\n left = this.left,\n right = this.right,\n top = this.top,\n }): Rect {\n return new Rect(left, top, right, bottom)\n }\n\n public intersectsWith(rect: Rect): boolean {\n const { height: h1, left: x1, top: y1, width: w1 } = rect\n const { height: h2, left: x2, top: y2, width: w2 } = 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 get bottom(): number {\n return this._bottom\n }\n\n get height(): number {\n return Math.abs(this._bottom - this._top)\n }\n\n get left(): number {\n return this._left\n }\n\n get right(): number {\n return this._right\n }\n\n get top(): number {\n return this._top\n }\n\n get width(): number {\n return Math.abs(this._left - this._right)\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"rect.js","names":["isPoint","Rect","_bottom","_left","_right","_top","constructor","left","top","right","bottom","physicTop","physicBottom","physicLeft","physicRight","fromDOM","dom","height","width","getBoundingClientRect","fromLWTH","fromDOMRect","domRect","fromLTRB","fromPoints","startPoint","endPoint","x","y","contains","target","isOnTopSide","isOnBottomSide","isOnLeftSide","isOnRightSide","result","reason","distanceFromPoint","point","containsResult","distance","dx","dy","Math","sqrt","equals","generateNewRect","intersectsWith","rect","h1","x1","y1","w1","h2","x2","y2","w2","maxX","maxY","minX","minY","abs"],"sources":["../../../src/lexical/utils/rect.ts"],"sourcesContent":["'use client'\nimport { isPoint, type Point } from './point.js'\n\ninterface ContainsPointReturn {\n reason: {\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n }\n result: boolean\n}\n\nexport class Rect {\n private readonly _bottom: number\n\n private readonly _left: number\n\n private readonly _right: number\n\n private readonly _top: 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 static fromDOM(dom: HTMLElement): Rect {\n const { height, left, top, width } = dom.getBoundingClientRect()\n return Rect.fromLWTH(left, width, top, height)\n }\n\n static fromDOMRect(domRect: DOMRect): Rect {\n const { height, left, top, width } = domRect\n return Rect.fromLWTH(left, width, top, height)\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 { x: left, y: top } = startPoint\n const { x: right, y: bottom } = endPoint\n return Rect.fromLTRB(left, top, right, bottom)\n }\n\n public contains({ x, y }: Point): ContainsPointReturn\n\n public contains({ bottom, left, right, top }: Rect): boolean\n\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 }\n const { bottom, left, right, top } = 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 public distanceFromPoint(point: Point): {\n distance: number\n isOnBottomSide: boolean\n isOnLeftSide: boolean\n isOnRightSide: boolean\n isOnTopSide: boolean\n } {\n const containsResult = this.contains(point)\n if (containsResult.result) {\n return {\n distance: 0,\n isOnBottomSide: containsResult.reason.isOnBottomSide,\n isOnLeftSide: containsResult.reason.isOnLeftSide,\n isOnRightSide: containsResult.reason.isOnRightSide,\n isOnTopSide: containsResult.reason.isOnTopSide,\n }\n }\n\n let dx = 0 // Horizontal distance to the closest edge\n let dy = 0 // Vertical distance to the closest edge\n\n // If the point is to the left of the rectangle\n if (point.x < this._left) {\n dx = this._left - point.x\n }\n // If the point is to the right of the rectangle\n else if (point.x > this._right) {\n dx = point.x - this._right\n }\n\n // If the point is above the rectangle\n if (point.y < this._top) {\n dy = this._top - point.y\n }\n // If the point is below the rectangle\n else if (point.y > this._bottom) {\n dy = point.y - this._bottom\n }\n\n // Use the Pythagorean theorem to calculate the distance\n return {\n distance: Math.sqrt(dx * dx + dy * dy),\n isOnBottomSide: point.y > this._bottom,\n isOnLeftSide: point.x < this._left,\n isOnRightSide: point.x > this._right,\n isOnTopSide: point.y < this._top,\n }\n }\n\n public equals({ bottom, left, right, top }: Rect): boolean {\n return (\n top === this._top && bottom === this._bottom && left === this._left && right === this._right\n )\n }\n\n public generateNewRect({\n bottom = this.bottom,\n left = this.left,\n right = this.right,\n top = this.top,\n }): Rect {\n return new Rect(left, top, right, bottom)\n }\n\n public intersectsWith(rect: Rect): boolean {\n const { height: h1, left: x1, top: y1, width: w1 } = rect\n const { height: h2, left: x2, top: y2, width: w2 } = 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 get bottom(): number {\n return this._bottom\n }\n\n get height(): number {\n return Math.abs(this._bottom - this._top)\n }\n\n get left(): number {\n return this._left\n }\n\n get right(): number {\n return this._right\n }\n\n get top(): number {\n return this._top\n }\n\n get width(): number {\n return Math.abs(this._left - this._right)\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,5 +8,5 @@ export declare function setFloatingElemPosition(args: {
8
8
  specialHandlingForCaret?: boolean;
9
9
  targetRect: ClientRect | null;
10
10
  verticalGap?: number;
11
- }): number;
11
+ }): number | undefined;
12
12
  //# sourceMappingURL=setFloatingElemPosition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setFloatingElemPosition.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/setFloatingElemPosition.ts"],"names":[],"mappings":"AAQA,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,UAAU,EAAE,WAAW,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,YAAY,EAAE,WAAW,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,CAqET"}
1
+ {"version":3,"file":"setFloatingElemPosition.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/setFloatingElemPosition.ts"],"names":[],"mappings":"AAQA,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,UAAU,EAAE,WAAW,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,YAAY,EAAE,WAAW,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,GAAG,SAAS,CAqErB"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  const VERTICAL_GAP = 10;
4
- const HORIZONTAL_OFFSET = 5;
4
+ const HORIZONTAL_OFFSET = 32;
5
5
  // TODO: needs refactoring
6
6
  // This is supposed to position the floatingElem based on the parent (anchorElem) and the target (targetRect) which is usually the selected text.
7
7
  // So basically, it positions the floatingElem either below or above the target (targetRect) and aligns it to the left or center of the target (targetRect).
@@ -1 +1 @@
1
- {"version":3,"file":"setFloatingElemPosition.js","names":["VERTICAL_GAP","HORIZONTAL_OFFSET","setFloatingElemPosition","args","alwaysDisplayOnTop","anchorElem","anchorFlippedOffset","floatingElem","horizontalOffset","horizontalPosition","specialHandlingForCaret","targetRect","verticalGap","scrollerElem","parentElement","style","opacity","transform","floatingElemRect","getBoundingClientRect","anchorElementRect","editorScrollerRect","top","height","left","width","addedToTop","right","bottom"],"sources":["../../../src/lexical/utils/setFloatingElemPosition.ts"],"sourcesContent":["'use client'\nconst VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 5\n\n// TODO: needs refactoring\n// This is supposed to position the floatingElem based on the parent (anchorElem) and the target (targetRect) which is usually the selected text.\n// So basically, it positions the floatingElem either below or above the target (targetRect) and aligns it to the left or center of the target (targetRect).\n// This is used for positioning the floating toolbar (anchor: richtext editor) and its caret (anchor: floating toolbar)\nexport function setFloatingElemPosition(args: {\n alwaysDisplayOnTop?: boolean\n anchorElem: HTMLElement\n anchorFlippedOffset?: number // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem: HTMLElement\n horizontalOffset?: number\n horizontalPosition?: 'center' | 'left'\n specialHandlingForCaret?: boolean\n targetRect: ClientRect | null\n verticalGap?: number\n}): number {\n const {\n alwaysDisplayOnTop = false,\n anchorElem,\n anchorFlippedOffset = 0, // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem,\n horizontalOffset = HORIZONTAL_OFFSET,\n horizontalPosition = 'left',\n specialHandlingForCaret = false,\n targetRect,\n verticalGap = VERTICAL_GAP,\n } = args\n // Returns the top offset if the target was flipped\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - floatingElemRect.height - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (horizontalPosition === 'center') {\n // Calculate left to position floatingElem to the horizontal middle of targetRect\n left = targetRect.left + targetRect.width / 2 - floatingElemRect.width / 2\n }\n\n let addedToTop = 0\n if (!alwaysDisplayOnTop && top < editorScrollerRect.top && !specialHandlingForCaret) {\n addedToTop = floatingElemRect.height + targetRect.height + verticalGap * 2\n\n top += addedToTop\n }\n\n if (horizontalPosition === 'center') {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n } else if (left < editorScrollerRect.left) {\n left = editorScrollerRect.left + horizontalOffset\n }\n } else {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n }\n\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n\n if (specialHandlingForCaret && anchorFlippedOffset !== 0) {\n // Floating select toolbar was flipped (positioned below text rather than above). Thus, the caret now needs to be positioned\n // on the other side and rotated.\n top -= anchorElementRect.bottom - anchorFlippedOffset + floatingElemRect.height - 3\n // top += anchorFlippedOffset - anchorElementRect.height - floatingElemRect.height + 2\n floatingElem.style.transform = `translate(${left}px, ${top}px) rotate(180deg)`\n } else {\n top -= anchorElementRect.top\n\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n }\n\n return addedToTop\n}\n"],"mappings":"AAAA;;AACA,MAAMA,YAAA,GAAe;AACrB,MAAMC,iBAAA,GAAoB;AAE1B;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBC,IAUvC;EACC,MAAM;IACJC,kBAAA,GAAqB,KAAK;IAC1BC,UAAU;IACVC,mBAAA,GAAsB,CAAC;IACvBC,YAAY;IACZC,gBAAA,GAAmBP,iBAAiB;IACpCQ,kBAAA,GAAqB,MAAM;IAC3BC,uBAAA,GAA0B,KAAK;IAC/BC,UAAU;IACVC,WAAA,GAAcZ;EAAY,CAC3B,GAAGG,IAAA;EACJ;EACA,MAAMU,YAAA,GAAeR,UAAA,CAAWS,aAAa;EAE7C,IAAIH,UAAA,KAAe,QAAQE,YAAA,IAAgB,MAAM;IAC/CN,YAAA,CAAaQ,KAAK,CAACC,OAAO,GAAG;IAC7BT,YAAA,CAAaQ,KAAK,CAACE,SAAS,GAAG;IAC/B;EACF;EAEA,MAAMC,gBAAA,GAAmBX,YAAA,CAAaY,qBAAqB;EAC3D,MAAMC,iBAAA,GAAoBf,UAAA,CAAWc,qBAAqB;EAC1D,MAAME,kBAAA,GAAqBR,YAAA,CAAaM,qBAAqB;EAE7D,IAAIG,GAAA,GAAMX,UAAA,CAAWW,GAAG,GAAGJ,gBAAA,CAAiBK,MAAM,GAAGX,WAAA;EACrD,IAAIY,IAAA,GAAOb,UAAA,CAAWa,IAAI,GAAGhB,gBAAA;EAE7B,IAAIC,kBAAA,KAAuB,UAAU;IACnC;IACAe,IAAA,GAAOb,UAAA,CAAWa,IAAI,GAAGb,UAAA,CAAWc,KAAK,GAAG,IAAIP,gBAAA,CAAiBO,KAAK,GAAG;EAC3E;EAEA,IAAIC,UAAA,GAAa;EACjB,IAAI,CAACtB,kBAAA,IAAsBkB,GAAA,GAAMD,kBAAA,CAAmBC,GAAG,IAAI,CAACZ,uBAAA,EAAyB;IACnFgB,UAAA,GAAaR,gBAAA,CAAiBK,MAAM,GAAGZ,UAAA,CAAWY,MAAM,GAAGX,WAAA,GAAc;IAEzEU,GAAA,IAAOI,UAAA;EACT;EAEA,IAAIjB,kBAAA,KAAuB,UAAU;IACnC,IAAIe,IAAA,GAAON,gBAAA,CAAiBO,KAAK,GAAGJ,kBAAA,CAAmBM,KAAK,EAAE;MAC5DH,IAAA,GAAOH,kBAAA,CAAmBM,KAAK,GAAGT,gBAAA,CAAiBO,KAAK,GAAGjB,gBAAA;IAC7D,OAAO,IAAIgB,IAAA,GAAOH,kBAAA,CAAmBG,IAAI,EAAE;MACzCA,IAAA,GAAOH,kBAAA,CAAmBG,IAAI,GAAGhB,gBAAA;IACnC;EACF,OAAO;IACL,IAAIgB,IAAA,GAAON,gBAAA,CAAiBO,KAAK,GAAGJ,kBAAA,CAAmBM,KAAK,EAAE;MAC5DH,IAAA,GAAOH,kBAAA,CAAmBM,KAAK,GAAGT,gBAAA,CAAiBO,KAAK,GAAGjB,gBAAA;IAC7D;EACF;EAEAgB,IAAA,IAAQJ,iBAAA,CAAkBI,IAAI;EAE9BjB,YAAA,CAAaQ,KAAK,CAACC,OAAO,GAAG;EAE7B,IAAIN,uBAAA,IAA2BJ,mBAAA,KAAwB,GAAG;IACxD;IACA;IACAgB,GAAA,IAAOF,iBAAA,CAAkBQ,MAAM,GAAGtB,mBAAA,GAAsBY,gBAAA,CAAiBK,MAAM,GAAG;IAClF;IACAhB,YAAA,CAAaQ,KAAK,CAACE,SAAS,GAAG,aAAaO,IAAA,OAAWF,GAAA,oBAAuB;EAChF,OAAO;IACLA,GAAA,IAAOF,iBAAA,CAAkBE,GAAG;IAE5Bf,YAAA,CAAaQ,KAAK,CAACE,SAAS,GAAG,aAAaO,IAAA,OAAWF,GAAA,KAAQ;EACjE;EAEA,OAAOI,UAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"setFloatingElemPosition.js","names":["VERTICAL_GAP","HORIZONTAL_OFFSET","setFloatingElemPosition","args","alwaysDisplayOnTop","anchorElem","anchorFlippedOffset","floatingElem","horizontalOffset","horizontalPosition","specialHandlingForCaret","targetRect","verticalGap","scrollerElem","parentElement","style","opacity","transform","floatingElemRect","getBoundingClientRect","anchorElementRect","editorScrollerRect","top","height","left","width","addedToTop","right","bottom"],"sources":["../../../src/lexical/utils/setFloatingElemPosition.ts"],"sourcesContent":["'use client'\nconst VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 32\n\n// TODO: needs refactoring\n// This is supposed to position the floatingElem based on the parent (anchorElem) and the target (targetRect) which is usually the selected text.\n// So basically, it positions the floatingElem either below or above the target (targetRect) and aligns it to the left or center of the target (targetRect).\n// This is used for positioning the floating toolbar (anchor: richtext editor) and its caret (anchor: floating toolbar)\nexport function setFloatingElemPosition(args: {\n alwaysDisplayOnTop?: boolean\n anchorElem: HTMLElement\n anchorFlippedOffset?: number // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem: HTMLElement\n horizontalOffset?: number\n horizontalPosition?: 'center' | 'left'\n specialHandlingForCaret?: boolean\n targetRect: ClientRect | null\n verticalGap?: number\n}): number | undefined {\n const {\n alwaysDisplayOnTop = false,\n anchorElem,\n anchorFlippedOffset = 0, // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem,\n horizontalOffset = HORIZONTAL_OFFSET,\n horizontalPosition = 'left',\n specialHandlingForCaret = false,\n targetRect,\n verticalGap = VERTICAL_GAP,\n } = args\n // Returns the top offset if the target was flipped\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - floatingElemRect.height - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (horizontalPosition === 'center') {\n // Calculate left to position floatingElem to the horizontal middle of targetRect\n left = targetRect.left + targetRect.width / 2 - floatingElemRect.width / 2\n }\n\n let addedToTop = 0\n if (!alwaysDisplayOnTop && top < editorScrollerRect.top && !specialHandlingForCaret) {\n addedToTop = floatingElemRect.height + targetRect.height + verticalGap * 2\n\n top += addedToTop\n }\n\n if (horizontalPosition === 'center') {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n } else if (left < editorScrollerRect.left) {\n left = editorScrollerRect.left + horizontalOffset\n }\n } else {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n }\n\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n\n if (specialHandlingForCaret && anchorFlippedOffset !== 0) {\n // Floating select toolbar was flipped (positioned below text rather than above). Thus, the caret now needs to be positioned\n // on the other side and rotated.\n top -= anchorElementRect.bottom - anchorFlippedOffset + floatingElemRect.height - 3\n // top += anchorFlippedOffset - anchorElementRect.height - floatingElemRect.height + 2\n floatingElem.style.transform = `translate(${left}px, ${top}px) rotate(180deg)`\n } else {\n top -= anchorElementRect.top\n\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n }\n\n return addedToTop\n}\n"],"mappings":"AAAA;;AACA,MAAMA,YAAA,GAAe;AACrB,MAAMC,iBAAA,GAAoB;AAE1B;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBC,IAUvC;EACC,MAAM;IACJC,kBAAA,GAAqB,KAAK;IAC1BC,UAAU;IACVC,mBAAA,GAAsB,CAAC;IACvBC,YAAY;IACZC,gBAAA,GAAmBP,iBAAiB;IACpCQ,kBAAA,GAAqB,MAAM;IAC3BC,uBAAA,GAA0B,KAAK;IAC/BC,UAAU;IACVC,WAAA,GAAcZ;EAAY,CAC3B,GAAGG,IAAA;EACJ;EACA,MAAMU,YAAA,GAAeR,UAAA,CAAWS,aAAa;EAE7C,IAAIH,UAAA,KAAe,QAAQE,YAAA,IAAgB,MAAM;IAC/CN,YAAA,CAAaQ,KAAK,CAACC,OAAO,GAAG;IAC7BT,YAAA,CAAaQ,KAAK,CAACE,SAAS,GAAG;IAC/B;EACF;EAEA,MAAMC,gBAAA,GAAmBX,YAAA,CAAaY,qBAAqB;EAC3D,MAAMC,iBAAA,GAAoBf,UAAA,CAAWc,qBAAqB;EAC1D,MAAME,kBAAA,GAAqBR,YAAA,CAAaM,qBAAqB;EAE7D,IAAIG,GAAA,GAAMX,UAAA,CAAWW,GAAG,GAAGJ,gBAAA,CAAiBK,MAAM,GAAGX,WAAA;EACrD,IAAIY,IAAA,GAAOb,UAAA,CAAWa,IAAI,GAAGhB,gBAAA;EAE7B,IAAIC,kBAAA,KAAuB,UAAU;IACnC;IACAe,IAAA,GAAOb,UAAA,CAAWa,IAAI,GAAGb,UAAA,CAAWc,KAAK,GAAG,IAAIP,gBAAA,CAAiBO,KAAK,GAAG;EAC3E;EAEA,IAAIC,UAAA,GAAa;EACjB,IAAI,CAACtB,kBAAA,IAAsBkB,GAAA,GAAMD,kBAAA,CAAmBC,GAAG,IAAI,CAACZ,uBAAA,EAAyB;IACnFgB,UAAA,GAAaR,gBAAA,CAAiBK,MAAM,GAAGZ,UAAA,CAAWY,MAAM,GAAGX,WAAA,GAAc;IAEzEU,GAAA,IAAOI,UAAA;EACT;EAEA,IAAIjB,kBAAA,KAAuB,UAAU;IACnC,IAAIe,IAAA,GAAON,gBAAA,CAAiBO,KAAK,GAAGJ,kBAAA,CAAmBM,KAAK,EAAE;MAC5DH,IAAA,GAAOH,kBAAA,CAAmBM,KAAK,GAAGT,gBAAA,CAAiBO,KAAK,GAAGjB,gBAAA;IAC7D,OAAO,IAAIgB,IAAA,GAAOH,kBAAA,CAAmBG,IAAI,EAAE;MACzCA,IAAA,GAAOH,kBAAA,CAAmBG,IAAI,GAAGhB,gBAAA;IACnC;EACF,OAAO;IACL,IAAIgB,IAAA,GAAON,gBAAA,CAAiBO,KAAK,GAAGJ,kBAAA,CAAmBM,KAAK,EAAE;MAC5DH,IAAA,GAAOH,kBAAA,CAAmBM,KAAK,GAAGT,gBAAA,CAAiBO,KAAK,GAAGjB,gBAAA;IAC7D;EACF;EAEAgB,IAAA,IAAQJ,iBAAA,CAAkBI,IAAI;EAE9BjB,YAAA,CAAaQ,KAAK,CAACC,OAAO,GAAG;EAE7B,IAAIN,uBAAA,IAA2BJ,mBAAA,KAAwB,GAAG;IACxD;IACA;IACAgB,GAAA,IAAOF,iBAAA,CAAkBQ,MAAM,GAAGtB,mBAAA,GAAsBY,gBAAA,CAAiBK,MAAM,GAAG;IAClF;IACAhB,YAAA,CAAaQ,KAAK,CAACE,SAAS,GAAG,aAAaO,IAAA,OAAWF,GAAA,oBAAuB;EAChF,OAAO;IACLA,GAAA,IAAOF,iBAAA,CAAkBE,GAAG;IAE5Bf,YAAA,CAAaQ,KAAK,CAACE,SAAS,GAAG,aAAaO,IAAA,OAAWF,GAAA,KAAQ;EACjE;EAEA,OAAOI,UAAA;AACT","ignoreList":[]}
@@ -1,3 +1,8 @@
1
1
  export declare function sanitizeUrl(url: string): string;
2
+ /**
3
+ * Prevents unreasonable URLs from being inserted into the editor.
4
+ * @param url
5
+ */
6
+ export declare function validateUrlMinimal(url: string): boolean;
2
7
  export declare function validateUrl(url: string): boolean;
3
8
  //# sourceMappingURL=url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/url.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa/C;AAgBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAuBhD"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/lexical/utils/url.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAe/C;AAcD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvD;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA+BhD"}
@@ -3,7 +3,9 @@ export function sanitizeUrl(url) {
3
3
  /** A pattern that matches safe data URLs. */
4
4
  const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z\d+/]+=*$/i;
5
5
  url = String(url).trim();
6
- if (url.match(SAFE_URL_PATTERN) != null || url.match(DATA_URL_PATTERN) != null) return url;
6
+ if (url.match(SAFE_URL_PATTERN) != null || url.match(DATA_URL_PATTERN) != null) {
7
+ return url;
8
+ }
7
9
  return 'https://';
8
10
  }
9
11
  // Source: https://stackoverflow.com/a/8234912/2013580
@@ -15,17 +17,35 @@ const absoluteRegExp = /(?:[A-Za-z]{3,9}:(?:\/\/)?(?:[-;:&=+$,\w]+@)?[A-Za-z\d.-
15
17
  * - #primary-terms
16
18
  * */
17
19
  const relativeOrAnchorRegExp = /^[\w\-./]*(?:#\w[\w-]*)?$/;
20
+ /**
21
+ * Prevents unreasonable URLs from being inserted into the editor.
22
+ * @param url
23
+ */
24
+ export function validateUrlMinimal(url) {
25
+ if (!url) {
26
+ return false;
27
+ }
28
+ return !url.includes(' ');
29
+ }
18
30
  // Do not keep validateUrl function too loose. This is run when pasting in text, to determine if links are in that text and if it should create AutoLinkNodes.
19
31
  // This is why we do not allow stuff like anchors here, as we don't want copied anchors to be turned into AutoLinkNodes.
20
32
  export function validateUrl(url) {
21
33
  // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.
22
34
  // Maybe show a dialog where they user can type the URL before inserting it.
23
- if (!url) return false;
24
- if (url === 'https://') return true;
35
+ if (!url) {
36
+ return false;
37
+ }
38
+ if (url === 'https://') {
39
+ return true;
40
+ }
25
41
  // This makes sure URLs starting with www. instead of https are valid too
26
- if (absoluteRegExp.test(url)) return true;
42
+ if (absoluteRegExp.test(url)) {
43
+ return true;
44
+ }
27
45
  // Check relative or anchor links
28
- if (relativeOrAnchorRegExp.test(url)) return true;
46
+ if (relativeOrAnchorRegExp.test(url)) {
47
+ return true;
48
+ }
29
49
  // While this doesn't allow URLs starting with www (which is why we use the regex above), it does properly handle tel: URLs
30
50
  try {
31
51
  new URL(url);
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","names":["sanitizeUrl","url","SAFE_URL_PATTERN","DATA_URL_PATTERN","String","trim","match","absoluteRegExp","relativeOrAnchorRegExp","validateUrl","test","URL"],"sources":["../../../src/lexical/utils/url.ts"],"sourcesContent":["export function 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-z\\d+/]+=*$/i\n\n url = String(url).trim()\n\n if (url.match(SAFE_URL_PATTERN) != null || url.match(DATA_URL_PATTERN) != null) return url\n\n return 'https://'\n}\n\n// Source: https://stackoverflow.com/a/8234912/2013580\nconst absoluteRegExp =\n /(?:[A-Za-z]{3,9}:(?:\\/\\/)?(?:[-;:&=+$,\\w]+@)?[A-Za-z\\d.-]+|(?:www.|[-;:&=+$,\\w]+@)[A-Za-z\\d.-]+)(?:\\/[+~%/.\\w-]*)?\\??[-+=&;%@.\\w]*#?\\w*/\n\n/**\n * This regex checks for relative URLs starting with / or anchor links starting with # in a string. Tested for the following use cases:\n * - /privacy-policy\n * - /privacy-policy#primary-terms\n * - #primary-terms\n * */\nconst relativeOrAnchorRegExp = /^[\\w\\-./]*(?:#\\w[\\w-]*)?$/\n\n// Do not keep validateUrl function too loose. This is run when pasting in text, to determine if links are in that text and if it should create AutoLinkNodes.\n// This is why we do not allow stuff like anchors here, as we don't want copied anchors to be turned into AutoLinkNodes.\nexport function validateUrl(url: string): boolean {\n // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.\n // Maybe show a dialog where they user can type the URL before inserting it.\n\n if (!url) return false\n\n if (url === 'https://') return true\n\n // This makes sure URLs starting with www. instead of https are valid too\n if (absoluteRegExp.test(url)) return true\n\n // Check relative or anchor links\n if (relativeOrAnchorRegExp.test(url)) return true\n\n // While this doesn't allow URLs starting with www (which is why we use the regex above), it does properly handle tel: URLs\n try {\n new URL(url)\n return true\n } catch {\n /* empty */\n }\n\n return false\n}\n"],"mappings":"AAAA,OAAO,SAASA,YAAYC,GAAW;EACrC,yCACA,MAAMC,gBAAA,GAAmB;EAEzB;EACA,MAAMC,gBAAA,GACJ;EAEFF,GAAA,GAAMG,MAAA,CAAOH,GAAA,EAAKI,IAAI;EAEtB,IAAIJ,GAAA,CAAIK,KAAK,CAACJ,gBAAA,KAAqB,QAAQD,GAAA,CAAIK,KAAK,CAACH,gBAAA,KAAqB,MAAM,OAAOF,GAAA;EAEvF,OAAO;AACT;AAEA;AACA,MAAMM,cAAA,GACJ;AAEF;;;;;;AAMA,MAAMC,sBAAA,GAAyB;AAE/B;AACA;AACA,OAAO,SAASC,YAAYR,GAAW;EACrC;EACA;EAEA,IAAI,CAACA,GAAA,EAAK,OAAO;EAEjB,IAAIA,GAAA,KAAQ,YAAY,OAAO;EAE/B;EACA,IAAIM,cAAA,CAAeG,IAAI,CAACT,GAAA,GAAM,OAAO;EAErC;EACA,IAAIO,sBAAA,CAAuBE,IAAI,CAACT,GAAA,GAAM,OAAO;EAE7C;EACA,IAAI;IACF,IAAIU,GAAA,CAAIV,GAAA;IACR,OAAO;EACT,EAAE,MAAM;IACN;EAGF,OAAO;AACT","ignoreList":[]}
1
+ {"version":3,"file":"url.js","names":["sanitizeUrl","url","SAFE_URL_PATTERN","DATA_URL_PATTERN","String","trim","match","absoluteRegExp","relativeOrAnchorRegExp","validateUrlMinimal","includes","validateUrl","test","URL"],"sources":["../../../src/lexical/utils/url.ts"],"sourcesContent":["export function 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-z\\d+/]+=*$/i\n\n url = String(url).trim()\n\n if (url.match(SAFE_URL_PATTERN) != null || url.match(DATA_URL_PATTERN) != null) {\n return url\n }\n\n return 'https://'\n}\n\n// Source: https://stackoverflow.com/a/8234912/2013580\nconst absoluteRegExp =\n /(?:[A-Za-z]{3,9}:(?:\\/\\/)?(?:[-;:&=+$,\\w]+@)?[A-Za-z\\d.-]+|(?:www.|[-;:&=+$,\\w]+@)[A-Za-z\\d.-]+)(?:\\/[+~%/.\\w-]*)?\\??[-+=&;%@.\\w]*#?\\w*/\n\n/**\n * This regex checks for relative URLs starting with / or anchor links starting with # in a string. Tested for the following use cases:\n * - /privacy-policy\n * - /privacy-policy#primary-terms\n * - #primary-terms\n * */\nconst relativeOrAnchorRegExp = /^[\\w\\-./]*(?:#\\w[\\w-]*)?$/\n\n/**\n * Prevents unreasonable URLs from being inserted into the editor.\n * @param url\n */\nexport function validateUrlMinimal(url: string): boolean {\n if (!url) {\n return false\n }\n\n return !url.includes(' ')\n}\n\n// Do not keep validateUrl function too loose. This is run when pasting in text, to determine if links are in that text and if it should create AutoLinkNodes.\n// This is why we do not allow stuff like anchors here, as we don't want copied anchors to be turned into AutoLinkNodes.\nexport function validateUrl(url: string): boolean {\n // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.\n // Maybe show a dialog where they user can type the URL before inserting it.\n\n if (!url) {\n return false\n }\n\n if (url === 'https://') {\n return true\n }\n\n // This makes sure URLs starting with www. instead of https are valid too\n if (absoluteRegExp.test(url)) {\n return true\n }\n\n // Check relative or anchor links\n if (relativeOrAnchorRegExp.test(url)) {\n return true\n }\n\n // While this doesn't allow URLs starting with www (which is why we use the regex above), it does properly handle tel: URLs\n try {\n new URL(url)\n return true\n } catch {\n /* empty */\n }\n\n return false\n}\n"],"mappings":"AAAA,OAAO,SAASA,YAAYC,GAAW;EACrC,yCACA,MAAMC,gBAAA,GAAmB;EAEzB;EACA,MAAMC,gBAAA,GACJ;EAEFF,GAAA,GAAMG,MAAA,CAAOH,GAAA,EAAKI,IAAI;EAEtB,IAAIJ,GAAA,CAAIK,KAAK,CAACJ,gBAAA,KAAqB,QAAQD,GAAA,CAAIK,KAAK,CAACH,gBAAA,KAAqB,MAAM;IAC9E,OAAOF,GAAA;EACT;EAEA,OAAO;AACT;AAEA;AACA,MAAMM,cAAA,GACJ;AAEF;;;;;;AAMA,MAAMC,sBAAA,GAAyB;AAE/B;;;;AAIA,OAAO,SAASC,mBAAmBR,GAAW;EAC5C,IAAI,CAACA,GAAA,EAAK;IACR,OAAO;EACT;EAEA,OAAO,CAACA,GAAA,CAAIS,QAAQ,CAAC;AACvB;AAEA;AACA;AACA,OAAO,SAASC,YAAYV,GAAW;EACrC;EACA;EAEA,IAAI,CAACA,GAAA,EAAK;IACR,OAAO;EACT;EAEA,IAAIA,GAAA,KAAQ,YAAY;IACtB,OAAO;EACT;EAEA;EACA,IAAIM,cAAA,CAAeK,IAAI,CAACX,GAAA,GAAM;IAC5B,OAAO;EACT;EAEA;EACA,IAAIO,sBAAA,CAAuBI,IAAI,CAACX,GAAA,GAAM;IACpC,OAAO;EACT;EAEA;EACA,IAAI;IACF,IAAIY,GAAA,CAAIZ,GAAA;IACR,OAAO;EACT,EAAE,MAAM;IACN;EAGF,OAAO;AACT","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { PayloadRequest } from 'payload';
1
+ import type { PayloadRequest, SelectType } from 'payload';
2
2
  type Arguments = {
3
3
  currentDepth?: number;
4
4
  data: unknown;
@@ -7,9 +7,10 @@ type Arguments = {
7
7
  key: number | string;
8
8
  overrideAccess: boolean;
9
9
  req: PayloadRequest;
10
+ select?: SelectType;
10
11
  showHiddenFields: boolean;
11
12
  };
12
- export declare const populate: ({ id, collectionSlug, currentDepth, data, depth, draft, key, overrideAccess, req, showHiddenFields, }: {
13
+ export declare const populate: ({ id, collectionSlug, currentDepth, data, depth, draft, key, overrideAccess, req, select, showHiddenFields, }: {
13
14
  collectionSlug: string;
14
15
  id: number | string;
15
16
  } & Arguments) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../src/populateGraphQL/populate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,KAAK,SAAS,GAAG;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,QAAQ,0GAWlB;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,GAAG,SAAS,KAAG,OAAO,CAAC,IAAI,CA6B3B,CAAA"}
1
+ {"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../src/populateGraphQL/populate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzD,KAAK,SAAS,GAAG;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,QAAQ,kHAYlB;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,GAAG,SAAS,KAAG,OAAO,CAAC,IAAI,CA8B3B,CAAA"}
@@ -9,6 +9,7 @@ export const populate = async ({
9
9
  key,
10
10
  overrideAccess,
11
11
  req,
12
+ select,
12
13
  showHiddenFields
13
14
  }) => {
14
15
  const shouldPopulate = depth && currentDepth <= depth;
@@ -17,7 +18,7 @@ export const populate = async ({
17
18
  return;
18
19
  }
19
20
  const dataRef = data;
20
- const doc = await req.payloadDataLoader.load(createDataloaderCacheKey({
21
+ const doc = await req.payloadDataLoader?.load(createDataloaderCacheKey({
21
22
  collectionSlug,
22
23
  currentDepth: currentDepth + 1,
23
24
  depth,
@@ -26,6 +27,7 @@ export const populate = async ({
26
27
  fallbackLocale: req.fallbackLocale,
27
28
  locale: req.locale,
28
29
  overrideAccess,
30
+ select,
29
31
  showHiddenFields,
30
32
  transactionID: req.transactionID
31
33
  }));