@payloadcms/richtext-lexical 4.0.0-internal.cd69eef → 4.0.0-internal.d1cc1d3

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 (226) hide show
  1. package/dist/exports/client/{Field-QGSHF22S.js → Field-IZKDIUJY.js} +2 -2
  2. package/dist/exports/client/bundled.css +1 -1
  3. package/dist/exports/client/chunk-43E5QYAA.js +2 -0
  4. package/dist/exports/client/chunk-43E5QYAA.js.map +7 -0
  5. package/dist/exports/client/chunk-SSMQFWCQ.js +2 -0
  6. package/dist/exports/client/chunk-SSMQFWCQ.js.map +7 -0
  7. package/dist/exports/client/component-D5QLYS7W.js +2 -0
  8. package/dist/exports/client/component-D5QLYS7W.js.map +7 -0
  9. package/dist/exports/client/index.d.ts +1 -1
  10. package/dist/exports/client/index.d.ts.map +1 -1
  11. package/dist/exports/client/index.js +21 -21
  12. package/dist/exports/client/index.js.map +4 -4
  13. package/dist/features/blocks/server/index.js +2 -2
  14. package/dist/features/blocks/server/index.js.map +1 -1
  15. package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
  16. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
  17. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  18. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +1 -1
  19. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  20. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
  21. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  22. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  23. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  24. package/dist/features/link/client/plugins/floatingLinkEditor/index.css +0 -1
  25. package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
  26. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  27. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  28. package/dist/features/link/nodes/LinkNode.d.ts +1 -1
  29. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  30. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  31. package/dist/features/link/server/baseFields.d.ts.map +1 -1
  32. package/dist/features/link/server/baseFields.js +5 -4
  33. package/dist/features/link/server/baseFields.js.map +1 -1
  34. package/dist/features/link/server/index.js +2 -2
  35. package/dist/features/link/server/index.js.map +1 -1
  36. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
  37. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +3 -2
  38. package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -1
  39. package/dist/features/table/client/index.d.ts.map +1 -0
  40. package/dist/features/table/client/index.js.map +1 -0
  41. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  42. package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  43. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  44. package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  45. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  46. package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  47. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
  48. package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
  49. package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  50. package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
  51. package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
  52. package/dist/features/table/client/utils/debounce.js.map +1 -0
  53. package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
  54. package/dist/features/table/client/utils/useDebounce.js.map +1 -0
  55. package/dist/features/table/markdownTransformer.d.ts.map +1 -0
  56. package/dist/features/table/markdownTransformer.js.map +1 -0
  57. package/dist/features/table/server/index.d.ts +3 -0
  58. package/dist/features/table/server/index.d.ts.map +1 -0
  59. package/dist/features/{experimental_table → table}/server/index.js +4 -4
  60. package/dist/features/table/server/index.js.map +1 -0
  61. package/dist/features/table/server/schema.d.ts.map +1 -0
  62. package/dist/features/table/server/schema.js.map +1 -0
  63. package/dist/features/toolbars/fixed/client/Toolbar/index.css +2 -4
  64. package/dist/features/toolbars/inline/client/Toolbar/index.css +0 -1
  65. package/dist/features/toolbars/shared/ToolbarDropdown/index.css +0 -2
  66. package/dist/features/typesServer.d.ts +1 -1
  67. package/dist/features/typesServer.d.ts.map +1 -1
  68. package/dist/features/typesServer.js.map +1 -1
  69. package/dist/features/upload/client/component/index.js +2 -1
  70. package/dist/features/upload/client/component/index.js.map +1 -1
  71. package/dist/features/upload/server/index.js +2 -2
  72. package/dist/features/upload/server/index.js.map +1 -1
  73. package/dist/field/bundled.css +1 -1
  74. package/dist/index.d.ts +2 -2
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +5 -5
  77. package/dist/index.js.map +1 -1
  78. package/dist/lexical/LexicalEditor.css +18 -20
  79. package/dist/lexical/config/server/loader.d.ts +1 -1
  80. package/dist/lexical/config/server/loader.d.ts.map +1 -1
  81. package/dist/lexical/config/server/loader.js +2 -2
  82. package/dist/lexical/config/server/loader.js.map +1 -1
  83. package/dist/lexical/config/server/sanitize.d.ts +1 -1
  84. package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
  85. package/dist/lexical/config/server/sanitize.js +2 -2
  86. package/dist/lexical/config/server/sanitize.js.map +1 -1
  87. package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +0 -1
  88. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
  89. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  90. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -20
  91. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  92. package/dist/lexical/plugins/SlashMenu/index.css +0 -1
  93. package/dist/lexical/ui/ContentEditable.css +16 -15
  94. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
  95. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
  96. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
  97. package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
  98. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
  99. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
  100. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
  101. package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
  102. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
  103. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
  104. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
  105. package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
  106. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
  107. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
  108. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
  109. package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
  110. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
  111. package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
  112. package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
  113. package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
  114. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
  115. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
  116. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
  117. package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
  118. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
  119. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
  120. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
  121. package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
  122. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
  123. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
  124. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
  125. package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
  126. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
  127. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
  128. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
  129. package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
  130. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
  131. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
  132. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
  133. package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
  134. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
  135. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
  136. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
  137. package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
  138. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
  139. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
  140. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
  141. package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
  142. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
  143. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
  144. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
  145. package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
  146. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
  147. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
  148. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
  149. package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
  150. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
  151. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
  152. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
  153. package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
  154. package/dist/types/index.d.ts +1 -1
  155. package/dist/types/index.d.ts.map +1 -1
  156. package/dist/types/index.js.map +1 -1
  157. package/dist/types/nodeTypes.d.ts +1 -1
  158. package/dist/types/nodeTypes.d.ts.map +1 -1
  159. package/dist/types/nodeTypes.js.map +1 -1
  160. package/dist/utilities/createServerFeature.d.ts +1 -1
  161. package/dist/utilities/createServerFeature.d.ts.map +1 -1
  162. package/dist/utilities/createServerFeature.js +2 -2
  163. package/dist/utilities/createServerFeature.js.map +1 -1
  164. package/dist/utilities/editorConfigFactory.d.ts +6 -6
  165. package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
  166. package/dist/utilities/editorConfigFactory.js +9 -9
  167. package/dist/utilities/editorConfigFactory.js.map +1 -1
  168. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
  169. package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  170. package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
  171. package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
  172. package/package.json +94 -21
  173. package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
  174. package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
  175. package/dist/exports/client/chunk-X3D4LZS7.js +0 -2
  176. package/dist/exports/client/chunk-X3D4LZS7.js.map +0 -7
  177. package/dist/exports/client/component-PHZQBOJE.js +0 -2
  178. package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
  179. package/dist/features/experimental_table/client/index.d.ts.map +0 -1
  180. package/dist/features/experimental_table/client/index.js.map +0 -1
  181. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
  182. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
  183. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
  184. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
  185. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
  186. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
  187. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
  188. package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
  189. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
  190. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
  191. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
  192. package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
  193. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
  194. package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
  195. package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
  196. package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
  197. package/dist/features/experimental_table/server/index.d.ts +0 -3
  198. package/dist/features/experimental_table/server/index.d.ts.map +0 -1
  199. package/dist/features/experimental_table/server/index.js.map +0 -1
  200. package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
  201. package/dist/features/experimental_table/server/schema.js.map +0 -1
  202. /package/dist/exports/client/{Field-QGSHF22S.js.map → Field-IZKDIUJY.js.map} +0 -0
  203. /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
  204. /package/dist/features/{experimental_table → table}/client/index.js +0 -0
  205. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -0
  206. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
  207. /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +0 -0
  208. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
  209. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
  210. /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +0 -0
  211. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
  212. /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
  213. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -0
  214. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
  215. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
  216. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
  217. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
  218. /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
  219. /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
  220. /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
  221. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
  222. /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
  223. /package/dist/features/{experimental_table → table}/markdownTransformer.d.ts +0 -0
  224. /package/dist/features/{experimental_table → table}/markdownTransformer.js +0 -0
  225. /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
  226. /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
@@ -0,0 +1,2 @@
1
+ import{a as P,b as T}from"./chunk-5VIL27GI.js";import{b as I}from"./chunk-RJ5MAOKZ.js";import{c as rt}from"react/compiler-runtime";import{jsx as R}from"react/jsx-runtime";import{Drawer as nt,EditDepthProvider as ot,useModal as at}from"@payloadcms/ui";import"react";import{jsx as F,jsxs as G}from"react/jsx-runtime";import{useLexicalEditable as V}from"@lexical/react/useLexicalEditable";import{Form as q,RenderFields as Q,useDocumentForm as X,useDocumentInfo as Y,useServerFunctions as Z}from"@payloadcms/ui";import{abortAndIgnore as y}from"@payloadcms/ui/shared";import{deepCopyObjectSimpleWithoutReactComponents as j}from"payload/shared";import{useCallback as N,useEffect as M,useRef as z,useState as tt}from"react";import{v4 as et}from"uuid";var U=({data:r,featureKey:t,fieldMapOverride:e,handleDrawerSubmit:n,schemaFieldsPathOverride:o,schemaPath:D,schemaPathSuffix:f,submitRef:b})=>{let{id:i,collectionSlug:s,getDocPreferences:l,globalSlug:c}=Y(),{fields:u}=X(),a=V(),d=z(new AbortController),[g,m]=tt(!1),{fieldProps:{featureClientSchemaMap:x}}=I(),{getFormState:h}=Z(),p=o??`${D}.lexical_internal_feature.${t}${f?`.${f}`:""}`,v=e??x[t]?.[p];M(()=>{let S=new AbortController;return(async()=>{let{state:w}=await h({id:i,collectionSlug:s,data:r??{},docPermissions:{fields:!0},docPreferences:await l(),documentFormState:j(u,{excludeFiles:!0}),globalSlug:c,initialBlockData:r,operation:"update",readOnly:!a,renderAllFields:!0,schemaPath:p,signal:S.signal});m(w)})(),()=>{y(S)}},[p,i,r,h,s,a,c,l,u]);let E=N(async({formState:S})=>{y(d.current);let C=new AbortController;d.current=C;let{state:w}=await h({id:i,collectionSlug:s,docPermissions:{fields:!0},docPreferences:await l(),documentFormState:j(u,{excludeFiles:!0}),formState:S,globalSlug:c,initialBlockFormState:S,operation:"update",readOnly:!a,schemaPath:p,signal:C.signal});return w||S},[h,i,a,s,l,u,c,p]);return M(()=>()=>{y(d.current)},[]),g===!1?null:G(q,{beforeSubmit:[E],className:"fields-drawer",disableValidationOnSubmit:!0,fields:Array.isArray(v)?v:[],initialState:g,onChange:[E],onSubmit:n,uuid:et(),children:[F(Q,{fields:Array.isArray(v)?v:[],forceRender:!0,parentIndexPath:"",parentPath:"",parentSchemaPath:p,permissions:!0,readOnly:!a}),F(T,{submitRef:b})]})};var Tt=r=>{let t=rt(17),{className:e,data:n,drawerSlug:o,drawerTitle:D,featureKey:f,fieldMapOverride:b,handleDrawerSubmit:i,schemaFieldsPathOverride:s,schemaPath:l,schemaPathSuffix:c}=r,{closeModal:u}=at(),{headerActions:a,submitRef:d}=P(),g=D??"",m;t[0]!==u||t[1]!==o||t[2]!==i?(m=(h,p)=>{u(o),setTimeout(()=>{i(h,p)},1)},t[0]=u,t[1]=o,t[2]=i,t[3]=m):m=t[3];let x;return t[4]!==e||t[5]!==n||t[6]!==o||t[7]!==f||t[8]!==b||t[9]!==a||t[10]!==s||t[11]!==l||t[12]!==c||t[13]!==d||t[14]!==g||t[15]!==m?(x=R(ot,{children:R(nt,{className:e,headerActions:a,slug:o,title:g,children:R(U,{data:n,featureKey:f,fieldMapOverride:b,handleDrawerSubmit:m,schemaFieldsPathOverride:s,schemaPath:l,schemaPathSuffix:c,submitRef:d})})}),t[4]=e,t[5]=n,t[6]=o,t[7]=f,t[8]=b,t[9]=a,t[10]=s,t[11]=l,t[12]=c,t[13]=d,t[14]=g,t[15]=m,t[16]=x):x=t[16],x};import{createCommand as it}from"lexical";var Mt=it("INSERT_UPLOAD_WITH_DRAWER_COMMAND");import{jsx as L}from"react/jsx-runtime";import B from"bson-objectid";import{$applyNodeReplacement as pt}from"lexical";import*as K from"react";import st from"bson-objectid";function A(r,t){if(r.hasAttribute("data-lexical-pending-upload-form-id")){let n=r.getAttribute("data-lexical-pending-upload-form-id");if(n!=null)return{node:t({data:{pending:{formID:n,src:r.getAttribute("src")||""}}})}}if(r.hasAttribute("data-lexical-upload-relation-to")&&r.hasAttribute("data-lexical-upload-id")){let n=r.getAttribute("data-lexical-upload-id"),o=r.getAttribute("data-lexical-upload-relation-to");if(n!=null&&o!=null)return{node:t({data:{fields:{},relationTo:o,value:n}})}}return{node:t({data:{pending:{formID:new st.default().toHexString(),src:r.getAttribute("src")||""}}})}}import{DecoratorBlockNode as lt}from"@lexical/react/LexicalDecoratorBlockNode.js";import{addClassNamesToElement as ct}from"@lexical/utils";import k from"bson-objectid";import{$applyNodeReplacement as ut}from"lexical";var _=class extends lt{__data;constructor({data:t,format:e,key:n}){super(e,n),this.__data=t}static clone(t){return new this({data:t.__data,format:t.__format,key:t.__key})}static getType(){return"upload"}static importDOM(){return{img:t=>({conversion:e=>A(e,$),priority:0})}}static importJSON(t){t.version===1&&t?.value?.id&&(t.value=t.value.id),t.version===2&&!t?.id&&(t.id=new k.default().toHexString(),t.version=3);let e={id:t.id,fields:t.fields,pending:t.pending,relationTo:t.relationTo,value:t.value},n=$({data:e});return n.setFormat(t.format),n}static isInline(){return!1}createDOM(t){let e=document.createElement("div");return ct(e,t?.theme?.upload),e}decorate(){return null}exportDOM(){let t=document.createElement("img"),e=this.__data;return e.pending?(t.setAttribute("data-lexical-pending-upload-form-id",String(e?.pending?.formID)),t.setAttribute("src",e?.pending?.src||"")):(t.setAttribute("data-lexical-upload-id",String(e?.value)),t.setAttribute("data-lexical-upload-relation-to",e?.relationTo)),{element:t}}exportJSON(){return{...super.exportJSON(),...this.getData(),type:"upload",version:3}}getData(){return this.getLatest().__data}setData(t){let e=this.getWritable();e.__data=t}updateDOM(){return!1}};function $({data:r}){return r?.id||(r.id=new k.default().toHexString()),ut(new _({data:r}))}import{jsx as H}from"react/jsx-runtime";import{ShimmerEffect as mt}from"@payloadcms/ui";var J=()=>H("div",{className:"lexical-upload",children:H(mt,{height:"95px",width:"203px"})});var dt=K.lazy(()=>import("./component-D5QLYS7W.js").then(r=>({default:r.UploadComponent}))),O=class extends _{static clone(t){return super.clone(t)}static getType(){return super.getType()}static importDOM(){return{img:t=>({conversion:e=>A(e,W),priority:0})}}static importJSON(t){t.version===1&&t?.value?.id&&(t.value=t.value.id),t.version===2&&!t?.id&&(t.id=new B.default().toHexString(),t.version=3);let e={id:t.id,fields:t.fields,pending:t.pending,relationTo:t.relationTo,value:t.value},n=W({data:e});return n.setFormat(t.format),n}decorate(t,e){return this.__data.pending?L(J,{}):L(dt,{className:e?.theme?.upload??"LexicalEditorTheme__upload",data:this.__data,format:this.__format,nodeKey:this.getKey()})}exportJSON(){return super.exportJSON()}};function W({data:r}){return r?.id||(r.id=new B.default().toHexString()),pt(new O({data:r}))}function te(r){return r instanceof O}export{Tt as a,Mt as b,O as c,W as d,te as e};
2
+ //# sourceMappingURL=chunk-43E5QYAA.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utilities/fieldsDrawer/Drawer.tsx", "../../../src/utilities/fieldsDrawer/DrawerContent.tsx", "../../../src/features/upload/client/drawer/commands.ts", "../../../src/features/upload/client/nodes/UploadNode.tsx", "../../../src/features/upload/server/nodes/conversions.ts", "../../../src/features/upload/server/nodes/UploadNode.tsx", "../../../src/features/upload/client/component/pending/index.tsx"],
4
+ "sourcesContent": ["'use client'\nimport type { ClientField, Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer, EditDepthProvider, useModal } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.js'\nimport { useDrawerSubmit } from './useDrawerSubmit.js'\n\nexport type FieldsDrawerProps = {\n readonly className?: string\n readonly data?: Data\n readonly drawerSlug: string\n readonly drawerTitle?: string\n readonly featureKey: string\n readonly fieldMapOverride?: ClientField[]\n readonly handleDrawerSubmit: (fields: FormState, data: JsonObject) => void\n readonly schemaFieldsPathOverride?: string\n readonly schemaPath: string\n readonly schemaPathSuffix?: string\n}\n\n/**\n * This FieldsDrawer component can be used to easily create a Drawer that contains a form with fields within your feature.\n * The fields are taken directly from the schema map based on your `featureKey` and `schemaPathSuffix`. Thus, this can only\n * be used if you provide your field schema inside the `generateSchemaMap` prop of your feature.server.ts.\n */\nexport const FieldsDrawer: React.FC<FieldsDrawerProps> = ({\n className,\n data,\n drawerSlug,\n drawerTitle,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { closeModal } = useModal()\n const { headerActions, submitRef } = useDrawerSubmit()\n\n // The Drawer only renders its children (and itself) if it's open. Thus, by extracting the main content\n // to DrawerContent, this should be faster\n return (\n <EditDepthProvider>\n <Drawer\n className={className}\n headerActions={headerActions}\n slug={drawerSlug}\n title={drawerTitle ?? ''}\n >\n <DrawerContent\n data={data}\n featureKey={featureKey}\n fieldMapOverride={fieldMapOverride}\n handleDrawerSubmit={(args, args2) => {\n // Simply close drawer - no need for useLexicalDrawer here as at this point,\n // we don't need to restore the cursor position. This is handled by the useEffect in useLexicalDrawer.\n closeModal(drawerSlug)\n\n // Actual drawer submit logic needs to be triggered after the drawer is closed.\n // That's because the lexical selection / cursor restore logic that is striggerer by\n // `useLexicalDrawer` neeeds to be triggered before any editor.update calls that may happen\n // in the `handleDrawerSubmit` function.\n setTimeout(() => {\n handleDrawerSubmit(args, args2)\n }, 1)\n }}\n schemaFieldsPathOverride={schemaFieldsPathOverride}\n schemaPath={schemaPath}\n schemaPathSuffix={schemaPathSuffix}\n submitRef={submitRef}\n />\n </Drawer>\n </EditDepthProvider>\n )\n}\n", "'use client'\nimport type { FormState } from 'payload'\n\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n Form,\n RenderFields,\n useDocumentForm,\n useDocumentInfo,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\nimport { RegisterFormSubmit } from './useDrawerSubmit.js'\nimport './index.css'\n\nexport const DrawerContent: React.FC<\n {\n submitRef: React.RefObject<(() => void) | null>\n } & Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>\n> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n submitRef,\n}) => {\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n const { fields: parentDocumentFields } = useDocumentForm()\n const isEditable = useLexicalEditable()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n globalSlug,\n initialBlockData: data,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [\n schemaFieldsPath,\n id,\n data,\n getFormState,\n collectionSlug,\n isEditable,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n ])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields, {\n excludeFiles: true,\n }),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [\n getFormState,\n id,\n isEditable,\n collectionSlug,\n getDocPreferences,\n parentDocumentFields,\n globalSlug,\n schemaFieldsPath,\n ],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n className=\"fields-drawer\"\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <RegisterFormSubmit submitRef={submitRef} />\n </Form>\n )\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nexport const INSERT_UPLOAD_WITH_DRAWER_COMMAND: LexicalCommand<{\n replace: { nodeKey: string } | false\n}> = createCommand('INSERT_UPLOAD_WITH_DRAWER_COMMAND')\n", "'use client'\nimport type { DOMConversionMap, EditorConfig, LexicalEditor, LexicalNode } from 'lexical'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { Internal_UploadData, SerializedUploadNode, UploadData } from '../../server/schema.js'\n\nimport { $convertUploadElement } from '../../server/nodes/conversions.js'\nimport { UploadServerNode } from '../../server/nodes/UploadNode.js'\nimport { PendingUploadComponent } from '../component/pending/index.js'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nexport class UploadNode extends UploadServerNode {\n static override clone(node: UploadServerNode): UploadServerNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importDOM(): DOMConversionMap<HTMLImageElement> {\n return {\n img: (node) => ({\n conversion: (domNode) => $convertUploadElement(domNode, $createUploadNode),\n priority: 0,\n }),\n }\n }\n\n static override importJSON(serializedNode: SerializedUploadNode): UploadNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: Internal_UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n pending: (serializedNode as Internal_UploadData).pending,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n override decorate(editor?: LexicalEditor, config?: EditorConfig): JSX.Element {\n if ((this.__data as Internal_UploadData).pending) {\n return <PendingUploadComponent />\n }\n return (\n <RawUploadComponent\n className={config?.theme?.upload ?? 'LexicalEditorTheme__upload'}\n data={this.__data}\n format={this.__format}\n nodeKey={this.getKey()}\n />\n )\n }\n\n override exportJSON(): SerializedUploadNode {\n return super.exportJSON()\n }\n}\n\nexport function $createUploadNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n\n return $applyNodeReplacement(new UploadNode({ data: data as UploadData }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n", "// This file contains functions used to convert dom elements to upload or pending upload lexical nodes. It requires the actual node\n// creation functions to be passed in to stay compatible with both client and server code.\nimport type { DOMConversionOutput } from 'lexical'\n\nimport ObjectID from 'bson-objectid'\n\nimport type { $createUploadNode } from '../../client/nodes/UploadNode.js'\nimport type { Internal_UploadData } from '../schema.js'\nimport type { $createUploadServerNode } from './UploadNode.js'\n\nexport function isGoogleDocCheckboxImg(img: HTMLImageElement): boolean {\n return (\n img.parentElement != null &&\n img.parentElement.tagName === 'LI' &&\n img.previousSibling === null &&\n img.getAttribute('aria-roledescription') === 'checkbox'\n )\n}\n\nexport function $convertUploadElement(\n domNode: HTMLImageElement,\n $createNode: typeof $createUploadNode | typeof $createUploadServerNode,\n): DOMConversionOutput | null {\n if (domNode.hasAttribute('data-lexical-pending-upload-form-id')) {\n const formID = domNode.getAttribute('data-lexical-pending-upload-form-id')\n\n if (formID != null) {\n const node = $createNode({\n data: {\n pending: {\n formID,\n src: domNode.getAttribute('src') || '',\n },\n } as Internal_UploadData,\n })\n return { node }\n }\n }\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n\n // Create pending UploadNode. Auto-Upload functionality will then be handled by the node transform\n const node = $createNode({\n data: {\n pending: {\n formID: new ObjectID.default().toHexString(),\n src: domNode.getAttribute('src') || '',\n },\n } as Internal_UploadData,\n })\n\n return { node }\n}\n", "import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n} from 'lexical'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\n\nimport type { Internal_UploadData, SerializedUploadNode, UploadData } from '../schema.js'\n\nimport { $convertUploadElement } from './conversions.js'\n\nexport class UploadServerNode extends DecoratorBlockNode {\n __data: UploadData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: UploadData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static override clone(node: UploadServerNode): UploadServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'upload'\n }\n\n static override importDOM(): DOMConversionMap<HTMLImageElement> {\n return {\n img: (node) => ({\n conversion: (domNode) => $convertUploadElement(domNode, $createUploadServerNode),\n priority: 0,\n }),\n }\n }\n\n static override importJSON(serializedNode: SerializedUploadNode): UploadServerNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: Internal_UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n pending: (serializedNode as Internal_UploadData).pending,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadServerNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.upload)\n return element\n }\n\n override decorate(): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n const data = this.__data as Internal_UploadData\n if (data.pending) {\n element.setAttribute('data-lexical-pending-upload-form-id', String(data?.pending?.formID))\n element.setAttribute('src', data?.pending?.src || '')\n } else {\n element.setAttribute('data-lexical-upload-id', String(data?.value))\n element.setAttribute('data-lexical-upload-relation-to', data?.relationTo)\n }\n\n return { element }\n }\n\n override exportJSON(): SerializedUploadNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'upload',\n version: 3,\n }\n }\n\n getData(): UploadData {\n return this.getLatest().__data\n }\n\n setData(data: UploadData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n\n override updateDOM(): false {\n return false\n }\n}\n\nexport function $createUploadServerNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadServerNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadServerNode({ data: data as UploadData }))\n}\n\nexport function $isUploadServerNode(\n node: LexicalNode | null | undefined,\n): node is UploadServerNode {\n return node instanceof UploadServerNode\n}\n", "'use client'\n\nimport { ShimmerEffect } from '@payloadcms/ui'\n\nexport const PendingUploadComponent = (): React.ReactNode => {\n return (\n <div className={'lexical-upload'}>\n <ShimmerEffect height={'95px'} width={'203px'} />\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["c", "_c", "Drawer", "EditDepthProvider", "useModal", "useLexicalEditable", "Form", "RenderFields", "useDocumentForm", "useDocumentInfo", "useServerFunctions", "abortAndIgnore", "deepCopyObjectSimpleWithoutReactComponents", "useCallback", "useEffect", "useRef", "useState", "v4", "uuid", "DrawerContent", "data", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPath", "schemaPathSuffix", "submitRef", "id", "collectionSlug", "getDocPreferences", "globalSlug", "useDocumentInfo", "parentDocumentFields", "fields", "useDocumentForm", "useLexicalEditable", "isEditable", "onChangeAbortControllerRef", "useRef", "AbortController", "fieldProps", "useEditorConfigContext", "getFormState", "useServerFunctions", "schemaFieldsPath", "useEffect", "awaitInitialState", "state", "docPermissions", "docPreferences", "deepCopyObjectSimpleWithoutReactComponents", "documentFormState", "initialBlockData", "operation", "readOnly", "renderAllFields", "setInitialState", "abortAndIgnore", "controller", "onChange", "formState", "state_0", "prevFormState", "initialBlockFormState", "initialState", "_jsxs", "Form", "beforeSubmit", "className", "disableValidationOnSubmit", "isArray", "onSubmit", "uuid", "_jsx", "RenderFields", "forceRender", "parentIndexPath", "parentPath", "parentSchemaPath", "permissions", "FieldsDrawer", "t0", "$", "_c", "className", "data", "drawerSlug", "drawerTitle", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPath", "schemaPathSuffix", "closeModal", "useModal", "headerActions", "submitRef", "useDrawerSubmit", "t1", "t2", "args", "args2", "setTimeout", "t3", "_jsx", "EditDepthProvider", "children", "Drawer", "slug", "title", "DrawerContent", "createCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "ObjectID", "$applyNodeReplacement", "React", "ObjectID", "$convertUploadElement", "domNode", "$createNode", "hasAttribute", "formID", "getAttribute", "node", "data", "pending", "src", "id", "relationTo", "fields", "value", "ObjectID", "default", "toHexString", "DecoratorBlockNode", "addClassNamesToElement", "ObjectID", "$applyNodeReplacement", "UploadServerNode", "DecoratorBlockNode", "__data", "constructor", "data", "format", "key", "clone", "node", "__format", "__key", "getType", "importDOM", "img", "conversion", "domNode", "$convertUploadElement", "$createUploadServerNode", "priority", "importJSON", "serializedNode", "version", "value", "id", "ObjectID", "default", "toHexString", "importedData", "fields", "pending", "relationTo", "setFormat", "isInline", "createDOM", "config", "element", "document", "createElement", "addClassNamesToElement", "theme", "upload", "decorate", "exportDOM", "setAttribute", "String", "formID", "src", "exportJSON", "getData", "type", "getLatest", "setData", "writable", "getWritable", "updateDOM", "$applyNodeReplacement", "ShimmerEffect", "PendingUploadComponent", "_jsx", "className", "height", "width", "RawUploadComponent", "lazy", "then", "module", "default", "UploadComponent", "UploadNode", "UploadServerNode", "clone", "node", "getType", "importDOM", "img", "conversion", "domNode", "$convertUploadElement", "$createUploadNode", "priority", "importJSON", "serializedNode", "version", "value", "id", "ObjectID", "toHexString", "importedData", "fields", "pending", "relationTo", "data", "setFormat", "format", "decorate", "editor", "config", "__data", "_jsx", "PendingUploadComponent", "className", "theme", "upload", "__format", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "$isUploadNode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var P=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";import{c as ce}from"react/compiler-runtime";import{useRef as le}from"react";function Ge(r){let e=ce(2),n=r===void 0?500:r,i=le(void 0),t;return e[0]!==n?(t=c=>new Promise(a=>{let s=()=>{c(),a()};"requestIdleCallback"in window?("cancelIdleCallback"in window&&i.current!==void 0&&cancelIdleCallback(i.current),i.current=requestIdleCallback(s,{timeout:n})):ae().then(s)}),e[0]=n,e[1]=t):t=e[1],t}function ae(){return new Promise(r=>{setTimeout(r,100),requestAnimationFrame(()=>{setTimeout(r,0)})})}import{jsx as ue}from"react/jsx-runtime";import{useControllableState as fe}from"@payloadcms/ui";import{createContext as de,use as me,useMemo as he}from"react";var V=de({currentView:"default",inheritable:!1,setCurrentView:()=>{}}),it=r=>{let e=pe(),n=r.currentView!==void 0,i=e.inheritable&&(!!e.views||!!e.hasExplicitCurrentView),t=n||e.inheritable&&!!e.hasExplicitCurrentView,{children:o,currentView:c,inheritable:a,views:s}={children:r.children,currentView:i?e.currentView:r.currentView,inheritable:e.inheritable||r.inheritable,views:i&&e.views?e.views:r.views},[f,d]=fe(c,"default"),m=s&&f!=="default"&&!s[f]?"default":f,h=he(()=>{let y=s?s[m]:void 0;return{currentView:m,currentViewMap:y,hasExplicitCurrentView:t,inheritable:a,isControlledByParent:i,setCurrentView:d,views:s}},[m,a,t,i,d,s]);return ue(V,{value:h,children:o})};function pe(){return me(V)}var T=class{_x;_y;constructor(e,n){this._x=e,this._y=n}calcDeltaXTo({x:e}){return this.x-e}calcDeltaYTo({y:e}){return this.y-e}calcDistanceTo(e){return Math.sqrt(Math.pow(this.calcDeltaXTo(e),2)+Math.pow(this.calcDeltaYTo(e),2))}calcHorizontalDistanceTo(e){return Math.abs(this.calcDeltaXTo(e))}calcVerticalDistance(e){return Math.abs(this.calcDeltaYTo(e))}equals({x:e,y:n}){return this.x===e&&this.y===n}get x(){return this._x}get y(){return this._y}};function $(r){return r instanceof T}import{jsx as Ae}from"react/jsx-runtime";import{useLexicalComposerContext as Le}from"@lexical/react/LexicalComposerContext.js";import{mergeRegister as Be}from"@lexical/utils";import{$getSelection as v,$isRangeSelection as N,$isTextNode as Pe,COMMAND_PRIORITY_LOW as Ve,createCommand as $e,getDOMSelection as Ye}from"lexical";import{useCallback as J,useEffect as G,useState as We}from"react";import*as I from"react";import{c as q}from"react/compiler-runtime";import{useLexicalComposerContext as U}from"@lexical/react/LexicalComposerContext.js";import{getScrollParent as ge,mergeRegister as Y}from"@lexical/utils";import{$getSelection as F,$isRangeSelection as _e,$setSelection as we,COMMAND_PRIORITY_LOW as W,COMMAND_PRIORITY_NORMAL as C,createCommand as ye,KEY_ARROW_DOWN_COMMAND as Oe,KEY_ARROW_UP_COMMAND as xe,KEY_ENTER_COMMAND as be,KEY_ESCAPE_COMMAND as Ce,KEY_TAB_COMMAND as Se}from"lexical";import{useCallback as E,useEffect as x,useLayoutEffect as Me,useMemo as Re,useRef as De,useState as Te}from"react";var Ee="slash-menu-popup",H=r=>{let e=document.getElementById("slash-menu");if(!e)return;let n=e.getBoundingClientRect();n.top+n.height>window.innerHeight&&e.scrollIntoView({block:"center"}),n.top<0&&e.scrollIntoView({block:"center"}),r.scrollIntoView({block:"nearest"})};function Ie(r,e,n){let i=n;for(let t=i;t<=e.length;t++)r.substring(r.length-t)===e.substring(0,t)&&(i=t);return i}function ve(r){let e=F();if(!_e(e)||!e.isCollapsed())return;let n=e.anchor;if(n.type!=="text")return;let i=n.getNode();if(!i.isSimpleText())return;let t=n.offset,o=i.getTextContent().slice(0,t),c=r.replaceableString.length,a=Ie(o,r.matchingString,c),s=t-a;if(s<0)return;let f;return s===0?[f]=i.splitText(t):[,f]=i.splitText(s,t),f}function j(r,e){let n=r.getBoundingClientRect(),i=e.getBoundingClientRect();return n.top>i.top&&n.top<i.bottom}function Ne(r,e,n,i){let t=q(7),[o]=U(),c,a;t[0]!==o||t[1]!==n||t[2]!==i||t[3]!==r||t[4]!==e?(c=()=>{let s=e.current;if(s!=null&&r!=null){let f=o.getRootElement(),d=f!=null?ge(f,!1):document.body,m=!1,h=j(s,d),y=function(){m||(window.requestAnimationFrame(function(){n(),m=!1}),m=!0);let l=j(s,d);l!==h&&(h=l,i?.(l))},u=new ResizeObserver(n);return window.addEventListener("resize",n),document.addEventListener("scroll",y,{capture:!0,passive:!0}),u.observe(s),()=>{u.disconnect(),window.removeEventListener("resize",n),document.removeEventListener("scroll",y,!0)}}},a=[o,i,n,r,e],t[0]=o,t[1]=n,t[2]=i,t[3]=r,t[4]=e,t[5]=c,t[6]=a):(c=t[5],a=t[6]),x(c,a)}var X=ye("SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND");function z({anchorElementRef:r,close:e,editor:n,groups:i,menuRenderFn:t,resolution:o,shouldSplitNodeWithQuery:c=!1}){let[a,s]=Te(null),f=o.match&&o.match.matchingString||"",d=E(u=>{let l=n.getRootElement();l!==null&&(l.setAttribute("aria-activedescendant",`${Ee}__item-${u.key}`),s(u.key))},[n]),m=E(()=>{if(i!==null&&f!=null){let u=i.flatMap(l=>l.items);if(u.length){let l=u[0];d(l)}}},[i,d,f]);x(()=>{m()},[f,m]);let h=E(u=>{e(),n.update(()=>{let l=o.match!=null&&c?ve(o.match):null;l&&l.remove()}),setTimeout(()=>{let l;n.read(()=>{l=F()?.clone()}),n.update(()=>{l&&we(l)}),u.onSelect({editor:n,queryString:o.match?o.match.matchingString:""})},0)},[n,c,o.match,e]);x(()=>()=>{let u=n.getRootElement();u!==null&&u.removeAttribute("aria-activedescendant")},[n]),Me(()=>{i===null?s(null):a===null&&m()},[i,a,d,m]),x(()=>Y(n.registerCommand(X,({item:u})=>u.ref&&u.ref.current!=null?(H(u.ref.current),!0):!1,W)),[n,d]),x(()=>Y(n.registerCommand(Oe,u=>{let l=u;if(i!==null&&i.length&&a!==null){let g=i.flatMap(_=>_.items),p=g.findIndex(_=>_.key===a),O=p!==g.length-1?p+1:0,w=g[O];if(!w)return!1;d(w),w.ref!=null&&w.ref.current&&n.dispatchCommand(X,{index:O,item:w}),l.preventDefault(),l.stopImmediatePropagation()}return!0},C),n.registerCommand(xe,u=>{let l=u;if(i!==null&&i.length&&a!==null){let g=i.flatMap(_=>_.items),p=g.findIndex(_=>_.key===a),O=p!==0?p-1:g.length-1,w=g[O];if(!w)return!1;d(w),w.ref!=null&&w.ref.current&&H(w.ref.current),l.preventDefault(),l.stopImmediatePropagation()}return!0},C),n.registerCommand(Ce,u=>{let l=u;return l.preventDefault(),l.stopImmediatePropagation(),e(),!0},W),n.registerCommand(Se,u=>{let l=u;if(i===null||a===null)return!1;let p=i.flatMap(O=>O.items).find(O=>O.key===a);return p?(l.preventDefault(),l.stopImmediatePropagation(),h(p),!0):!1},C),n.registerCommand(be,u=>{if(i===null||a===null)return!1;let g=i.flatMap(p=>p.items).find(p=>p.key===a);return g?(u!==null&&(u.preventDefault(),u.stopImmediatePropagation()),h(g),!0):!1},C)),[h,e,n,i,a,d]);let y=Re(()=>({groups:i,selectedItemKey:a,selectItemAndCleanUp:h,setSelectedItemKey:s}),[h,a,i]);return t(r,y,o.match?o.match.matchingString:"")}function ke(r,e){e!=null&&(r.className=e),r.setAttribute("aria-label","Slash menu"),r.setAttribute("role","listbox"),r.style.display="block",r.style.position="absolute"}function K(r,e,n,i){let t=q(14),[o]=U(),c;t[0]===Symbol.for("react.memo_cache_sentinel")?(c=P?document.createElement("div"):null,t[0]=c):c=t[0];let a=De(c),s;t[1]!==r||t[2]!==i||t[3]!==o||t[4]!==e?(s=()=>{if(a.current===null||parent===void 0)return;let u=o.getRootElement(),l=a.current,g=l.firstChild;if(u!==null&&e!==null){let{height:p,width:O}=e.getRect(),{left:w,top:_}=e.getRect(),S=_;if(_=_-(r.getBoundingClientRect().top+window.scrollY),w=w-(r.getBoundingClientRect().left+window.scrollX),l.style.left=`${w+window.scrollX}px`,l.style.height=`${p}px`,l.style.width=`${O}px`,g!==null){let M=g.getBoundingClientRect(),A=M.height,R=M.width,D=u.getBoundingClientRect(),L=document.dir==="rtl"||document.documentElement.dir==="rtl",ie=r.getBoundingClientRect(),B=Math.max(0,D.left);if(!L&&w+R>D.right)l.style.left=`${D.right-R+window.scrollX}px`;else if(L&&M.left<B){let se=B+R-ie.left;l.style.left=`${se+window.scrollX}px`}let re=S+A+32>window.innerHeight,oe=S<0;re&&!oe?l.style.top=`${_+32-A+window.scrollY-(p+24)}px`:l.style.top=`${_+window.scrollY+32}px`}l.isConnected||(ke(l,i),r.append(l)),l.setAttribute("id","slash-menu"),a.current=l,u.setAttribute("aria-controls","slash-menu")}},t[1]=r,t[2]=i,t[3]=o,t[4]=e,t[5]=s):s=t[5];let f=s,d,m;t[6]!==o||t[7]!==f||t[8]!==e?(d=()=>{let u=o.getRootElement();if(e!==null)return f(),()=>{u!==null&&u.removeAttribute("aria-controls");let l=a.current;l!==null&&l.isConnected&&(l.remove(),l.removeAttribute("id"))}},m=[o,f,e],t[6]=o,t[7]=f,t[8]=e,t[9]=d,t[10]=m):(d=t[9],m=t[10]),x(d,m);let h;return t[11]!==e||t[12]!==n?(h=u=>{e!==null&&(u||n(null))},t[11]=e,t[12]=n,t[13]=h):h=t[13],Ne(e,a,f,h),a}var yt=`\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'"~=<>_:;`;function He(r){let e=r.anchor;if(e.type!=="text")return null;let n=e.getNode();if(!n.isSimpleText())return null;let i=e.offset;return n.getTextContent().slice(0,i)}function Q(r,e,n){let i=Ye(n);if(i===null||!i.isCollapsed)return!1;let t=i.anchorNode,o=r,c=i.anchorOffset;if(t==null||c==null)return!1;try{e.setStart(t,o),e.setEnd(t,c>1?c:1)}catch{return!1}return!0}function je(r){let e;return r.getEditorState().read(()=>{let n=v();N(n)&&(e=He(n))}),e}function Z(r,e){return e!==0?!1:r.getEditorState().read(()=>{let n=v();if(N(n)){let o=n.anchor.getNode().getPreviousSibling();return Pe(o)&&o.isTextEntity()}return!1})}function ee(r){I.startTransition?I.startTransition(r):r()}var Xe=$e("ENABLE_SLASH_MENU_COMMAND");function Ot({anchorClassName:r,anchorElem:e,groups:n,menuRenderFn:i,onClose:t,onOpen:o,onQueryChange:c,triggerFn:a}){let[s]=Le(),[f,d]=We(null),m=K(e,f,d,r),h=J(()=>{d(null),t!=null&&f!==null&&t()},[t,f]),y=J(u=>{d(u),o!=null&&f===null&&o(u)},[o,f]);return G(()=>Be(s.registerCommand(Xe,({node:u})=>(s.getEditorState().read(()=>{let l={leadOffset:0,matchingString:"",replaceableString:""};if(!Z(s,l.leadOffset)&&u!==null){let g=s._window??window,p=g.document.createRange();Q(l.leadOffset,p,g)!==null&&ee(()=>y({getRect:()=>p.getBoundingClientRect(),match:l}));return}}),!0),Ve)),[s,y]),G(()=>{let u=()=>{s.getEditorState().read(()=>{let g=s._window??window,p=g.document.createRange(),O=v(),w=je(s);if(!N(O)||!O.isCollapsed()||w===void 0||p===null){h();return}let _=a({editor:s,query:w});if(c(_?_.matchingString:null),_!==null&&!Z(s,_.leadOffset)&&Q(_.leadOffset,p,g)!==null){ee(()=>y({getRect:()=>p.getBoundingClientRect(),match:_}));return}h()})},l=s.registerUpdateListener(u);return()=>{l()}},[s,a,c,f,h,y]),m.current===null||f===null||s===null?null:Ae(z,{anchorElementRef:m,close:h,editor:s,groups:n,menuRenderFn:i,resolution:f,shouldSplitNodeWithQuery:!0})}var te=class r{_bottom;_left;_right;_top;constructor(e,n,i,t){let[o,c]=n<=t?[n,t]:[t,n],[a,s]=e<=i?[e,i]:[i,e];this._top=o,this._right=s,this._left=a,this._bottom=c}static fromDOM(e){let{height:n,left:i,top:t,width:o}=e.getBoundingClientRect();return r.fromLWTH(i,o,t,n)}static fromDOMRect(e){let{height:n,left:i,top:t,width:o}=e;return r.fromLWTH(i,o,t,n)}static fromLTRB(e,n,i,t){return new r(e,n,i,t)}static fromLWTH(e,n,i,t){return new r(e,i,e+n,i+t)}static fromPoints(e,n){let{x:i,y:t}=e,{x:o,y:c}=n;return r.fromLTRB(i,t,o,c)}contains(e){if($(e)){let{x:c,y:a}=e,s=a<this._top,f=a>this._bottom,d=c<this._left,m=c>this._right;return{reason:{isOnBottomSide:f,isOnLeftSide:d,isOnRightSide:m,isOnTopSide:s},result:!s&&!f&&!d&&!m}}let{bottom:n,left:i,right:t,top:o}=e;return o>=this._top&&o<=this._bottom&&n>=this._top&&n<=this._bottom&&i>=this._left&&i<=this._right&&t>=this._left&&t<=this._right}distanceFromPoint(e){let n=this.contains(e);if(n.result)return{distance:0,isOnBottomSide:n.reason.isOnBottomSide,isOnLeftSide:n.reason.isOnLeftSide,isOnRightSide:n.reason.isOnRightSide,isOnTopSide:n.reason.isOnTopSide};let i=0,t=0;return e.x<this._left?i=this._left-e.x:e.x>this._right&&(i=e.x-this._right),e.y<this._top?t=this._top-e.y:e.y>this._bottom&&(t=e.y-this._bottom),{distance:Math.sqrt(i*i+t*t),isOnBottomSide:e.y>this._bottom,isOnLeftSide:e.x<this._left,isOnRightSide:e.x>this._right,isOnTopSide:e.y<this._top}}equals({bottom:e,left:n,right:i,top:t}){return t===this._top&&e===this._bottom&&n===this._left&&i===this._right}generateNewRect({bottom:e=this.bottom,left:n=this.left,right:i=this.right,top:t=this.top}){return new r(n,t,i,e)}intersectsWith(e){let{height:n,left:i,top:t,width:o}=e,{height:c,left:a,top:s,width:f}=this,d=i+o>=a+f?i+o:a+f,m=t+n>=s+c?t+n:s+c,h=i<=a?i:a,y=t<=s?t:s;return d-h<=o+f&&m-y<=n+c}get bottom(){return this._bottom}get height(){return Math.abs(this._bottom-this._top)}get left(){return this._left}get right(){return this._right}get top(){return this._top}get width(){return Math.abs(this._left-this._right)}};import k from"react";var b=new WeakMap;function Mt(r,e){b.has(r)||b.set(r,new Map);let n=b.get(r);for(let[i,t]of Object.entries(e))if(!(!t||typeof t!="object")){if(i==="blocks"){for(let[o,c]of Object.entries(t))n.set(`block:${o}`,c);continue}if(i==="inlineBlocks"){for(let[o,c]of Object.entries(t))n.set(`inlineBlock:${o}`,c);continue}n.set(i,t)}}function Rt(r){b.delete(r)}function ne(r,e,n){let i=b.get(r);if(e==="block"&&n?.__fields?.blockType){let t=n.__fields.blockType;return i?.get(`block:${t}`)}if(e==="inlineBlock"&&n?.__fields?.blockType){let t=n.__fields.blockType;return i?.get(`inlineBlock:${t}`)}return i?.get(e)}function qe({node:r,nodeType:e}){if(!("getType"in r)||r.getType()!==e)return;let n=r;if(n.prototype._originalDecorate||(n.prototype._originalDecorate=n.prototype.decorate),n.prototype._originalCreateDOM||(n.prototype._originalCreateDOM=n.prototype.createDOM),n.prototype.decorate&&!n.prototype._decorateOverridden){n.prototype._decorateOverridden=!0;let i=!!n.prototype.createDOM;n.prototype.decorate=function(t,o){let c=ne(t,e,this);if(c){if(c.Component)return c.Component({config:o,editor:t,isEditor:!0,isJSXConverter:!1,node:this});if(c.createDOM&&c.html){let s=typeof c.html=="function"?c.html({config:o,editor:t,isEditor:!0,isJSXConverter:!1,node:this}):c.html;return k.createElement("span",{dangerouslySetInnerHTML:{__html:s}})}if(c.html&&i&&!c.createDOM)return k.createElement(k.Fragment);if(e==="block"){let s=c;if(s.Block||s.Label)return n.prototype._originalDecorate.call(this,t,o,s.Block,s.Label)}else if(e==="inlineBlock"){let s=c;if(s.Block||s.Label)return n.prototype._originalDecorate.call(this,t,o,s.Block,s.Label)}}return n.prototype._originalDecorate.call(this,t,o)}}n.prototype.createDOM&&!n.prototype._createDOMOverridden&&(n.prototype._createDOMOverridden=!0,n.prototype.createDOM=function(i,t){let o=ne(t,e,this);if(o){if(o.createDOM)return o.createDOM({config:i,editor:t,node:this});if(o.html){let c=typeof o.html=="function"?o.html({config:i,editor:t,isEditor:!0,isJSXConverter:!1,node:this}):o.html,a=document.createElement("div");return a.innerHTML=c,a.firstElementChild||a}}return n.prototype._originalCreateDOM.call(this,i,t)})}function Dt({editorConfig:r,nodeViews:e}){let n=Ue({nodes:r.features.nodes});if(e){let i=new Set;for(let[t,o]of Object.entries(e))!o||typeof o!="object"||(t==="blocks"&&Object.keys(o).length>0?i.add("block"):t==="inlineBlocks"&&Object.keys(o).length>0?i.add("inlineBlock"):i.add(t));for(let t of n)if("getType"in t){let o=t.getType();i.has(o)&&qe({node:t,nodeType:o})}}return n}function Ue({nodes:r}){return r.map(e=>"node"in e?e.node:e)}export{P as a,Ge as b,it as c,pe as d,T as e,$ as f,yt as g,Xe as h,Ot as i,te as j,Mt as k,Rt as l,Dt as m};
2
+ //# sourceMappingURL=chunk-SSMQFWCQ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lexical/utils/canUseDOM.ts", "../../../src/utilities/useRunDeprioritized.ts", "../../../src/field/RichTextViewProvider.tsx", "../../../src/lexical/utils/point.ts", "../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.tsx", "../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx", "../../../src/lexical/utils/rect.ts", "../../../src/lexical/nodes/index.ts"],
4
+ "sourcesContent": ["'use client'\nexport const CAN_USE_DOM: boolean =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n", "'use client'\nimport { useCallback, useRef } from 'react'\n\n/**\n * Simple hook that lets you run any callback once the main thread is idle\n * (via `requestIdleCallback`) or when that API is missing (Safari) - after the\n * next animation frame (`interactionResponse`).\n *\n * This will help you to avoid blocking the main thread with heavy work.\n *\n * The latest invocation wins: if a new run is queued before the previous one\n * executes, the previous task is cancelled.\n *\n * Usage:\n * ```ts\n * const runDeprioritized = useRunDeprioritized();\n *\n * const onEditorChange = (state: EditorState) => {\n * runDeprioritized(() => {\n * // heavy work here …\n * });\n * };\n * ```\n *\n * @param timeout Optional timeout (ms) for `requestIdleCallback`; defaults to 500 ms.\n * @returns A `runDeprioritized(fn)` helper.\n */\n\nexport function useRunDeprioritized(timeout = 500) {\n const idleHandleRef = useRef<number>(undefined)\n\n /**\n * Schedule `fn` and resolve when it has executed.\n */\n const runDeprioritized = useCallback(\n (fn: () => void): Promise<void> => {\n return new Promise<void>((resolve) => {\n const exec = () => {\n fn()\n resolve()\n }\n\n if ('requestIdleCallback' in window) {\n // Cancel any previously queued task so only the latest runs.\n if ('cancelIdleCallback' in window && idleHandleRef.current !== undefined) {\n // Cancel earlier scheduled value updates,\n // so that a CPU-limited event loop isn't flooded with n callbacks for n keystrokes into the rich text field,\n // but that there's only ever the latest one state update\n // dispatch task, to be executed with the next idle time,\n // or the deadline of 500ms.\n cancelIdleCallback(idleHandleRef.current)\n }\n // Schedule the state update to happen the next time the browser has sufficient resources,\n // or the latest after 500ms.\n idleHandleRef.current = requestIdleCallback(exec, { timeout })\n } else {\n // Safari fallback: rAF + setTimeout shim.\n void interactionResponse().then(exec)\n }\n })\n },\n [timeout],\n )\n\n return runDeprioritized\n}\n\nfunction interactionResponse(): Promise<unknown> {\n // Taken from https://github.com/vercel-labs/await-interaction-response/tree/main/packages/await-interaction-response/src\n\n return new Promise((resolve) => {\n setTimeout(resolve, 100) // Fallback for the case where the animation frame never fires.\n requestAnimationFrame(() => {\n setTimeout(resolve, 0)\n })\n })\n}\n", "'use client'\nimport { useControllableState } from '@payloadcms/ui'\nimport React, { createContext, use, useMemo } from 'react'\n\nimport type { LexicalEditorNodeMap, LexicalEditorViewMap } from '../types/index.js'\n\n/**\n * Context for managing richtext editor view state and inheritance.\n */\ntype RichTextViewContextType = {\n /**\n * The currently active view name (e.g., 'default', 'frontend', 'debug').\n */\n currentView: string\n /**\n * The resolved node map for the current view, containing rendering overrides for each node type.\n */\n currentViewMap?: LexicalEditorNodeMap\n /**\n * True if the current view was explicitly set (via prop) by this provider or an ancestor.\n * Used to distinguish intentional view settings from automatic defaults.\n */\n hasExplicitCurrentView?: boolean\n /**\n * If true, nested richtext editors will inherit this provider's currentView and views.\n */\n inheritable?: boolean\n /**\n * True if this provider's view is controlled by an ancestor provider — either because the\n * ancestor has a views map (view-map inheritance) or an explicit `currentView` prop.\n * When true, the ViewSelector is hidden.\n */\n isControlledByParent?: boolean\n /**\n * Function to programmatically change the current view.\n */\n setCurrentView: (view: string) => void\n /**\n * Map of all available views for this editor. Each key is a view name, each value contains\n * admin config, node overrides, and lexical config for that view.\n */\n views?: LexicalEditorViewMap\n}\n\nconst RichTextViewContext = createContext<RichTextViewContextType>({\n currentView: 'default',\n inheritable: false,\n setCurrentView: () => {},\n})\n\n/**\n * Provider for managing richtext editor view state and its inheritance.\n *\n * Handles two key scenarios:\n * 1. **Explicit view setting**: Wrap with `currentView` and `inheritable={true}` to force nested editors to a specific view\n * 2. **View map inheritance**: Nested editors inherit `views` from parents, allowing view switching across the hierarchy\n *\n * When a nested editor inherits from a parent, its ViewSelector is hidden because the view is controlled by an ancestor.\n *\n * @example\n * Force all nested richtext editors to use \"frontend\" view:\n * ```tsx\n * <RichTextViewProvider currentView=\"frontend\" inheritable={true}>\n * <MyForm /> {/* All richtext fields inside will use \"frontend\" view }\n * </RichTextViewProvider>\n * ```\n */\nexport const RichTextViewProvider: React.FC<{\n children: React.ReactNode\n currentView?: string\n inheritable?: boolean\n views?: LexicalEditorViewMap\n}> = (args) => {\n const parentContext = useRichTextView()\n\n // Track if this provider explicitly sets currentView (not just using the default)\n const hasOwnExplicitView = args.currentView !== undefined\n\n const isControlledByParent =\n parentContext.inheritable &&\n (Boolean(parentContext.views) || Boolean(parentContext.hasExplicitCurrentView))\n\n // This provider has explicit currentView if it sets one OR inherits one from parent\n const hasExplicitCurrentView =\n hasOwnExplicitView ||\n (parentContext.inheritable && Boolean(parentContext.hasExplicitCurrentView))\n\n const {\n children,\n currentView: currentViewFromProps,\n inheritable,\n views,\n } = {\n children: args.children,\n currentView: isControlledByParent ? parentContext.currentView : args.currentView,\n // Propagate inheritable flag through the hierarchy\n inheritable: parentContext.inheritable || args.inheritable,\n // Only inherit views if parent has a views map\n views: isControlledByParent && parentContext.views ? parentContext.views : args.views,\n }\n\n const [currentViewRaw, setCurrentView] = useControllableState(currentViewFromProps, 'default')\n\n // Normalize currentView: if the requested view doesn't exist in this editor's\n // views map, fall back to 'default'. This ensures all consumers of useRichTextView()\n // see a consistent currentView that actually exists\n const currentView =\n views && currentViewRaw !== 'default' && !views[currentViewRaw] ? 'default' : currentViewRaw\n\n const value = useMemo(() => {\n const currentViewMap = views ? views[currentView] : undefined\n return {\n currentView,\n currentViewMap,\n hasExplicitCurrentView,\n inheritable,\n isControlledByParent,\n setCurrentView,\n views,\n }\n }, [\n currentView,\n inheritable,\n hasExplicitCurrentView,\n isControlledByParent,\n setCurrentView,\n views,\n ])\n\n return <RichTextViewContext value={value}>{children}</RichTextViewContext>\n}\n\n/**\n * Access the current richtext editor view context.\n *\n * Returns the active view name, node overrides, inheritance state, and a function to switch views.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { currentView, currentViewMap, isControlledByParent, setCurrentView } = useRichTextView()\n *\n * return (\n * <div>\n * <p>Active view: {currentView}</p>\n * {isControlledByParent && <p>View controlled by parent</p>}\n * {currentViewMap?.heading && <p>Custom heading renderer active</p>}\n * <button onClick={() => setCurrentView('frontend')}>Switch to frontend</button>\n * </div>\n * )\n * }\n * ```\n */\nexport function useRichTextView(): RichTextViewContextType {\n return use(RichTextViewContext)\n}\n", "'use client'\nexport class Point {\n private readonly _x: number\n\n private readonly _y: number\n\n constructor(x: number, y: number) {\n this._x = x\n this._y = y\n }\n\n public calcDeltaXTo({ x }: Point): number {\n return this.x - x\n }\n\n public calcDeltaYTo({ y }: Point): number {\n return this.y - y\n }\n\n public calcDistanceTo(point: Point): number {\n return Math.sqrt(Math.pow(this.calcDeltaXTo(point), 2) + Math.pow(this.calcDeltaYTo(point), 2))\n }\n\n public calcHorizontalDistanceTo(point: Point): number {\n return Math.abs(this.calcDeltaXTo(point))\n }\n\n public calcVerticalDistance(point: Point): number {\n return Math.abs(this.calcDeltaYTo(point))\n }\n\n public equals({ x, y }: Point): boolean {\n return this.x === x && this.y === y\n }\n\n get x(): number {\n return this._x\n }\n\n get y(): number {\n return this._y\n }\n}\n\nexport function isPoint(x: unknown): x is Point {\n return x instanceof Point\n}\n", "'use client'\nimport type { LexicalCommand, LexicalEditor, ParagraphNode, RangeSelection } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $isTextNode,\n COMMAND_PRIORITY_LOW,\n createCommand,\n getDOMSelection,\n} from 'lexical'\nimport { type JSX, useCallback, useEffect, useState } from 'react'\nimport * as React from 'react'\n\nimport type { MenuTextMatch, TriggerFn } from '../useMenuTriggerMatch.js'\nimport type { MenuRenderFn, MenuResolution } from './LexicalMenu.js'\nimport type { SlashMenuGroupInternal } from './types.js'\n\nimport { LexicalMenu, useMenuAnchorRef } from './LexicalMenu.js'\n\nexport const PUNCTUATION = '\\\\.,\\\\+\\\\*\\\\?\\\\$\\\\@\\\\|#{}\\\\(\\\\)\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%\\'\"~=<>_:;'\n\nfunction getTextUpToAnchor(selection: RangeSelection): null | string {\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\n }\n const anchorOffset = anchor.offset\n return anchorNode.getTextContent().slice(0, anchorOffset)\n}\n\nfunction tryToPositionRange(leadOffset: number, range: Range, editorWindow: Window): boolean {\n const domSelection = getDOMSelection(editorWindow)\n if (domSelection === null || !domSelection.isCollapsed) {\n return false\n }\n\n const anchorNode = domSelection.anchorNode\n const startOffset = leadOffset\n const endOffset = domSelection.anchorOffset\n\n if (anchorNode == null || endOffset == null) {\n return false\n }\n\n try {\n range.setStart(anchorNode, startOffset)\n // if endOffset is 0, positioning the range for when you click the plus button to open the slash menu will fial\n range.setEnd(anchorNode, endOffset > 1 ? endOffset : 1)\n } catch (error) {\n return false\n }\n\n return true\n}\n\nfunction getQueryTextForSearch(editor: LexicalEditor): string | undefined {\n let text\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) {\n return\n }\n text = getTextUpToAnchor(selection)\n })\n return text\n}\n\nfunction isSelectionOnEntityBoundary(editor: LexicalEditor, offset: number): boolean {\n if (offset !== 0) {\n return false\n }\n return editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor\n const anchorNode = anchor.getNode()\n const prevSibling = anchorNode.getPreviousSibling()\n return $isTextNode(prevSibling) && prevSibling.isTextEntity()\n }\n return false\n })\n}\n\nfunction startTransition(callback: () => void) {\n if (React.startTransition) {\n React.startTransition(callback)\n } else {\n callback()\n }\n}\n\nexport { useDynamicPositioning } from './LexicalMenu.js'\n\nexport type TypeaheadMenuPluginProps = {\n anchorClassName?: string\n anchorElem: HTMLElement\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n onClose?: () => void\n onOpen?: (resolution: MenuResolution) => void\n onQueryChange: (matchingString: null | string) => void\n triggerFn: TriggerFn\n}\n\nexport const ENABLE_SLASH_MENU_COMMAND: LexicalCommand<{\n node: ParagraphNode\n}> = createCommand('ENABLE_SLASH_MENU_COMMAND')\n\nexport function LexicalTypeaheadMenuPlugin({\n anchorClassName,\n anchorElem,\n groups,\n menuRenderFn,\n onClose,\n onOpen,\n onQueryChange,\n triggerFn,\n}: TypeaheadMenuPluginProps): JSX.Element | null {\n const [editor] = useLexicalComposerContext()\n const [resolution, setResolution] = useState<MenuResolution | null>(null)\n const anchorElementRef = useMenuAnchorRef(anchorElem, resolution, setResolution, anchorClassName)\n\n const closeTypeahead = useCallback(() => {\n setResolution(null)\n if (onClose != null && resolution !== null) {\n onClose()\n }\n }, [onClose, resolution])\n\n const openTypeahead = useCallback(\n (res: MenuResolution) => {\n setResolution(res)\n if (onOpen != null && resolution === null) {\n onOpen(res)\n }\n },\n [onOpen, resolution],\n )\n\n // This is mainly used for the AddBlockHandlePlugin, so that the slash menu can be opened from there\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n ENABLE_SLASH_MENU_COMMAND,\n ({ node }) => {\n editor.getEditorState().read(() => {\n const match: MenuTextMatch = {\n leadOffset: 0,\n matchingString: '',\n replaceableString: '',\n }\n if (!isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n if (node !== null) {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n }\n\n return\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, openTypeahead])\n\n useEffect(() => {\n const updateListener = () => {\n editor.getEditorState().read(() => {\n const editorWindow = editor._window ?? window\n const range = editorWindow.document.createRange()\n const selection = $getSelection()\n const text = getQueryTextForSearch(editor)\n\n if (\n !$isRangeSelection(selection) ||\n !selection.isCollapsed() ||\n text === undefined ||\n range === null\n ) {\n closeTypeahead()\n return\n }\n\n const match = triggerFn({ editor, query: text })\n onQueryChange(match ? match.matchingString : null)\n\n if (match !== null && !isSelectionOnEntityBoundary(editor, match.leadOffset)) {\n const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow)\n if (isRangePositioned !== null) {\n startTransition(() =>\n openTypeahead({\n getRect: () => {\n return range.getBoundingClientRect()\n },\n match,\n }),\n )\n return\n }\n }\n closeTypeahead()\n })\n }\n\n const removeUpdateListener = editor.registerUpdateListener(updateListener)\n\n return () => {\n removeUpdateListener()\n }\n }, [editor, triggerFn, onQueryChange, resolution, closeTypeahead, openTypeahead])\n\n return anchorElementRef.current === null || resolution === null || editor === null ? null : (\n <LexicalMenu\n anchorElementRef={anchorElementRef}\n close={closeTypeahead}\n editor={editor}\n groups={groups}\n menuRenderFn={menuRenderFn}\n resolution={resolution}\n shouldSplitNodeWithQuery\n />\n )\n}\n\nexport type { MenuRenderFn, MenuResolution, MenuTextMatch, TriggerFn }\n", "'use client'\nimport type { BaseSelection, LexicalCommand, LexicalEditor, TextNode } from 'lexical'\nimport type { JSX, ReactPortal, RefObject } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { getScrollParent, mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $setSelection,\n COMMAND_PRIORITY_LOW,\n COMMAND_PRIORITY_NORMAL,\n createCommand,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { MenuTextMatch } from '../useMenuTriggerMatch.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js'\n\nimport { CAN_USE_DOM } from '../../../utils/canUseDOM.js'\n\nexport type MenuResolution = {\n getRect: () => DOMRect\n match?: MenuTextMatch\n}\n\nconst baseClass = 'slash-menu-popup'\n\nexport type MenuRenderFn = (\n anchorElementRef: RefObject<HTMLElement | null>,\n itemProps: {\n groups: Array<SlashMenuGroupInternal>\n selectedItemKey: null | string\n selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | null | ReactPortal\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) {\n return\n }\n\n const typeaheadRect = typeaheadContainerNode.getBoundingClientRect()\n\n if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n if (typeaheadRect.top < 0) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n target.scrollIntoView({ block: 'nearest' })\n}\n\n/**\n * Walk backwards along user input and forward through entity title to try\n * and replace more of the user's text with entity.\n */\nfunction getFullMatchOffset(documentText: string, entryText: string, offset: number) {\n let triggerOffset = offset\n for (let i = triggerOffset; i <= entryText.length; i++) {\n if (documentText.substring(documentText.length - i) === entryText.substring(0, i)) {\n triggerOffset = i\n }\n }\n return triggerOffset\n}\n\n/**\n * Split Lexical TextNode and return a new TextNode only containing matched text.\n * Common use cases include: removing the node, replacing with a new node.\n */\nfunction $splitNodeContainingQuery(match: MenuTextMatch): TextNode | undefined {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return\n }\n const selectionOffset = anchor.offset\n const textContent = anchorNode.getTextContent().slice(0, selectionOffset)\n const characterOffset = match.replaceableString.length\n const queryOffset = getFullMatchOffset(textContent, match.matchingString, characterOffset)\n const startOffset = selectionOffset - queryOffset\n if (startOffset < 0) {\n return\n }\n let newNode\n if (startOffset === 0) {\n ;[newNode] = anchorNode.splitText(selectionOffset)\n } else {\n ;[, newNode] = anchorNode.splitText(startOffset, selectionOffset)\n }\n\n return newNode\n}\n\nfunction isTriggerVisibleInNearestScrollContainer(\n targetElement: HTMLElement,\n containerElement: HTMLElement,\n): boolean {\n const tRect = targetElement.getBoundingClientRect()\n const cRect = containerElement.getBoundingClientRect()\n return tRect.top > cRect.top && tRect.top < cRect.bottom\n}\n\n// Reposition the menu on scroll, window resize, and element resize.\nexport function useDynamicPositioning(\n resolution: MenuResolution | null,\n targetElementRef: RefObject<HTMLElement | null>,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\n const targetElement = targetElementRef.current\n if (targetElement != null && resolution != null) {\n const rootElement = editor.getRootElement()\n const rootScrollParent =\n rootElement != null ? getScrollParent(rootElement, false) : document.body\n let ticking = false\n let previousIsInView = isTriggerVisibleInNearestScrollContainer(\n targetElement,\n rootScrollParent,\n )\n const handleScroll = function () {\n if (!ticking) {\n window.requestAnimationFrame(function () {\n onReposition()\n ticking = false\n })\n ticking = true\n }\n const isInView = isTriggerVisibleInNearestScrollContainer(targetElement, rootScrollParent)\n if (isInView !== previousIsInView) {\n previousIsInView = isInView\n if (onVisibilityChange != null) {\n onVisibilityChange(isInView)\n }\n }\n }\n const resizeObserver = new ResizeObserver(onReposition)\n window.addEventListener('resize', onReposition)\n document.addEventListener('scroll', handleScroll, {\n capture: true,\n passive: true,\n })\n resizeObserver.observe(targetElement)\n return () => {\n resizeObserver.disconnect()\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [editor, onVisibilityChange, onReposition, resolution, targetElementRef])\n}\n\nexport const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{\n index: number\n item: SlashMenuItemInternal\n}> = createCommand('SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND')\n\nexport function LexicalMenu({\n anchorElementRef,\n close,\n editor,\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n groups,\n menuRenderFn,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement | null>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n resolution: MenuResolution\n shouldSplitNodeWithQuery?: boolean\n}): JSX.Element | null {\n const [selectedItemKey, setSelectedItemKey] = useState<null | string>(null)\n\n const matchingString = (resolution.match && resolution.match.matchingString) || ''\n\n const updateSelectedItem = useCallback(\n (item: SlashMenuItem) => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.setAttribute('aria-activedescendant', `${baseClass}__item-${item.key}`)\n setSelectedItemKey(item.key)\n }\n },\n [editor],\n )\n\n const setSelectedItemKeyToFirstMatchingItem = useCallback(() => {\n // set selected item to the first of the matching ones\n if (groups !== null && matchingString != null) {\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n const allItems = groups.flatMap((group) => group.items)\n\n if (allItems.length) {\n const firstMatchingItem = allItems[0]!\n updateSelectedItem(firstMatchingItem)\n }\n }\n }, [groups, updateSelectedItem, matchingString])\n\n useEffect(() => {\n setSelectedItemKeyToFirstMatchingItem()\n }, [matchingString, setSelectedItemKeyToFirstMatchingItem])\n\n const selectItemAndCleanUp = useCallback(\n (selectedItem: SlashMenuItem) => {\n close()\n\n editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n if (textNodeContainingQuery) {\n textNodeContainingQuery.remove()\n }\n })\n\n setTimeout(() => {\n // Needed in Firefox. See https://github.com/payloadcms/payload/issues/10724\n let selection: BaseSelection | undefined\n editor.read(() => {\n selection = $getSelection()?.clone()\n })\n editor.update(() => {\n if (selection) {\n $setSelection(selection)\n }\n })\n\n selectedItem.onSelect({\n editor,\n queryString: resolution.match ? resolution.match.matchingString : '',\n })\n }, 0)\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, close],\n )\n\n useEffect(() => {\n return () => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.removeAttribute('aria-activedescendant')\n }\n }\n }, [editor])\n\n useLayoutEffect(() => {\n if (groups === null) {\n setSelectedItemKey(null)\n } else if (selectedItemKey === null) {\n setSelectedItemKeyToFirstMatchingItem()\n }\n }, [groups, selectedItemKey, updateSelectedItem, setSelectedItemKeyToFirstMatchingItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND,\n ({ item }) => {\n if (item.ref && item.ref.current != null) {\n scrollIntoViewIfNeeded(item.ref.current)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, updateSelectedItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_DOWN_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== allItems.length - 1 ? selectedIndex + 1 : 0\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n editor.dispatchCommand(SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND, {\n index: newSelectedIndex,\n item: newSelectedItem,\n })\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_UP_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== 0 ? selectedIndex - 1 : allItems.length - 1\n\n const newSelectedItem = allItems[newSelectedIndex]\n if (!newSelectedItem) {\n return false\n }\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n scrollIntoViewIfNeeded(newSelectedItem.ref.current)\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n (payload) => {\n const event = payload\n event.preventDefault()\n event.stopImmediatePropagation()\n close()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (payload) => {\n const event = payload\n\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n event.preventDefault()\n event.stopImmediatePropagation()\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n editor.registerCommand(\n KEY_ENTER_COMMAND,\n (event: KeyboardEvent | null) => {\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n if (event !== null) {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_NORMAL,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectedItemKey,\n selectItemAndCleanUp,\n setSelectedItemKey,\n }),\n [selectItemAndCleanUp, selectedItemKey, groups],\n )\n\n return menuRenderFn(\n anchorElementRef,\n listItemProps,\n resolution.match ? resolution.match.matchingString : '',\n )\n}\n\nfunction setContainerDivAttributes(containerDiv: HTMLElement, className?: string) {\n if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n}\n\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement | null> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement | null>(\n CAN_USE_DOM ? document.createElement('div') : null,\n )\n const positionMenu = useCallback(() => {\n if (anchorElementRef.current === null || parent === undefined) {\n return\n }\n const rootElement = editor.getRootElement()\n const containerDiv = anchorElementRef.current\n\n const VERTICAL_OFFSET = 32\n\n const menuEle = containerDiv.firstChild as Element\n if (rootElement !== null && resolution !== null) {\n const { height, width } = resolution.getRect()\n let { left, top } = resolution.getRect()\n\n const rawTop = top\n top -= anchorElem.getBoundingClientRect().top + window.scrollY\n left -= anchorElem.getBoundingClientRect().left + window.scrollX\n containerDiv.style.left = `${left + window.scrollX}px`\n containerDiv.style.height = `${height}px`\n containerDiv.style.width = `${width}px`\n if (menuEle !== null) {\n const menuRect = menuEle.getBoundingClientRect()\n const menuHeight = menuRect.height\n const menuWidth = menuRect.width\n\n const rootElementRect = rootElement.getBoundingClientRect()\n\n const isRTL = document.dir === 'rtl' || document.documentElement.dir === 'rtl'\n const anchorRect = anchorElem.getBoundingClientRect()\n const leftBoundary = Math.max(0, rootElementRect.left)\n\n if (!isRTL && left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + window.scrollX}px`\n } else if (isRTL && menuRect.left < leftBoundary) {\n const newLeft = leftBoundary + menuWidth - anchorRect.left\n containerDiv.style.left = `${newLeft + window.scrollX}px`\n }\n\n const wouldGoOffBottomOfScreen = rawTop + menuHeight + VERTICAL_OFFSET > window.innerHeight\n //const wouldGoOffBottomOfContainer = top + menuHeight > rootElementRect.bottom\n const wouldGoOffTopOfScreen = rawTop < 0\n\n // Position slash menu above the cursor instead of below (default) if it would otherwise go off the bottom of the screen.\n if (wouldGoOffBottomOfScreen && !wouldGoOffTopOfScreen) {\n const margin = 24\n containerDiv.style.top = `${\n top + VERTICAL_OFFSET - menuHeight + window.scrollY - (height + margin)\n }px`\n } else {\n containerDiv.style.top = `${top + window.scrollY + VERTICAL_OFFSET}px`\n }\n }\n\n if (!containerDiv.isConnected) {\n setContainerDivAttributes(containerDiv, className)\n anchorElem.append(containerDiv)\n }\n containerDiv.setAttribute('id', 'slash-menu')\n anchorElementRef.current = containerDiv\n rootElement.setAttribute('aria-controls', 'slash-menu')\n }\n }, [editor, resolution, className, anchorElem])\n\n useEffect(() => {\n const rootElement = editor.getRootElement()\n if (resolution !== null) {\n positionMenu()\n return () => {\n if (rootElement !== null) {\n rootElement.removeAttribute('aria-controls')\n }\n\n const containerDiv = anchorElementRef.current\n if (containerDiv !== null && containerDiv.isConnected) {\n containerDiv.remove()\n containerDiv.removeAttribute('id')\n }\n }\n }\n }, [editor, positionMenu, resolution])\n\n const onVisibilityChange = useCallback(\n (isInView: boolean) => {\n if (resolution !== null) {\n if (!isInView) {\n setResolution(null)\n }\n }\n },\n [resolution, setResolution],\n )\n\n useDynamicPositioning(resolution, anchorElementRef, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n", "'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", "import type {\n EditorConfig,\n Klass,\n LexicalEditor,\n LexicalNode,\n LexicalNodeReplacement,\n} from 'lexical'\n\nimport React from 'react'\n\nimport type { BlockDecorateFunction } from '../../features/blocks/client/nodes/BlocksNode.js'\nimport type { InlineBlockDecorateFunction } from '../../features/blocks/client/nodes/InlineBlocksNode.js'\nimport type { NodeWithHooks } from '../../features/typesServer.js'\nimport type {\n LexicalEditorNodeMap,\n NodeMapBlockValue,\n NodeMapInlineBlockValue,\n NodeMapValue,\n} from '../../types/index.js'\nimport type { SanitizedClientEditorConfig, SanitizedServerEditorConfig } from '../config/types.js'\n\n// Store view definitions for each editor and node type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst editorNodeViews = new WeakMap<LexicalEditor, Map<string, NodeMapValue<any>>>()\n\n/**\n * Register view definitions for an editor\n */\nexport function registerEditorNodeViews(\n editor: LexicalEditor,\n nodeViews: LexicalEditorNodeMap,\n): void {\n if (!editorNodeViews.has(editor)) {\n editorNodeViews.set(editor, new Map())\n }\n const editorViews = editorNodeViews.get(editor)!\n\n // Register each node type's view\n for (const [nodeType, value] of Object.entries(nodeViews)) {\n if (!value || typeof value !== 'object') {\n continue\n }\n\n // Handle blocks specially - store each block type with key 'block:blockType'\n if (nodeType === 'blocks') {\n for (const [blockType, viewDef] of Object.entries(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value as Record<string, NodeMapValue<any>>,\n )) {\n editorViews.set(`block:${blockType}`, viewDef)\n }\n continue\n }\n\n // Handle inlineBlocks specially - store each block type with key 'inlineBlock:blockType'\n if (nodeType === 'inlineBlocks') {\n for (const [blockType, viewDef] of Object.entries(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value as Record<string, NodeMapValue<any>>,\n )) {\n editorViews.set(`inlineBlock:${blockType}`, viewDef)\n }\n continue\n }\n\n // Regular node types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n editorViews.set(nodeType, value as NodeMapValue<any>)\n }\n}\n\n/**\n * Clear all view overrides for an editor (restores default rendering)\n */\nexport function clearEditorNodeViews(editor: LexicalEditor): void {\n editorNodeViews.delete(editor)\n}\n\n/**\n * Get the view definition for a specific editor and node\n */\nfunction getEditorNodeView(\n editor: LexicalEditor,\n nodeType: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): NodeMapValue<any> | undefined {\n const editorViews = editorNodeViews.get(editor)\n\n // For block nodes, look up by blockType\n if (nodeType === 'block' && node?.['__fields']?.blockType) {\n const blockType = node['__fields'].blockType\n return editorViews?.get(`block:${blockType}`)\n }\n\n // For inlineBlock nodes, look up by blockType\n if (nodeType === 'inlineBlock' && node?.['__fields']?.blockType) {\n const blockType = node['__fields'].blockType\n return editorViews?.get(`inlineBlock:${blockType}`)\n }\n\n // Regular node types\n return editorViews?.get(nodeType)\n}\n\n/**\n * Apply view overrides to a specific node type by modifying its prototype\n * Uses WeakMap to check per-editor at runtime\n */\nfunction applyNodeOverride({\n node,\n nodeType,\n}: {\n node: Klass<LexicalNode>\n nodeType: string\n}): void {\n if (!('getType' in node) || node.getType() !== nodeType) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const NodeClass = node as any\n\n // Store original methods if not already stored\n if (!NodeClass.prototype._originalDecorate) {\n NodeClass.prototype._originalDecorate = NodeClass.prototype.decorate\n }\n if (!NodeClass.prototype._originalCreateDOM) {\n NodeClass.prototype._originalCreateDOM = NodeClass.prototype.createDOM\n }\n\n // Override decorate method (for DecoratorNodes)\n if (NodeClass.prototype.decorate && !NodeClass.prototype._decorateOverridden) {\n NodeClass.prototype._decorateOverridden = true\n const hasCreateDOM = !!NodeClass.prototype.createDOM\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeClass.prototype.decorate = function (editor: LexicalEditor, config: EditorConfig): any {\n const viewDef = getEditorNodeView(editor, nodeType, this)\n\n if (viewDef) {\n // Priority 1: If Component is provided, use it\n if (viewDef.Component) {\n return viewDef.Component({\n config,\n editor,\n isEditor: true,\n isJSXConverter: false,\n node: this,\n })\n }\n\n // Priority 2: If custom createDOM is provided, use html in decorate\n if (viewDef.createDOM && viewDef.html) {\n const htmlContent =\n typeof viewDef.html === 'function'\n ? viewDef.html({ config, editor, isEditor: true, isJSXConverter: false, node: this })\n : viewDef.html\n return React.createElement('span', {\n dangerouslySetInnerHTML: { __html: htmlContent },\n })\n }\n\n // Priority 3: If only html is provided (no custom createDOM),\n // createDOM will handle it, so decorate returns empty fragment\n if (viewDef.html && hasCreateDOM && !viewDef.createDOM) {\n return React.createElement(React.Fragment)\n }\n\n if (nodeType === 'block') {\n const blockViewDef: NodeMapBlockValue = viewDef as NodeMapBlockValue\n if (blockViewDef.Block || blockViewDef.Label) {\n const originalDecorate: BlockDecorateFunction = NodeClass.prototype._originalDecorate\n\n // Pass Block FC to BlockContent for rendering\n // BlockContent will render with useBlockComponentContext hook (client-only)\n return originalDecorate.call(\n this,\n editor,\n config,\n blockViewDef.Block,\n blockViewDef.Label,\n )\n }\n } else if (nodeType === 'inlineBlock') {\n const blockViewDef: NodeMapInlineBlockValue = viewDef as NodeMapInlineBlockValue\n if (blockViewDef.Block || blockViewDef.Label) {\n const originalDecorate: InlineBlockDecorateFunction =\n NodeClass.prototype._originalDecorate\n\n // Pass Block FC to BlockContent for rendering\n // BlockContent will render with useBlockComponentContext hook (client-only)\n return originalDecorate.call(\n this,\n editor,\n config,\n blockViewDef.Block,\n blockViewDef.Label,\n )\n }\n }\n }\n\n const originalDecorate: BlockDecorateFunction | InlineBlockDecorateFunction =\n NodeClass.prototype._originalDecorate\n\n // Otherwise use original\n return originalDecorate.call(this, editor, config)\n }\n }\n\n // Override createDOM method (for ElementNodes)\n if (NodeClass.prototype.createDOM && !NodeClass.prototype._createDOMOverridden) {\n NodeClass.prototype._createDOMOverridden = true\n NodeClass.prototype.createDOM = function (\n config: EditorConfig,\n editor: LexicalEditor,\n ): HTMLElement {\n const viewDef = getEditorNodeView(editor, nodeType, this)\n\n if (viewDef) {\n // If createDOM is provided, use it\n if (viewDef.createDOM) {\n return viewDef.createDOM({ config, editor, node: this })\n }\n\n // If html is provided (as a function or string), create element from it\n if (viewDef.html) {\n const htmlContent =\n typeof viewDef.html === 'function'\n ? viewDef.html({ config, editor, isEditor: true, isJSXConverter: false, node: this })\n : viewDef.html\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = htmlContent\n return (tempDiv.firstElementChild as HTMLElement) || tempDiv\n }\n }\n\n // Otherwise use original\n return NodeClass.prototype._originalCreateDOM.call(this, config, editor)\n }\n }\n}\n\nexport function getEnabledNodes({\n editorConfig,\n nodeViews,\n}: {\n editorConfig: SanitizedClientEditorConfig | SanitizedServerEditorConfig\n nodeViews?: LexicalEditorNodeMap\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n const nodes = getEnabledNodesFromServerNodes({\n nodes: editorConfig.features.nodes,\n })\n\n if (nodeViews) {\n // Apply node overrides by modifying prototypes (once globally)\n // The overrides check per-editor at runtime using WeakMap\n const nodeTypesToOverride = new Set<string>()\n\n for (const [key, value] of Object.entries(nodeViews)) {\n if (!value || typeof value !== 'object') {\n continue\n }\n\n // If 'blocks' key exists with content, we need to override 'block' nodes\n if (key === 'blocks' && Object.keys(value).length > 0) {\n nodeTypesToOverride.add('block')\n }\n // If 'inlineBlocks' key exists with content, we need to override 'inlineBlock' nodes\n else if (key === 'inlineBlocks' && Object.keys(value).length > 0) {\n nodeTypesToOverride.add('inlineBlock')\n }\n // Regular node types\n else {\n nodeTypesToOverride.add(key)\n }\n }\n\n for (const node of nodes) {\n if ('getType' in node) {\n const nodeType = node.getType()\n\n if (nodeTypesToOverride.has(nodeType)) {\n applyNodeOverride({ node, nodeType })\n }\n }\n }\n }\n\n return nodes\n}\n\nexport function getEnabledNodesFromServerNodes({\n nodes,\n}: {\n nodes: Array<Klass<LexicalNode> | LexicalNodeReplacement> | Array<NodeWithHooks>\n}): Array<Klass<LexicalNode> | LexicalNodeReplacement> {\n return nodes.map((node) => {\n if ('node' in node) {\n return node.node\n }\n return node\n })\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["CAN_USE_DOM", "window", "document", "createElement", "c", "_c", "useRef", "useRunDeprioritized", "t0", "$", "timeout", "undefined", "idleHandleRef", "t1", "fn", "Promise", "resolve", "exec", "window", "current", "cancelIdleCallback", "requestIdleCallback", "interactionResponse", "then", "setTimeout", "requestAnimationFrame", "useControllableState", "createContext", "use", "useMemo", "RichTextViewContext", "currentView", "inheritable", "setCurrentView", "RichTextViewProvider", "args", "parentContext", "useRichTextView", "hasOwnExplicitView", "undefined", "isControlledByParent", "Boolean", "views", "hasExplicitCurrentView", "children", "currentViewFromProps", "currentViewRaw", "value", "currentViewMap", "_jsx", "Point", "_x", "_y", "constructor", "x", "y", "calcDeltaXTo", "calcDeltaYTo", "calcDistanceTo", "point", "Math", "sqrt", "pow", "calcHorizontalDistanceTo", "abs", "calcVerticalDistance", "equals", "isPoint", "useLexicalComposerContext", "mergeRegister", "$getSelection", "$isRangeSelection", "$isTextNode", "COMMAND_PRIORITY_LOW", "createCommand", "getDOMSelection", "useCallback", "useEffect", "useState", "React", "c", "_c", "useLexicalComposerContext", "getScrollParent", "mergeRegister", "$getSelection", "$isRangeSelection", "$setSelection", "COMMAND_PRIORITY_LOW", "COMMAND_PRIORITY_NORMAL", "createCommand", "KEY_ARROW_DOWN_COMMAND", "KEY_ARROW_UP_COMMAND", "KEY_ENTER_COMMAND", "KEY_ESCAPE_COMMAND", "KEY_TAB_COMMAND", "useCallback", "useEffect", "useLayoutEffect", "useMemo", "useRef", "useState", "baseClass", "scrollIntoViewIfNeeded", "target", "typeaheadContainerNode", "document", "getElementById", "typeaheadRect", "getBoundingClientRect", "top", "height", "window", "innerHeight", "scrollIntoView", "block", "getFullMatchOffset", "documentText", "entryText", "offset", "triggerOffset", "i", "length", "substring", "$splitNodeContainingQuery", "match", "selection", "$getSelection", "$isRangeSelection", "isCollapsed", "anchor", "type", "anchorNode", "getNode", "isSimpleText", "selectionOffset", "textContent", "getTextContent", "slice", "characterOffset", "replaceableString", "queryOffset", "matchingString", "startOffset", "newNode", "splitText", "isTriggerVisibleInNearestScrollContainer", "targetElement", "containerElement", "tRect", "cRect", "bottom", "useDynamicPositioning", "resolution", "targetElementRef", "onReposition", "onVisibilityChange", "$", "_c", "editor", "useLexicalComposerContext", "t0", "t1", "current", "rootElement", "getRootElement", "rootScrollParent", "getScrollParent", "body", "ticking", "previousIsInView", "handleScroll", "requestAnimationFrame", "isInView", "resizeObserver", "ResizeObserver", "addEventListener", "capture", "passive", "observe", "disconnect", "removeEventListener", "useEffect", "SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND", "createCommand", "LexicalMenu", "anchorElementRef", "close", "groups", "menuRenderFn", "shouldSplitNodeWithQuery", "selectedItemKey", "setSelectedItemKey", "useState", "updateSelectedItem", "useCallback", "item", "rootElem", "setAttribute", "key", "setSelectedItemKeyToFirstMatchingItem", "allItems", "flatMap", "group", "items", "firstMatchingItem", "selectItemAndCleanUp", "selectedItem", "update", "textNodeContainingQuery", "remove", "setTimeout", "read", "clone", "$setSelection", "onSelect", "queryString", "removeAttribute", "useLayoutEffect", "mergeRegister", "registerCommand", "ref", "COMMAND_PRIORITY_LOW", "KEY_ARROW_DOWN_COMMAND", "payload", "event", "selectedIndex", "findIndex", "newSelectedIndex", "newSelectedItem", "dispatchCommand", "index", "preventDefault", "stopImmediatePropagation", "COMMAND_PRIORITY_NORMAL", "KEY_ARROW_UP_COMMAND", "KEY_ESCAPE_COMMAND", "KEY_TAB_COMMAND", "find", "KEY_ENTER_COMMAND", "listItemProps", "useMemo", "setContainerDivAttributes", "containerDiv", "className", "style", "display", "position", "useMenuAnchorRef", "anchorElem", "setResolution", "Symbol", "for", "CAN_USE_DOM", "createElement", "useRef", "parent", "undefined", "menuEle", "firstChild", "width", "getRect", "left", "rawTop", "scrollY", "scrollX", "menuRect", "menuHeight", "menuWidth", "rootElementRect", "isRTL", "dir", "documentElement", "anchorRect", "leftBoundary", "Math", "max", "right", "newLeft", "wouldGoOffBottomOfScreen", "wouldGoOffTopOfScreen", "isConnected", "append", "positionMenu", "t2", "t3", "rootElement_0", "containerDiv_0", "t4", "PUNCTUATION", "getTextUpToAnchor", "selection", "anchor", "type", "anchorNode", "getNode", "isSimpleText", "anchorOffset", "offset", "getTextContent", "slice", "tryToPositionRange", "leadOffset", "range", "editorWindow", "domSelection", "getDOMSelection", "isCollapsed", "startOffset", "endOffset", "setStart", "setEnd", "getQueryTextForSearch", "editor", "text", "getEditorState", "read", "$getSelection", "$isRangeSelection", "isSelectionOnEntityBoundary", "prevSibling", "getPreviousSibling", "$isTextNode", "isTextEntity", "startTransition", "callback", "ENABLE_SLASH_MENU_COMMAND", "createCommand", "LexicalTypeaheadMenuPlugin", "anchorClassName", "anchorElem", "groups", "menuRenderFn", "onClose", "onOpen", "onQueryChange", "triggerFn", "useLexicalComposerContext", "resolution", "setResolution", "useState", "anchorElementRef", "useMenuAnchorRef", "closeTypeahead", "useCallback", "openTypeahead", "res", "useEffect", "mergeRegister", "registerCommand", "node", "match", "matchingString", "replaceableString", "_window", "window", "document", "createRange", "getRect", "getBoundingClientRect", "COMMAND_PRIORITY_LOW", "updateListener", "undefined", "query", "removeUpdateListener", "registerUpdateListener", "current", "_jsx", "LexicalMenu", "close", "shouldSplitNodeWithQuery", "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", "isPoint", "isOnTopSide", "isOnBottomSide", "isOnLeftSide", "isOnRightSide", "reason", "result", "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", "React", "editorNodeViews", "WeakMap", "registerEditorNodeViews", "editor", "nodeViews", "has", "set", "Map", "editorViews", "get", "nodeType", "value", "Object", "entries", "blockType", "viewDef", "clearEditorNodeViews", "delete", "getEditorNodeView", "node", "applyNodeOverride", "getType", "NodeClass", "prototype", "_originalDecorate", "decorate", "_originalCreateDOM", "createDOM", "_decorateOverridden", "hasCreateDOM", "config", "Component", "isEditor", "isJSXConverter", "html", "htmlContent", "createElement", "dangerouslySetInnerHTML", "__html", "Fragment", "blockViewDef", "Block", "Label", "call", "_createDOMOverridden", "tempDiv", "document", "innerHTML", "firstElementChild", "getEnabledNodes", "editorConfig", "nodes", "getEnabledNodesFromServerNodes", "features", "nodeTypesToOverride", "Set", "key", "keys", "length", "add", "map"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use client";import{a as E,b as U,e as P}from"./chunk-43E5QYAA.js";import{c as y}from"./chunk-5VIL27GI.js";import{a as L}from"./chunk-WSAPGI3Z.js";import{b as f}from"./chunk-RJ5MAOKZ.js";import{jsx as o,jsxs as g}from"react/jsx-runtime";import{useLexicalComposerContext as ae}from"@lexical/react/LexicalComposerContext.js";import{useLexicalEditable as le}from"@lexical/react/useLexicalEditable";import{getTranslation as T}from"@payloadcms/translations";import{Button as h,formatDrawerSlug as se,Pill as ie,Thumbnail as re,useConfig as ne,useEditDepth as de,usePayloadAPI as ce,useTranslation as ue}from"@payloadcms/ui";import{$getNodeByKey as F,$getSelection as me,$isNodeSelection as pe,$isRangeSelection as fe}from"lexical";import{formatAdminURL as ge,isImage as he}from"payload/shared";import{useCallback as _,useEffect as I,useId as _e,useReducer as we,useRef as be,useState as j}from"react";var k={depth:0},Ie=z=>{let{className:e,data:{fields:A,relationTo:w,value:c},format:B,nodeKey:l}=z;if(typeof c=="object")throw new Error("Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.");let{config:{routes:{api:K},serverURL:M},getEntityConfig:O}=ne(),b=be(null),{uuid:W}=f(),H=de(),[s]=ae(),{editorConfig:q,fieldProps:{schemaPath:G}}=f(),u=le(),{i18n:D,t:n}=ue(),[S,m]=j(!1),[$,J]=we(a=>a+1,0),[i]=j(()=>O({collectionSlug:w})),Q=_e(),x=se({slug:"lexical-upload-drawer-"+W+Q,depth:H}),{toggleDrawer:V}=y(x,!0),{closeDocumentDrawer:C,DocumentDrawer:X,DocumentDrawerToggler:Y}=L({id:c,collectionSlug:i.slug}),[{data:t},{setParams:N}]=ce(ge({apiRoute:K,path:`/${i.slug}/${c}`,serverURL:M}),{initialParams:k}),v=t?.thumbnailURL||t?.url;I(()=>s.registerUpdateListener(({editorState:a})=>{a.read(()=>{let r=me();if(pe(r))m(r.has(l));else if(fe(r)){let d=r.getNodes();m(d.some(p=>p.getKey()===l))}else m(!1)})}),[s,l]),I(()=>{let a=b.current?.closest(`.${e}`);a&&a.classList.toggle(`${e}--selected`,S)},[S,e]);let Z=_(()=>{s.update(()=>{F(l)?.remove()})},[s,l]),ee=_(a=>{N({...k,cacheBust:$}),J(),C()},[N,$,C]),R=q?.resolvedFeatureMap?.get("upload")?.sanitizedClientFeatureProps.collections?.[i.slug]?.hasExtraFields,te=_((a,r)=>{s.update(()=>{let d=F(l);if(P(d)){let p={...d.getData(),fields:r};d.setData(p)}})},[s,l]),oe=v&&t?.width&&t?.height?t.width>t.height?"landscape":"portrait":"landscape";return g("div",{className:`${e}__contents ${e}__contents--${oe}`,"data-align":B||void 0,"data-filename":t?.filename,ref:b,children:[o("div",{className:`${e}__card`,children:g("div",{className:`${e}__media`,children:[o(re,{collectionSlug:w,fileSrc:he(t?.mimeType)?v:null,height:t?.height,size:"none",width:t?.width}),u&&g("div",{className:`${e}__floater`,"data-theme":"dark",children:[o(ie,{className:`${e}__collectionLabel`,pillStyle:"dark",size:"small",children:T(i.labels.singular,D)}),o(Y,{className:`${e}__doc-drawer-toggler`,children:o("span",{className:`${e}__filename`,children:t?.filename||n("general:untitled")})}),R?o(h,{buttonStyle:"ghost",className:`${e}__upload-drawer-toggler`,disabled:!u,el:"button",icon:"write",onClick:V,round:!0,size:"medium",tooltip:n("fields:editRelationship")}):null,o("div",{className:`${e}__divider`}),o(h,{buttonStyle:"ghost",className:`${e}__swap-drawer-toggler`,disabled:!u,el:"button",icon:"swap",onClick:()=>{s.dispatchCommand(U,{replace:{nodeKey:l}})},round:!0,size:"medium",tooltip:n("fields:swapUpload")}),o(h,{buttonStyle:"ghost",className:`${e}__removeButton`,disabled:!u,icon:"x",onClick:a=>{a.preventDefault(),Z()},round:!0,size:"medium",tooltip:n("fields:removeUpload")})]})]})}),c?o(X,{onSave:ee}):null,R?o(E,{data:A,drawerSlug:x,drawerTitle:n("general:editLabel",{label:T(i.labels.singular,D)}),featureKey:"upload",handleDrawerSubmit:te,schemaPath:G,schemaPathSuffix:i.slug}):null]})};export{Ie as UploadComponent};
2
+ //# sourceMappingURL=component-D5QLYS7W.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/upload/client/component/index.tsx"],
4
+ "sourcesContent": ["'use client'\nimport type { ClientCollectionConfig, Data, FormState, JsonObject } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n formatDrawerSlug,\n Pill,\n Thumbnail,\n useConfig,\n useEditDepth,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n $isRangeSelection,\n type ElementFormatType,\n} from 'lexical'\nimport { formatAdminURL, isImage } from 'payload/shared'\nimport React, { useCallback, useEffect, useId, useReducer, useRef, useState } from 'react'\n\nimport type { BaseClientFeatureProps } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/schema.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDocumentDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDocumentDrawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport { $isUploadNode } from '../nodes/UploadNode.js'\nimport './index.css'\n\nconst initialParams = {\n depth: 0,\n}\n\nexport type ElementProps = {\n className: string\n data: UploadData\n format?: ElementFormatType\n nodeKey: string\n}\n\nexport const UploadComponent: React.FC<ElementProps> = (props) => {\n const {\n className: baseClass,\n data: { fields, relationTo, value },\n format,\n nodeKey,\n } = props\n\n if (typeof value === 'object') {\n throw new Error(\n 'Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.',\n )\n }\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n const uploadRef = useRef<HTMLDivElement | null>(null)\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n const [editor] = useLexicalComposerContext()\n\n const {\n editorConfig,\n fieldProps: { schemaPath },\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n const { i18n, t } = useTranslation()\n const [isSelected, setIsSelected] = useState(false)\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [relatedCollection] = useState<ClientCollectionConfig>(() =>\n getEntityConfig({ collectionSlug: relationTo }),\n )\n\n const componentID = useId()\n\n const extraFieldsDrawerSlug = formatDrawerSlug({\n slug: `lexical-upload-drawer-` + uuid + componentID, // There can be multiple upload components, each with their own drawer, in one single editor => separate them by componentID\n depth: editDepth,\n })\n\n // Need to use hook to initialize useEffect that restores cursor position\n const { toggleDrawer } = useLexicalDrawer(extraFieldsDrawerSlug, true)\n\n const { closeDocumentDrawer, DocumentDrawer, DocumentDrawerToggler } = useLexicalDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n // Get the referenced document\n const [{ data }, { setParams }] = usePayloadAPI(\n formatAdminURL({ apiRoute: api, path: `/${relatedCollection.slug}/${value}`, serverURL }),\n { initialParams },\n )\n\n const thumbnailSRC = data?.thumbnailURL || data?.url\n\n useEffect(() => {\n return editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n const selection = $getSelection()\n\n if ($isNodeSelection(selection)) {\n setIsSelected(selection.has(nodeKey))\n } else if ($isRangeSelection(selection)) {\n const nodes = selection.getNodes()\n setIsSelected(nodes.some((node) => node.getKey() === nodeKey))\n } else {\n setIsSelected(false)\n }\n })\n })\n }, [editor, nodeKey])\n\n useEffect(() => {\n const outerEl = uploadRef.current?.closest(`.${baseClass}`)\n\n if (outerEl) {\n outerEl.classList.toggle(`${baseClass}--selected`, isSelected)\n }\n }, [isSelected, baseClass])\n\n const removeUpload = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const updateUpload = useCallback(\n (_data: Data) => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n dispatchCacheBust()\n closeDocumentDrawer()\n },\n [setParams, cacheBust, closeDocumentDrawer],\n )\n\n const hasExtraFields = (\n editorConfig?.resolvedFeatureMap?.get('upload')\n ?.sanitizedClientFeatureProps as BaseClientFeatureProps<UploadFeaturePropsClient>\n ).collections?.[relatedCollection.slug]?.hasExtraFields\n\n const onExtraFieldsDrawerSubmit = useCallback(\n (_: FormState, data: JsonObject) => {\n // Update lexical node (with key nodeKey) with new data\n editor.update(() => {\n const uploadNode = $getNodeByKey(nodeKey)\n if ($isUploadNode(uploadNode)) {\n const newData: UploadData = {\n ...uploadNode.getData(),\n fields: data,\n }\n uploadNode.setData(newData)\n }\n })\n },\n [editor, nodeKey],\n )\n\n const aspectRatio =\n thumbnailSRC && data?.width && data?.height\n ? data.width > data.height\n ? 'landscape'\n : 'portrait'\n : 'landscape'\n\n return (\n <div\n className={`${baseClass}__contents ${baseClass}__contents--${aspectRatio}`}\n data-align={format || undefined}\n data-filename={data?.filename}\n ref={uploadRef}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__media`}>\n <Thumbnail\n collectionSlug={relationTo}\n fileSrc={isImage(data?.mimeType) ? thumbnailSRC : null}\n height={data?.height}\n size=\"none\"\n width={data?.width}\n />\n\n {isEditable && (\n <div className={`${baseClass}__floater`} data-theme=\"dark\">\n <Pill className={`${baseClass}__collectionLabel`} pillStyle=\"dark\" size=\"small\">\n {getTranslation(relatedCollection.labels.singular, i18n)}\n </Pill>\n\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <span className={`${baseClass}__filename`}>\n {data?.filename || t('general:untitled')}\n </span>\n </DocumentDrawerToggler>\n\n {hasExtraFields ? (\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__upload-drawer-toggler`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"write\"\n onClick={toggleDrawer}\n round\n size=\"medium\"\n tooltip={t('fields:editRelationship')}\n />\n ) : null}\n\n <div className={`${baseClass}__divider`} />\n\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__swap-drawer-toggler`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n size=\"medium\"\n tooltip={t('fields:swapUpload')}\n />\n\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__removeButton`}\n disabled={!isEditable}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeUpload()\n }}\n round\n size=\"medium\"\n tooltip={t('fields:removeUpload')}\n />\n </div>\n )}\n </div>\n </div>\n\n {value ? <DocumentDrawer onSave={updateUpload} /> : null}\n {hasExtraFields ? (\n <FieldsDrawer\n data={fields}\n drawerSlug={extraFieldsDrawerSlug}\n drawerTitle={t('general:editLabel', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n featureKey=\"upload\"\n handleDrawerSubmit={onExtraFieldsDrawerSubmit}\n schemaPath={schemaPath}\n schemaPathSuffix={relatedCollection.slug}\n />\n ) : null}\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["useLexicalComposerContext", "useLexicalEditable", "getTranslation", "Button", "formatDrawerSlug", "Pill", "Thumbnail", "useConfig", "useEditDepth", "usePayloadAPI", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "$isRangeSelection", "formatAdminURL", "isImage", "useCallback", "useEffect", "useId", "useReducer", "useRef", "useState", "initialParams", "UploadComponent", "props", "baseClass", "className", "data", "fields", "relationTo", "format", "nodeKey", "value", "config", "routes", "serverURL", "getEntityConfig", "useConfig", "useRef", "uploadRef", "uuid", "useEditorConfigContext", "editDepth", "useLexicalComposerContext", "editorConfig", "fieldProps", "isEditable", "i18n", "t", "useTranslation", "setIsSelected", "useState", "isSelected", "dispatchCacheBust", "state", "cacheBust", "useReducer", "relatedCollection", "collectionSlug", "componentID", "useId", "formatDrawerSlug", "extraFieldsDrawerSlug", "slug", "toggleDrawer", "useLexicalDrawer", "closeDocumentDrawer", "DocumentDrawer", "DocumentDrawerToggler", "useLexicalDocumentDrawer", "id", "setParams", "usePayloadAPI", "apiRoute", "api", "path", "thumbnailSRC", "useEffect", "editor", "editorState", "$getSelection", "$isNodeSelection", "selection", "nodes", "$isRangeSelection", "getNodes", "node", "outerEl", "removeUpload", "useCallback", "_data", "updateUpload", "hasExtraFields", "resolvedFeatureMap", "update", "$getNodeByKey", "$isUploadNode", "uploadNode", "newData", "aspectRatio", "ref", "_jsx", "_jsxs", "Thumbnail", "fileSrc", "isImage", "height", "size", "width", "Pill", "pillStyle", "getTranslation", "labels", "buttonStyle", "disabled", "el", "icon", "onClick", "round", "tooltip", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "dispatchCommand", "replace", "Button", "e", "preventDefault", "onSave", "drawerSlug", "drawerTitle", "featureKey", "onExtraFieldsDrawerSubmit", "handleDrawerSubmit", "schemaPath", "schemaPathSuffix"]
7
+ }
@@ -31,7 +31,7 @@ export { toolbarTextDropdownGroupWithItems } from '../../features/shared/toolbar
31
31
  export { FixedToolbarFeatureClient } from '../../features/toolbars/fixed/client/index.js';
32
32
  export { InlineToolbarFeatureClient } from '../../features/toolbars/inline/client/index.js';
33
33
  export { ToolbarButton } from '../../features/toolbars/shared/ToolbarButton/index.js';
34
- export { TableFeatureClient } from '../../features/experimental_table/client/index.js';
34
+ export { TableFeatureClient } from '../../features/table/client/index.js';
35
35
  export { ToolbarDropdown } from '../../features/toolbars/shared/ToolbarDropdown/index.js';
36
36
  export { UploadFeatureClient } from '../../features/upload/client/index.js';
37
37
  export { RichTextField } from '../../field/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAE5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EACL,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,iDAAiD,CAAA;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAA;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAA;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAA;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAA;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAA;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAA;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAA;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAA;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAA;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AAEzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAEvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAA;AAChG,OAAO,EAAE,gCAAgC,EAAE,MAAM,mDAAmD,CAAA;AACpG,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAA;AAC1G,OAAO,EAAE,iCAAiC,EAAE,MAAM,oDAAoD,CAAA;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAA;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,yDAAyD,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,qDAAqD,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;AAEnF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAA;AACjF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAA;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,6DAA6D,CAAA;AAElH,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAE5E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,qEAAqE,CAAA;AAE/G,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,GACX,MAAM,kDAAkD,CAAA;AAEzD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,8DAA8D,CAAA;AAErE,OAAO,EACL,eAAe,EACf,WAAW,EACX,QAAQ,EACR,mBAAmB,GACpB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,GACb,MAAM,2CAA2C,CAAA;AAElD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,SAAS,GACV,MAAM,kDAAkD,CAAA;AAEzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,GAChB,MAAM,wDAAwD,CAAA;AAE/D,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kEAAkE,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAA;AACnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAA;AAE3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kFAAkF,CAAA;AACxH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oFAAoF,CAAA;AAC5H,OAAO,EAAE,gBAAgB,EAAE,MAAM,6EAA6E,CAAA;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,iFAAiF,CAAA;AACtH,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uEAAuE,CAAA;AACxG,OAAO,EAAE,eAAe,EAAE,MAAM,sEAAsE,CAAA;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wEAAwE,CAAA;AAC1G,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAA;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4DAA4D,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4DAA4D,CAAA;AAEpG,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAC/F,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA"}