@payloadcms/richtext-lexical 3.0.0-beta.9 → 3.0.0-beta.91

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 (2310) hide show
  1. package/README.md +1 -1
  2. package/dist/cell/index.d.ts +6 -3
  3. package/dist/cell/index.d.ts.map +1 -1
  4. package/dist/cell/index.js +127 -123
  5. package/dist/cell/index.js.map +1 -1
  6. package/dist/exports/client/Component-DOSSWC76.js +2 -0
  7. package/dist/exports/client/Component-DOSSWC76.js.map +7 -0
  8. package/dist/exports/client/Component-MBLHTKDK.js +2 -0
  9. package/dist/exports/client/Component-MBLHTKDK.js.map +7 -0
  10. package/dist/exports/client/Field-SUWHJ4HF.js +2 -0
  11. package/dist/exports/client/Field-SUWHJ4HF.js.map +7 -0
  12. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js +2 -0
  13. package/dist/exports/client/RelationshipComponent-EZORSGUZ.js.map +7 -0
  14. package/dist/exports/client/bundled.css +1 -0
  15. package/dist/exports/client/chunk-OLSILJA6.js +2 -0
  16. package/dist/exports/client/chunk-OLSILJA6.js.map +7 -0
  17. package/dist/exports/client/chunk-TD7O23AB.js +2 -0
  18. package/dist/exports/client/chunk-TD7O23AB.js.map +7 -0
  19. package/dist/exports/client/chunk-UJDWBQ2K.js +2 -0
  20. package/dist/exports/client/chunk-UJDWBQ2K.js.map +7 -0
  21. package/dist/exports/client/chunk-V2LKLT2F.js +3 -0
  22. package/dist/exports/client/chunk-V2LKLT2F.js.map +7 -0
  23. package/dist/exports/client/chunk-YL453UOS.js +2 -0
  24. package/dist/exports/client/chunk-YL453UOS.js.map +7 -0
  25. package/dist/exports/client/chunk-YSI2QILQ.js +2 -0
  26. package/dist/exports/client/chunk-YSI2QILQ.js.map +7 -0
  27. package/dist/exports/client/component-2YLEVOFH.js +2 -0
  28. package/dist/exports/client/component-2YLEVOFH.js.map +7 -0
  29. package/dist/exports/client/component-7RAP75FW.js +2 -0
  30. package/dist/exports/client/component-7RAP75FW.js.map +7 -0
  31. package/dist/exports/client/component-LLWMZU6K.js +2 -0
  32. package/dist/exports/client/component-LLWMZU6K.js.map +7 -0
  33. package/dist/exports/client/componentInline-YSHGRL2J.js +2 -0
  34. package/dist/exports/client/componentInline-YSHGRL2J.js.map +7 -0
  35. package/dist/exports/client/index.d.ts +62 -0
  36. package/dist/exports/client/index.d.ts.map +1 -0
  37. package/dist/exports/client/index.js +38 -0
  38. package/dist/exports/client/index.js.map +7 -0
  39. package/dist/exports/server/migrate.d.ts +16 -0
  40. package/dist/exports/server/migrate.d.ts.map +1 -0
  41. package/dist/exports/server/migrate.js +16 -0
  42. package/dist/exports/server/migrate.js.map +1 -0
  43. package/dist/features/align/client/index.d.ts +5 -0
  44. package/dist/features/align/client/index.d.ts.map +1 -0
  45. package/dist/features/align/client/index.js +163 -0
  46. package/dist/features/align/client/index.js.map +1 -0
  47. package/dist/features/align/client/toolbarAlignGroup.d.ts +3 -0
  48. package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -0
  49. package/dist/features/align/client/toolbarAlignGroup.js +13 -0
  50. package/dist/features/align/client/toolbarAlignGroup.js.map +1 -0
  51. package/dist/features/align/server/i18n.d.ts +3 -0
  52. package/dist/features/align/server/i18n.d.ts.map +1 -0
  53. package/dist/features/align/server/i18n.js +195 -0
  54. package/dist/features/align/server/i18n.js.map +1 -0
  55. package/dist/features/align/server/index.d.ts +2 -0
  56. package/dist/features/align/server/index.d.ts.map +1 -0
  57. package/dist/features/align/server/index.js +10 -0
  58. package/dist/features/align/server/index.js.map +1 -0
  59. package/dist/features/blockquote/client/index.d.ts +5 -0
  60. package/dist/features/blockquote/client/index.d.ts.map +1 -0
  61. package/dist/features/blockquote/client/index.js +72 -0
  62. package/dist/features/blockquote/client/index.js.map +1 -0
  63. package/dist/features/blockquote/markdownTransformer.d.ts.map +1 -0
  64. package/dist/features/blockquote/markdownTransformer.js +34 -0
  65. package/dist/features/blockquote/markdownTransformer.js.map +1 -0
  66. package/dist/features/blockquote/server/i18n.d.ts +3 -0
  67. package/dist/features/blockquote/server/i18n.d.ts.map +1 -0
  68. package/dist/features/blockquote/server/i18n.js +99 -0
  69. package/dist/features/blockquote/server/i18n.js.map +1 -0
  70. package/dist/features/blockquote/server/index.d.ts +7 -0
  71. package/dist/features/blockquote/server/index.d.ts.map +1 -0
  72. package/dist/features/blockquote/server/index.js +47 -0
  73. package/dist/features/blockquote/server/index.js.map +1 -0
  74. package/dist/features/blocks/client/component/BlockContent.d.ts +22 -0
  75. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -0
  76. package/dist/features/blocks/client/component/BlockContent.js +192 -0
  77. package/dist/features/blocks/client/component/BlockContent.js.map +1 -0
  78. package/dist/features/blocks/client/component/FormSavePlugin.d.ts +11 -0
  79. package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +1 -0
  80. package/dist/features/blocks/client/component/FormSavePlugin.js +53 -0
  81. package/dist/features/blocks/client/component/FormSavePlugin.js.map +1 -0
  82. package/dist/features/blocks/client/component/index.d.ts +11 -0
  83. package/dist/features/blocks/client/component/index.d.ts.map +1 -0
  84. package/dist/features/blocks/client/component/index.js +145 -0
  85. package/dist/features/blocks/client/component/index.js.map +1 -0
  86. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts +11 -0
  87. package/dist/features/blocks/client/component/removeEmptyArrayValues.d.ts.map +1 -0
  88. package/dist/features/blocks/client/component/removeEmptyArrayValues.js +20 -0
  89. package/dist/features/blocks/client/component/removeEmptyArrayValues.js.map +1 -0
  90. package/dist/features/blocks/client/componentInline/index.d.ts +10 -0
  91. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -0
  92. package/dist/features/blocks/client/componentInline/index.js +122 -0
  93. package/dist/features/blocks/client/componentInline/index.js.map +1 -0
  94. package/dist/features/blocks/client/index.d.ts +9 -0
  95. package/dist/features/blocks/client/index.d.ts.map +1 -0
  96. package/dist/features/blocks/client/index.js +159 -0
  97. package/dist/features/blocks/client/index.js.map +1 -0
  98. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +14 -0
  99. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -0
  100. package/dist/features/blocks/client/nodes/BlocksNode.js +53 -0
  101. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -0
  102. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +25 -0
  103. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -0
  104. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +42 -0
  105. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -0
  106. package/dist/features/blocks/client/plugin/commands.d.ts +9 -0
  107. package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -0
  108. package/dist/features/blocks/client/plugin/commands.js +7 -0
  109. package/dist/features/blocks/client/plugin/commands.js.map +1 -0
  110. package/dist/features/blocks/client/plugin/index.d.ts +6 -0
  111. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -0
  112. package/dist/features/blocks/client/plugin/index.js +202 -0
  113. package/dist/features/blocks/client/plugin/index.js.map +1 -0
  114. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts +6 -0
  115. package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -0
  116. package/dist/features/blocks/server/graphQLPopulationPromise.js +44 -0
  117. package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -0
  118. package/dist/features/blocks/server/i18n.d.ts +3 -0
  119. package/dist/features/blocks/server/i18n.d.ts.map +1 -0
  120. package/dist/features/blocks/server/i18n.js +291 -0
  121. package/dist/features/blocks/server/i18n.js.map +1 -0
  122. package/dist/features/blocks/server/index.d.ts +8 -0
  123. package/dist/features/blocks/server/index.d.ts.map +1 -0
  124. package/dist/features/blocks/server/index.js +160 -0
  125. package/dist/features/blocks/server/index.js.map +1 -0
  126. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +38 -0
  127. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -0
  128. package/dist/features/blocks/server/nodes/BlocksNode.js +87 -0
  129. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -0
  130. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +40 -0
  131. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -0
  132. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +88 -0
  133. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -0
  134. package/dist/features/blocks/server/validate.d.ts +6 -0
  135. package/dist/features/blocks/server/validate.d.ts.map +1 -0
  136. package/dist/features/blocks/server/validate.js +48 -0
  137. package/dist/features/blocks/server/validate.js.map +1 -0
  138. package/dist/features/converters/html/converter/converters/linebreak.d.ts.map +1 -0
  139. package/dist/features/converters/html/converter/converters/linebreak.js +7 -0
  140. package/dist/features/converters/html/converter/converters/linebreak.js.map +1 -0
  141. package/dist/features/converters/html/converter/converters/paragraph.d.ts.map +1 -0
  142. package/dist/features/converters/html/converter/converters/paragraph.js +28 -0
  143. package/dist/features/converters/html/converter/converters/paragraph.js.map +1 -0
  144. package/dist/features/converters/html/converter/converters/text.d.ts.map +1 -0
  145. package/dist/features/converters/html/converter/converters/text.js +32 -0
  146. package/dist/features/converters/html/converter/converters/text.js.map +1 -0
  147. package/dist/features/converters/html/converter/defaultConverters.d.ts.map +1 -0
  148. package/dist/features/converters/html/converter/defaultConverters.js +5 -0
  149. package/dist/features/converters/html/converter/defaultConverters.js.map +1 -0
  150. package/dist/features/converters/html/converter/index.d.ts +48 -0
  151. package/dist/features/converters/html/converter/index.d.ts.map +1 -0
  152. package/dist/features/converters/html/converter/index.js +72 -0
  153. package/dist/features/converters/html/converter/index.js.map +1 -0
  154. package/dist/features/converters/html/converter/types.d.ts +22 -0
  155. package/dist/features/converters/html/converter/types.d.ts.map +1 -0
  156. package/dist/features/converters/html/converter/types.js +2 -0
  157. package/dist/features/converters/html/converter/types.js.map +1 -0
  158. package/dist/features/converters/html/field/index.d.ts +35 -0
  159. package/dist/features/converters/html/field/index.d.ts.map +1 -0
  160. package/dist/features/converters/html/field/index.js +152 -0
  161. package/dist/features/converters/html/field/index.js.map +1 -0
  162. package/dist/features/converters/html/index.d.ts +8 -0
  163. package/dist/features/converters/html/index.d.ts.map +1 -0
  164. package/dist/features/converters/html/index.js +7 -0
  165. package/dist/features/converters/html/index.js.map +1 -0
  166. package/dist/features/createClientComponent.d.ts +7 -0
  167. package/dist/features/createClientComponent.d.ts.map +1 -0
  168. package/dist/features/createClientComponent.js +13 -0
  169. package/dist/features/createClientComponent.js.map +1 -0
  170. package/dist/features/createFeaturePropComponent.d.ts.map +1 -0
  171. package/dist/features/createFeaturePropComponent.js +19 -0
  172. package/dist/features/createFeaturePropComponent.js.map +1 -0
  173. package/dist/features/debug/testRecorder/client/index.d.ts +5 -0
  174. package/dist/features/debug/testRecorder/client/index.d.ts.map +1 -0
  175. package/dist/features/debug/testRecorder/client/index.js +11 -0
  176. package/dist/features/debug/testRecorder/client/index.js.map +1 -0
  177. package/dist/features/debug/testRecorder/client/plugin/index.d.ts +5 -0
  178. package/dist/features/debug/testRecorder/client/plugin/index.d.ts.map +1 -0
  179. package/dist/features/debug/testRecorder/client/plugin/index.js +411 -0
  180. package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -0
  181. package/dist/features/debug/testRecorder/server/index.d.ts +2 -0
  182. package/dist/features/debug/testRecorder/server/index.d.ts.map +1 -0
  183. package/dist/features/debug/testRecorder/server/index.js +8 -0
  184. package/dist/features/debug/testRecorder/server/index.js.map +1 -0
  185. package/dist/features/debug/treeView/client/index.d.ts +5 -0
  186. package/dist/features/debug/treeView/client/index.d.ts.map +1 -0
  187. package/dist/features/debug/treeView/client/index.js +11 -0
  188. package/dist/features/debug/treeView/client/index.js.map +1 -0
  189. package/dist/features/debug/treeView/client/plugin/index.d.ts +4 -0
  190. package/dist/features/debug/treeView/client/plugin/index.d.ts.map +1 -0
  191. package/dist/features/debug/treeView/client/plugin/index.js +29 -0
  192. package/dist/features/debug/treeView/client/plugin/index.js.map +1 -0
  193. package/dist/features/debug/treeView/server/index.d.ts +2 -0
  194. package/dist/features/debug/treeView/server/index.d.ts.map +1 -0
  195. package/dist/features/debug/treeView/server/index.js +8 -0
  196. package/dist/features/debug/treeView/server/index.js.map +1 -0
  197. package/dist/features/experimental_table/client/index.d.ts +2 -0
  198. package/dist/features/experimental_table/client/index.d.ts.map +1 -0
  199. package/dist/features/experimental_table/client/index.js +54 -0
  200. package/dist/features/experimental_table/client/index.js.map +1 -0
  201. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts +4 -0
  202. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
  203. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +523 -0
  204. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
  205. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts +3 -0
  206. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
  207. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +308 -0
  208. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
  209. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +5 -0
  210. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
  211. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +186 -0
  212. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
  213. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts +24 -0
  214. package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -0
  215. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +150 -0
  216. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -0
  217. package/dist/features/experimental_table/client/utils/debounce.d.ts +61 -0
  218. package/dist/features/experimental_table/client/utils/debounce.d.ts.map +1 -0
  219. package/dist/features/experimental_table/client/utils/debounce.js +221 -0
  220. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -0
  221. package/dist/features/experimental_table/client/utils/useDebounce.d.ts +6 -0
  222. package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +1 -0
  223. package/dist/features/experimental_table/client/utils/useDebounce.js +16 -0
  224. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -0
  225. package/dist/features/experimental_table/server/index.d.ts +13 -0
  226. package/dist/features/experimental_table/server/index.d.ts.map +1 -0
  227. package/dist/features/experimental_table/server/index.js +136 -0
  228. package/dist/features/experimental_table/server/index.js.map +1 -0
  229. package/dist/features/format/bold/feature.client.d.ts +5 -0
  230. package/dist/features/format/bold/feature.client.d.ts.map +1 -0
  231. package/dist/features/format/bold/feature.client.js +43 -0
  232. package/dist/features/format/bold/feature.client.js.map +1 -0
  233. package/dist/features/format/bold/feature.server.d.ts +2 -0
  234. package/dist/features/format/bold/feature.server.d.ts.map +1 -0
  235. package/dist/features/format/bold/feature.server.js +19 -0
  236. package/dist/features/format/bold/feature.server.js.map +1 -0
  237. package/dist/features/format/bold/markdownTransformers.d.ts.map +1 -0
  238. package/dist/features/format/bold/markdownTransformers.js +23 -0
  239. package/dist/features/format/bold/markdownTransformers.js.map +1 -0
  240. package/dist/features/format/inlineCode/feature.client.d.ts +5 -0
  241. package/dist/features/format/inlineCode/feature.client.d.ts.map +1 -0
  242. package/dist/features/format/inlineCode/feature.client.js +35 -0
  243. package/dist/features/format/inlineCode/feature.client.js.map +1 -0
  244. package/dist/features/format/inlineCode/feature.server.d.ts +2 -0
  245. package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -0
  246. package/dist/features/format/inlineCode/feature.server.js +10 -0
  247. package/dist/features/format/inlineCode/feature.server.js.map +1 -0
  248. package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +1 -0
  249. package/dist/features/format/inlineCode/markdownTransformers.js +6 -0
  250. package/dist/features/format/inlineCode/markdownTransformers.js.map +1 -0
  251. package/dist/features/format/italic/feature.client.d.ts +5 -0
  252. package/dist/features/format/italic/feature.client.d.ts.map +1 -0
  253. package/dist/features/format/italic/feature.client.js +35 -0
  254. package/dist/features/format/italic/feature.client.js.map +1 -0
  255. package/dist/features/format/italic/feature.server.d.ts +2 -0
  256. package/dist/features/format/italic/feature.server.d.ts.map +1 -0
  257. package/dist/features/format/italic/feature.server.js +10 -0
  258. package/dist/features/format/italic/feature.server.js.map +1 -0
  259. package/dist/features/format/italic/markdownTransformers.d.ts.map +1 -0
  260. package/dist/features/format/italic/markdownTransformers.js +12 -0
  261. package/dist/features/format/italic/markdownTransformers.js.map +1 -0
  262. package/dist/features/format/shared/toolbarFormatGroup.d.ts +3 -0
  263. package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -0
  264. package/dist/features/format/shared/toolbarFormatGroup.js +11 -0
  265. package/dist/features/format/shared/toolbarFormatGroup.js.map +1 -0
  266. package/dist/features/format/strikethrough/feature.client.d.ts +5 -0
  267. package/dist/features/format/strikethrough/feature.client.d.ts.map +1 -0
  268. package/dist/features/format/strikethrough/feature.client.js +35 -0
  269. package/dist/features/format/strikethrough/feature.client.js.map +1 -0
  270. package/dist/features/format/strikethrough/feature.server.d.ts +2 -0
  271. package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -0
  272. package/dist/features/format/strikethrough/feature.server.js +10 -0
  273. package/dist/features/format/strikethrough/feature.server.js.map +1 -0
  274. package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +1 -0
  275. package/dist/features/format/strikethrough/markdownTransformers.js +6 -0
  276. package/dist/features/format/strikethrough/markdownTransformers.js.map +1 -0
  277. package/dist/features/format/subscript/feature.client.d.ts +5 -0
  278. package/dist/features/format/subscript/feature.client.d.ts.map +1 -0
  279. package/dist/features/format/subscript/feature.client.js +33 -0
  280. package/dist/features/format/subscript/feature.client.js.map +1 -0
  281. package/dist/features/format/subscript/feature.server.d.ts +2 -0
  282. package/dist/features/format/subscript/feature.server.d.ts.map +1 -0
  283. package/dist/features/format/subscript/feature.server.js +8 -0
  284. package/dist/features/format/subscript/feature.server.js.map +1 -0
  285. package/dist/features/format/superscript/feature.client.d.ts +5 -0
  286. package/dist/features/format/superscript/feature.client.d.ts.map +1 -0
  287. package/dist/features/format/superscript/feature.client.js +33 -0
  288. package/dist/features/format/superscript/feature.client.js.map +1 -0
  289. package/dist/features/format/superscript/feature.server.d.ts +2 -0
  290. package/dist/features/format/superscript/feature.server.d.ts.map +1 -0
  291. package/dist/features/format/superscript/feature.server.js +8 -0
  292. package/dist/features/format/superscript/feature.server.js.map +1 -0
  293. package/dist/features/format/underline/feature.client.d.ts +5 -0
  294. package/dist/features/format/underline/feature.client.d.ts.map +1 -0
  295. package/dist/features/format/underline/feature.client.js +33 -0
  296. package/dist/features/format/underline/feature.client.js.map +1 -0
  297. package/dist/features/format/underline/feature.server.d.ts +2 -0
  298. package/dist/features/format/underline/feature.server.d.ts.map +1 -0
  299. package/dist/features/format/underline/feature.server.js +8 -0
  300. package/dist/features/format/underline/feature.server.js.map +1 -0
  301. package/dist/features/heading/client/index.d.ts +6 -0
  302. package/dist/features/heading/client/index.d.ts.map +1 -0
  303. package/dist/features/heading/client/index.js +108 -0
  304. package/dist/features/heading/client/index.js.map +1 -0
  305. package/dist/features/heading/markdownTransformer.d.ts.map +1 -0
  306. package/dist/features/heading/markdownTransformer.js +26 -0
  307. package/dist/features/heading/markdownTransformer.js.map +1 -0
  308. package/dist/features/heading/server/i18n.d.ts +3 -0
  309. package/dist/features/heading/server/i18n.d.ts.map +1 -0
  310. package/dist/features/heading/server/i18n.js +99 -0
  311. package/dist/features/heading/server/i18n.js.map +1 -0
  312. package/dist/features/heading/server/index.d.ts +10 -0
  313. package/dist/features/heading/server/index.d.ts.map +1 -0
  314. package/dist/features/heading/server/index.js +58 -0
  315. package/dist/features/heading/server/index.js.map +1 -0
  316. package/dist/features/horizontalRule/client/component/index.d.ts.map +1 -0
  317. package/dist/features/horizontalRule/client/component/index.js +97 -0
  318. package/dist/features/horizontalRule/client/component/index.js.map +1 -0
  319. package/dist/features/horizontalRule/client/index.d.ts +5 -0
  320. package/dist/features/horizontalRule/client/index.d.ts.map +1 -0
  321. package/dist/features/horizontalRule/client/index.js +62 -0
  322. package/dist/features/horizontalRule/client/index.js.map +1 -0
  323. package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -0
  324. package/dist/features/horizontalRule/client/markdownTransformer.js +20 -0
  325. package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -0
  326. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +20 -0
  327. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -0
  328. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +46 -0
  329. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -0
  330. package/dist/features/horizontalRule/client/plugin/index.d.ts +7 -0
  331. package/dist/features/horizontalRule/client/plugin/index.d.ts.map +1 -0
  332. package/dist/features/horizontalRule/client/plugin/index.js +42 -0
  333. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -0
  334. package/dist/features/horizontalRule/server/i18n.d.ts +3 -0
  335. package/dist/features/horizontalRule/server/i18n.d.ts.map +1 -0
  336. package/dist/features/horizontalRule/server/i18n.js +99 -0
  337. package/dist/features/horizontalRule/server/i18n.js.map +1 -0
  338. package/dist/features/horizontalRule/server/index.d.ts +2 -0
  339. package/dist/features/horizontalRule/server/index.d.ts.map +1 -0
  340. package/dist/features/horizontalRule/server/index.js +25 -0
  341. package/dist/features/horizontalRule/server/index.js.map +1 -0
  342. package/dist/features/horizontalRule/server/markdownTransformer.d.ts +3 -0
  343. package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -0
  344. package/dist/features/horizontalRule/server/markdownTransformer.js +20 -0
  345. package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -0
  346. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +53 -0
  347. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -0
  348. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +88 -0
  349. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -0
  350. package/dist/features/indent/client/index.d.ts +5 -0
  351. package/dist/features/indent/client/index.d.ts.map +1 -0
  352. package/dist/features/indent/client/index.js +61 -0
  353. package/dist/features/indent/client/index.js.map +1 -0
  354. package/dist/features/indent/client/toolbarIndentGroup.d.ts +3 -0
  355. package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -0
  356. package/dist/features/indent/client/toolbarIndentGroup.js +11 -0
  357. package/dist/features/indent/client/toolbarIndentGroup.js.map +1 -0
  358. package/dist/features/indent/server/i18n.d.ts +3 -0
  359. package/dist/features/indent/server/i18n.d.ts.map +1 -0
  360. package/dist/features/indent/server/i18n.js +131 -0
  361. package/dist/features/indent/server/i18n.js.map +1 -0
  362. package/dist/features/indent/server/index.d.ts +2 -0
  363. package/dist/features/indent/server/index.d.ts.map +1 -0
  364. package/dist/features/indent/server/index.js +10 -0
  365. package/dist/features/indent/server/index.js.map +1 -0
  366. package/dist/features/link/client/index.d.ts +16 -0
  367. package/dist/features/link/client/index.d.ts.map +1 -0
  368. package/dist/features/link/client/index.js +96 -0
  369. package/dist/features/link/client/index.js.map +1 -0
  370. package/dist/features/link/client/plugins/autoLink/index.d.ts +20 -0
  371. package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -0
  372. package/dist/features/link/client/plugins/autoLink/index.js +331 -0
  373. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -0
  374. package/dist/features/link/client/plugins/clickableLink/index.d.ts +4 -0
  375. package/dist/features/link/client/plugins/clickableLink/index.d.ts.map +1 -0
  376. package/dist/features/link/client/plugins/clickableLink/index.js +9 -0
  377. package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -0
  378. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +1 -0
  379. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js +5 -0
  380. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.js.map +1 -0
  381. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -0
  382. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +279 -0
  383. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -0
  384. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts +5 -0
  385. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -0
  386. package/dist/features/link/client/plugins/floatingLinkEditor/index.js +15 -0
  387. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -0
  388. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts +15 -0
  389. package/dist/features/link/client/plugins/floatingLinkEditor/types.d.ts.map +1 -0
  390. package/dist/features/link/client/plugins/floatingLinkEditor/types.js +5 -0
  391. package/dist/features/link/client/plugins/floatingLinkEditor/types.js.map +1 -0
  392. package/dist/features/link/client/plugins/link/index.d.ts +4 -0
  393. package/dist/features/link/client/plugins/link/index.d.ts.map +1 -0
  394. package/dist/features/link/client/plugins/link/index.js +60 -0
  395. package/dist/features/link/client/plugins/link/index.js.map +1 -0
  396. package/dist/features/link/markdownTransformer.d.ts +6 -0
  397. package/dist/features/link/markdownTransformer.d.ts.map +1 -0
  398. package/dist/features/link/markdownTransformer.js +49 -0
  399. package/dist/features/link/markdownTransformer.js.map +1 -0
  400. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -0
  401. package/dist/features/link/nodes/AutoLinkNode.js +69 -0
  402. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -0
  403. package/dist/features/link/nodes/LinkNode.d.ts +39 -0
  404. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -0
  405. package/dist/features/link/nodes/LinkNode.js +318 -0
  406. package/dist/features/link/nodes/LinkNode.js.map +1 -0
  407. package/dist/features/link/nodes/types.d.ts +24 -0
  408. package/dist/features/link/nodes/types.d.ts.map +1 -0
  409. package/dist/features/link/nodes/types.js +2 -0
  410. package/dist/features/link/nodes/types.js.map +1 -0
  411. package/dist/features/link/server/baseFields.d.ts +3 -0
  412. package/dist/features/link/server/baseFields.d.ts.map +1 -0
  413. package/dist/features/link/server/baseFields.js +124 -0
  414. package/dist/features/link/server/baseFields.js.map +1 -0
  415. package/dist/features/link/server/graphQLPopulationPromise.d.ts +5 -0
  416. package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -0
  417. package/dist/features/link/server/graphQLPopulationPromise.js +45 -0
  418. package/dist/features/link/server/graphQLPopulationPromise.js.map +1 -0
  419. package/dist/features/link/server/i18n.d.ts +3 -0
  420. package/dist/features/link/server/i18n.d.ts.map +1 -0
  421. package/dist/features/link/server/i18n.js +99 -0
  422. package/dist/features/link/server/i18n.js.map +1 -0
  423. package/dist/features/link/server/index.d.ts +35 -0
  424. package/dist/features/link/server/index.d.ts.map +1 -0
  425. package/dist/features/link/server/index.js +138 -0
  426. package/dist/features/link/server/index.js.map +1 -0
  427. package/dist/features/link/server/transformExtraFields.d.ts +9 -0
  428. package/dist/features/link/server/transformExtraFields.d.ts.map +1 -0
  429. package/dist/features/link/server/transformExtraFields.js +20 -0
  430. package/dist/features/link/server/transformExtraFields.js.map +1 -0
  431. package/dist/features/link/server/validate.d.ts +6 -0
  432. package/dist/features/link/server/validate.d.ts.map +1 -0
  433. package/dist/features/link/server/validate.js +40 -0
  434. package/dist/features/link/server/validate.js.map +1 -0
  435. package/dist/features/lists/checklist/client/index.d.ts +5 -0
  436. package/dist/features/lists/checklist/client/index.d.ts.map +1 -0
  437. package/dist/features/lists/checklist/client/index.js +92 -0
  438. package/dist/features/lists/checklist/client/index.js.map +1 -0
  439. package/dist/features/lists/checklist/client/plugin/index.d.ts +3 -0
  440. package/dist/features/lists/checklist/client/plugin/index.d.ts.map +1 -0
  441. package/dist/features/lists/checklist/client/plugin/index.js +9 -0
  442. package/dist/features/lists/checklist/client/plugin/index.js.map +1 -0
  443. package/dist/features/lists/checklist/markdownTransformers.d.ts.map +1 -0
  444. package/dist/features/lists/checklist/markdownTransformers.js +12 -0
  445. package/dist/features/lists/checklist/markdownTransformers.js.map +1 -0
  446. package/dist/features/lists/checklist/server/i18n.d.ts +3 -0
  447. package/dist/features/lists/checklist/server/i18n.d.ts.map +1 -0
  448. package/dist/features/lists/checklist/server/i18n.js +99 -0
  449. package/dist/features/lists/checklist/server/i18n.js.map +1 -0
  450. package/dist/features/lists/checklist/server/index.d.ts +2 -0
  451. package/dist/features/lists/checklist/server/index.d.ts.map +1 -0
  452. package/dist/features/lists/checklist/server/index.js +30 -0
  453. package/dist/features/lists/checklist/server/index.js.map +1 -0
  454. package/dist/features/lists/htmlConverter.d.ts +5 -0
  455. package/dist/features/lists/htmlConverter.d.ts.map +1 -0
  456. package/dist/features/lists/htmlConverter.js +73 -0
  457. package/dist/features/lists/htmlConverter.js.map +1 -0
  458. package/dist/features/lists/orderedList/client/index.d.ts +5 -0
  459. package/dist/features/lists/orderedList/client/index.d.ts.map +1 -0
  460. package/dist/features/lists/orderedList/client/index.js +84 -0
  461. package/dist/features/lists/orderedList/client/index.js.map +1 -0
  462. package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +1 -0
  463. package/dist/features/lists/orderedList/markdownTransformer.js +12 -0
  464. package/dist/features/lists/orderedList/markdownTransformer.js.map +1 -0
  465. package/dist/features/lists/orderedList/server/i18n.d.ts +3 -0
  466. package/dist/features/lists/orderedList/server/i18n.d.ts.map +1 -0
  467. package/dist/features/lists/orderedList/server/i18n.js +99 -0
  468. package/dist/features/lists/orderedList/server/i18n.js.map +1 -0
  469. package/dist/features/lists/orderedList/server/index.d.ts +2 -0
  470. package/dist/features/lists/orderedList/server/index.d.ts.map +1 -0
  471. package/dist/features/lists/orderedList/server/index.js +30 -0
  472. package/dist/features/lists/orderedList/server/index.js.map +1 -0
  473. package/dist/features/lists/plugin/index.d.ts +13 -0
  474. package/dist/features/lists/plugin/index.d.ts.map +1 -0
  475. package/dist/features/lists/plugin/index.js +9 -0
  476. package/dist/features/lists/plugin/index.js.map +1 -0
  477. package/dist/features/lists/shared/markdown.d.ts +6 -0
  478. package/dist/features/lists/shared/markdown.d.ts.map +1 -0
  479. package/dist/features/lists/shared/markdown.js +57 -0
  480. package/dist/features/lists/shared/markdown.js.map +1 -0
  481. package/dist/features/lists/shared/slashMenuListGroup.d.ts +3 -0
  482. package/dist/features/lists/shared/slashMenuListGroup.d.ts.map +1 -0
  483. package/dist/features/lists/shared/slashMenuListGroup.js +12 -0
  484. package/dist/features/lists/shared/slashMenuListGroup.js.map +1 -0
  485. package/dist/features/lists/unorderedList/client/index.d.ts +5 -0
  486. package/dist/features/lists/unorderedList/client/index.d.ts.map +1 -0
  487. package/dist/features/lists/unorderedList/client/index.js +80 -0
  488. package/dist/features/lists/unorderedList/client/index.js.map +1 -0
  489. package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +1 -0
  490. package/dist/features/lists/unorderedList/markdownTransformer.js +12 -0
  491. package/dist/features/lists/unorderedList/markdownTransformer.js.map +1 -0
  492. package/dist/features/lists/unorderedList/server/i18n.d.ts +3 -0
  493. package/dist/features/lists/unorderedList/server/i18n.d.ts.map +1 -0
  494. package/dist/features/lists/unorderedList/server/i18n.js +99 -0
  495. package/dist/features/lists/unorderedList/server/i18n.js.map +1 -0
  496. package/dist/features/lists/unorderedList/server/index.d.ts +2 -0
  497. package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -0
  498. package/dist/features/lists/unorderedList/server/index.js +26 -0
  499. package/dist/features/lists/unorderedList/server/index.js.map +1 -0
  500. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +3 -0
  501. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +1 -0
  502. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +22 -0
  503. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +1 -0
  504. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +3 -0
  505. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +1 -0
  506. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +33 -0
  507. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +1 -0
  508. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +3 -0
  509. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +1 -0
  510. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +24 -0
  511. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +1 -0
  512. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +3 -0
  513. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +1 -0
  514. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +25 -0
  515. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +1 -0
  516. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +3 -0
  517. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +1 -0
  518. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +22 -0
  519. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +1 -0
  520. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +3 -0
  521. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +1 -0
  522. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +28 -0
  523. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +1 -0
  524. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +3 -0
  525. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +1 -0
  526. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +22 -0
  527. package/dist/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +1 -0
  528. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +3 -0
  529. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +1 -0
  530. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +9 -0
  531. package/dist/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +1 -0
  532. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts +19 -0
  533. package/dist/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +1 -0
  534. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js +77 -0
  535. package/dist/features/migrations/lexicalPluginToLexical/converter/index.js.map +1 -0
  536. package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts +23 -0
  537. package/dist/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +1 -0
  538. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js +2 -0
  539. package/dist/features/migrations/lexicalPluginToLexical/converter/types.js.map +1 -0
  540. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts +5 -0
  541. package/dist/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +1 -0
  542. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js +10 -0
  543. package/dist/features/migrations/lexicalPluginToLexical/feature.client.js.map +1 -0
  544. package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts +10 -0
  545. package/dist/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +1 -0
  546. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js +49 -0
  547. package/dist/features/migrations/lexicalPluginToLexical/feature.server.js.map +1 -0
  548. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -0
  549. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +15 -0
  550. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
  551. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +33 -0
  552. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -0
  553. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +74 -0
  554. package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
  555. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +3 -0
  556. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +1 -0
  557. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +23 -0
  558. package/dist/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +1 -0
  559. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +3 -0
  560. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +1 -0
  561. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js +24 -0
  562. package/dist/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +1 -0
  563. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +3 -0
  564. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +1 -0
  565. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js +33 -0
  566. package/dist/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +1 -0
  567. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +3 -0
  568. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +1 -0
  569. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js +30 -0
  570. package/dist/features/migrations/slateToLexical/converter/converters/link/converter.js.map +1 -0
  571. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +3 -0
  572. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +1 -0
  573. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js +26 -0
  574. package/dist/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +1 -0
  575. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +3 -0
  576. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +1 -0
  577. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +26 -0
  578. package/dist/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +1 -0
  579. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +3 -0
  580. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +1 -0
  581. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js +15 -0
  582. package/dist/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +1 -0
  583. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +3 -0
  584. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +1 -0
  585. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js +27 -0
  586. package/dist/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +1 -0
  587. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +3 -0
  588. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +1 -0
  589. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +26 -0
  590. package/dist/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +1 -0
  591. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +3 -0
  592. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +1 -0
  593. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js +18 -0
  594. package/dist/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +1 -0
  595. package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts +3 -0
  596. package/dist/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +1 -0
  597. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js +12 -0
  598. package/dist/features/migrations/slateToLexical/converter/defaultConverters.js.map +1 -0
  599. package/dist/features/migrations/slateToLexical/converter/index.d.ts.map +1 -0
  600. package/dist/features/migrations/slateToLexical/converter/index.js +116 -0
  601. package/dist/features/migrations/slateToLexical/converter/index.js.map +1 -0
  602. package/dist/features/migrations/slateToLexical/converter/types.d.ts +16 -0
  603. package/dist/features/migrations/slateToLexical/converter/types.d.ts.map +1 -0
  604. package/dist/features/migrations/slateToLexical/converter/types.js +2 -0
  605. package/dist/features/migrations/slateToLexical/converter/types.js.map +1 -0
  606. package/dist/features/migrations/slateToLexical/feature.client.d.ts +5 -0
  607. package/dist/features/migrations/slateToLexical/feature.client.d.ts.map +1 -0
  608. package/dist/features/migrations/slateToLexical/feature.client.js +12 -0
  609. package/dist/features/migrations/slateToLexical/feature.client.js.map +1 -0
  610. package/dist/features/migrations/slateToLexical/feature.server.d.ts +11 -0
  611. package/dist/features/migrations/slateToLexical/feature.server.d.ts.map +1 -0
  612. package/dist/features/migrations/slateToLexical/feature.server.js +50 -0
  613. package/dist/features/migrations/slateToLexical/feature.server.js.map +1 -0
  614. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +1 -0
  615. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +15 -0
  616. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -0
  617. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +33 -0
  618. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -0
  619. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +74 -0
  620. package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -0
  621. package/dist/features/paragraph/client/index.d.ts +5 -0
  622. package/dist/features/paragraph/client/index.d.ts.map +1 -0
  623. package/dist/features/paragraph/client/index.js +68 -0
  624. package/dist/features/paragraph/client/index.js.map +1 -0
  625. package/dist/features/paragraph/server/i18n.d.ts +3 -0
  626. package/dist/features/paragraph/server/i18n.d.ts.map +1 -0
  627. package/dist/features/paragraph/server/i18n.js +131 -0
  628. package/dist/features/paragraph/server/i18n.js.map +1 -0
  629. package/dist/features/paragraph/server/index.d.ts +2 -0
  630. package/dist/features/paragraph/server/index.d.ts.map +1 -0
  631. package/dist/features/paragraph/server/index.js +11 -0
  632. package/dist/features/paragraph/server/index.js.map +1 -0
  633. package/dist/features/relationship/client/components/RelationshipComponent.d.ts +13 -0
  634. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -0
  635. package/dist/features/relationship/client/components/RelationshipComponent.js +166 -0
  636. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -0
  637. package/dist/features/relationship/client/drawer/commands.d.ts.map +1 -0
  638. package/dist/features/relationship/client/drawer/commands.js +3 -0
  639. package/dist/features/relationship/client/drawer/commands.js.map +1 -0
  640. package/dist/features/relationship/client/drawer/index.d.ts.map +1 -0
  641. package/dist/features/relationship/client/drawer/index.js +154 -0
  642. package/dist/features/relationship/client/drawer/index.js.map +1 -0
  643. package/dist/features/relationship/client/index.d.ts +18 -0
  644. package/dist/features/relationship/client/index.d.ts.map +1 -0
  645. package/dist/features/relationship/client/index.js +66 -0
  646. package/dist/features/relationship/client/index.js.map +1 -0
  647. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +15 -0
  648. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -0
  649. package/dist/features/relationship/client/nodes/RelationshipNode.js +75 -0
  650. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -0
  651. package/dist/features/relationship/client/plugins/index.d.ts +7 -0
  652. package/dist/features/relationship/client/plugins/index.d.ts.map +1 -0
  653. package/dist/features/relationship/client/plugins/index.js +105 -0
  654. package/dist/features/relationship/client/plugins/index.js.map +1 -0
  655. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.d.ts.map +1 -0
  656. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +104 -0
  657. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -0
  658. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +5 -0
  659. package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -0
  660. package/dist/features/relationship/server/graphQLPopulationPromise.js +37 -0
  661. package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -0
  662. package/dist/features/relationship/server/i18n.d.ts +3 -0
  663. package/dist/features/relationship/server/i18n.d.ts.map +1 -0
  664. package/dist/features/relationship/server/i18n.js +99 -0
  665. package/dist/features/relationship/server/i18n.js.map +1 -0
  666. package/dist/features/relationship/server/index.d.ts +27 -0
  667. package/dist/features/relationship/server/index.d.ts.map +1 -0
  668. package/dist/features/relationship/server/index.js +57 -0
  669. package/dist/features/relationship/server/index.js.map +1 -0
  670. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +37 -0
  671. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -0
  672. package/dist/features/relationship/server/nodes/RelationshipNode.js +104 -0
  673. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -0
  674. package/dist/features/shared/slashMenu/basicGroup.d.ts +3 -0
  675. package/dist/features/shared/slashMenu/basicGroup.d.ts.map +1 -0
  676. package/dist/features/shared/slashMenu/basicGroup.js +12 -0
  677. package/dist/features/shared/slashMenu/basicGroup.js.map +1 -0
  678. package/dist/features/shared/toolbar/addDropdownGroup.d.ts +3 -0
  679. package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -0
  680. package/dist/features/shared/toolbar/addDropdownGroup.js +11 -0
  681. package/dist/features/shared/toolbar/addDropdownGroup.js.map +1 -0
  682. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts +3 -0
  683. package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -0
  684. package/dist/features/shared/toolbar/featureButtonsGroup.js +9 -0
  685. package/dist/features/shared/toolbar/featureButtonsGroup.js.map +1 -0
  686. package/dist/features/shared/toolbar/textDropdownGroup.d.ts +3 -0
  687. package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -0
  688. package/dist/features/shared/toolbar/textDropdownGroup.js +11 -0
  689. package/dist/features/shared/toolbar/textDropdownGroup.js.map +1 -0
  690. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts +5 -0
  691. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -0
  692. package/dist/features/toolbars/fixed/client/Toolbar/index.js +286 -0
  693. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -0
  694. package/dist/features/toolbars/fixed/client/index.d.ts +6 -0
  695. package/dist/features/toolbars/fixed/client/index.d.ts.map +1 -0
  696. package/dist/features/toolbars/fixed/client/index.js +11 -0
  697. package/dist/features/toolbars/fixed/client/index.js.map +1 -0
  698. package/dist/features/toolbars/fixed/server/index.d.ts +18 -0
  699. package/dist/features/toolbars/fixed/server/index.d.ts.map +1 -0
  700. package/dist/features/toolbars/fixed/server/index.js +18 -0
  701. package/dist/features/toolbars/fixed/server/index.js.map +1 -0
  702. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts +4 -0
  703. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -0
  704. package/dist/features/toolbars/inline/client/Toolbar/index.js +366 -0
  705. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -0
  706. package/dist/features/toolbars/inline/client/index.d.ts +5 -0
  707. package/dist/features/toolbars/inline/client/index.d.ts.map +1 -0
  708. package/dist/features/toolbars/inline/client/index.js +11 -0
  709. package/dist/features/toolbars/inline/client/index.js.map +1 -0
  710. package/dist/features/toolbars/inline/server/index.d.ts +2 -0
  711. package/dist/features/toolbars/inline/server/index.d.ts.map +1 -0
  712. package/dist/features/toolbars/inline/server/index.js +8 -0
  713. package/dist/features/toolbars/inline/server/index.js.map +1 -0
  714. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts +10 -0
  715. package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -0
  716. package/dist/features/toolbars/shared/ToolbarButton/index.js +86 -0
  717. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -0
  718. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +22 -0
  719. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -0
  720. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +202 -0
  721. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -0
  722. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +23 -0
  723. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -0
  724. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +308 -0
  725. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -0
  726. package/dist/features/toolbars/types.d.ts +81 -0
  727. package/dist/features/toolbars/types.d.ts.map +1 -0
  728. package/dist/features/toolbars/types.js +2 -0
  729. package/dist/features/toolbars/types.js.map +1 -0
  730. package/dist/features/typeUtilities.d.ts +8 -0
  731. package/dist/features/typeUtilities.d.ts.map +1 -0
  732. package/dist/features/typeUtilities.js +7 -0
  733. package/dist/features/typeUtilities.js.map +1 -0
  734. package/dist/features/typesClient.d.ts +186 -0
  735. package/dist/features/typesClient.d.ts.map +1 -0
  736. package/dist/features/typesClient.js +2 -0
  737. package/dist/features/typesClient.js.map +1 -0
  738. package/dist/features/typesServer.d.ts +320 -0
  739. package/dist/features/typesServer.d.ts.map +1 -0
  740. package/dist/features/typesServer.js +2 -0
  741. package/dist/features/typesServer.js.map +1 -0
  742. package/dist/features/upload/client/component/index.d.ts +9 -0
  743. package/dist/features/upload/client/component/index.d.ts.map +1 -0
  744. package/dist/features/upload/client/component/index.js +235 -0
  745. package/dist/features/upload/client/component/index.js.map +1 -0
  746. package/dist/features/upload/client/drawer/commands.d.ts.map +1 -0
  747. package/dist/features/upload/client/drawer/commands.js +5 -0
  748. package/dist/features/upload/client/drawer/commands.js.map +1 -0
  749. package/dist/features/upload/client/drawer/index.d.ts.map +1 -0
  750. package/dist/features/upload/client/drawer/index.js +126 -0
  751. package/dist/features/upload/client/drawer/index.js.map +1 -0
  752. package/dist/features/upload/client/feature.client.d.ts +12 -0
  753. package/dist/features/upload/client/feature.client.d.ts.map +1 -0
  754. package/dist/features/upload/client/feature.client.js +64 -0
  755. package/dist/features/upload/client/feature.client.js.map +1 -0
  756. package/dist/features/upload/client/nodes/UploadNode.d.ts +22 -0
  757. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -0
  758. package/dist/features/upload/client/nodes/UploadNode.js +94 -0
  759. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -0
  760. package/dist/features/upload/client/plugin/index.d.ts +8 -0
  761. package/dist/features/upload/client/plugin/index.d.ts.map +1 -0
  762. package/dist/features/upload/client/plugin/index.js +81 -0
  763. package/dist/features/upload/client/plugin/index.js.map +1 -0
  764. package/dist/features/upload/server/feature.server.d.ts +18 -0
  765. package/dist/features/upload/server/feature.server.d.ts.map +1 -0
  766. package/dist/features/upload/server/feature.server.js +208 -0
  767. package/dist/features/upload/server/feature.server.js.map +1 -0
  768. package/dist/features/upload/server/graphQLPopulationPromise.d.ts +5 -0
  769. package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -0
  770. package/dist/features/upload/server/graphQLPopulationPromise.js +65 -0
  771. package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -0
  772. package/dist/features/upload/server/i18n.d.ts +3 -0
  773. package/dist/features/upload/server/i18n.d.ts.map +1 -0
  774. package/dist/features/upload/server/i18n.js +99 -0
  775. package/dist/features/upload/server/i18n.js.map +1 -0
  776. package/dist/features/upload/server/nodes/UploadNode.d.ts +42 -0
  777. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -0
  778. package/dist/features/upload/server/nodes/UploadNode.js +133 -0
  779. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -0
  780. package/dist/features/upload/server/validate.d.ts +5 -0
  781. package/dist/features/upload/server/validate.d.ts.map +1 -0
  782. package/dist/features/upload/server/validate.js +58 -0
  783. package/dist/features/upload/server/validate.js.map +1 -0
  784. package/dist/field/Field.d.ts +9 -10
  785. package/dist/field/Field.d.ts.map +1 -1
  786. package/dist/field/Field.js +126 -86
  787. package/dist/field/Field.js.map +1 -1
  788. package/dist/field/bundled.css +1 -0
  789. package/dist/field/index.d.ts +2 -7
  790. package/dist/field/index.d.ts.map +1 -1
  791. package/dist/field/index.js +88 -81
  792. package/dist/field/index.js.map +1 -1
  793. package/dist/i18n.d.ts +3 -0
  794. package/dist/i18n.d.ts.map +1 -0
  795. package/dist/i18n.js +163 -0
  796. package/dist/i18n.js.map +1 -0
  797. package/dist/index.d.ts +61 -84
  798. package/dist/index.d.ts.map +1 -1
  799. package/dist/index.js +735 -251
  800. package/dist/index.js.map +1 -1
  801. package/dist/lexical/EditorPlugin.d.ts +8 -0
  802. package/dist/lexical/EditorPlugin.d.ts.map +1 -0
  803. package/dist/lexical/EditorPlugin.js +20 -0
  804. package/dist/lexical/EditorPlugin.js.map +1 -0
  805. package/dist/lexical/LexicalEditor.d.ts +7 -0
  806. package/dist/lexical/LexicalEditor.d.ts.map +1 -0
  807. package/dist/lexical/LexicalEditor.js +231 -0
  808. package/dist/lexical/LexicalEditor.js.map +1 -0
  809. package/dist/lexical/LexicalProvider.d.ts +14 -0
  810. package/dist/lexical/LexicalProvider.d.ts.map +1 -0
  811. package/dist/lexical/LexicalProvider.js +99 -0
  812. package/dist/lexical/LexicalProvider.js.map +1 -0
  813. package/dist/lexical/config/client/EditorConfigProvider.d.ts +27 -0
  814. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -0
  815. package/dist/lexical/config/client/EditorConfigProvider.js +88 -0
  816. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -0
  817. package/dist/lexical/config/client/default.d.ts +3 -0
  818. package/dist/lexical/config/client/default.d.ts.map +1 -0
  819. package/dist/lexical/config/client/default.js +8 -0
  820. package/dist/lexical/config/client/default.js.map +1 -0
  821. package/dist/lexical/config/client/loader.d.ts +12 -0
  822. package/dist/lexical/config/client/loader.d.ts.map +1 -0
  823. package/dist/lexical/config/client/loader.js +49 -0
  824. package/dist/lexical/config/client/loader.js.map +1 -0
  825. package/dist/lexical/config/client/sanitize.d.ts +7 -0
  826. package/dist/lexical/config/client/sanitize.d.ts.map +1 -0
  827. package/dist/lexical/config/client/sanitize.js +180 -0
  828. package/dist/lexical/config/client/sanitize.js.map +1 -0
  829. package/dist/lexical/config/server/default.d.ts +7 -0
  830. package/dist/lexical/config/server/default.d.ts.map +1 -0
  831. package/dist/lexical/config/server/default.js +31 -0
  832. package/dist/lexical/config/server/default.js.map +1 -0
  833. package/dist/lexical/config/server/loader.d.ts +10 -0
  834. package/dist/lexical/config/server/loader.d.ts.map +1 -0
  835. package/dist/lexical/config/server/loader.js +120 -0
  836. package/dist/lexical/config/server/loader.js.map +1 -0
  837. package/dist/lexical/config/server/sanitize.d.ts +6 -0
  838. package/dist/lexical/config/server/sanitize.d.ts.map +1 -0
  839. package/dist/lexical/config/server/sanitize.js +112 -0
  840. package/dist/lexical/config/server/sanitize.js.map +1 -0
  841. package/dist/lexical/config/types.d.ts +24 -0
  842. package/dist/lexical/config/types.d.ts.map +1 -0
  843. package/dist/lexical/config/types.js +2 -0
  844. package/dist/lexical/config/types.js.map +1 -0
  845. package/dist/lexical/nodes/index.d.ts +6 -0
  846. package/dist/lexical/nodes/index.d.ts.map +1 -0
  847. package/dist/lexical/nodes/index.js +11 -0
  848. package/dist/lexical/nodes/index.js.map +1 -0
  849. package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -0
  850. package/dist/lexical/plugins/MarkdownShortcut/index.js +25 -0
  851. package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -0
  852. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +32 -0
  853. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -0
  854. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +384 -0
  855. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -0
  856. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +24 -0
  857. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -0
  858. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +249 -0
  859. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -0
  860. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +50 -0
  861. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +1 -0
  862. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +2 -0
  863. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +1 -0
  864. package/dist/lexical/plugins/SlashMenu/index.d.ts +6 -0
  865. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -0
  866. package/dist/lexical/plugins/SlashMenu/index.js +211 -0
  867. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -0
  868. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.d.ts.map +1 -0
  869. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +48 -0
  870. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -0
  871. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts +6 -0
  872. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -0
  873. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +153 -0
  874. package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -0
  875. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -0
  876. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +15 -0
  877. package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -0
  878. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts.map +1 -0
  879. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +15 -0
  880. package/dist/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +1 -0
  881. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts +3 -0
  882. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts.map +1 -0
  883. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +31 -0
  884. package/dist/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +1 -0
  885. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts +6 -0
  886. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -0
  887. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +348 -0
  888. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -0
  889. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts +9 -0
  890. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -0
  891. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +111 -0
  892. package/dist/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +1 -0
  893. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts +5 -0
  894. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -0
  895. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js +28 -0
  896. package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.js.map +1 -0
  897. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.d.ts.map +1 -0
  898. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +26 -0
  899. package/dist/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +1 -0
  900. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.d.ts.map +1 -0
  901. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js +18 -0
  902. package/dist/lexical/plugins/handles/utils/getCollapsedMargins.js.map +1 -0
  903. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts +31 -0
  904. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.d.ts.map +1 -0
  905. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js +153 -0
  906. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -0
  907. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +1 -0
  908. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +7 -0
  909. package/dist/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +1 -0
  910. package/dist/lexical/plugins/handles/utils/isOnHandleElement.d.ts.map +1 -0
  911. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js +6 -0
  912. package/dist/lexical/plugins/handles/utils/isOnHandleElement.js.map +1 -0
  913. package/dist/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -0
  914. package/dist/lexical/plugins/handles/utils/setHandlePosition.js +28 -0
  915. package/dist/lexical/plugins/handles/utils/setHandlePosition.js.map +1 -0
  916. package/dist/lexical/theme/EditorTheme.d.ts +3 -0
  917. package/dist/lexical/theme/EditorTheme.d.ts.map +1 -0
  918. package/dist/lexical/theme/EditorTheme.js +101 -0
  919. package/dist/lexical/theme/EditorTheme.js.map +1 -0
  920. package/dist/lexical/ui/ContentEditable.d.ts +6 -0
  921. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -0
  922. package/dist/lexical/ui/ContentEditable.js +34 -0
  923. package/dist/lexical/ui/ContentEditable.js.map +1 -0
  924. package/dist/lexical/ui/icons/AI/index.d.ts.map +1 -0
  925. package/dist/lexical/ui/icons/AI/index.js +34 -0
  926. package/dist/lexical/ui/icons/AI/index.js.map +1 -0
  927. package/dist/lexical/ui/icons/Add/index.d.ts +3 -0
  928. package/dist/lexical/ui/icons/Add/index.d.ts.map +1 -0
  929. package/dist/lexical/ui/icons/Add/index.js +19 -0
  930. package/dist/lexical/ui/icons/Add/index.js.map +1 -0
  931. package/dist/lexical/ui/icons/Add/light.svg +4 -0
  932. package/dist/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -0
  933. package/dist/lexical/ui/icons/AlignCenter/index.js +28 -0
  934. package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -0
  935. package/dist/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -0
  936. package/dist/lexical/ui/icons/AlignJustify/index.js +28 -0
  937. package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -0
  938. package/dist/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -0
  939. package/dist/lexical/ui/icons/AlignLeft/index.js +28 -0
  940. package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -0
  941. package/dist/lexical/ui/icons/AlignRight/index.d.ts.map +1 -0
  942. package/dist/lexical/ui/icons/AlignRight/index.js +28 -0
  943. package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -0
  944. package/dist/lexical/ui/icons/Block/index.d.ts.map +1 -0
  945. package/dist/lexical/ui/icons/Block/index.js +37 -0
  946. package/dist/lexical/ui/icons/Block/index.js.map +1 -0
  947. package/dist/lexical/ui/icons/Blockquote/index.d.ts.map +1 -0
  948. package/dist/lexical/ui/icons/Blockquote/index.js +19 -0
  949. package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -0
  950. package/dist/lexical/ui/icons/Bold/index.d.ts.map +1 -0
  951. package/dist/lexical/ui/icons/Bold/index.js +19 -0
  952. package/dist/lexical/ui/icons/Bold/index.js.map +1 -0
  953. package/dist/lexical/ui/icons/Caret/index.svg +3 -0
  954. package/dist/lexical/ui/icons/Checklist/index.d.ts.map +1 -0
  955. package/dist/lexical/ui/icons/Checklist/index.js +27 -0
  956. package/dist/lexical/ui/icons/Checklist/index.js.map +1 -0
  957. package/dist/lexical/ui/icons/Code/index.d.ts.map +1 -0
  958. package/dist/lexical/ui/icons/Code/index.js +22 -0
  959. package/dist/lexical/ui/icons/Code/index.js.map +1 -0
  960. package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -0
  961. package/dist/lexical/ui/icons/CodeBlock/index.js +22 -0
  962. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -0
  963. package/dist/lexical/ui/icons/DraggableBlock/light.svg +9 -0
  964. package/dist/lexical/ui/icons/H1/index.d.ts.map +1 -0
  965. package/dist/lexical/ui/icons/H1/index.js +19 -0
  966. package/dist/lexical/ui/icons/H1/index.js.map +1 -0
  967. package/dist/lexical/ui/icons/H2/index.d.ts.map +1 -0
  968. package/dist/lexical/ui/icons/H2/index.js +19 -0
  969. package/dist/lexical/ui/icons/H2/index.js.map +1 -0
  970. package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -0
  971. package/dist/lexical/ui/icons/H3/index.js +19 -0
  972. package/dist/lexical/ui/icons/H3/index.js.map +1 -0
  973. package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -0
  974. package/dist/lexical/ui/icons/H4/index.js +19 -0
  975. package/dist/lexical/ui/icons/H4/index.js.map +1 -0
  976. package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -0
  977. package/dist/lexical/ui/icons/H5/index.js +19 -0
  978. package/dist/lexical/ui/icons/H5/index.js.map +1 -0
  979. package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -0
  980. package/dist/lexical/ui/icons/H6/index.js +19 -0
  981. package/dist/lexical/ui/icons/H6/index.js.map +1 -0
  982. package/dist/lexical/ui/icons/HorizontalRule/index.d.ts.map +1 -0
  983. package/dist/lexical/ui/icons/HorizontalRule/index.js +22 -0
  984. package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -0
  985. package/dist/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -0
  986. package/dist/lexical/ui/icons/IndentDecrease/index.js +31 -0
  987. package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -0
  988. package/dist/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -0
  989. package/dist/lexical/ui/icons/IndentIncrease/index.js +31 -0
  990. package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -0
  991. package/dist/lexical/ui/icons/InlineBlocks/index.d.ts +3 -0
  992. package/dist/lexical/ui/icons/InlineBlocks/index.d.ts.map +1 -0
  993. package/dist/lexical/ui/icons/InlineBlocks/index.js +21 -0
  994. package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -0
  995. package/dist/lexical/ui/icons/Italic/index.d.ts.map +1 -0
  996. package/dist/lexical/ui/icons/Italic/index.js +19 -0
  997. package/dist/lexical/ui/icons/Italic/index.js.map +1 -0
  998. package/dist/lexical/ui/icons/Link/index.d.ts.map +1 -0
  999. package/dist/lexical/ui/icons/Link/index.js +20 -0
  1000. package/dist/lexical/ui/icons/Link/index.js.map +1 -0
  1001. package/dist/lexical/ui/icons/Meatballs/index.d.ts +3 -0
  1002. package/dist/lexical/ui/icons/Meatballs/index.d.ts.map +1 -0
  1003. package/dist/lexical/ui/icons/Meatballs/index.js +22 -0
  1004. package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -0
  1005. package/dist/lexical/ui/icons/OrderedList/index.d.ts.map +1 -0
  1006. package/dist/lexical/ui/icons/OrderedList/index.js +34 -0
  1007. package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -0
  1008. package/dist/lexical/ui/icons/Relationship/index.d.ts.map +1 -0
  1009. package/dist/lexical/ui/icons/Relationship/index.js +34 -0
  1010. package/dist/lexical/ui/icons/Relationship/index.js.map +1 -0
  1011. package/dist/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -0
  1012. package/dist/lexical/ui/icons/Strikethrough/index.js +22 -0
  1013. package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -0
  1014. package/dist/lexical/ui/icons/Subscript/index.d.ts.map +1 -0
  1015. package/dist/lexical/ui/icons/Subscript/index.js +19 -0
  1016. package/dist/lexical/ui/icons/Subscript/index.js.map +1 -0
  1017. package/dist/lexical/ui/icons/Superscript/index.d.ts.map +1 -0
  1018. package/dist/lexical/ui/icons/Superscript/index.js +19 -0
  1019. package/dist/lexical/ui/icons/Superscript/index.js.map +1 -0
  1020. package/dist/lexical/ui/icons/Table/index.d.ts +3 -0
  1021. package/dist/lexical/ui/icons/Table/index.d.ts.map +1 -0
  1022. package/dist/lexical/ui/icons/Table/index.js +21 -0
  1023. package/dist/lexical/ui/icons/Table/index.js.map +1 -0
  1024. package/dist/lexical/ui/icons/Text/index.d.ts.map +1 -0
  1025. package/dist/lexical/ui/icons/Text/index.js +19 -0
  1026. package/dist/lexical/ui/icons/Text/index.js.map +1 -0
  1027. package/dist/lexical/ui/icons/Underline/index.d.ts.map +1 -0
  1028. package/dist/lexical/ui/icons/Underline/index.js +22 -0
  1029. package/dist/lexical/ui/icons/Underline/index.js.map +1 -0
  1030. package/dist/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -0
  1031. package/dist/lexical/ui/icons/UnorderedList/index.js +49 -0
  1032. package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -0
  1033. package/dist/lexical/ui/icons/Upload/index.d.ts.map +1 -0
  1034. package/dist/lexical/ui/icons/Upload/index.js +31 -0
  1035. package/dist/lexical/ui/icons/Upload/index.js.map +1 -0
  1036. package/dist/lexical/utils/canUseDOM.d.ts.map +1 -0
  1037. package/dist/lexical/utils/canUseDOM.js +4 -0
  1038. package/dist/lexical/utils/canUseDOM.js.map +1 -0
  1039. package/dist/lexical/utils/environment.d.ts.map +1 -0
  1040. package/dist/lexical/utils/environment.js +15 -0
  1041. package/dist/lexical/utils/environment.js.map +1 -0
  1042. package/dist/lexical/utils/getDOMRangeRect.d.ts.map +1 -0
  1043. package/dist/lexical/utils/getDOMRangeRect.js +17 -0
  1044. package/dist/lexical/utils/getDOMRangeRect.js.map +1 -0
  1045. package/dist/lexical/utils/getSelectedNode.d.ts.map +1 -0
  1046. package/dist/lexical/utils/getSelectedNode.js +22 -0
  1047. package/dist/lexical/utils/getSelectedNode.js.map +1 -0
  1048. package/dist/lexical/utils/guard.d.ts.map +1 -0
  1049. package/dist/lexical/utils/guard.js +6 -0
  1050. package/dist/lexical/utils/guard.js.map +1 -0
  1051. package/dist/lexical/utils/joinClasses.d.ts.map +1 -0
  1052. package/dist/lexical/utils/joinClasses.js +6 -0
  1053. package/dist/lexical/utils/joinClasses.js.map +1 -0
  1054. package/dist/lexical/utils/markdown/createBlockNode.d.ts +4 -0
  1055. package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -0
  1056. package/dist/lexical/utils/markdown/createBlockNode.js +11 -0
  1057. package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -0
  1058. package/dist/lexical/utils/nodeFormat.d.ts +41 -0
  1059. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -0
  1060. package/dist/lexical/utils/nodeFormat.js +87 -0
  1061. package/dist/lexical/utils/nodeFormat.js.map +1 -0
  1062. package/dist/lexical/utils/point.d.ts.map +1 -0
  1063. package/dist/lexical/utils/point.js +45 -0
  1064. package/dist/lexical/utils/point.js.map +1 -0
  1065. package/dist/lexical/utils/rect.d.ts.map +1 -0
  1066. package/dist/lexical/utils/rect.js +171 -0
  1067. package/dist/lexical/utils/rect.js.map +1 -0
  1068. package/dist/lexical/utils/setFloatingElemPosition.d.ts +12 -0
  1069. package/dist/lexical/utils/setFloatingElemPosition.d.ts.map +1 -0
  1070. package/dist/lexical/utils/setFloatingElemPosition.js +67 -0
  1071. package/dist/lexical/utils/setFloatingElemPosition.js.map +1 -0
  1072. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts.map +1 -0
  1073. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js +28 -0
  1074. package/dist/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +1 -0
  1075. package/dist/lexical/utils/swipe.d.ts.map +1 -0
  1076. package/dist/lexical/utils/swipe.js +99 -0
  1077. package/dist/lexical/utils/swipe.js.map +1 -0
  1078. package/dist/lexical/utils/url.d.ts.map +1 -0
  1079. package/dist/lexical/utils/url.js +37 -0
  1080. package/dist/lexical/utils/url.js.map +1 -0
  1081. package/dist/nodeTypes.d.ts +32 -0
  1082. package/dist/nodeTypes.d.ts.map +1 -0
  1083. package/dist/nodeTypes.js +2 -0
  1084. package/dist/nodeTypes.js.map +1 -0
  1085. package/dist/populateGraphQL/defaultValue.d.ts +3 -0
  1086. package/dist/populateGraphQL/defaultValue.d.ts.map +1 -0
  1087. package/dist/populateGraphQL/defaultValue.js +28 -0
  1088. package/dist/populateGraphQL/defaultValue.js.map +1 -0
  1089. package/dist/populateGraphQL/populate.d.ts +17 -0
  1090. package/dist/populateGraphQL/populate.d.ts.map +1 -0
  1091. package/dist/populateGraphQL/populate.js +38 -0
  1092. package/dist/populateGraphQL/populate.js.map +1 -0
  1093. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts +12 -0
  1094. package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -0
  1095. package/dist/populateGraphQL/populateLexicalPopulationPromises.js +52 -0
  1096. package/dist/populateGraphQL/populateLexicalPopulationPromises.js.map +1 -0
  1097. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts +28 -0
  1098. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -0
  1099. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js +42 -0
  1100. package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.js.map +1 -0
  1101. package/dist/types.d.ts +54 -19
  1102. package/dist/types.d.ts.map +1 -1
  1103. package/dist/types.js +1 -2
  1104. package/dist/types.js.map +1 -1
  1105. package/dist/utilities/createClientFeature.d.ts +13 -0
  1106. package/dist/utilities/createClientFeature.d.ts.map +1 -0
  1107. package/dist/utilities/createClientFeature.js +44 -0
  1108. package/dist/utilities/createClientFeature.js.map +1 -0
  1109. package/dist/utilities/createServerFeature.d.ts +16 -0
  1110. package/dist/utilities/createServerFeature.d.ts.map +1 -0
  1111. package/dist/utilities/createServerFeature.js +49 -0
  1112. package/dist/utilities/createServerFeature.js.map +1 -0
  1113. package/dist/utilities/fieldsDrawer/Drawer.d.ts +20 -0
  1114. package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -0
  1115. package/dist/utilities/fieldsDrawer/Drawer.js +39 -0
  1116. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -0
  1117. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts +4 -0
  1118. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -0
  1119. package/dist/utilities/fieldsDrawer/DrawerContent.js +161 -0
  1120. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -0
  1121. package/dist/utilities/forEachNodeRecursively.d.ts +10 -0
  1122. package/dist/utilities/forEachNodeRecursively.d.ts.map +1 -0
  1123. package/dist/utilities/forEachNodeRecursively.js +29 -0
  1124. package/dist/utilities/forEachNodeRecursively.js.map +1 -0
  1125. package/dist/utilities/generateComponentMap.d.ts +6 -0
  1126. package/dist/utilities/generateComponentMap.d.ts.map +1 -0
  1127. package/dist/utilities/generateComponentMap.js +99 -0
  1128. package/dist/utilities/generateComponentMap.js.map +1 -0
  1129. package/dist/utilities/generateImportMap.d.ts +6 -0
  1130. package/dist/utilities/generateImportMap.d.ts.map +1 -0
  1131. package/dist/utilities/generateImportMap.js +56 -0
  1132. package/dist/utilities/generateImportMap.js.map +1 -0
  1133. package/dist/utilities/generateSchemaMap.d.ts +6 -0
  1134. package/dist/utilities/generateSchemaMap.d.ts.map +1 -0
  1135. package/dist/utilities/generateSchemaMap.js +37 -0
  1136. package/dist/utilities/generateSchemaMap.js.map +1 -0
  1137. package/dist/utilities/migrateSlateToLexical/index.d.ts +15 -0
  1138. package/dist/utilities/migrateSlateToLexical/index.d.ts.map +1 -0
  1139. package/dist/utilities/migrateSlateToLexical/index.js +149 -0
  1140. package/dist/utilities/migrateSlateToLexical/index.js.map +1 -0
  1141. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +9 -0
  1142. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -0
  1143. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +80 -0
  1144. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -0
  1145. package/dist/utilities/recurseNodeTree.d.ts +9 -0
  1146. package/dist/utilities/recurseNodeTree.d.ts.map +1 -0
  1147. package/dist/utilities/recurseNodeTree.js +30 -0
  1148. package/dist/utilities/recurseNodeTree.js.map +1 -0
  1149. package/dist/utilities/upgradeLexicalData/index.d.ts +11 -0
  1150. package/dist/utilities/upgradeLexicalData/index.d.ts.map +1 -0
  1151. package/dist/utilities/upgradeLexicalData/index.js +114 -0
  1152. package/dist/utilities/upgradeLexicalData/index.js.map +1 -0
  1153. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts +9 -0
  1154. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -0
  1155. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +79 -0
  1156. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -0
  1157. package/dist/utilities/useLexicalFeature.d.ts +3 -0
  1158. package/dist/utilities/useLexicalFeature.d.ts.map +1 -0
  1159. package/dist/utilities/useLexicalFeature.js +13 -0
  1160. package/dist/utilities/useLexicalFeature.js.map +1 -0
  1161. package/dist/validate/index.d.ts +3 -3
  1162. package/dist/validate/index.d.ts.map +1 -1
  1163. package/dist/validate/index.js +45 -23
  1164. package/dist/validate/index.js.map +1 -1
  1165. package/dist/validate/validateNodes.d.ts +3 -3
  1166. package/dist/validate/validateNodes.d.ts.map +1 -1
  1167. package/dist/validate/validateNodes.js +31 -28
  1168. package/dist/validate/validateNodes.js.map +1 -1
  1169. package/package.json +96 -56
  1170. package/dist/exports/components.d.ts +0 -6
  1171. package/dist/exports/components.d.ts.map +0 -1
  1172. package/dist/exports/components.js +0 -7
  1173. package/dist/exports/components.js.map +0 -1
  1174. package/dist/field/features/align/feature.client.d.ts +0 -3
  1175. package/dist/field/features/align/feature.client.d.ts.map +0 -1
  1176. package/dist/field/features/align/feature.client.js +0 -72
  1177. package/dist/field/features/align/feature.client.js.map +0 -1
  1178. package/dist/field/features/align/feature.server.d.ts +0 -3
  1179. package/dist/field/features/align/feature.server.d.ts.map +0 -1
  1180. package/dist/field/features/align/feature.server.js +0 -16
  1181. package/dist/field/features/align/feature.server.js.map +0 -1
  1182. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts +0 -3
  1183. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +0 -1
  1184. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +0 -12
  1185. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js.map +0 -1
  1186. package/dist/field/features/blockquote/feature.client.d.ts +0 -3
  1187. package/dist/field/features/blockquote/feature.client.d.ts.map +0 -1
  1188. package/dist/field/features/blockquote/feature.client.js +0 -70
  1189. package/dist/field/features/blockquote/feature.client.js.map +0 -1
  1190. package/dist/field/features/blockquote/feature.server.d.ts +0 -3
  1191. package/dist/field/features/blockquote/feature.server.d.ts.map +0 -1
  1192. package/dist/field/features/blockquote/feature.server.js +0 -47
  1193. package/dist/field/features/blockquote/feature.server.js.map +0 -1
  1194. package/dist/field/features/blockquote/markdownTransformer.d.ts.map +0 -1
  1195. package/dist/field/features/blockquote/markdownTransformer.js +0 -42
  1196. package/dist/field/features/blockquote/markdownTransformer.js.map +0 -1
  1197. package/dist/field/features/blocks/component/BlockContent.d.ts +0 -27
  1198. package/dist/field/features/blocks/component/BlockContent.d.ts.map +0 -1
  1199. package/dist/field/features/blocks/component/BlockContent.js +0 -183
  1200. package/dist/field/features/blocks/component/BlockContent.js.map +0 -1
  1201. package/dist/field/features/blocks/component/FormSavePlugin.d.ts +0 -12
  1202. package/dist/field/features/blocks/component/FormSavePlugin.d.ts.map +0 -1
  1203. package/dist/field/features/blocks/component/FormSavePlugin.js +0 -29
  1204. package/dist/field/features/blocks/component/FormSavePlugin.js.map +0 -1
  1205. package/dist/field/features/blocks/component/index.d.ts +0 -16
  1206. package/dist/field/features/blocks/component/index.d.ts.map +0 -1
  1207. package/dist/field/features/blocks/component/index.js +0 -128
  1208. package/dist/field/features/blocks/component/index.js.map +0 -1
  1209. package/dist/field/features/blocks/component/index.scss +0 -153
  1210. package/dist/field/features/blocks/component/removeEmptyArrayValues.d.ts +0 -11
  1211. package/dist/field/features/blocks/component/removeEmptyArrayValues.d.ts.map +0 -1
  1212. package/dist/field/features/blocks/component/removeEmptyArrayValues.js +0 -16
  1213. package/dist/field/features/blocks/component/removeEmptyArrayValues.js.map +0 -1
  1214. package/dist/field/features/blocks/drawer/index.d.ts +0 -9
  1215. package/dist/field/features/blocks/drawer/index.d.ts.map +0 -1
  1216. package/dist/field/features/blocks/drawer/index.js +0 -84
  1217. package/dist/field/features/blocks/drawer/index.js.map +0 -1
  1218. package/dist/field/features/blocks/feature.client.d.ts +0 -7
  1219. package/dist/field/features/blocks/feature.client.d.ts.map +0 -1
  1220. package/dist/field/features/blocks/feature.client.js +0 -61
  1221. package/dist/field/features/blocks/feature.client.js.map +0 -1
  1222. package/dist/field/features/blocks/feature.server.d.ts +0 -11
  1223. package/dist/field/features/blocks/feature.server.d.ts.map +0 -1
  1224. package/dist/field/features/blocks/feature.server.js +0 -127
  1225. package/dist/field/features/blocks/feature.server.js.map +0 -1
  1226. package/dist/field/features/blocks/nodes/BlocksNode.d.ts +0 -38
  1227. package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +0 -1
  1228. package/dist/field/features/blocks/nodes/BlocksNode.js +0 -92
  1229. package/dist/field/features/blocks/nodes/BlocksNode.js.map +0 -1
  1230. package/dist/field/features/blocks/plugin/commands.d.ts +0 -4
  1231. package/dist/field/features/blocks/plugin/commands.d.ts.map +0 -1
  1232. package/dist/field/features/blocks/plugin/commands.js +0 -5
  1233. package/dist/field/features/blocks/plugin/commands.js.map +0 -1
  1234. package/dist/field/features/blocks/plugin/index.d.ts +0 -5
  1235. package/dist/field/features/blocks/plugin/index.d.ts.map +0 -1
  1236. package/dist/field/features/blocks/plugin/index.js +0 -43
  1237. package/dist/field/features/blocks/plugin/index.js.map +0 -1
  1238. package/dist/field/features/blocks/populationPromise.d.ts +0 -5
  1239. package/dist/field/features/blocks/populationPromise.d.ts.map +0 -1
  1240. package/dist/field/features/blocks/populationPromise.js +0 -46
  1241. package/dist/field/features/blocks/populationPromise.js.map +0 -1
  1242. package/dist/field/features/blocks/validate.d.ts +0 -5
  1243. package/dist/field/features/blocks/validate.d.ts.map +0 -1
  1244. package/dist/field/features/blocks/validate.js +0 -50
  1245. package/dist/field/features/blocks/validate.js.map +0 -1
  1246. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts +0 -3
  1247. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts.map +0 -1
  1248. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +0 -10
  1249. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js.map +0 -1
  1250. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts +0 -3
  1251. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +0 -1
  1252. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +0 -12
  1253. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js.map +0 -1
  1254. package/dist/field/features/converters/html/converter/converters/linebreak.d.ts.map +0 -1
  1255. package/dist/field/features/converters/html/converter/converters/linebreak.js +0 -10
  1256. package/dist/field/features/converters/html/converter/converters/linebreak.js.map +0 -1
  1257. package/dist/field/features/converters/html/converter/converters/paragraph.d.ts.map +0 -1
  1258. package/dist/field/features/converters/html/converter/converters/paragraph.js +0 -20
  1259. package/dist/field/features/converters/html/converter/converters/paragraph.js.map +0 -1
  1260. package/dist/field/features/converters/html/converter/converters/text.d.ts.map +0 -1
  1261. package/dist/field/features/converters/html/converter/converters/text.js +0 -33
  1262. package/dist/field/features/converters/html/converter/converters/text.js.map +0 -1
  1263. package/dist/field/features/converters/html/converter/defaultConverters.d.ts.map +0 -1
  1264. package/dist/field/features/converters/html/converter/defaultConverters.js +0 -10
  1265. package/dist/field/features/converters/html/converter/defaultConverters.js.map +0 -1
  1266. package/dist/field/features/converters/html/converter/index.d.ts +0 -21
  1267. package/dist/field/features/converters/html/converter/index.d.ts.map +0 -1
  1268. package/dist/field/features/converters/html/converter/index.js +0 -44
  1269. package/dist/field/features/converters/html/converter/index.js.map +0 -1
  1270. package/dist/field/features/converters/html/converter/types.d.ts +0 -19
  1271. package/dist/field/features/converters/html/converter/types.d.ts.map +0 -1
  1272. package/dist/field/features/converters/html/converter/types.js +0 -3
  1273. package/dist/field/features/converters/html/converter/types.js.map +0 -1
  1274. package/dist/field/features/converters/html/feature.server.d.ts +0 -9
  1275. package/dist/field/features/converters/html/feature.server.d.ts.map +0 -1
  1276. package/dist/field/features/converters/html/feature.server.js +0 -14
  1277. package/dist/field/features/converters/html/feature.server.js.map +0 -1
  1278. package/dist/field/features/converters/html/field/index.d.ts +0 -23
  1279. package/dist/field/features/converters/html/field/index.d.ts.map +0 -1
  1280. package/dist/field/features/converters/html/field/index.js +0 -114
  1281. package/dist/field/features/converters/html/field/index.js.map +0 -1
  1282. package/dist/field/features/createClientComponent.d.ts +0 -6
  1283. package/dist/field/features/createClientComponent.d.ts.map +0 -1
  1284. package/dist/field/features/createClientComponent.js +0 -12
  1285. package/dist/field/features/createClientComponent.js.map +0 -1
  1286. package/dist/field/features/createFeaturePropComponent.d.ts.map +0 -1
  1287. package/dist/field/features/createFeaturePropComponent.js +0 -15
  1288. package/dist/field/features/createFeaturePropComponent.js.map +0 -1
  1289. package/dist/field/features/debug/testrecorder/feature.client.d.ts +0 -3
  1290. package/dist/field/features/debug/testrecorder/feature.client.d.ts.map +0 -1
  1291. package/dist/field/features/debug/testrecorder/feature.client.js +0 -20
  1292. package/dist/field/features/debug/testrecorder/feature.client.js.map +0 -1
  1293. package/dist/field/features/debug/testrecorder/feature.server.d.ts +0 -3
  1294. package/dist/field/features/debug/testrecorder/feature.server.d.ts.map +0 -1
  1295. package/dist/field/features/debug/testrecorder/feature.server.js +0 -15
  1296. package/dist/field/features/debug/testrecorder/feature.server.js.map +0 -1
  1297. package/dist/field/features/debug/testrecorder/plugin/index.d.ts +0 -5
  1298. package/dist/field/features/debug/testrecorder/plugin/index.d.ts.map +0 -1
  1299. package/dist/field/features/debug/testrecorder/plugin/index.js +0 -448
  1300. package/dist/field/features/debug/testrecorder/plugin/index.js.map +0 -1
  1301. package/dist/field/features/debug/testrecorder/plugin/index.scss +0 -49
  1302. package/dist/field/features/debug/treeview/feature.client.d.ts +0 -3
  1303. package/dist/field/features/debug/treeview/feature.client.d.ts.map +0 -1
  1304. package/dist/field/features/debug/treeview/feature.client.js +0 -20
  1305. package/dist/field/features/debug/treeview/feature.client.js.map +0 -1
  1306. package/dist/field/features/debug/treeview/feature.server.d.ts +0 -3
  1307. package/dist/field/features/debug/treeview/feature.server.d.ts.map +0 -1
  1308. package/dist/field/features/debug/treeview/feature.server.js +0 -15
  1309. package/dist/field/features/debug/treeview/feature.server.js.map +0 -1
  1310. package/dist/field/features/debug/treeview/plugin/index.d.ts +0 -4
  1311. package/dist/field/features/debug/treeview/plugin/index.d.ts.map +0 -1
  1312. package/dist/field/features/debug/treeview/plugin/index.js +0 -21
  1313. package/dist/field/features/debug/treeview/plugin/index.js.map +0 -1
  1314. package/dist/field/features/debug/treeview/plugin/index.scss +0 -78
  1315. package/dist/field/features/format/bold/feature.client.d.ts +0 -3
  1316. package/dist/field/features/format/bold/feature.client.d.ts.map +0 -1
  1317. package/dist/field/features/format/bold/feature.client.js +0 -48
  1318. package/dist/field/features/format/bold/feature.client.js.map +0 -1
  1319. package/dist/field/features/format/bold/feature.server.d.ts +0 -3
  1320. package/dist/field/features/format/bold/feature.server.d.ts.map +0 -1
  1321. package/dist/field/features/format/bold/feature.server.js +0 -27
  1322. package/dist/field/features/format/bold/feature.server.js.map +0 -1
  1323. package/dist/field/features/format/bold/markdownTransformers.d.ts.map +0 -1
  1324. package/dist/field/features/format/bold/markdownTransformers.js +0 -34
  1325. package/dist/field/features/format/bold/markdownTransformers.js.map +0 -1
  1326. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts +0 -3
  1327. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts.map +0 -1
  1328. package/dist/field/features/format/common/floatingSelectToolbarSection.js +0 -10
  1329. package/dist/field/features/format/common/floatingSelectToolbarSection.js.map +0 -1
  1330. package/dist/field/features/format/inlinecode/feature.client.d.ts +0 -3
  1331. package/dist/field/features/format/inlinecode/feature.client.d.ts.map +0 -1
  1332. package/dist/field/features/format/inlinecode/feature.client.js +0 -43
  1333. package/dist/field/features/format/inlinecode/feature.client.js.map +0 -1
  1334. package/dist/field/features/format/inlinecode/feature.server.d.ts +0 -3
  1335. package/dist/field/features/format/inlinecode/feature.server.d.ts.map +0 -1
  1336. package/dist/field/features/format/inlinecode/feature.server.js +0 -19
  1337. package/dist/field/features/format/inlinecode/feature.server.js.map +0 -1
  1338. package/dist/field/features/format/inlinecode/markdownTransformers.d.ts.map +0 -1
  1339. package/dist/field/features/format/inlinecode/markdownTransformers.js +0 -9
  1340. package/dist/field/features/format/inlinecode/markdownTransformers.js.map +0 -1
  1341. package/dist/field/features/format/italic/feature.client.d.ts +0 -3
  1342. package/dist/field/features/format/italic/feature.client.d.ts.map +0 -1
  1343. package/dist/field/features/format/italic/feature.client.js +0 -44
  1344. package/dist/field/features/format/italic/feature.client.js.map +0 -1
  1345. package/dist/field/features/format/italic/feature.server.d.ts +0 -3
  1346. package/dist/field/features/format/italic/feature.server.d.ts.map +0 -1
  1347. package/dist/field/features/format/italic/feature.server.js +0 -20
  1348. package/dist/field/features/format/italic/feature.server.js.map +0 -1
  1349. package/dist/field/features/format/italic/markdownTransformers.d.ts.map +0 -1
  1350. package/dist/field/features/format/italic/markdownTransformers.js +0 -17
  1351. package/dist/field/features/format/italic/markdownTransformers.js.map +0 -1
  1352. package/dist/field/features/format/strikethrough/feature.client.d.ts +0 -3
  1353. package/dist/field/features/format/strikethrough/feature.client.d.ts.map +0 -1
  1354. package/dist/field/features/format/strikethrough/feature.client.js +0 -43
  1355. package/dist/field/features/format/strikethrough/feature.client.js.map +0 -1
  1356. package/dist/field/features/format/strikethrough/feature.server.d.ts +0 -3
  1357. package/dist/field/features/format/strikethrough/feature.server.d.ts.map +0 -1
  1358. package/dist/field/features/format/strikethrough/feature.server.js +0 -19
  1359. package/dist/field/features/format/strikethrough/feature.server.js.map +0 -1
  1360. package/dist/field/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
  1361. package/dist/field/features/format/strikethrough/markdownTransformers.js +0 -9
  1362. package/dist/field/features/format/strikethrough/markdownTransformers.js.map +0 -1
  1363. package/dist/field/features/format/subscript/feature.client.d.ts +0 -3
  1364. package/dist/field/features/format/subscript/feature.client.d.ts.map +0 -1
  1365. package/dist/field/features/format/subscript/feature.client.js +0 -39
  1366. package/dist/field/features/format/subscript/feature.client.js.map +0 -1
  1367. package/dist/field/features/format/subscript/feature.server.d.ts +0 -3
  1368. package/dist/field/features/format/subscript/feature.server.d.ts.map +0 -1
  1369. package/dist/field/features/format/subscript/feature.server.js +0 -15
  1370. package/dist/field/features/format/subscript/feature.server.js.map +0 -1
  1371. package/dist/field/features/format/superscript/feature.client.d.ts +0 -3
  1372. package/dist/field/features/format/superscript/feature.client.d.ts.map +0 -1
  1373. package/dist/field/features/format/superscript/feature.client.js +0 -39
  1374. package/dist/field/features/format/superscript/feature.client.js.map +0 -1
  1375. package/dist/field/features/format/superscript/feature.server.d.ts +0 -3
  1376. package/dist/field/features/format/superscript/feature.server.d.ts.map +0 -1
  1377. package/dist/field/features/format/superscript/feature.server.js +0 -15
  1378. package/dist/field/features/format/superscript/feature.server.js.map +0 -1
  1379. package/dist/field/features/format/underline/feature.client.d.ts +0 -3
  1380. package/dist/field/features/format/underline/feature.client.d.ts.map +0 -1
  1381. package/dist/field/features/format/underline/feature.client.js +0 -39
  1382. package/dist/field/features/format/underline/feature.client.js.map +0 -1
  1383. package/dist/field/features/format/underline/feature.server.d.ts +0 -3
  1384. package/dist/field/features/format/underline/feature.server.d.ts.map +0 -1
  1385. package/dist/field/features/format/underline/feature.server.js +0 -15
  1386. package/dist/field/features/format/underline/feature.server.js.map +0 -1
  1387. package/dist/field/features/heading/feature.client.d.ts +0 -4
  1388. package/dist/field/features/heading/feature.client.d.ts.map +0 -1
  1389. package/dist/field/features/heading/feature.client.js +0 -97
  1390. package/dist/field/features/heading/feature.client.js.map +0 -1
  1391. package/dist/field/features/heading/feature.server.d.ts +0 -7
  1392. package/dist/field/features/heading/feature.server.d.ts.map +0 -1
  1393. package/dist/field/features/heading/feature.server.js +0 -58
  1394. package/dist/field/features/heading/feature.server.js.map +0 -1
  1395. package/dist/field/features/heading/markdownTransformer.d.ts.map +0 -1
  1396. package/dist/field/features/heading/markdownTransformer.js +0 -30
  1397. package/dist/field/features/heading/markdownTransformer.js.map +0 -1
  1398. package/dist/field/features/horizontalrule/component/index.d.ts.map +0 -1
  1399. package/dist/field/features/horizontalrule/component/index.js +0 -64
  1400. package/dist/field/features/horizontalrule/component/index.js.map +0 -1
  1401. package/dist/field/features/horizontalrule/feature.client.d.ts +0 -3
  1402. package/dist/field/features/horizontalrule/feature.client.d.ts.map +0 -1
  1403. package/dist/field/features/horizontalrule/feature.client.js +0 -53
  1404. package/dist/field/features/horizontalrule/feature.client.js.map +0 -1
  1405. package/dist/field/features/horizontalrule/feature.server.d.ts +0 -3
  1406. package/dist/field/features/horizontalrule/feature.server.d.ts.map +0 -1
  1407. package/dist/field/features/horizontalrule/feature.server.js +0 -36
  1408. package/dist/field/features/horizontalrule/feature.server.js.map +0 -1
  1409. package/dist/field/features/horizontalrule/markdownTransformer.d.ts.map +0 -1
  1410. package/dist/field/features/horizontalrule/markdownTransformer.js +0 -23
  1411. package/dist/field/features/horizontalrule/markdownTransformer.js.map +0 -1
  1412. package/dist/field/features/horizontalrule/nodes/HorizontalRuleNode.d.ts +0 -55
  1413. package/dist/field/features/horizontalrule/nodes/HorizontalRuleNode.d.ts.map +0 -1
  1414. package/dist/field/features/horizontalrule/nodes/HorizontalRuleNode.js +0 -89
  1415. package/dist/field/features/horizontalrule/nodes/HorizontalRuleNode.js.map +0 -1
  1416. package/dist/field/features/horizontalrule/plugin/index.d.ts +0 -6
  1417. package/dist/field/features/horizontalrule/plugin/index.d.ts.map +0 -1
  1418. package/dist/field/features/horizontalrule/plugin/index.js +0 -34
  1419. package/dist/field/features/horizontalrule/plugin/index.js.map +0 -1
  1420. package/dist/field/features/horizontalrule/plugin/index.scss +0 -20
  1421. package/dist/field/features/indent/feature.client.d.ts +0 -3
  1422. package/dist/field/features/indent/feature.client.d.ts.map +0 -1
  1423. package/dist/field/features/indent/feature.client.js +0 -58
  1424. package/dist/field/features/indent/feature.client.js.map +0 -1
  1425. package/dist/field/features/indent/feature.server.d.ts +0 -3
  1426. package/dist/field/features/indent/feature.server.d.ts.map +0 -1
  1427. package/dist/field/features/indent/feature.server.js +0 -16
  1428. package/dist/field/features/indent/feature.server.js.map +0 -1
  1429. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts +0 -3
  1430. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts.map +0 -1
  1431. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +0 -10
  1432. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js.map +0 -1
  1433. package/dist/field/features/indent/index.scss +0 -4
  1434. package/dist/field/features/link/drawer/baseFields.d.ts +0 -4
  1435. package/dist/field/features/link/drawer/baseFields.d.ts.map +0 -1
  1436. package/dist/field/features/link/drawer/baseFields.js +0 -107
  1437. package/dist/field/features/link/drawer/baseFields.js.map +0 -1
  1438. package/dist/field/features/link/drawer/index.d.ts +0 -5
  1439. package/dist/field/features/link/drawer/index.d.ts.map +0 -1
  1440. package/dist/field/features/link/drawer/index.js +0 -93
  1441. package/dist/field/features/link/drawer/index.js.map +0 -1
  1442. package/dist/field/features/link/drawer/index.scss +0 -50
  1443. package/dist/field/features/link/drawer/types.d.ts +0 -8
  1444. package/dist/field/features/link/drawer/types.d.ts.map +0 -1
  1445. package/dist/field/features/link/drawer/types.js +0 -3
  1446. package/dist/field/features/link/drawer/types.js.map +0 -1
  1447. package/dist/field/features/link/feature.client.d.ts +0 -5
  1448. package/dist/field/features/link/feature.client.d.ts.map +0 -1
  1449. package/dist/field/features/link/feature.client.js +0 -90
  1450. package/dist/field/features/link/feature.client.js.map +0 -1
  1451. package/dist/field/features/link/feature.server.d.ts +0 -33
  1452. package/dist/field/features/link/feature.server.d.ts.map +0 -1
  1453. package/dist/field/features/link/feature.server.js +0 -91
  1454. package/dist/field/features/link/feature.server.js.map +0 -1
  1455. package/dist/field/features/link/nodes/AutoLinkNode.d.ts.map +0 -1
  1456. package/dist/field/features/link/nodes/AutoLinkNode.js +0 -61
  1457. package/dist/field/features/link/nodes/AutoLinkNode.js.map +0 -1
  1458. package/dist/field/features/link/nodes/LinkNode.d.ts +0 -38
  1459. package/dist/field/features/link/nodes/LinkNode.d.ts.map +0 -1
  1460. package/dist/field/features/link/nodes/LinkNode.js +0 -301
  1461. package/dist/field/features/link/nodes/LinkNode.js.map +0 -1
  1462. package/dist/field/features/link/nodes/types.d.ts +0 -19
  1463. package/dist/field/features/link/nodes/types.d.ts.map +0 -1
  1464. package/dist/field/features/link/nodes/types.js +0 -3
  1465. package/dist/field/features/link/nodes/types.js.map +0 -1
  1466. package/dist/field/features/link/plugins/autoLink/index.d.ts +0 -19
  1467. package/dist/field/features/link/plugins/autoLink/index.d.ts.map +0 -1
  1468. package/dist/field/features/link/plugins/autoLink/index.js +0 -321
  1469. package/dist/field/features/link/plugins/autoLink/index.js.map +0 -1
  1470. package/dist/field/features/link/plugins/clickableLink/index.d.ts +0 -3
  1471. package/dist/field/features/link/plugins/clickableLink/index.d.ts.map +0 -1
  1472. package/dist/field/features/link/plugins/clickableLink/index.js +0 -10
  1473. package/dist/field/features/link/plugins/clickableLink/index.js.map +0 -1
  1474. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.d.ts.map +0 -1
  1475. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +0 -5
  1476. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js.map +0 -1
  1477. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +0 -1
  1478. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +0 -259
  1479. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js.map +0 -1
  1480. package/dist/field/features/link/plugins/floatingLinkEditor/index.d.ts +0 -6
  1481. package/dist/field/features/link/plugins/floatingLinkEditor/index.d.ts.map +0 -1
  1482. package/dist/field/features/link/plugins/floatingLinkEditor/index.js +0 -13
  1483. package/dist/field/features/link/plugins/floatingLinkEditor/index.js.map +0 -1
  1484. package/dist/field/features/link/plugins/floatingLinkEditor/index.scss +0 -78
  1485. package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts +0 -15
  1486. package/dist/field/features/link/plugins/floatingLinkEditor/types.d.ts.map +0 -1
  1487. package/dist/field/features/link/plugins/floatingLinkEditor/types.js +0 -6
  1488. package/dist/field/features/link/plugins/floatingLinkEditor/types.js.map +0 -1
  1489. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.d.ts +0 -12
  1490. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.d.ts.map +0 -1
  1491. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +0 -38
  1492. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js.map +0 -1
  1493. package/dist/field/features/link/plugins/link/index.d.ts +0 -2
  1494. package/dist/field/features/link/plugins/link/index.d.ts.map +0 -1
  1495. package/dist/field/features/link/plugins/link/index.js +0 -62
  1496. package/dist/field/features/link/plugins/link/index.js.map +0 -1
  1497. package/dist/field/features/link/populationPromise.d.ts +0 -5
  1498. package/dist/field/features/link/populationPromise.d.ts.map +0 -1
  1499. package/dist/field/features/link/populationPromise.js +0 -46
  1500. package/dist/field/features/link/populationPromise.js.map +0 -1
  1501. package/dist/field/features/lists/checklist/feature.client.d.ts +0 -3
  1502. package/dist/field/features/lists/checklist/feature.client.d.ts.map +0 -1
  1503. package/dist/field/features/lists/checklist/feature.client.js +0 -82
  1504. package/dist/field/features/lists/checklist/feature.client.js.map +0 -1
  1505. package/dist/field/features/lists/checklist/feature.server.d.ts +0 -3
  1506. package/dist/field/features/lists/checklist/feature.server.d.ts.map +0 -1
  1507. package/dist/field/features/lists/checklist/feature.server.js +0 -36
  1508. package/dist/field/features/lists/checklist/feature.server.js.map +0 -1
  1509. package/dist/field/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
  1510. package/dist/field/features/lists/checklist/markdownTransformers.js +0 -17
  1511. package/dist/field/features/lists/checklist/markdownTransformers.js.map +0 -1
  1512. package/dist/field/features/lists/checklist/plugin/index.d.ts +0 -3
  1513. package/dist/field/features/lists/checklist/plugin/index.d.ts.map +0 -1
  1514. package/dist/field/features/lists/checklist/plugin/index.js +0 -9
  1515. package/dist/field/features/lists/checklist/plugin/index.js.map +0 -1
  1516. package/dist/field/features/lists/common/markdown.d.ts +0 -6
  1517. package/dist/field/features/lists/common/markdown.d.ts.map +0 -1
  1518. package/dist/field/features/lists/common/markdown.js +0 -59
  1519. package/dist/field/features/lists/common/markdown.js.map +0 -1
  1520. package/dist/field/features/lists/htmlConverter.d.ts +0 -5
  1521. package/dist/field/features/lists/htmlConverter.d.ts.map +0 -1
  1522. package/dist/field/features/lists/htmlConverter.js +0 -49
  1523. package/dist/field/features/lists/htmlConverter.js.map +0 -1
  1524. package/dist/field/features/lists/orderedlist/feature.client.d.ts +0 -3
  1525. package/dist/field/features/lists/orderedlist/feature.client.d.ts.map +0 -1
  1526. package/dist/field/features/lists/orderedlist/feature.client.js +0 -72
  1527. package/dist/field/features/lists/orderedlist/feature.client.js.map +0 -1
  1528. package/dist/field/features/lists/orderedlist/feature.server.d.ts +0 -3
  1529. package/dist/field/features/lists/orderedlist/feature.server.d.ts.map +0 -1
  1530. package/dist/field/features/lists/orderedlist/feature.server.js +0 -36
  1531. package/dist/field/features/lists/orderedlist/feature.server.js.map +0 -1
  1532. package/dist/field/features/lists/orderedlist/markdownTransformer.d.ts.map +0 -1
  1533. package/dist/field/features/lists/orderedlist/markdownTransformer.js +0 -17
  1534. package/dist/field/features/lists/orderedlist/markdownTransformer.js.map +0 -1
  1535. package/dist/field/features/lists/plugin/index.d.ts +0 -3
  1536. package/dist/field/features/lists/plugin/index.d.ts.map +0 -1
  1537. package/dist/field/features/lists/plugin/index.js +0 -9
  1538. package/dist/field/features/lists/plugin/index.js.map +0 -1
  1539. package/dist/field/features/lists/unorderedlist/feature.client.d.ts +0 -3
  1540. package/dist/field/features/lists/unorderedlist/feature.client.d.ts.map +0 -1
  1541. package/dist/field/features/lists/unorderedlist/feature.client.js +0 -72
  1542. package/dist/field/features/lists/unorderedlist/feature.client.js.map +0 -1
  1543. package/dist/field/features/lists/unorderedlist/feature.server.d.ts +0 -3
  1544. package/dist/field/features/lists/unorderedlist/feature.server.d.ts.map +0 -1
  1545. package/dist/field/features/lists/unorderedlist/feature.server.js +0 -36
  1546. package/dist/field/features/lists/unorderedlist/feature.server.js.map +0 -1
  1547. package/dist/field/features/lists/unorderedlist/markdownTransformer.d.ts.map +0 -1
  1548. package/dist/field/features/lists/unorderedlist/markdownTransformer.js +0 -17
  1549. package/dist/field/features/lists/unorderedlist/markdownTransformer.js.map +0 -1
  1550. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts +0 -6
  1551. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.d.ts.map +0 -1
  1552. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +0 -6
  1553. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js.map +0 -1
  1554. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts +0 -3
  1555. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.d.ts.map +0 -1
  1556. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +0 -20
  1557. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js.map +0 -1
  1558. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts +0 -3
  1559. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.d.ts.map +0 -1
  1560. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +0 -8
  1561. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js.map +0 -1
  1562. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts +0 -6
  1563. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.d.ts.map +0 -1
  1564. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +0 -6
  1565. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js.map +0 -1
  1566. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts +0 -3
  1567. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.d.ts.map +0 -1
  1568. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +0 -31
  1569. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js.map +0 -1
  1570. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts +0 -3
  1571. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.d.ts.map +0 -1
  1572. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +0 -8
  1573. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js.map +0 -1
  1574. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts +0 -6
  1575. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.d.ts.map +0 -1
  1576. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +0 -6
  1577. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js.map +0 -1
  1578. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts +0 -3
  1579. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.d.ts.map +0 -1
  1580. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +0 -22
  1581. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js.map +0 -1
  1582. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts +0 -3
  1583. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.d.ts.map +0 -1
  1584. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +0 -8
  1585. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js.map +0 -1
  1586. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts +0 -6
  1587. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.d.ts.map +0 -1
  1588. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +0 -6
  1589. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js.map +0 -1
  1590. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts +0 -3
  1591. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
  1592. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +0 -22
  1593. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js.map +0 -1
  1594. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts +0 -3
  1595. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.d.ts.map +0 -1
  1596. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +0 -8
  1597. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js.map +0 -1
  1598. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts +0 -6
  1599. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.d.ts.map +0 -1
  1600. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +0 -6
  1601. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js.map +0 -1
  1602. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts +0 -3
  1603. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.d.ts.map +0 -1
  1604. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +0 -20
  1605. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js.map +0 -1
  1606. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts +0 -3
  1607. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.d.ts.map +0 -1
  1608. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +0 -8
  1609. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js.map +0 -1
  1610. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts +0 -6
  1611. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.d.ts.map +0 -1
  1612. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +0 -6
  1613. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js.map +0 -1
  1614. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts +0 -3
  1615. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
  1616. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +0 -26
  1617. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js.map +0 -1
  1618. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts +0 -3
  1619. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.d.ts.map +0 -1
  1620. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +0 -8
  1621. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js.map +0 -1
  1622. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts +0 -6
  1623. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.d.ts.map +0 -1
  1624. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +0 -6
  1625. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js.map +0 -1
  1626. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts +0 -3
  1627. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.d.ts.map +0 -1
  1628. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +0 -25
  1629. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js.map +0 -1
  1630. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts +0 -3
  1631. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.d.ts.map +0 -1
  1632. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +0 -8
  1633. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js.map +0 -1
  1634. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts +0 -3
  1635. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.d.ts.map +0 -1
  1636. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +0 -18
  1637. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js.map +0 -1
  1638. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts +0 -17
  1639. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.d.ts.map +0 -1
  1640. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +0 -63
  1641. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js.map +0 -1
  1642. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.d.ts +0 -31
  1643. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.d.ts.map +0 -1
  1644. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +0 -3
  1645. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js.map +0 -1
  1646. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.d.ts +0 -3
  1647. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.d.ts.map +0 -1
  1648. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +0 -34
  1649. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js.map +0 -1
  1650. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts +0 -9
  1651. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.d.ts.map +0 -1
  1652. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +0 -47
  1653. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js.map +0 -1
  1654. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
  1655. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +0 -8
  1656. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
  1657. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts +0 -36
  1658. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
  1659. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +0 -70
  1660. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
  1661. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +0 -14
  1662. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts +0 -6
  1663. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.d.ts.map +0 -1
  1664. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +0 -6
  1665. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js.map +0 -1
  1666. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts +0 -3
  1667. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.d.ts.map +0 -1
  1668. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +0 -23
  1669. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js.map +0 -1
  1670. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts +0 -3
  1671. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.d.ts.map +0 -1
  1672. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +0 -8
  1673. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js.map +0 -1
  1674. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.d.ts +0 -6
  1675. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.d.ts.map +0 -1
  1676. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +0 -6
  1677. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js.map +0 -1
  1678. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts +0 -3
  1679. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.d.ts.map +0 -1
  1680. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +0 -29
  1681. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js.map +0 -1
  1682. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts +0 -3
  1683. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.d.ts.map +0 -1
  1684. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +0 -8
  1685. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js.map +0 -1
  1686. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.d.ts +0 -6
  1687. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.d.ts.map +0 -1
  1688. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +0 -6
  1689. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js.map +0 -1
  1690. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts +0 -3
  1691. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.d.ts.map +0 -1
  1692. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +0 -35
  1693. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js.map +0 -1
  1694. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts +0 -3
  1695. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.d.ts.map +0 -1
  1696. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +0 -8
  1697. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js.map +0 -1
  1698. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.d.ts +0 -6
  1699. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.d.ts.map +0 -1
  1700. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +0 -6
  1701. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js.map +0 -1
  1702. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts +0 -3
  1703. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.d.ts.map +0 -1
  1704. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +0 -30
  1705. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js.map +0 -1
  1706. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts +0 -3
  1707. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.d.ts.map +0 -1
  1708. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +0 -8
  1709. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js.map +0 -1
  1710. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts +0 -6
  1711. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.d.ts.map +0 -1
  1712. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +0 -6
  1713. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js.map +0 -1
  1714. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts +0 -3
  1715. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.d.ts.map +0 -1
  1716. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +0 -25
  1717. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js.map +0 -1
  1718. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts +0 -3
  1719. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.d.ts.map +0 -1
  1720. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +0 -8
  1721. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js.map +0 -1
  1722. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts +0 -6
  1723. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.d.ts.map +0 -1
  1724. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +0 -6
  1725. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js.map +0 -1
  1726. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts +0 -3
  1727. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.d.ts.map +0 -1
  1728. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +0 -26
  1729. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js.map +0 -1
  1730. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts +0 -3
  1731. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.d.ts.map +0 -1
  1732. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +0 -8
  1733. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js.map +0 -1
  1734. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts +0 -6
  1735. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.d.ts.map +0 -1
  1736. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +0 -6
  1737. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js.map +0 -1
  1738. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts +0 -3
  1739. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.d.ts.map +0 -1
  1740. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +0 -18
  1741. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js.map +0 -1
  1742. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts +0 -3
  1743. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.d.ts.map +0 -1
  1744. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +0 -8
  1745. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js.map +0 -1
  1746. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts +0 -6
  1747. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.d.ts.map +0 -1
  1748. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +0 -6
  1749. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js.map +0 -1
  1750. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts +0 -3
  1751. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.d.ts.map +0 -1
  1752. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +0 -27
  1753. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js.map +0 -1
  1754. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts +0 -3
  1755. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.d.ts.map +0 -1
  1756. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +0 -8
  1757. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js.map +0 -1
  1758. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts +0 -6
  1759. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.d.ts.map +0 -1
  1760. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +0 -6
  1761. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js.map +0 -1
  1762. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts +0 -3
  1763. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.d.ts.map +0 -1
  1764. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +0 -26
  1765. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js.map +0 -1
  1766. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts +0 -3
  1767. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.d.ts.map +0 -1
  1768. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +0 -8
  1769. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js.map +0 -1
  1770. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.d.ts +0 -6
  1771. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.d.ts.map +0 -1
  1772. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +0 -6
  1773. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js.map +0 -1
  1774. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts +0 -3
  1775. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.d.ts.map +0 -1
  1776. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +0 -21
  1777. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js.map +0 -1
  1778. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts +0 -3
  1779. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.d.ts.map +0 -1
  1780. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +0 -8
  1781. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js.map +0 -1
  1782. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts +0 -3
  1783. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.d.ts.map +0 -1
  1784. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +0 -24
  1785. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js.map +0 -1
  1786. package/dist/field/features/migrations/slateToLexical/converter/index.d.ts.map +0 -1
  1787. package/dist/field/features/migrations/slateToLexical/converter/index.js +0 -107
  1788. package/dist/field/features/migrations/slateToLexical/converter/index.js.map +0 -1
  1789. package/dist/field/features/migrations/slateToLexical/converter/types.d.ts +0 -25
  1790. package/dist/field/features/migrations/slateToLexical/converter/types.d.ts.map +0 -1
  1791. package/dist/field/features/migrations/slateToLexical/converter/types.js +0 -3
  1792. package/dist/field/features/migrations/slateToLexical/converter/types.js.map +0 -1
  1793. package/dist/field/features/migrations/slateToLexical/feature.client.d.ts +0 -3
  1794. package/dist/field/features/migrations/slateToLexical/feature.client.d.ts.map +0 -1
  1795. package/dist/field/features/migrations/slateToLexical/feature.client.js +0 -34
  1796. package/dist/field/features/migrations/slateToLexical/feature.client.js.map +0 -1
  1797. package/dist/field/features/migrations/slateToLexical/feature.server.d.ts +0 -9
  1798. package/dist/field/features/migrations/slateToLexical/feature.server.d.ts.map +0 -1
  1799. package/dist/field/features/migrations/slateToLexical/feature.server.js +0 -47
  1800. package/dist/field/features/migrations/slateToLexical/feature.server.js.map +0 -1
  1801. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts.map +0 -1
  1802. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +0 -8
  1803. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +0 -1
  1804. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts +0 -36
  1805. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +0 -1
  1806. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +0 -70
  1807. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +0 -1
  1808. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +0 -14
  1809. package/dist/field/features/paragraph/feature.client.d.ts +0 -3
  1810. package/dist/field/features/paragraph/feature.client.d.ts.map +0 -1
  1811. package/dist/field/features/paragraph/feature.client.js +0 -65
  1812. package/dist/field/features/paragraph/feature.client.js.map +0 -1
  1813. package/dist/field/features/paragraph/feature.server.d.ts +0 -3
  1814. package/dist/field/features/paragraph/feature.server.d.ts.map +0 -1
  1815. package/dist/field/features/paragraph/feature.server.js +0 -16
  1816. package/dist/field/features/paragraph/feature.server.js.map +0 -1
  1817. package/dist/field/features/relationship/drawer/commands.d.ts.map +0 -1
  1818. package/dist/field/features/relationship/drawer/commands.js +0 -5
  1819. package/dist/field/features/relationship/drawer/commands.js.map +0 -1
  1820. package/dist/field/features/relationship/drawer/index.d.ts.map +0 -1
  1821. package/dist/field/features/relationship/drawer/index.js +0 -81
  1822. package/dist/field/features/relationship/drawer/index.js.map +0 -1
  1823. package/dist/field/features/relationship/feature.client.d.ts +0 -4
  1824. package/dist/field/features/relationship/feature.client.d.ts.map +0 -1
  1825. package/dist/field/features/relationship/feature.client.js +0 -56
  1826. package/dist/field/features/relationship/feature.client.js.map +0 -1
  1827. package/dist/field/features/relationship/feature.server.d.ts +0 -18
  1828. package/dist/field/features/relationship/feature.server.d.ts.map +0 -1
  1829. package/dist/field/features/relationship/feature.server.js +0 -26
  1830. package/dist/field/features/relationship/feature.server.js.map +0 -1
  1831. package/dist/field/features/relationship/nodes/RelationshipNode.d.ts +0 -36
  1832. package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +0 -1
  1833. package/dist/field/features/relationship/nodes/RelationshipNode.js +0 -110
  1834. package/dist/field/features/relationship/nodes/RelationshipNode.js.map +0 -1
  1835. package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts +0 -14
  1836. package/dist/field/features/relationship/nodes/components/RelationshipComponent.d.ts.map +0 -1
  1837. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +0 -109
  1838. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js.map +0 -1
  1839. package/dist/field/features/relationship/nodes/components/index.scss +0 -97
  1840. package/dist/field/features/relationship/plugins/index.d.ts +0 -7
  1841. package/dist/field/features/relationship/plugins/index.d.ts.map +0 -1
  1842. package/dist/field/features/relationship/plugins/index.js +0 -52
  1843. package/dist/field/features/relationship/plugins/index.js.map +0 -1
  1844. package/dist/field/features/relationship/populationPromise.d.ts +0 -4
  1845. package/dist/field/features/relationship/populationPromise.d.ts.map +0 -1
  1846. package/dist/field/features/relationship/populationPromise.js +0 -24
  1847. package/dist/field/features/relationship/populationPromise.js.map +0 -1
  1848. package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.d.ts.map +0 -1
  1849. package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +0 -35
  1850. package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js.map +0 -1
  1851. package/dist/field/features/types.d.ts +0 -278
  1852. package/dist/field/features/types.d.ts.map +0 -1
  1853. package/dist/field/features/types.js +0 -3
  1854. package/dist/field/features/types.js.map +0 -1
  1855. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts +0 -12
  1856. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.d.ts.map +0 -1
  1857. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +0 -125
  1858. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js.map +0 -1
  1859. package/dist/field/features/upload/component/index.d.ts +0 -9
  1860. package/dist/field/features/upload/component/index.d.ts.map +0 -1
  1861. package/dist/field/features/upload/component/index.js +0 -144
  1862. package/dist/field/features/upload/component/index.js.map +0 -1
  1863. package/dist/field/features/upload/component/index.scss +0 -152
  1864. package/dist/field/features/upload/drawer/commands.d.ts.map +0 -1
  1865. package/dist/field/features/upload/drawer/commands.js +0 -6
  1866. package/dist/field/features/upload/drawer/commands.js.map +0 -1
  1867. package/dist/field/features/upload/drawer/index.d.ts.map +0 -1
  1868. package/dist/field/features/upload/drawer/index.js +0 -78
  1869. package/dist/field/features/upload/drawer/index.js.map +0 -1
  1870. package/dist/field/features/upload/feature.client.d.ts +0 -10
  1871. package/dist/field/features/upload/feature.client.d.ts.map +0 -1
  1872. package/dist/field/features/upload/feature.client.js +0 -55
  1873. package/dist/field/features/upload/feature.client.js.map +0 -1
  1874. package/dist/field/features/upload/feature.server.d.ts +0 -12
  1875. package/dist/field/features/upload/feature.server.d.ts.map +0 -1
  1876. package/dist/field/features/upload/feature.server.js +0 -110
  1877. package/dist/field/features/upload/feature.server.js.map +0 -1
  1878. package/dist/field/features/upload/nodes/UploadNode.d.ts +0 -49
  1879. package/dist/field/features/upload/nodes/UploadNode.d.ts.map +0 -1
  1880. package/dist/field/features/upload/nodes/UploadNode.js +0 -102
  1881. package/dist/field/features/upload/nodes/UploadNode.js.map +0 -1
  1882. package/dist/field/features/upload/plugin/index.d.ts +0 -7
  1883. package/dist/field/features/upload/plugin/index.d.ts.map +0 -1
  1884. package/dist/field/features/upload/plugin/index.js +0 -55
  1885. package/dist/field/features/upload/plugin/index.js.map +0 -1
  1886. package/dist/field/features/upload/populationPromise.d.ts +0 -5
  1887. package/dist/field/features/upload/populationPromise.d.ts.map +0 -1
  1888. package/dist/field/features/upload/populationPromise.js +0 -46
  1889. package/dist/field/features/upload/populationPromise.js.map +0 -1
  1890. package/dist/field/features/upload/validate.d.ts +0 -4
  1891. package/dist/field/features/upload/validate.d.ts.map +0 -1
  1892. package/dist/field/features/upload/validate.js +0 -17
  1893. package/dist/field/features/upload/validate.js.map +0 -1
  1894. package/dist/field/index.scss +0 -46
  1895. package/dist/field/lexical/EditorPlugin.d.ts +0 -7
  1896. package/dist/field/lexical/EditorPlugin.d.ts.map +0 -1
  1897. package/dist/field/lexical/EditorPlugin.js +0 -11
  1898. package/dist/field/lexical/EditorPlugin.js.map +0 -1
  1899. package/dist/field/lexical/LexicalEditor.d.ts +0 -5
  1900. package/dist/field/lexical/LexicalEditor.d.ts.map +0 -1
  1901. package/dist/field/lexical/LexicalEditor.js +0 -112
  1902. package/dist/field/lexical/LexicalEditor.js.map +0 -1
  1903. package/dist/field/lexical/LexicalEditor.scss +0 -56
  1904. package/dist/field/lexical/LexicalProvider.d.ts +0 -19
  1905. package/dist/field/lexical/LexicalProvider.d.ts.map +0 -1
  1906. package/dist/field/lexical/LexicalProvider.js +0 -67
  1907. package/dist/field/lexical/LexicalProvider.js.map +0 -1
  1908. package/dist/field/lexical/config/client/EditorConfigProvider.d.ts +0 -24
  1909. package/dist/field/lexical/config/client/EditorConfigProvider.d.ts.map +0 -1
  1910. package/dist/field/lexical/config/client/EditorConfigProvider.js +0 -41
  1911. package/dist/field/lexical/config/client/EditorConfigProvider.js.map +0 -1
  1912. package/dist/field/lexical/config/client/default.d.ts +0 -3
  1913. package/dist/field/lexical/config/client/default.d.ts.map +0 -1
  1914. package/dist/field/lexical/config/client/default.js +0 -8
  1915. package/dist/field/lexical/config/client/default.js.map +0 -1
  1916. package/dist/field/lexical/config/client/loader.d.ts +0 -12
  1917. package/dist/field/lexical/config/client/loader.d.ts.map +0 -1
  1918. package/dist/field/lexical/config/client/loader.js +0 -46
  1919. package/dist/field/lexical/config/client/loader.js.map +0 -1
  1920. package/dist/field/lexical/config/client/sanitize.d.ts +0 -6
  1921. package/dist/field/lexical/config/client/sanitize.d.ts.map +0 -1
  1922. package/dist/field/lexical/config/client/sanitize.js +0 -126
  1923. package/dist/field/lexical/config/client/sanitize.js.map +0 -1
  1924. package/dist/field/lexical/config/server/default.d.ts +0 -8
  1925. package/dist/field/lexical/config/server/default.d.ts.map +0 -1
  1926. package/dist/field/lexical/config/server/default.js +0 -53
  1927. package/dist/field/lexical/config/server/default.js.map +0 -1
  1928. package/dist/field/lexical/config/server/loader.d.ts +0 -7
  1929. package/dist/field/lexical/config/server/loader.d.ts.map +0 -1
  1930. package/dist/field/lexical/config/server/loader.js +0 -118
  1931. package/dist/field/lexical/config/server/loader.js.map +0 -1
  1932. package/dist/field/lexical/config/server/sanitize.d.ts +0 -5
  1933. package/dist/field/lexical/config/server/sanitize.d.ts.map +0 -1
  1934. package/dist/field/lexical/config/server/sanitize.js +0 -65
  1935. package/dist/field/lexical/config/server/sanitize.js.map +0 -1
  1936. package/dist/field/lexical/config/types.d.ts +0 -21
  1937. package/dist/field/lexical/config/types.d.ts.map +0 -1
  1938. package/dist/field/lexical/config/types.js +0 -3
  1939. package/dist/field/lexical/config/types.js.map +0 -1
  1940. package/dist/field/lexical/nodes/index.d.ts +0 -7
  1941. package/dist/field/lexical/nodes/index.d.ts.map +0 -1
  1942. package/dist/field/lexical/nodes/index.js +0 -10
  1943. package/dist/field/lexical/nodes/index.js.map +0 -1
  1944. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts +0 -8
  1945. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +0 -1
  1946. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +0 -97
  1947. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js.map +0 -1
  1948. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.scss +0 -37
  1949. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts +0 -17
  1950. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +0 -1
  1951. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +0 -251
  1952. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js.map +0 -1
  1953. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +0 -18
  1954. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +0 -1
  1955. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +0 -42
  1956. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js.map +0 -1
  1957. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.scss +0 -100
  1958. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts +0 -6
  1959. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +0 -1
  1960. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +0 -270
  1961. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js.map +0 -1
  1962. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.scss +0 -57
  1963. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts +0 -40
  1964. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts.map +0 -1
  1965. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +0 -3
  1966. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js.map +0 -1
  1967. package/dist/field/lexical/plugins/MarkdownShortcut/index.d.ts.map +0 -1
  1968. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +0 -13
  1969. package/dist/field/lexical/plugins/MarkdownShortcut/index.js.map +0 -1
  1970. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -32
  1971. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +0 -1
  1972. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +0 -404
  1973. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +0 -1
  1974. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +0 -25
  1975. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +0 -1
  1976. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +0 -207
  1977. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +0 -1
  1978. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts +0 -39
  1979. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.d.ts.map +0 -1
  1980. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +0 -39
  1981. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js.map +0 -1
  1982. package/dist/field/lexical/plugins/SlashMenu/index.d.ts +0 -6
  1983. package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +0 -1
  1984. package/dist/field/lexical/plugins/SlashMenu/index.js +0 -172
  1985. package/dist/field/lexical/plugins/SlashMenu/index.js.map +0 -1
  1986. package/dist/field/lexical/plugins/SlashMenu/index.scss +0 -61
  1987. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.d.ts.map +0 -1
  1988. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +0 -33
  1989. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +0 -1
  1990. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts +0 -6
  1991. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +0 -1
  1992. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +0 -241
  1993. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +0 -1
  1994. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +0 -31
  1995. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +0 -1
  1996. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +0 -14
  1997. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +0 -1
  1998. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts.map +0 -1
  1999. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +0 -14
  2000. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js.map +0 -1
  2001. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts +0 -27
  2002. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map +0 -1
  2003. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +0 -151
  2004. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js.map +0 -1
  2005. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts +0 -3
  2006. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts.map +0 -1
  2007. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +0 -27
  2008. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js.map +0 -1
  2009. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts +0 -6
  2010. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +0 -1
  2011. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +0 -298
  2012. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +0 -1
  2013. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.scss +0 -55
  2014. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts +0 -3
  2015. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +0 -1
  2016. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +0 -49
  2017. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js.map +0 -1
  2018. package/dist/field/lexical/plugins/handles/utils/doesLineHeightAffectElement.d.ts.map +0 -1
  2019. package/dist/field/lexical/plugins/handles/utils/doesLineHeightAffectElement.js +0 -35
  2020. package/dist/field/lexical/plugins/handles/utils/doesLineHeightAffectElement.js.map +0 -1
  2021. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.d.ts.map +0 -1
  2022. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +0 -14
  2023. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js.map +0 -1
  2024. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +0 -1
  2025. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +0 -7
  2026. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js.map +0 -1
  2027. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.d.ts.map +0 -1
  2028. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +0 -5
  2029. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js.map +0 -1
  2030. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +0 -1
  2031. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +0 -27
  2032. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js.map +0 -1
  2033. package/dist/field/lexical/theme/EditorTheme.d.ts +0 -4
  2034. package/dist/field/lexical/theme/EditorTheme.d.ts.map +0 -1
  2035. package/dist/field/lexical/theme/EditorTheme.js +0 -106
  2036. package/dist/field/lexical/theme/EditorTheme.js.map +0 -1
  2037. package/dist/field/lexical/theme/EditorTheme.scss +0 -505
  2038. package/dist/field/lexical/ui/ContentEditable.d.ts +0 -6
  2039. package/dist/field/lexical/ui/ContentEditable.d.ts.map +0 -1
  2040. package/dist/field/lexical/ui/ContentEditable.js +0 -11
  2041. package/dist/field/lexical/ui/ContentEditable.js.map +0 -1
  2042. package/dist/field/lexical/ui/ContentEditable.scss +0 -25
  2043. package/dist/field/lexical/ui/icons/AI/index.d.ts.map +0 -1
  2044. package/dist/field/lexical/ui/icons/AI/index.js +0 -27
  2045. package/dist/field/lexical/ui/icons/AI/index.js.map +0 -1
  2046. package/dist/field/lexical/ui/icons/AlignCenter/index.d.ts.map +0 -1
  2047. package/dist/field/lexical/ui/icons/AlignCenter/index.js +0 -25
  2048. package/dist/field/lexical/ui/icons/AlignCenter/index.js.map +0 -1
  2049. package/dist/field/lexical/ui/icons/AlignJustify/index.d.ts.map +0 -1
  2050. package/dist/field/lexical/ui/icons/AlignJustify/index.js +0 -25
  2051. package/dist/field/lexical/ui/icons/AlignJustify/index.js.map +0 -1
  2052. package/dist/field/lexical/ui/icons/AlignLeft/index.d.ts.map +0 -1
  2053. package/dist/field/lexical/ui/icons/AlignLeft/index.js +0 -25
  2054. package/dist/field/lexical/ui/icons/AlignLeft/index.js.map +0 -1
  2055. package/dist/field/lexical/ui/icons/AlignRight/index.d.ts.map +0 -1
  2056. package/dist/field/lexical/ui/icons/AlignRight/index.js +0 -25
  2057. package/dist/field/lexical/ui/icons/AlignRight/index.js.map +0 -1
  2058. package/dist/field/lexical/ui/icons/Block/index.d.ts.map +0 -1
  2059. package/dist/field/lexical/ui/icons/Block/index.js +0 -34
  2060. package/dist/field/lexical/ui/icons/Block/index.js.map +0 -1
  2061. package/dist/field/lexical/ui/icons/Blockquote/index.d.ts.map +0 -1
  2062. package/dist/field/lexical/ui/icons/Blockquote/index.js +0 -16
  2063. package/dist/field/lexical/ui/icons/Blockquote/index.js.map +0 -1
  2064. package/dist/field/lexical/ui/icons/Bold/index.d.ts.map +0 -1
  2065. package/dist/field/lexical/ui/icons/Bold/index.js +0 -16
  2066. package/dist/field/lexical/ui/icons/Bold/index.js.map +0 -1
  2067. package/dist/field/lexical/ui/icons/Caret/index.svg +0 -3
  2068. package/dist/field/lexical/ui/icons/Checklist/index.d.ts.map +0 -1
  2069. package/dist/field/lexical/ui/icons/Checklist/index.js +0 -24
  2070. package/dist/field/lexical/ui/icons/Checklist/index.js.map +0 -1
  2071. package/dist/field/lexical/ui/icons/Code/index.d.ts.map +0 -1
  2072. package/dist/field/lexical/ui/icons/Code/index.js +0 -19
  2073. package/dist/field/lexical/ui/icons/Code/index.js.map +0 -1
  2074. package/dist/field/lexical/ui/icons/CodeBlock/index.d.ts.map +0 -1
  2075. package/dist/field/lexical/ui/icons/CodeBlock/index.js +0 -19
  2076. package/dist/field/lexical/ui/icons/CodeBlock/index.js.map +0 -1
  2077. package/dist/field/lexical/ui/icons/H1/index.d.ts.map +0 -1
  2078. package/dist/field/lexical/ui/icons/H1/index.js +0 -16
  2079. package/dist/field/lexical/ui/icons/H1/index.js.map +0 -1
  2080. package/dist/field/lexical/ui/icons/H2/index.d.ts.map +0 -1
  2081. package/dist/field/lexical/ui/icons/H2/index.js +0 -16
  2082. package/dist/field/lexical/ui/icons/H2/index.js.map +0 -1
  2083. package/dist/field/lexical/ui/icons/H3/index.d.ts.map +0 -1
  2084. package/dist/field/lexical/ui/icons/H3/index.js +0 -16
  2085. package/dist/field/lexical/ui/icons/H3/index.js.map +0 -1
  2086. package/dist/field/lexical/ui/icons/H4/index.d.ts.map +0 -1
  2087. package/dist/field/lexical/ui/icons/H4/index.js +0 -16
  2088. package/dist/field/lexical/ui/icons/H4/index.js.map +0 -1
  2089. package/dist/field/lexical/ui/icons/H5/index.d.ts.map +0 -1
  2090. package/dist/field/lexical/ui/icons/H5/index.js +0 -16
  2091. package/dist/field/lexical/ui/icons/H5/index.js.map +0 -1
  2092. package/dist/field/lexical/ui/icons/H6/index.d.ts.map +0 -1
  2093. package/dist/field/lexical/ui/icons/H6/index.js +0 -16
  2094. package/dist/field/lexical/ui/icons/H6/index.js.map +0 -1
  2095. package/dist/field/lexical/ui/icons/HorizontalRule/index.d.ts.map +0 -1
  2096. package/dist/field/lexical/ui/icons/HorizontalRule/index.js +0 -19
  2097. package/dist/field/lexical/ui/icons/HorizontalRule/index.js.map +0 -1
  2098. package/dist/field/lexical/ui/icons/IndentDecrease/index.d.ts.map +0 -1
  2099. package/dist/field/lexical/ui/icons/IndentDecrease/index.js +0 -28
  2100. package/dist/field/lexical/ui/icons/IndentDecrease/index.js.map +0 -1
  2101. package/dist/field/lexical/ui/icons/IndentIncrease/index.d.ts.map +0 -1
  2102. package/dist/field/lexical/ui/icons/IndentIncrease/index.js +0 -28
  2103. package/dist/field/lexical/ui/icons/IndentIncrease/index.js.map +0 -1
  2104. package/dist/field/lexical/ui/icons/Italic/index.d.ts.map +0 -1
  2105. package/dist/field/lexical/ui/icons/Italic/index.js +0 -16
  2106. package/dist/field/lexical/ui/icons/Italic/index.js.map +0 -1
  2107. package/dist/field/lexical/ui/icons/Link/index.d.ts.map +0 -1
  2108. package/dist/field/lexical/ui/icons/Link/index.js +0 -27
  2109. package/dist/field/lexical/ui/icons/Link/index.js.map +0 -1
  2110. package/dist/field/lexical/ui/icons/OrderedList/index.d.ts.map +0 -1
  2111. package/dist/field/lexical/ui/icons/OrderedList/index.js +0 -31
  2112. package/dist/field/lexical/ui/icons/OrderedList/index.js.map +0 -1
  2113. package/dist/field/lexical/ui/icons/Relationship/index.d.ts.map +0 -1
  2114. package/dist/field/lexical/ui/icons/Relationship/index.js +0 -27
  2115. package/dist/field/lexical/ui/icons/Relationship/index.js.map +0 -1
  2116. package/dist/field/lexical/ui/icons/Strikethrough/index.d.ts.map +0 -1
  2117. package/dist/field/lexical/ui/icons/Strikethrough/index.js +0 -19
  2118. package/dist/field/lexical/ui/icons/Strikethrough/index.js.map +0 -1
  2119. package/dist/field/lexical/ui/icons/Subscript/index.d.ts.map +0 -1
  2120. package/dist/field/lexical/ui/icons/Subscript/index.js +0 -16
  2121. package/dist/field/lexical/ui/icons/Subscript/index.js.map +0 -1
  2122. package/dist/field/lexical/ui/icons/Superscript/index.d.ts.map +0 -1
  2123. package/dist/field/lexical/ui/icons/Superscript/index.js +0 -16
  2124. package/dist/field/lexical/ui/icons/Superscript/index.js.map +0 -1
  2125. package/dist/field/lexical/ui/icons/Text/index.d.ts.map +0 -1
  2126. package/dist/field/lexical/ui/icons/Text/index.js +0 -16
  2127. package/dist/field/lexical/ui/icons/Text/index.js.map +0 -1
  2128. package/dist/field/lexical/ui/icons/Underline/index.d.ts.map +0 -1
  2129. package/dist/field/lexical/ui/icons/Underline/index.js +0 -19
  2130. package/dist/field/lexical/ui/icons/Underline/index.js.map +0 -1
  2131. package/dist/field/lexical/ui/icons/UnorderedList/index.d.ts.map +0 -1
  2132. package/dist/field/lexical/ui/icons/UnorderedList/index.js +0 -46
  2133. package/dist/field/lexical/ui/icons/UnorderedList/index.js.map +0 -1
  2134. package/dist/field/lexical/ui/icons/Upload/index.d.ts.map +0 -1
  2135. package/dist/field/lexical/ui/icons/Upload/index.js +0 -28
  2136. package/dist/field/lexical/ui/icons/Upload/index.js.map +0 -1
  2137. package/dist/field/lexical/utils/canUseDOM.d.ts.map +0 -1
  2138. package/dist/field/lexical/utils/canUseDOM.js +0 -3
  2139. package/dist/field/lexical/utils/canUseDOM.js.map +0 -1
  2140. package/dist/field/lexical/utils/cloneDeep.d.ts +0 -2
  2141. package/dist/field/lexical/utils/cloneDeep.d.ts.map +0 -1
  2142. package/dist/field/lexical/utils/cloneDeep.js +0 -50
  2143. package/dist/field/lexical/utils/cloneDeep.js.map +0 -1
  2144. package/dist/field/lexical/utils/environment.d.ts.map +0 -1
  2145. package/dist/field/lexical/utils/environment.js +0 -14
  2146. package/dist/field/lexical/utils/environment.js.map +0 -1
  2147. package/dist/field/lexical/utils/getDOMRangeRect.d.ts.map +0 -1
  2148. package/dist/field/lexical/utils/getDOMRangeRect.js +0 -16
  2149. package/dist/field/lexical/utils/getDOMRangeRect.js.map +0 -1
  2150. package/dist/field/lexical/utils/getSelectedNode.d.ts.map +0 -1
  2151. package/dist/field/lexical/utils/getSelectedNode.js +0 -18
  2152. package/dist/field/lexical/utils/getSelectedNode.js.map +0 -1
  2153. package/dist/field/lexical/utils/guard.d.ts.map +0 -1
  2154. package/dist/field/lexical/utils/guard.js +0 -5
  2155. package/dist/field/lexical/utils/guard.js.map +0 -1
  2156. package/dist/field/lexical/utils/invariant.d.ts +0 -2
  2157. package/dist/field/lexical/utils/invariant.d.ts.map +0 -1
  2158. package/dist/field/lexical/utils/invariant.js +0 -12
  2159. package/dist/field/lexical/utils/invariant.js.map +0 -1
  2160. package/dist/field/lexical/utils/joinClasses.d.ts.map +0 -1
  2161. package/dist/field/lexical/utils/joinClasses.js +0 -5
  2162. package/dist/field/lexical/utils/joinClasses.js.map +0 -1
  2163. package/dist/field/lexical/utils/markdown/createBlockNode.d.ts +0 -4
  2164. package/dist/field/lexical/utils/markdown/createBlockNode.d.ts.map +0 -1
  2165. package/dist/field/lexical/utils/markdown/createBlockNode.js +0 -12
  2166. package/dist/field/lexical/utils/markdown/createBlockNode.js.map +0 -1
  2167. package/dist/field/lexical/utils/nodeFormat.d.ts +0 -41
  2168. package/dist/field/lexical/utils/nodeFormat.d.ts.map +0 -1
  2169. package/dist/field/lexical/utils/nodeFormat.js +0 -88
  2170. package/dist/field/lexical/utils/nodeFormat.js.map +0 -1
  2171. package/dist/field/lexical/utils/point.d.ts.map +0 -1
  2172. package/dist/field/lexical/utils/point.js +0 -37
  2173. package/dist/field/lexical/utils/point.js.map +0 -1
  2174. package/dist/field/lexical/utils/rect.d.ts.map +0 -1
  2175. package/dist/field/lexical/utils/rect.js +0 -138
  2176. package/dist/field/lexical/utils/rect.js.map +0 -1
  2177. package/dist/field/lexical/utils/setFloatingElemPosition.d.ts +0 -2
  2178. package/dist/field/lexical/utils/setFloatingElemPosition.d.ts.map +0 -1
  2179. package/dist/field/lexical/utils/setFloatingElemPosition.js +0 -53
  2180. package/dist/field/lexical/utils/setFloatingElemPosition.js.map +0 -1
  2181. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts.map +0 -1
  2182. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +0 -27
  2183. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js.map +0 -1
  2184. package/dist/field/lexical/utils/swipe.d.ts.map +0 -1
  2185. package/dist/field/lexical/utils/swipe.js +0 -100
  2186. package/dist/field/lexical/utils/swipe.js.map +0 -1
  2187. package/dist/field/lexical/utils/url.d.ts.map +0 -1
  2188. package/dist/field/lexical/utils/url.js +0 -25
  2189. package/dist/field/lexical/utils/url.js.map +0 -1
  2190. package/dist/generateComponentMap.d.ts +0 -6
  2191. package/dist/generateComponentMap.d.ts.map +0 -1
  2192. package/dist/generateComponentMap.js +0 -85
  2193. package/dist/generateComponentMap.js.map +0 -1
  2194. package/dist/generateSchemaMap.d.ts +0 -6
  2195. package/dist/generateSchemaMap.d.ts.map +0 -1
  2196. package/dist/generateSchemaMap.js +0 -30
  2197. package/dist/generateSchemaMap.js.map +0 -1
  2198. package/dist/populate/defaultValue.d.ts +0 -4
  2199. package/dist/populate/defaultValue.d.ts.map +0 -1
  2200. package/dist/populate/defaultValue.js +0 -50
  2201. package/dist/populate/defaultValue.js.map +0 -1
  2202. package/dist/populate/populate.d.ts +0 -21
  2203. package/dist/populate/populate.d.ts.map +0 -1
  2204. package/dist/populate/populate.js +0 -21
  2205. package/dist/populate/populate.js.map +0 -1
  2206. package/dist/populate/recurseNestedFields.d.ts +0 -25
  2207. package/dist/populate/recurseNestedFields.d.ts.map +0 -1
  2208. package/dist/populate/recurseNestedFields.js +0 -26
  2209. package/dist/populate/recurseNestedFields.js.map +0 -1
  2210. package/dist/populate/richTextRelationshipPromise.d.ts +0 -23
  2211. package/dist/populate/richTextRelationshipPromise.d.ts.map +0 -1
  2212. package/dist/populate/richTextRelationshipPromise.js +0 -68
  2213. package/dist/populate/richTextRelationshipPromise.js.map +0 -1
  2214. package/dist/scss/app.scss +0 -208
  2215. package/dist/scss/colors.scss +0 -269
  2216. package/dist/scss/queries.scss +0 -27
  2217. package/dist/scss/resets.scss +0 -17
  2218. package/dist/scss/styles.scss +0 -11
  2219. package/dist/scss/svg.scss +0 -10
  2220. package/dist/scss/toastify.scss +0 -58
  2221. package/dist/scss/type.scss +0 -117
  2222. package/dist/scss/vars.scss +0 -213
  2223. package/dist/scss/z-index.scss +0 -9
  2224. package/dist/useLexicalFeature.d.ts +0 -3
  2225. package/dist/useLexicalFeature.d.ts.map +0 -1
  2226. package/dist/useLexicalFeature.js +0 -9
  2227. package/dist/useLexicalFeature.js.map +0 -1
  2228. package/src/index.ts +0 -423
  2229. /package/dist/{field/features → features}/blockquote/markdownTransformer.d.ts +0 -0
  2230. /package/dist/{field/features → features}/converters/html/converter/converters/linebreak.d.ts +0 -0
  2231. /package/dist/{field/features → features}/converters/html/converter/converters/paragraph.d.ts +0 -0
  2232. /package/dist/{field/features → features}/converters/html/converter/converters/text.d.ts +0 -0
  2233. /package/dist/{field/features → features}/converters/html/converter/defaultConverters.d.ts +0 -0
  2234. /package/dist/{field/features → features}/createFeaturePropComponent.d.ts +0 -0
  2235. /package/dist/{field/features → features}/format/bold/markdownTransformers.d.ts +0 -0
  2236. /package/dist/{field/features/format/inlinecode → features/format/inlineCode}/markdownTransformers.d.ts +0 -0
  2237. /package/dist/{field/features → features}/format/italic/markdownTransformers.d.ts +0 -0
  2238. /package/dist/{field/features → features}/format/strikethrough/markdownTransformers.d.ts +0 -0
  2239. /package/dist/{field/features → features}/heading/markdownTransformer.d.ts +0 -0
  2240. /package/dist/{field/features/horizontalrule → features/horizontalRule/client}/component/index.d.ts +0 -0
  2241. /package/dist/{field/features/horizontalrule → features/horizontalRule/client}/markdownTransformer.d.ts +0 -0
  2242. /package/dist/{field/features/link → features/link/client}/plugins/floatingLinkEditor/LinkEditor/commands.d.ts +0 -0
  2243. /package/dist/{field/features/link → features/link/client}/plugins/floatingLinkEditor/LinkEditor/index.d.ts +0 -0
  2244. /package/dist/{field/features → features}/link/nodes/AutoLinkNode.d.ts +0 -0
  2245. /package/dist/{field/features → features}/lists/checklist/markdownTransformers.d.ts +0 -0
  2246. /package/dist/{field/features/lists/orderedlist → features/lists/orderedList}/markdownTransformer.d.ts +0 -0
  2247. /package/dist/{field/features/lists/unorderedlist → features/lists/unorderedList}/markdownTransformer.d.ts +0 -0
  2248. /package/dist/{field/features → features}/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -0
  2249. /package/dist/{field/features → features}/migrations/slateToLexical/converter/index.d.ts +0 -0
  2250. /package/dist/{field/features → features}/migrations/slateToLexical/nodes/unknownConvertedNode/Component.d.ts +0 -0
  2251. /package/dist/{field/features/relationship → features/relationship/client}/drawer/commands.d.ts +0 -0
  2252. /package/dist/{field/features/relationship → features/relationship/client}/drawer/index.d.ts +0 -0
  2253. /package/dist/{field/features/relationship → features/relationship/client}/utils/EnabledRelationshipsCondition.d.ts +0 -0
  2254. /package/dist/{field/features/upload → features/upload/client}/drawer/commands.d.ts +0 -0
  2255. /package/dist/{field/features/upload → features/upload/client}/drawer/index.d.ts +0 -0
  2256. /package/dist/{field/lexical → lexical}/plugins/MarkdownShortcut/index.d.ts +0 -0
  2257. /package/dist/{field/lexical → lexical}/plugins/SlashMenu/useMenuTriggerMatch.d.ts +0 -0
  2258. /package/dist/{field/lexical → lexical}/plugins/handles/DraggableBlockPlugin/debounce.d.ts +0 -0
  2259. /package/dist/{field/lexical → lexical}/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts +0 -0
  2260. /package/dist/{field/lexical → lexical}/plugins/handles/utils/doesLineHeightAffectElement.d.ts +0 -0
  2261. /package/dist/{field/lexical → lexical}/plugins/handles/utils/getCollapsedMargins.d.ts +0 -0
  2262. /package/dist/{field/lexical → lexical}/plugins/handles/utils/getTopLevelNodeKeys.d.ts +0 -0
  2263. /package/dist/{field/lexical → lexical}/plugins/handles/utils/isOnHandleElement.d.ts +0 -0
  2264. /package/dist/{field/lexical → lexical}/plugins/handles/utils/setHandlePosition.d.ts +0 -0
  2265. /package/dist/{field/lexical → lexical}/ui/icons/AI/index.d.ts +0 -0
  2266. /package/dist/{field/lexical → lexical}/ui/icons/Add/index.svg +0 -0
  2267. /package/dist/{field/lexical → lexical}/ui/icons/AlignCenter/index.d.ts +0 -0
  2268. /package/dist/{field/lexical → lexical}/ui/icons/AlignJustify/index.d.ts +0 -0
  2269. /package/dist/{field/lexical → lexical}/ui/icons/AlignLeft/index.d.ts +0 -0
  2270. /package/dist/{field/lexical → lexical}/ui/icons/AlignRight/index.d.ts +0 -0
  2271. /package/dist/{field/lexical → lexical}/ui/icons/Block/index.d.ts +0 -0
  2272. /package/dist/{field/lexical → lexical}/ui/icons/Blockquote/index.d.ts +0 -0
  2273. /package/dist/{field/lexical → lexical}/ui/icons/Bold/index.d.ts +0 -0
  2274. /package/dist/{field/lexical → lexical}/ui/icons/Checklist/index.d.ts +0 -0
  2275. /package/dist/{field/lexical → lexical}/ui/icons/Code/index.d.ts +0 -0
  2276. /package/dist/{field/lexical → lexical}/ui/icons/CodeBlock/index.d.ts +0 -0
  2277. /package/dist/{field/lexical → lexical}/ui/icons/DraggableBlock/index.svg +0 -0
  2278. /package/dist/{field/lexical → lexical}/ui/icons/Edit/index.svg +0 -0
  2279. /package/dist/{field/lexical → lexical}/ui/icons/H1/index.d.ts +0 -0
  2280. /package/dist/{field/lexical → lexical}/ui/icons/H2/index.d.ts +0 -0
  2281. /package/dist/{field/lexical → lexical}/ui/icons/H3/index.d.ts +0 -0
  2282. /package/dist/{field/lexical → lexical}/ui/icons/H4/index.d.ts +0 -0
  2283. /package/dist/{field/lexical → lexical}/ui/icons/H5/index.d.ts +0 -0
  2284. /package/dist/{field/lexical → lexical}/ui/icons/H6/index.d.ts +0 -0
  2285. /package/dist/{field/lexical → lexical}/ui/icons/HorizontalRule/index.d.ts +0 -0
  2286. /package/dist/{field/lexical → lexical}/ui/icons/IndentDecrease/index.d.ts +0 -0
  2287. /package/dist/{field/lexical → lexical}/ui/icons/IndentIncrease/index.d.ts +0 -0
  2288. /package/dist/{field/lexical → lexical}/ui/icons/Italic/index.d.ts +0 -0
  2289. /package/dist/{field/lexical → lexical}/ui/icons/Link/index.d.ts +0 -0
  2290. /package/dist/{field/lexical → lexical}/ui/icons/OrderedList/index.d.ts +0 -0
  2291. /package/dist/{field/lexical → lexical}/ui/icons/Relationship/index.d.ts +0 -0
  2292. /package/dist/{field/lexical → lexical}/ui/icons/Remove/index.svg +0 -0
  2293. /package/dist/{field/lexical → lexical}/ui/icons/Strikethrough/index.d.ts +0 -0
  2294. /package/dist/{field/lexical → lexical}/ui/icons/Subscript/index.d.ts +0 -0
  2295. /package/dist/{field/lexical → lexical}/ui/icons/Superscript/index.d.ts +0 -0
  2296. /package/dist/{field/lexical → lexical}/ui/icons/Text/index.d.ts +0 -0
  2297. /package/dist/{field/lexical → lexical}/ui/icons/Underline/index.d.ts +0 -0
  2298. /package/dist/{field/lexical → lexical}/ui/icons/UnorderedList/index.d.ts +0 -0
  2299. /package/dist/{field/lexical → lexical}/ui/icons/Upload/index.d.ts +0 -0
  2300. /package/dist/{field/lexical → lexical}/utils/canUseDOM.d.ts +0 -0
  2301. /package/dist/{field/lexical → lexical}/utils/environment.d.ts +0 -0
  2302. /package/dist/{field/lexical → lexical}/utils/getDOMRangeRect.d.ts +0 -0
  2303. /package/dist/{field/lexical → lexical}/utils/getSelectedNode.d.ts +0 -0
  2304. /package/dist/{field/lexical → lexical}/utils/guard.d.ts +0 -0
  2305. /package/dist/{field/lexical → lexical}/utils/joinClasses.d.ts +0 -0
  2306. /package/dist/{field/lexical → lexical}/utils/point.d.ts +0 -0
  2307. /package/dist/{field/lexical → lexical}/utils/rect.d.ts +0 -0
  2308. /package/dist/{field/lexical → lexical}/utils/setFloatingElemPositionForLinkEditor.d.ts +0 -0
  2309. /package/dist/{field/lexical → lexical}/utils/swipe.d.ts +0 -0
  2310. /package/dist/{field/lexical → lexical}/utils/url.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/features/shared/slashMenu/basicGroup.ts", "../../../src/cell/index.tsx", "../../../src/lexical/theme/EditorTheme.tsx", "../../../src/lexical/config/client/default.ts", "../../../src/lexical/config/client/loader.ts", "../../../src/lexical/config/client/sanitize.ts", "../../../src/features/align/client/index.tsx", "../../../src/lexical/ui/icons/AlignCenter/index.tsx", "../../../src/lexical/ui/icons/AlignJustify/index.tsx", "../../../src/lexical/ui/icons/AlignLeft/index.tsx", "../../../src/lexical/ui/icons/AlignRight/index.tsx", "../../../src/utilities/useLexicalFeature.tsx", "../../../src/features/createClientComponent.tsx", "../../../src/utilities/createClientFeature.ts", "../../../src/features/align/client/toolbarAlignGroup.ts", "../../../src/features/blockquote/client/index.tsx", "../../../src/lexical/ui/icons/Blockquote/index.tsx", "../../../src/lexical/ui/icons/Text/index.tsx", "../../../src/features/shared/toolbar/textDropdownGroup.ts", "../../../src/features/blockquote/markdownTransformer.ts", "../../../src/features/blocks/client/index.tsx", "../../../src/lexical/ui/icons/Block/index.tsx", "../../../src/lexical/ui/icons/InlineBlocks/index.tsx", "../../../src/features/blocks/client/nodes/BlocksNode.tsx", "../../../src/features/blocks/server/nodes/BlocksNode.tsx", "../../../src/features/blocks/client/plugin/index.tsx", "../../../src/features/debug/testRecorder/client/plugin/index.tsx", "../../../src/lexical/utils/canUseDOM.ts", "../../../src/lexical/utils/environment.ts", "../../../src/features/debug/testRecorder/client/index.tsx", "../../../src/features/debug/treeView/client/plugin/index.tsx", "../../../src/features/debug/treeView/client/index.tsx", "../../../src/features/format/bold/feature.client.tsx", "../../../src/lexical/ui/icons/Bold/index.tsx", "../../../src/features/format/shared/toolbarFormatGroup.ts", "../../../src/features/format/bold/markdownTransformers.ts", "../../../src/features/format/inlineCode/feature.client.tsx", "../../../src/lexical/ui/icons/Code/index.tsx", "../../../src/features/format/inlineCode/markdownTransformers.ts", "../../../src/features/format/italic/feature.client.tsx", "../../../src/lexical/ui/icons/Italic/index.tsx", "../../../src/features/format/italic/markdownTransformers.ts", "../../../src/features/format/strikethrough/feature.client.tsx", "../../../src/lexical/ui/icons/Strikethrough/index.tsx", "../../../src/features/format/strikethrough/markdownTransformers.ts", "../../../src/features/format/subscript/feature.client.tsx", "../../../src/lexical/ui/icons/Subscript/index.tsx", "../../../src/features/format/superscript/feature.client.tsx", "../../../src/lexical/ui/icons/Superscript/index.tsx", "../../../src/features/format/underline/feature.client.tsx", "../../../src/lexical/ui/icons/Underline/index.tsx", "../../../src/features/heading/client/index.tsx", "../../../src/lexical/ui/icons/H1/index.tsx", "../../../src/lexical/ui/icons/H2/index.tsx", "../../../src/lexical/ui/icons/H3/index.tsx", "../../../src/lexical/ui/icons/H4/index.tsx", "../../../src/lexical/ui/icons/H5/index.tsx", "../../../src/lexical/ui/icons/H6/index.tsx", "../../../src/features/heading/markdownTransformer.ts", "../../../src/lexical/utils/markdown/createBlockNode.ts", "../../../src/features/horizontalRule/client/index.tsx", "../../../src/lexical/ui/icons/HorizontalRule/index.tsx", "../../../src/lexical/ui/icons/Add/index.tsx", "../../../src/features/shared/toolbar/addDropdownGroup.ts", "../../../src/features/horizontalRule/client/markdownTransformer.ts", "../../../src/features/horizontalRule/client/plugin/index.tsx", "../../../src/features/indent/client/index.tsx", "../../../src/lexical/ui/icons/IndentDecrease/index.tsx", "../../../src/lexical/ui/icons/IndentIncrease/index.tsx", "../../../src/features/indent/client/toolbarIndentGroup.ts", "../../../src/features/link/client/index.tsx", "../../../src/lexical/ui/icons/Link/index.tsx", "../../../src/lexical/utils/getSelectedNode.ts", "../../../src/features/shared/toolbar/featureButtonsGroup.ts", "../../../src/features/link/markdownTransformer.ts", "../../../src/features/link/nodes/LinkNode.ts", "../../../src/features/link/nodes/AutoLinkNode.ts", "../../../src/features/link/client/plugins/autoLink/index.tsx", "../../../src/features/link/client/plugins/clickableLink/index.tsx", "../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/commands.ts", "../../../src/features/link/client/plugins/floatingLinkEditor/index.tsx", "../../../src/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.tsx", "../../../src/lexical/utils/setFloatingElemPositionForLinkEditor.ts", "../../../src/features/link/client/plugins/link/index.tsx", "../../../src/lexical/utils/url.ts", "../../../src/features/lists/checklist/client/index.tsx", "../../../src/lexical/ui/icons/Checklist/index.tsx", "../../../src/features/lists/plugin/index.tsx", "../../../src/features/lists/shared/slashMenuListGroup.ts", "../../../src/features/lists/checklist/markdownTransformers.ts", "../../../src/features/lists/shared/markdown.ts", "../../../src/features/lists/checklist/client/plugin/index.tsx", "../../../src/features/lists/orderedList/client/index.tsx", "../../../src/lexical/ui/icons/OrderedList/index.tsx", "../../../src/features/lists/orderedList/markdownTransformer.ts", "../../../src/features/lists/unorderedList/client/index.tsx", "../../../src/lexical/ui/icons/UnorderedList/index.tsx", "../../../src/features/lists/unorderedList/markdownTransformer.ts", "../../../src/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.tsx", "../../../src/features/migrations/lexicalPluginToLexical/feature.client.tsx", "../../../src/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.tsx", "../../../src/features/migrations/slateToLexical/feature.client.tsx", "../../../src/features/paragraph/client/index.tsx", "../../../src/features/relationship/client/index.tsx", "../../../src/lexical/ui/icons/Relationship/index.tsx", "../../../src/features/relationship/client/plugins/index.tsx", "../../../src/features/relationship/client/drawer/index.tsx", "../../../src/features/toolbars/fixed/client/Toolbar/index.tsx", "../../../src/features/toolbars/shared/ToolbarButton/index.tsx", "../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx", "../../../src/features/toolbars/shared/ToolbarDropdown/DropDown.tsx", "../../../src/features/toolbars/fixed/client/index.tsx", "../../../src/features/toolbars/inline/client/Toolbar/index.tsx", "../../../src/lexical/utils/getDOMRangeRect.ts", "../../../src/lexical/utils/setFloatingElemPosition.ts", "../../../src/features/toolbars/inline/client/index.tsx", "../../../src/features/experimental_table/client/index.ts", "../../../src/lexical/ui/icons/Table/index.tsx", "../../../src/features/experimental_table/client/plugins/TableActionMenuPlugin/index.tsx", "../../../src/lexical/ui/icons/Meatballs/index.tsx", "../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx", "../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx", "../../../src/features/experimental_table/client/utils/useDebounce.ts", "../../../src/features/experimental_table/client/utils/debounce.ts", "../../../src/features/experimental_table/client/plugins/TablePlugin/index.tsx", "../../../src/features/upload/client/feature.client.tsx", "../../../src/lexical/ui/icons/Upload/index.tsx", "../../../src/features/upload/client/plugin/index.tsx", "../../../src/features/upload/client/drawer/index.tsx", "../../../src/field/index.tsx", "../../../src/lexical/utils/joinClasses.ts", "../../../src/lexical/utils/swipe.ts", "../../../src/lexical/utils/nodeFormat.ts"],
4
+ "sourcesContent": ["import type {\n SlashMenuGroup,\n SlashMenuItem,\n} from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport function slashMenuBasicGroupWithItems(items: SlashMenuItem[]): SlashMenuGroup {\n return {\n items,\n key: 'basic',\n label: ({ i18n }) => {\n return i18n.t('lexical:general:slashMenuBasicGroupLabel')\n },\n }\n}\n", "'use client'\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\nimport type { CellComponentProps, RichTextFieldClient } from 'payload'\n\nimport { createHeadlessEditor } from '@lexical/headless'\nimport { useClientFunctions, useTableCell } from '@payloadcms/ui'\nimport { $getRoot } from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { FeatureProviderClient } from '../features/typesClient.js'\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\nimport type { GeneratedFeatureProviderComponent, LexicalFieldAdminProps } from '../types.js'\n\nimport { defaultEditorLexicalConfig } from '../lexical/config/client/default.js'\nimport { loadClientFeatures } from '../lexical/config/client/loader.js'\nimport { sanitizeClientEditorConfig } from '../lexical/config/client/sanitize.js'\nimport { getEnabledNodes } from '../lexical/nodes/index.js'\n\nexport const RichTextCell: React.FC<\n {\n readonly admin?: LexicalFieldAdminProps\n readonly lexicalEditorConfig: LexicalEditorConfig\n } & CellComponentProps<RichTextFieldClient>\n> = (props) => {\n const {\n admin,\n field: { _schemaPath, richTextComponentMap },\n lexicalEditorConfig,\n } = props\n\n const [preview, setPreview] = React.useState('Loading...')\n\n const { cellData } = useTableCell()\n\n const clientFunctions = useClientFunctions()\n const [hasLoadedFeatures, setHasLoadedFeatures] = useState(false)\n\n const [featureProviders, setFeatureProviders] = useState<\n FeatureProviderClient<unknown, unknown>[]\n >([])\n\n const [finalSanitizedEditorConfig, setFinalSanitizedEditorConfig] =\n useState<SanitizedClientEditorConfig>(null)\n\n const featureProviderComponents: GeneratedFeatureProviderComponent[] = (\n richTextComponentMap.get('features') as GeneratedFeatureProviderComponent[]\n ).sort((a, b) => a.order - b.order) // order by order\n\n let featureProvidersAndComponentsToLoad = 0 // feature providers and components\n for (const featureProvider of featureProviderComponents) {\n const featureComponentKeys = Array.from(richTextComponentMap.keys()).filter((key) =>\n key.startsWith(`feature.${featureProvider.key}.components.`),\n )\n\n featureProvidersAndComponentsToLoad += 1\n featureProvidersAndComponentsToLoad += featureComponentKeys.length\n }\n\n useEffect(() => {\n if (!hasLoadedFeatures) {\n const featureProvidersLocal: FeatureProviderClient<unknown, unknown>[] = []\n let featureProvidersAndComponentsLoaded = 0 // feature providers and components only\n\n Object.entries(clientFunctions).forEach(([key, plugin]) => {\n if (key.startsWith(`lexicalFeature.${_schemaPath}.`)) {\n if (!key.includes('.lexical_internal_components.')) {\n featureProvidersLocal.push(plugin)\n }\n featureProvidersAndComponentsLoaded++\n }\n })\n\n if (featureProvidersAndComponentsLoaded === featureProvidersAndComponentsToLoad) {\n setFeatureProviders(featureProvidersLocal)\n setHasLoadedFeatures(true)\n\n /**\n * Loaded feature provided => create the final sanitized editor config\n */\n\n const resolvedClientFeatures = loadClientFeatures({\n clientFunctions,\n schemaPath: _schemaPath,\n unSanitizedEditorConfig: {\n features: featureProvidersLocal,\n lexical: lexicalEditorConfig,\n },\n })\n\n setFinalSanitizedEditorConfig(\n sanitizeClientEditorConfig(\n lexicalEditorConfig ? lexicalEditorConfig : defaultEditorLexicalConfig,\n resolvedClientFeatures,\n admin,\n ),\n )\n }\n }\n }, [\n admin,\n featureProviderComponents,\n hasLoadedFeatures,\n clientFunctions,\n _schemaPath,\n featureProviderComponents.length,\n featureProviders,\n finalSanitizedEditorConfig,\n lexicalEditorConfig,\n richTextComponentMap,\n featureProvidersAndComponentsToLoad,\n ])\n\n useEffect(() => {\n if (!hasLoadedFeatures) {\n return\n }\n let dataToUse = cellData\n if (dataToUse == null || !hasLoadedFeatures || !finalSanitizedEditorConfig) {\n setPreview('')\n return\n }\n\n // Transform data through load hooks\n if (finalSanitizedEditorConfig?.features?.hooks?.load?.length) {\n finalSanitizedEditorConfig.features.hooks.load.forEach((hook) => {\n dataToUse = hook({ incomingEditorState: dataToUse })\n })\n }\n\n if (!dataToUse || typeof dataToUse !== 'object') {\n setPreview('')\n return\n }\n\n // If data is from Slate and not Lexical\n if (Array.isArray(dataToUse) && !('root' in dataToUse)) {\n setPreview('')\n return\n }\n\n // If data is from payload-plugin-lexical\n if ('jsonContent' in dataToUse) {\n setPreview('')\n return\n }\n\n // initialize headless editor\n const headlessEditor = createHeadlessEditor({\n namespace: finalSanitizedEditorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig: finalSanitizedEditorConfig }),\n theme: finalSanitizedEditorConfig.lexical.theme,\n })\n headlessEditor.setEditorState(headlessEditor.parseEditorState(dataToUse))\n\n const textContent =\n headlessEditor.getEditorState().read(() => {\n return $getRoot().getTextContent()\n }) || ''\n\n // Limiting the number of characters shown is done in a CSS rule\n setPreview(textContent)\n }, [cellData, lexicalEditorConfig, hasLoadedFeatures, finalSanitizedEditorConfig])\n\n if (!hasLoadedFeatures) {\n return (\n <React.Fragment>\n {Array.isArray(featureProviderComponents) &&\n featureProviderComponents.map((featureProvider) => {\n // get all components starting with key feature.${FeatureProvider.key}.components.{featureComponentKey}\n const featureComponentKeys = Array.from(richTextComponentMap.keys()).filter((key) =>\n key.startsWith(\n `lexical_internal_feature.${featureProvider.key}.lexical_internal_components.`,\n ),\n )\n\n const featureComponents: React.ReactNode[] = featureComponentKeys.map((key) => {\n return richTextComponentMap.get(key)\n }) as React.ReactNode[]\n\n return (\n <React.Fragment key={featureProvider.key}>\n {featureComponents?.length\n ? featureComponents.map((FeatureComponent) => {\n return FeatureComponent\n })\n : null}\n {featureProvider.ClientFeature}\n </React.Fragment>\n )\n })}\n </React.Fragment>\n )\n }\n\n return <span>{preview}</span>\n}\n", "'use client'\nimport type { EditorThemeClasses } from 'lexical'\n\nexport const LexicalEditorTheme: EditorThemeClasses = {\n block: 'LexicalEditorTheme__block',\n blockCursor: 'LexicalEditorTheme__blockCursor',\n characterLimit: 'LexicalEditorTheme__characterLimit',\n code: 'LexicalEditorTheme__code',\n codeHighlight: {\n atrule: 'LexicalEditorTheme__tokenAttr',\n attr: 'LexicalEditorTheme__tokenAttr',\n boolean: 'LexicalEditorTheme__tokenProperty',\n builtin: 'LexicalEditorTheme__tokenSelector',\n cdata: 'LexicalEditorTheme__tokenComment',\n char: 'LexicalEditorTheme__tokenSelector',\n class: 'LexicalEditorTheme__tokenFunction',\n 'class-name': 'LexicalEditorTheme__tokenFunction',\n comment: 'LexicalEditorTheme__tokenComment',\n constant: 'LexicalEditorTheme__tokenProperty',\n deleted: 'LexicalEditorTheme__tokenProperty',\n doctype: 'LexicalEditorTheme__tokenComment',\n entity: 'LexicalEditorTheme__tokenOperator',\n function: 'LexicalEditorTheme__tokenFunction',\n important: 'LexicalEditorTheme__tokenVariable',\n inserted: 'LexicalEditorTheme__tokenSelector',\n keyword: 'LexicalEditorTheme__tokenAttr',\n namespace: 'LexicalEditorTheme__tokenVariable',\n number: 'LexicalEditorTheme__tokenProperty',\n operator: 'LexicalEditorTheme__tokenOperator',\n prolog: 'LexicalEditorTheme__tokenComment',\n property: 'LexicalEditorTheme__tokenProperty',\n punctuation: 'LexicalEditorTheme__tokenPunctuation',\n regex: 'LexicalEditorTheme__tokenVariable',\n selector: 'LexicalEditorTheme__tokenSelector',\n string: 'LexicalEditorTheme__tokenSelector',\n symbol: 'LexicalEditorTheme__tokenProperty',\n tag: 'LexicalEditorTheme__tokenProperty',\n url: 'LexicalEditorTheme__tokenOperator',\n variable: 'LexicalEditorTheme__tokenVariable',\n },\n embedBlock: {\n base: 'LexicalEditorTheme__embedBlock',\n focus: 'LexicalEditorTheme__embedBlockFocus',\n },\n hashtag: 'LexicalEditorTheme__hashtag',\n heading: {\n h1: 'LexicalEditorTheme__h1',\n h2: 'LexicalEditorTheme__h2',\n h3: 'LexicalEditorTheme__h3',\n h4: 'LexicalEditorTheme__h4',\n h5: 'LexicalEditorTheme__h5',\n h6: 'LexicalEditorTheme__h6',\n },\n hr: 'LexicalEditorTheme__hr',\n indent: 'LexicalEditorTheme__indent',\n inlineImage: 'LexicalEditor__inline-image',\n link: 'LexicalEditorTheme__link',\n list: {\n checklist: 'LexicalEditorTheme__checklist',\n listitem: 'LexicalEditorTheme__listItem',\n listitemChecked: 'LexicalEditorTheme__listItemChecked',\n listitemUnchecked: 'LexicalEditorTheme__listItemUnchecked',\n nested: {\n listitem: 'LexicalEditorTheme__nestedListItem',\n },\n olDepth: [\n 'LexicalEditorTheme__ol1',\n 'LexicalEditorTheme__ol2',\n 'LexicalEditorTheme__ol3',\n 'LexicalEditorTheme__ol4',\n 'LexicalEditorTheme__ol5',\n ],\n ul: 'LexicalEditorTheme__ul',\n },\n ltr: 'LexicalEditorTheme__ltr',\n mark: 'LexicalEditorTheme__mark',\n markOverlap: 'LexicalEditorTheme__markOverlap',\n paragraph: 'LexicalEditorTheme__paragraph',\n quote: 'LexicalEditorTheme__quote',\n relationship: 'LexicalEditorTheme__relationship',\n rtl: 'LexicalEditorTheme__rtl',\n table: 'LexicalEditorTheme__table',\n tableAddColumns: 'LexicalEditorTheme__tableAddColumns',\n tableAddRows: 'LexicalEditorTheme__tableAddRows',\n tableCell: 'LexicalEditorTheme__tableCell',\n tableCellActionButton: 'LexicalEditorTheme__tableCellActionButton',\n tableCellActionButtonContainer: 'LexicalEditorTheme__tableCellActionButtonContainer',\n tableCellEditing: 'LexicalEditorTheme__tableCellEditing',\n tableCellHeader: 'LexicalEditorTheme__tableCellHeader',\n tableCellPrimarySelected: 'LexicalEditorTheme__tableCellPrimarySelected',\n tableCellResizer: 'LexicalEditorTheme__tableCellResizer',\n tableCellSelected: 'LexicalEditorTheme__tableCellSelected',\n tableCellSortedIndicator: 'LexicalEditorTheme__tableCellSortedIndicator',\n tableResizeRuler: 'LexicalEditorTheme__tableCellResizeRuler',\n tableSelected: 'LexicalEditorTheme__tableSelected',\n text: {\n bold: 'LexicalEditorTheme__textBold',\n code: 'LexicalEditorTheme__textCode',\n italic: 'LexicalEditorTheme__textItalic',\n strikethrough: 'LexicalEditorTheme__textStrikethrough',\n subscript: 'LexicalEditorTheme__textSubscript',\n superscript: 'LexicalEditorTheme__textSuperscript',\n underline: 'LexicalEditorTheme__textUnderline',\n underlineStrikethrough: 'LexicalEditorTheme__textUnderlineStrikethrough',\n },\n upload: 'editor-upload',\n}\n", "'use client'\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport { LexicalEditorTheme } from '../../theme/EditorTheme.js'\n\nexport const defaultEditorLexicalConfig: LexicalEditorConfig = {\n namespace: 'lexical',\n theme: LexicalEditorTheme,\n}\n", "'use client'\n\nimport type {\n ClientFeatureProviderMap,\n FeatureProviderClient,\n ResolvedClientFeatureMap,\n} from '../../../features/typesClient.js'\nimport type { ClientEditorConfig } from '../types.js'\n\n/**\n * This function expects client functions to ALREADY be ordered & dependencies checked on the server\n * @param unSanitizedEditorConfig\n */\nexport function loadClientFeatures({\n clientFunctions,\n schemaPath,\n unSanitizedEditorConfig,\n}: {\n clientFunctions?: Record<string, any>\n schemaPath: string\n unSanitizedEditorConfig: ClientEditorConfig\n}): ResolvedClientFeatureMap {\n for (const featureProvider of unSanitizedEditorConfig.features) {\n if (\n !featureProvider?.clientFeatureProps?.featureKey ||\n featureProvider?.clientFeatureProps?.order === undefined ||\n featureProvider?.clientFeatureProps?.order === null\n ) {\n throw new Error(\n 'A Feature you have installed does not return the client props as clientFeatureProps. Please make sure to always return those props, even if they are null, as other important props like order and featureKey are later on injected.',\n )\n }\n }\n\n // sort unSanitizedEditorConfig.features by order\n unSanitizedEditorConfig.features = unSanitizedEditorConfig.features.sort(\n (a, b) => a.clientFeatureProps.order - b.clientFeatureProps.order,\n )\n\n const featureProviderMap: ClientFeatureProviderMap = new Map(\n unSanitizedEditorConfig.features.map(\n (f) =>\n [f.clientFeatureProps.featureKey, f] as [string, FeatureProviderClient<unknown, unknown>],\n ),\n )\n\n const resolvedFeatures: ResolvedClientFeatureMap = new Map()\n\n // Make sure all dependencies declared in the respective features exist\n let loaded = 0\n for (const featureProvider of unSanitizedEditorConfig.features) {\n /**\n * Load relevant clientFunctions scoped to this feature and then pass them to the client feature\n */\n const relevantClientFunctions: Record<string, any> = {}\n Object.entries(clientFunctions).forEach(([key, plugin]) => {\n if (\n key.startsWith(\n `lexicalFeature.${schemaPath}.${featureProvider.clientFeatureProps.featureKey}.components.`,\n )\n ) {\n const featureComponentKey = key.split(\n `${schemaPath}.${featureProvider.clientFeatureProps.featureKey}.components.`,\n )[1]\n relevantClientFunctions[featureComponentKey] = plugin\n }\n })\n\n const feature =\n typeof featureProvider.feature === 'function'\n ? featureProvider.feature({\n clientFunctions: relevantClientFunctions,\n featureProviderMap,\n resolvedFeatures,\n unSanitizedEditorConfig,\n })\n : featureProvider.feature\n\n resolvedFeatures.set(featureProvider.clientFeatureProps.featureKey, {\n ...feature,\n key: featureProvider.clientFeatureProps.featureKey,\n order: loaded,\n })\n\n loaded++\n }\n\n return resolvedFeatures\n}\n", "'use client'\n\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport type {\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../../features/typesClient.js'\nimport type { LexicalFieldAdminProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\nexport const sanitizeClientFeatures = (\n features: ResolvedClientFeatureMap,\n): SanitizedClientFeatures => {\n const sanitized: SanitizedClientFeatures = {\n enabledFeatures: [],\n hooks: {\n load: [],\n save: [],\n },\n markdownTransformers: [],\n nodes: [],\n plugins: [],\n providers: [],\n slashMenu: {\n dynamicGroups: [],\n groups: [],\n },\n toolbarFixed: {\n groups: [],\n },\n toolbarInline: {\n groups: [],\n },\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature.hooks) {\n if (feature.hooks?.load?.length) {\n sanitized.hooks.load = sanitized.hooks.load.concat(feature.hooks.load)\n }\n if (feature.hooks?.save?.length) {\n sanitized.hooks.save = sanitized.hooks.save.concat(feature.hooks.save)\n }\n }\n\n if (feature.providers?.length) {\n sanitized.providers = sanitized.providers.concat(feature.providers)\n }\n\n if (feature.nodes?.length) {\n sanitized.nodes = sanitized.nodes.concat(feature.nodes)\n }\n if (feature.plugins?.length) {\n feature.plugins.forEach((plugin, i) => {\n sanitized.plugins.push({\n Component: plugin.Component,\n clientProps: feature.sanitizedClientFeatureProps,\n key: feature.key + i,\n position: plugin.position,\n })\n })\n }\n\n if (feature.toolbarInline?.groups?.length) {\n for (const group of feature.toolbarInline.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarInline.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarInline.groups = sanitized.toolbarInline.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarInline?.groups.push(foundGroup)\n }\n }\n\n if (feature.toolbarFixed?.groups?.length) {\n for (const group of feature.toolbarFixed.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarFixed.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarFixed.groups = sanitized.toolbarFixed.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarFixed?.groups.push(foundGroup)\n }\n }\n\n if (feature.slashMenu?.groups) {\n if (feature.slashMenu.dynamicGroups?.length) {\n sanitized.slashMenu.dynamicGroups = sanitized.slashMenu.dynamicGroups.concat(\n feature.slashMenu.dynamicGroups,\n )\n }\n\n for (const optionGroup of feature.slashMenu.groups) {\n // 1. find the group with the same name or create new one\n let group = sanitized.slashMenu.groups.find((group) => group.key === optionGroup.key)\n if (!group) {\n group = {\n ...optionGroup,\n items: [],\n }\n } else {\n sanitized.slashMenu.groups = sanitized.slashMenu.groups.filter(\n (group) => group.key !== optionGroup.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (optionGroup?.items?.length) {\n group.items = group.items.concat(optionGroup.items)\n }\n sanitized.slashMenu.groups.push(group)\n }\n }\n\n if (feature.markdownTransformers?.length) {\n sanitized.markdownTransformers = sanitized.markdownTransformers.concat(\n feature.markdownTransformers,\n )\n }\n sanitized.enabledFeatures.push(feature.key)\n })\n\n // Sort sanitized.toolbarInline.groups by order property\n sanitized.toolbarInline.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n // Sort sanitized.toolbarFixed.groups by order property\n sanitized.toolbarFixed.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n\n // Sort sanitized.toolbarInline.groups.[group].entries by order property\n for (const group of sanitized.toolbarInline.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n // Sort sanitized.toolbarFixed.groups.[group].entries by order property\n for (const group of sanitized.toolbarFixed.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n return sanitized\n}\n\nexport function sanitizeClientEditorConfig(\n lexical: LexicalEditorConfig,\n resolvedClientFeatureMap: ResolvedClientFeatureMap,\n admin?: LexicalFieldAdminProps,\n): SanitizedClientEditorConfig {\n return {\n admin,\n features: sanitizeClientFeatures(resolvedClientFeatureMap),\n lexical,\n resolvedFeatureMap: resolvedClientFeatureMap,\n }\n}\n", "'use client'\n\nimport { $isElementNode, $isRangeSelection, FORMAT_ELEMENT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { AlignCenterIcon } from '../../../lexical/ui/icons/AlignCenter/index.js'\nimport { AlignJustifyIcon } from '../../../lexical/ui/icons/AlignJustify/index.js'\nimport { AlignLeftIcon } from '../../../lexical/ui/icons/AlignLeft/index.js'\nimport { AlignRightIcon } from '../../../lexical/ui/icons/AlignRight/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarAlignGroupWithItems } from './toolbarAlignGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarAlignGroupWithItems([\n {\n ChildComponent: AlignLeftIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node)) {\n if (node.getFormatType() === 'left') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === 'left') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignLeft',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignLeftLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'left')\n },\n order: 1,\n },\n {\n ChildComponent: AlignCenterIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node)) {\n if (node.getFormatType() === 'center') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === 'center') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignCenter',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignCenterLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'center')\n },\n order: 2,\n },\n {\n ChildComponent: AlignRightIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node)) {\n if (node.getFormatType() === 'right') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === 'right') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignRight',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignRightLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'right')\n },\n order: 3,\n },\n {\n ChildComponent: AlignJustifyIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isElementNode(node)) {\n if (node.getFormatType() === 'justify') {\n continue\n }\n }\n\n const parent = node.getParent()\n if ($isElementNode(parent)) {\n if (parent.getFormatType() === 'justify') {\n continue\n }\n }\n\n return false\n }\n return true\n },\n key: 'alignJustify',\n label: ({ i18n }) => {\n return i18n.t('lexical:align:alignJustifyLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, 'justify')\n },\n order: 4,\n },\n ]),\n]\n\nexport const AlignFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const AlignCenterIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 15H15\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AlignJustifyIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 15H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AlignLeftIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 15H12.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AlignRightIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.5 15H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\n\nimport { useAddClientFunction, useFieldProps, useTableCell } from '@payloadcms/ui'\n\nimport type { FeatureProviderClient } from '../features/typesClient.js'\n\nexport const useLexicalFeature = <ClientFeatureProps,>(\n featureKey: string,\n feature: FeatureProviderClient<ClientFeatureProps>,\n) => {\n const { schemaPath: schemaPathFromFieldProps } = useFieldProps()\n const tableCell = useTableCell()\n\n const schemaPathFromCellProps = tableCell?.cellProps?.field?._schemaPath\n\n const schemaPath = schemaPathFromCellProps || schemaPathFromFieldProps // schemaPathFromCellProps needs to have priority, as there can be cells within fields (e.g. list drawers) and the cell schemaPath needs to be used there - not the parent field schemaPath. There cannot be fields within cells.\n\n useAddClientFunction(`lexicalFeature.${schemaPath}.${featureKey}`, feature)\n}\n", "'use client'\n\nimport type React from 'react'\n\nimport type { ClientComponentProps, FeatureProviderProviderClient } from './typesClient.js'\n\nimport { useLexicalFeature } from '../utilities/useLexicalFeature.js'\n\n/**\n * Utility function to create a client component for the client feature\n */\nexport const createClientComponent = <ClientFeatureProps,>(\n clientFeature: FeatureProviderProviderClient<ClientFeatureProps>,\n): React.FC<ClientComponentProps<ClientFeatureProps>> => {\n return (props) => {\n useLexicalFeature(props.featureKey, clientFeature(props))\n return null\n }\n}\n", "import type React from 'react'\n\nimport type {\n ClientComponentProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n ResolvedClientFeatureMap,\n} from '../features/typesClient.js'\nimport type { ClientEditorConfig } from '../lexical/config/types.js'\n\nimport { createClientComponent } from '../features/createClientComponent.js'\n\nexport type CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps> =\n | ((props: {\n clientFunctions: Record<string, any>\n /** unSanitizedEditorConfig.features, but mapped */\n featureProviderMap: ClientFeatureProviderMap\n props: ClientComponentProps<UnSanitizedClientProps>\n // other resolved features, which have been loaded before this one. All features declared in 'dependencies' should be available here\n resolvedFeatures: ResolvedClientFeatureMap\n // unSanitized EditorConfig,\n unSanitizedEditorConfig: ClientEditorConfig\n }) => ClientFeature<ClientProps>)\n | Omit<ClientFeature<ClientProps>, 'sanitizedClientFeatureProps'>\n\nexport const createClientFeature: <\n UnSanitizedClientProps = undefined,\n ClientProps = UnSanitizedClientProps,\n>(\n args: CreateClientFeatureArgs<UnSanitizedClientProps, ClientProps>,\n) => React.FC<ClientComponentProps<ClientProps>> = (feature) => {\n const featureProviderProvideClient: FeatureProviderProviderClient<any, any> = (props) => {\n const featureProviderClient: Partial<FeatureProviderClient<any, any>> = {\n clientFeatureProps: props,\n }\n\n if (typeof feature === 'function') {\n featureProviderClient.feature = ({\n clientFunctions,\n featureProviderMap,\n resolvedFeatures,\n unSanitizedEditorConfig,\n }) => {\n const toReturn = feature({\n clientFunctions,\n featureProviderMap,\n props,\n resolvedFeatures,\n unSanitizedEditorConfig,\n })\n\n if (toReturn.sanitizedClientFeatureProps === null) {\n toReturn.sanitizedClientFeatureProps = props\n }\n\n return toReturn\n }\n } else {\n // We have to spread feature here! Otherwise, if the arg of createClientFeature is not a function, and 2\n // richText editors have the same feature (even if both call it, e.g. both call UploadFeature()),\n // the second richText editor here will override sanitizedClientFeatureProps of the first feature, as both richText\n // editor features share the same reference to the feature object.\n // Example: richText editor 1 and 2 both have UploadFeature. richText editor 1 calls UploadFeature() with custom fields,\n // richText editor 2 calls UploadFeature() with NO custom fields. If we don't spread feature here, richText editor 1\n // will not have any custom fields, as richText editor 2 will override the feature object.\n const newFeature: ClientFeature<any> = { ...feature }\n newFeature.sanitizedClientFeatureProps = props\n featureProviderClient.feature = newFeature\n }\n return featureProviderClient as FeatureProviderClient<any, any>\n }\n\n return createClientComponent(featureProviderProvideClient)\n}\n", "'use client'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { AlignLeftIcon } from '../../../lexical/ui/icons/AlignLeft/index.js'\n\nexport const toolbarAlignGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'dropdown',\n ChildComponent: AlignLeftIcon,\n items,\n key: 'align',\n order: 30,\n }\n}\n", "'use client'\n\nimport { $createQuoteNode, $isQuoteNode, QuoteNode } from '@lexical/rich-text'\nimport { $setBlocksType } from '@lexical/selection'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { BlockquoteIcon } from '../../../lexical/ui/icons/Blockquote/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../shared/toolbar/textDropdownGroup.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: BlockquoteIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if (!$isQuoteNode(node) && !$isQuoteNode(node.getParent())) {\n return false\n }\n }\n return true\n },\n key: 'blockquote',\n label: ({ i18n }) => {\n return i18n.t('lexical:blockquote:label')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createQuoteNode())\n })\n },\n order: 20,\n },\n ]),\n]\n\nexport const BlockquoteFeatureClient = createClientFeature({\n markdownTransformers: [MarkdownTransformer],\n nodes: [QuoteNode],\n\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: BlockquoteIcon,\n key: 'blockquote',\n keywords: ['quote', 'blockquote'],\n label: ({ i18n }) => {\n return i18n.t('lexical:blockquote:label')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createQuoteNode())\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const BlockquoteIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.5353 10.5725C13.5353 9.47709 11.0456 9.99991 11.0456 7.85883C11.0456 6.46464 12.1162 5.61816 13.361 5.61816C14.805 5.61816 16 6.86298 16 8.92937C16 11.2945 14.4564 13.7841 11.1203 14.3816L10.8216 13.1368C12.888 12.4895 13.5353 11.4937 13.5353 10.5725ZM6.71369 10.5725C6.71369 9.47709 4.22407 9.99991 4.22407 7.85883C4.22407 6.46464 5.29461 5.61816 6.53942 5.61816C7.9834 5.61816 9.17842 6.86298 9.17842 8.92937C9.17842 11.2945 7.63485 13.7841 4.29876 14.3816L4 13.1368C6.06639 12.4895 6.71369 11.4937 6.71369 10.5725Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const TextIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.708 14.5H7.79785V13.9414H8.01367C9.00391 13.9414 9.15625 13.9033 9.15625 13.6113V6.70508H8.07715C6.82031 6.70508 6.73145 7.08594 6.28711 8.67285H5.80469L5.91895 6.12109H13.5869L13.7012 8.67285H13.2188C12.7744 7.08594 12.6855 6.70508 11.4287 6.70508H10.3496V13.6113C10.3496 13.9033 10.502 13.9414 11.4922 13.9414H11.708V14.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "import type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { TextIcon } from '../../../lexical/ui/icons/Text/index.js'\n\nexport const toolbarTextDropdownGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'dropdown',\n ChildComponent: TextIcon,\n items,\n key: 'text',\n order: 25,\n }\n}\n", "import type { ElementTransformer } from '@lexical/markdown'\n\nimport { $createQuoteNode, $isQuoteNode, QuoteNode } from '@lexical/rich-text'\nimport { $createLineBreakNode } from 'lexical'\n\nexport const MarkdownTransformer: ElementTransformer = {\n type: 'element',\n dependencies: [QuoteNode],\n export: (node, exportChildren) => {\n if (!$isQuoteNode(node)) {\n return null\n }\n\n const lines = exportChildren(node).split('\\n')\n const output = []\n for (const line of lines) {\n output.push('> ' + line)\n }\n return output.join('\\n')\n },\n regExp: /^>\\s/,\n replace: (parentNode, children, _match, isImport) => {\n if (isImport) {\n const previousNode = parentNode.getPreviousSibling()\n if ($isQuoteNode(previousNode)) {\n previousNode.splice(previousNode.getChildrenSize(), 0, [\n $createLineBreakNode(),\n ...children,\n ])\n previousNode.select(0, 0)\n parentNode.remove()\n return\n }\n }\n\n const node = $createQuoteNode()\n node.append(...children)\n parentNode.replace(node)\n node.select(0, 0)\n },\n}\n", "'use client'\n\nimport type { BlockFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { SlashMenuItem } from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { BlockIcon } from '../../../lexical/ui/icons/Block/index.js'\nimport { InlineBlocksIcon } from '../../../lexical/ui/icons/InlineBlocks/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { InlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { INSERT_BLOCK_COMMAND, OPEN_INLINE_BLOCK_DRAWER_COMMAND } from './plugin/commands.js'\nimport { BlocksPlugin } from './plugin/index.js'\n\nexport type BlocksFeatureClientProps = {\n clientBlockSlugs: string[]\n clientInlineBlockSlugs: string[]\n}\n\nexport const BlocksFeatureClient = createClientFeature<BlocksFeatureClientProps>(({ props }) => ({\n nodes: [BlockNode, InlineBlockNode],\n plugins: [\n {\n Component: BlocksPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: [\n props.clientBlockSlugs?.length\n ? {\n items: props.clientBlockSlugs.map((blockSlug) => {\n return {\n Icon: BlockIcon,\n key: 'block-' + blockSlug,\n keywords: ['block', 'blocks', blockSlug],\n label: ({ i18n, richTextComponentMap }) => {\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )[0]\n\n const clientBlock = blocksField.blocks.find((_block) => _block.slug === blockSlug)\n\n const blockDisplayName = clientBlock.labels.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n id: null,\n blockName: '',\n blockType: blockSlug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'blocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:label')\n },\n }\n : null,\n props.clientInlineBlockSlugs?.length\n ? {\n items: props.clientInlineBlockSlugs.map((inlineBlockSlug) => {\n return {\n Icon: InlineBlocksIcon,\n key: 'inlineBlocks-' + inlineBlockSlug,\n keywords: ['inlineBlock', 'inline block', inlineBlockSlug],\n label: ({ i18n, richTextComponentMap }) => {\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n\n const blocksField: BlockFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )[0]\n\n const clientBlock = blocksField.blocks.find(\n (_block) => _block.slug === inlineBlockSlug,\n )\n\n const blockDisplayName = clientBlock.labels.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: {\n id: null,\n blockName: '',\n blockType: inlineBlockSlug,\n },\n })\n },\n } as SlashMenuItem\n }),\n key: 'inlineBlocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:inlineBlocks:label')\n },\n }\n : null,\n ].filter(Boolean),\n },\n toolbarFixed: {\n groups: [\n props.clientBlockSlugs?.length\n ? {\n type: 'dropdown',\n ChildComponent: BlockIcon,\n items: props.clientBlockSlugs.map((blockSlug, index) => {\n return {\n ChildComponent: BlockIcon,\n isActive: undefined, // At this point, we would be inside a sub-richtext-editor. And at this point this will be run against the focused sub-editor, not the parent editor which has the actual block. Thus, no point in running this\n key: 'block-' + blockSlug,\n label: ({ i18n, richTextComponentMap }) => {\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )[0]\n\n const clientBlock = blocksField.blocks.find((_block) => _block.slug === blockSlug)\n\n const blockDisplayName = clientBlock.labels.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n id: null,\n blockName: '',\n blockType: blockSlug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'blocks',\n order: 20,\n }\n : null,\n props.clientInlineBlockSlugs?.length\n ? {\n type: 'dropdown',\n ChildComponent: InlineBlocksIcon,\n items: props.clientInlineBlockSlugs.map((inlineBlockSlug, index) => {\n return {\n ChildComponent: InlineBlocksIcon,\n isActive: undefined,\n key: 'inlineBlock-' + inlineBlockSlug,\n label: ({ i18n, richTextComponentMap }) => {\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.get(\n componentMapRenderedBlockPath,\n )[0]\n\n const clientBlock = blocksField.blocks.find(\n (_block) => _block.slug === inlineBlockSlug,\n )\n\n const blockDisplayName = clientBlock.labels.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_INLINE_BLOCK_DRAWER_COMMAND, {\n fields: {\n blockType: inlineBlockSlug,\n },\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'inlineBlocks',\n order: 25,\n }\n : null,\n ].filter(Boolean) as ToolbarGroup[],\n },\n}))\n", "'use client'\nimport React from 'react'\n\nexport const BlockIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect height=\"4\" rx=\"0.5\" stroke=\"currentColor\" width=\"4\" x=\"8\" y=\"5\" />\n <rect height=\"4\" rx=\"0.5\" stroke=\"currentColor\" width=\"4\" x=\"5\" y=\"11\" />\n <rect height=\"4\" rx=\"0.5\" stroke=\"currentColor\" width=\"4\" x=\"11\" y=\"11\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const InlineBlocksIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.33333 6.5C5.11232 6.5 4.90036 6.5878 4.74408 6.74408C4.5878 6.90036 4.5 7.11232 4.5 7.33333V12.1667C4.5 12.3877 4.5878 12.5996 4.74408 12.7559C4.90036 12.9122 5.11232 13 5.33333 13H14.6667C14.8877 13 15.0996 12.9122 15.2559 12.7559C15.4122 12.5996 15.5 12.3877 15.5 12.1667V11.6667C15.5 11.3905 15.7239 11.1667 16 11.1667C16.2761 11.1667 16.5 11.3905 16.5 11.6667V12.1667C16.5 12.6529 16.3068 13.1192 15.963 13.463C15.6192 13.8068 15.1529 14 14.6667 14H5.33333C4.8471 14 4.38079 13.8068 4.03697 13.463C3.69315 13.1192 3.5 12.6529 3.5 12.1667V7.33333C3.5 6.8471 3.69315 6.38079 4.03697 6.03697C4.38079 5.69315 4.8471 5.5 5.33333 5.5H10.3333C10.6095 5.5 10.8333 5.72386 10.8333 6C10.8333 6.27614 10.6095 6.5 10.3333 6.5H5.33333ZM13 6.5C12.7239 6.5 12.5 6.27614 12.5 6C12.5 5.72386 12.7239 5.5 13 5.5H16C16.2761 5.5 16.5 5.72386 16.5 6V9C16.5 9.27614 16.2761 9.5 16 9.5C15.7239 9.5 15.5 9.27614 15.5 9V7.20711L13.3536 9.35355C13.1583 9.54882 12.8417 9.54882 12.6464 9.35355C12.4512 9.15829 12.4512 8.84171 12.6464 8.64645L14.7929 6.5H13ZM6.16699 8.33325C6.16699 8.05711 6.39085 7.83325 6.66699 7.83325H11.0003C11.2765 7.83325 11.5003 8.05711 11.5003 8.33325C11.5003 8.60939 11.2765 8.83325 11.0003 8.83325H6.66699C6.39085 8.83325 6.16699 8.60939 6.16699 8.33325ZM6.16699 10.9999C6.16699 10.7238 6.39085 10.4999 6.66699 10.4999H13.3337C13.6098 10.4999 13.8337 10.7238 13.8337 10.9999C13.8337 11.2761 13.6098 11.4999 13.3337 11.4999H6.66699C6.39085 11.4999 6.16699 11.2761 6.16699 10.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n)\n", "'use client'\nimport type { EditorConfig, LexicalEditor, LexicalNode } from 'lexical'\n\nimport ObjectID from 'bson-objectid'\nimport React, { type JSX } from 'react'\n\nimport type { BlockFields, SerializedBlockNode } from '../../server/nodes/BlocksNode.js'\n\nimport { ServerBlockNode } from '../../server/nodes/BlocksNode.js'\n\nconst BlockComponent = React.lazy(() =>\n import('../component/index.js').then((module) => ({\n default: module.BlockComponent,\n })),\n)\n\nexport class BlockNode extends ServerBlockNode {\n static clone(node: ServerBlockNode): ServerBlockNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\n }\n\n static importJSON(serializedNode: SerializedBlockNode): BlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return <BlockComponent formData={this.getFields()} nodeKey={this.getKey()} />\n }\n\n exportJSON(): SerializedBlockNode {\n return super.exportJSON()\n }\n}\n\nexport function $createBlockNode(fields: Exclude<BlockFields, 'id'>): BlockNode {\n return new BlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isBlockNode(node: BlockNode | LexicalNode | null | undefined): node is BlockNode {\n return node instanceof BlockNode\n}\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\nimport { deepCopyObjectSimple } from 'payload/shared'\n\nexport type BlockFields<TBlockFields extends JsonObject = JsonObject> = {\n /** Block form data */\n blockName: string\n blockType: string\n id: string\n} & TBlockFields\n\nexport type SerializedBlockNode<TBlockFields extends JsonObject = JsonObject> = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n fields: BlockFields<TBlockFields>\n type: 'block'\n },\n SerializedDecoratorBlockNode\n>\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __fields: BlockFields\n\n constructor({\n fields,\n format,\n key,\n }: {\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n }\n\n static clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'block'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields): void {\n const fieldsCopy = deepCopyObjectSimple(fields)\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n}\n\nexport function $createServerBlockNode(fields: Exclude<BlockFields, 'id'>): ServerBlockNode {\n return new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | ServerBlockNode | null | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n", "'use client'\n\nimport type { BlockFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatDrawerSlug,\n useEditDepth,\n useFieldProps,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getNodeByKey,\n $getPreviousSelection,\n $getSelection,\n $insertNodes,\n $isParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n COMMAND_PRIORITY_EDITOR,\n type RangeSelection,\n} from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\nimport type { BlocksFeatureClientProps } from '../index.js'\nimport type { InlineBlockNode } from '../nodes/InlineBlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport {\n INSERT_BLOCK_COMMAND,\n INSERT_INLINE_BLOCK_COMMAND,\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n} from './commands.js'\n\nexport type InsertBlockPayload = Exclude<BlockFields, 'id'>\n\nexport const BlocksPlugin: PluginComponent<BlocksFeatureClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n const { closeModal, toggleModal } = useModal()\n const [blockFields, setBlockFields] = useState<BlockFields>(null)\n const [blockType, setBlockType] = useState<string>('' as any)\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n const { i18n, t } = useTranslation<string, any>()\n const { schemaPath } = useFieldProps()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuid,\n depth: editDepth,\n })\n\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const blockNode = $createBlockNode(payload)\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParent()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node: InlineBlockNode = $getNodeByKey(targetNodeKey)\n\n if (!node) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n $insertNodes([inlineBlockNode])\n if ($isRootOrShadowRoot(inlineBlockNode.getParentOrThrow())) {\n $wrapNodeInElement(inlineBlockNode, $createParagraphNode).selectEnd()\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n ({ fields, nodeKey }) => {\n setBlockFields((fields as BlockFields) ?? null)\n setTargetNodeKey(nodeKey ?? null)\n setBlockType(fields?.blockType ?? ('' as any))\n\n if (nodeKey) {\n toggleModal(drawerSlug)\n return true\n }\n\n let rangeSelection: RangeSelection | null = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n //setLastSelection(rangeSelection)\n toggleModal(drawerSlug)\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor, targetNodeKey, toggleModal, drawerSlug])\n\n if (!blockFields) {\n return null\n }\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.lexical_inline_blocks.${blockFields?.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.has(componentMapRenderedBlockPath)\n ? richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n : null\n\n const clientBlock = blocksField\n ? blocksField.blocks.find((block) => block.slug === blockFields?.blockType)\n : null\n\n if (!blocksField) {\n return null\n }\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock?.labels?.singular, i18n)\n : clientBlock?.slug\n\n return (\n <FieldsDrawer\n data={blockFields}\n drawerSlug={drawerSlug}\n drawerTitle={t(`lexical:blocks:inlineBlocks:${blockFields?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n featureKey=\"blocks\"\n fieldMapOverride={clientBlock?.fields}\n handleDrawerSubmit={(_fields, data) => {\n closeModal(drawerSlug)\n if (!data) {\n return\n }\n\n data.blockType = blockType\n\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data)\n }}\n schemaFieldsPathOverride={schemaFieldsPath}\n schemaPathSuffix={blockFields?.blockType}\n />\n )\n}\n", "'use client'\nimport type { BaseSelection, LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $createParagraphNode, $createTextNode, $getRoot } from 'lexical'\nimport * as React from 'react'\nimport { type JSX, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { IS_APPLE } from '../../../../../lexical/utils/environment.js'\nimport './index.scss'\n\nconst copy = (text: null | string) => {\n const textArea = document.createElement('textarea')\n textArea.value = text || ''\n textArea.style.position = 'absolute'\n textArea.style.opacity = '0'\n document.body?.appendChild(textArea)\n textArea.focus()\n textArea.select()\n try {\n const result = document.execCommand('copy')\n // eslint-disable-next-line no-console\n console.log(result)\n } catch (error) {\n console.error(error)\n }\n document.body?.removeChild(textArea)\n}\n\nconst download = (filename: string, text: null | string) => {\n const a = document.createElement('a')\n a.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text || ''))\n a.setAttribute('download', filename)\n a.style.display = 'none'\n document.body?.appendChild(a)\n a.click()\n document.body?.removeChild(a)\n}\n\nconst formatStep = (step: Step) => {\n const formatOneStep = (name: string, value: Step['value']) => {\n switch (name) {\n case 'click': {\n return ` await page.mouse.click(${value.x}, ${value.y});`\n }\n case 'press': {\n return ` await page.keyboard.press('${value}');`\n }\n case 'keydown': {\n return ` await page.keyboard.keydown('${value}');`\n }\n case 'keyup': {\n return ` await page.keyboard.keyup('${value}');`\n }\n case 'type': {\n return ` await page.keyboard.type('${value}');`\n }\n case 'selectAll': {\n return ` await selectAll(page);`\n }\n case 'snapshot': {\n return ` await assertHTMLSnapshot(page);\n await assertSelection(page, {\n anchorPath: [${value.anchorPath.toString()}],\n anchorOffset: ${value.anchorOffset},\n focusPath: [${value.focusPath.toString()}],\n focusOffset: ${value.focusOffset},\n });\n`\n }\n default:\n return ``\n }\n }\n const formattedStep = formatOneStep(step.name, step.value)\n switch (step.count) {\n case 1:\n return formattedStep\n case 2:\n return [formattedStep, formattedStep].join(`\\n`)\n default:\n return ` await repeat(${step.count}, async () => {\n ${formattedStep}\n );`\n }\n}\n\nexport function isSelectAll(event: KeyboardEvent): boolean {\n return event.key.toLowerCase() === 'a' && (IS_APPLE ? event.metaKey : event.ctrlKey)\n}\n\n// stolen from LexicalSelection-test\nfunction sanitizeSelection(selection: Selection) {\n const { anchorNode, focusNode } = selection\n let { anchorOffset, focusOffset } = selection\n if (anchorOffset !== 0) {\n anchorOffset--\n }\n if (focusOffset !== 0) {\n focusOffset--\n }\n return { anchorNode, anchorOffset, focusNode, focusOffset }\n}\n\nfunction getPathFromNodeToEditor(node: Node, rootElement: HTMLElement | null) {\n let currentNode: Node | null | undefined = node\n const path = []\n while (currentNode !== rootElement) {\n if (currentNode !== null && currentNode !== undefined) {\n path.unshift(\n Array.from(currentNode?.parentNode?.childNodes ?? []).indexOf(currentNode as ChildNode),\n )\n }\n currentNode = currentNode?.parentNode\n }\n return path\n}\n\nconst keyPresses = new Set([\n 'Enter',\n 'Backspace',\n 'Delete',\n 'Escape',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n])\n\ntype Step = {\n count: number\n name: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any\n}\n\ntype Steps = Step[]\n\nfunction useTestRecorder(editor: LexicalEditor): [JSX.Element, JSX.Element | null] {\n const [steps, setSteps] = useState<Steps>([])\n const [isRecording, setIsRecording] = useState(false)\n const [, setCurrentInnerHTML] = useState('')\n const [templatedTest, setTemplatedTest] = useState('')\n const previousSelectionRef = useRef<BaseSelection | null>(null)\n const skipNextSelectionChangeRef = useRef(false)\n const preRef = useRef<HTMLPreElement>(null)\n\n const getCurrentEditor = useCallback(() => {\n return editor\n }, [editor])\n\n const generateTestContent = useCallback(() => {\n const rootElement = editor.getRootElement()\n const browserSelection = window.getSelection()\n\n if (\n rootElement == null ||\n browserSelection == null ||\n browserSelection.anchorNode == null ||\n browserSelection.focusNode == null ||\n !rootElement.contains(browserSelection.anchorNode) ||\n !rootElement.contains(browserSelection.focusNode)\n ) {\n return null\n }\n\n return `\nimport {\n initializeE2E,\n assertHTMLSnapshot,\n assertSelection,\n repeat,\n} from '../utils';\nimport {selectAll} from '../keyboardShortcuts';\nimport { RangeSelection } from 'lexical';\nimport { NodeSelection } from 'lexical';\n\ndescribe('Test case', () => {\n initializeE2E((e2e) => {\n it('Should pass this test', async () => {\n const {page} = e2e;\n\n await page.focus('div[contenteditable=\"true\"]');\n${steps.map(formatStep).join(`\\n`)}\n });\n});\n `\n }, [editor, steps])\n\n // just a wrapper around inserting new actions so that we can\n // coalesce some actions like insertText/moveNativeSelection\n const pushStep = useCallback(\n (name: string, value: Step['value']) => {\n setSteps((currentSteps) => {\n // trying to group steps\n const currentIndex = steps.length - 1\n const lastStep = steps[currentIndex]\n if (lastStep) {\n if (lastStep.name === name) {\n if (name === 'type') {\n // for typing events we just append the text\n return [\n ...steps.slice(0, currentIndex),\n { ...lastStep, value: lastStep.value + value },\n ]\n } else {\n // for other events we bump the counter if their values are the same\n if (lastStep.value === value) {\n return [...steps.slice(0, currentIndex), { ...lastStep, count: lastStep.count + 1 }]\n }\n }\n }\n }\n // could not group, just append a new one\n return [...currentSteps, { name, count: 1, value }]\n })\n },\n [steps, setSteps],\n )\n\n useLayoutEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (!isRecording) {\n return\n }\n const key = event.key\n if (isSelectAll(event)) {\n pushStep('selectAll', '')\n } else if (keyPresses.has(key)) {\n pushStep('press', event.key)\n } else if ([...key].length > 1) {\n pushStep('keydown', event.key)\n } else {\n pushStep('type', event.key)\n }\n }\n\n const onKeyUp = (event: KeyboardEvent) => {\n if (!isRecording) {\n return\n }\n const key = event.key\n if (!keyPresses.has(key) && [...key].length > 1) {\n pushStep('keyup', event.key)\n }\n }\n\n return editor.registerRootListener(\n (rootElement: HTMLElement | null, prevRootElement: HTMLElement | null) => {\n if (prevRootElement !== null) {\n prevRootElement.removeEventListener('keydown', onKeyDown)\n prevRootElement.removeEventListener('keyup', onKeyUp)\n }\n if (rootElement !== null) {\n rootElement.addEventListener('keydown', onKeyDown)\n rootElement.addEventListener('keyup', onKeyUp)\n }\n },\n )\n }, [editor, isRecording, pushStep])\n\n useLayoutEffect(() => {\n if (preRef.current) {\n preRef.current.scrollTo(0, preRef.current.scrollHeight)\n }\n }, [generateTestContent])\n\n useEffect(() => {\n if (steps) {\n const testContent = generateTestContent()\n if (testContent !== null) {\n setTemplatedTest(testContent)\n }\n if (preRef.current) {\n preRef.current.scrollTo(0, preRef.current.scrollHeight)\n }\n }\n }, [generateTestContent, steps])\n\n useEffect(() => {\n const removeUpdateListener = editor.registerUpdateListener(\n ({ dirtyElements, dirtyLeaves, editorState }) => {\n if (!isRecording) {\n return\n }\n const currentSelection = editorState._selection\n const previousSelection = previousSelectionRef.current\n const skipNextSelectionChange = skipNextSelectionChangeRef.current\n if (previousSelection !== currentSelection) {\n if (dirtyLeaves.size === 0 && dirtyElements.size === 0 && !skipNextSelectionChange) {\n const browserSelection = window.getSelection()\n if (\n browserSelection &&\n (browserSelection.anchorNode == null || browserSelection.focusNode == null)\n ) {\n return\n }\n }\n previousSelectionRef.current = currentSelection\n }\n skipNextSelectionChangeRef.current = false\n const testContent = generateTestContent()\n if (testContent !== null) {\n setTemplatedTest(testContent)\n }\n },\n )\n return removeUpdateListener\n }, [editor, generateTestContent, isRecording, pushStep])\n\n // save innerHTML\n useEffect(() => {\n if (!isRecording) {\n return\n }\n const removeUpdateListener = editor.registerUpdateListener(() => {\n const rootElement = editor.getRootElement()\n if (rootElement !== null) {\n setCurrentInnerHTML(rootElement?.innerHTML)\n }\n })\n return removeUpdateListener\n }, [editor, isRecording])\n\n // clear editor and start recording\n const toggleEditorSelection = useCallback(\n (currentEditor: LexicalEditor) => {\n if (!isRecording) {\n currentEditor.update(() => {\n const root = $getRoot()\n root.clear()\n const text = $createTextNode()\n root.append($createParagraphNode().append(text))\n text.select()\n })\n setSteps([])\n }\n setIsRecording((currentIsRecording) => !currentIsRecording)\n },\n [isRecording],\n )\n\n const onSnapshotClick = useCallback(() => {\n if (!isRecording) {\n return\n }\n const browserSelection = window.getSelection()\n if (\n browserSelection === null ||\n browserSelection.anchorNode == null ||\n browserSelection.focusNode == null\n ) {\n return\n }\n const { anchorNode, anchorOffset, focusNode, focusOffset } = sanitizeSelection(browserSelection)\n const rootElement = getCurrentEditor().getRootElement()\n let anchorPath\n if (anchorNode !== null) {\n anchorPath = getPathFromNodeToEditor(anchorNode, rootElement)\n }\n let focusPath\n if (focusNode !== null) {\n focusPath = getPathFromNodeToEditor(focusNode, rootElement)\n }\n pushStep('snapshot', {\n anchorNode,\n anchorOffset,\n anchorPath,\n focusNode,\n focusOffset,\n focusPath,\n })\n }, [pushStep, isRecording, getCurrentEditor])\n\n const onCopyClick = useCallback(() => {\n copy(generateTestContent())\n }, [generateTestContent])\n\n const onDownloadClick = useCallback(() => {\n download('test.js', generateTestContent())\n }, [generateTestContent])\n\n const button = (\n <button\n className={`editor-dev-button ${isRecording ? 'active' : ''}`}\n id=\"test-recorder-button\"\n onClick={(e) => {\n toggleEditorSelection(getCurrentEditor())\n e.preventDefault()\n }}\n title={isRecording ? 'Disable test recorder' : 'Enable test recorder'}\n type=\"button\"\n >\n {isRecording ? 'Disable test recorder' : 'Enable test recorder'}\n </button>\n )\n const output = isRecording ? (\n <div className=\"test-recorder-output\">\n <div className=\"test-recorder-toolbar\">\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-snapshot\"\n onClick={(e) => {\n onSnapshotClick()\n e.preventDefault()\n }}\n title=\"Insert snapshot\"\n type=\"button\"\n >\n Insert Snapshot\n </button>\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-copy\"\n onClick={(e) => {\n onCopyClick()\n e.preventDefault()\n }}\n title=\"Copy to clipboard\"\n type=\"button\"\n >\n Copy\n </button>\n <button\n className=\"test-recorder-button\"\n id=\"test-recorder-button-download\"\n onClick={(e) => {\n onDownloadClick()\n e.preventDefault()\n }}\n title=\"Download as a file\"\n type=\"button\"\n >\n Download\n </button>\n </div>\n <pre id=\"test-recorder\" ref={preRef}>\n {templatedTest}\n </pre>\n </div>\n ) : null\n\n return [button, output]\n}\nexport const TestRecorderPlugin: PluginComponent<undefined> = () => {\n const [editor] = useLexicalComposerContext()\n const [testRecorderButton, testRecorderOutput] = useTestRecorder(editor)\n\n return (\n <React.Fragment>\n <p>HI</p>\n {testRecorderButton}\n {testRecorderOutput}\n <p>DONE</p>\n </React.Fragment>\n )\n}\n", "'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 { CAN_USE_DOM } from './canUseDOM.js'\n\ndeclare global {\n interface Document {\n documentMode?: unknown\n }\n\n interface Window {\n MSStream?: unknown\n }\n}\n\nconst documentMode = CAN_USE_DOM && 'documentMode' in document ? document.documentMode : null\n\nexport const IS_APPLE: boolean = CAN_USE_DOM && /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n\nexport const IS_FIREFOX: boolean =\n CAN_USE_DOM && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent)\n\nexport const CAN_USE_BEFORE_INPUT: boolean =\n CAN_USE_DOM && 'InputEvent' in window && !documentMode\n ? 'getTargetRanges' in new window.InputEvent('input')\n : false\n\nexport const IS_SAFARI: boolean = CAN_USE_DOM && /Version\\/[\\d.].*Safari/.test(navigator.userAgent)\n\nexport const IS_IOS: boolean =\n CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream\n\nexport const IS_ANDROID: boolean = CAN_USE_DOM && /Android/.test(navigator.userAgent)\n\nexport const IS_WINDOWS: boolean = CAN_USE_DOM && /Win/.test(navigator.platform)\nexport const IS_CHROME: boolean = CAN_USE_DOM && /^(?=.*Chrome).*/i.test(navigator.userAgent)\n// export const canUseTextInputEvent: boolean = CAN_USE_DOM && 'TextEvent' in window && !documentMode;\n\nexport const IS_APPLE_WEBKIT =\n CAN_USE_DOM && /AppleWebKit\\/[\\d.]+/.test(navigator.userAgent) && !IS_CHROME\n", "'use client'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { TestRecorderPlugin } from './plugin/index.js'\n\nexport const TestRecorderFeatureClient = createClientFeature({\n plugins: [\n {\n Component: TestRecorderPlugin,\n position: 'bottom',\n },\n ],\n})\n", "'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { TreeView } from '@lexical/react/LexicalTreeView.js'\nimport * as React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport './index.scss'\n\nexport const TreeViewPlugin: PluginComponent<undefined> = () => {\n const [editor] = useLexicalComposerContext()\n return (\n <TreeView\n editor={editor}\n timeTravelButtonClassName=\"debug-timetravel-button\"\n timeTravelPanelButtonClassName=\"debug-timetravel-panel-button\"\n timeTravelPanelClassName=\"debug-timetravel-panel\"\n timeTravelPanelSliderClassName=\"debug-timetravel-panel-slider\"\n treeTypeButtonClassName=\"debug-treetype-button\"\n viewClassName=\"tree-view-output\"\n />\n )\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { TreeViewPlugin } from './plugin/index.js'\n\nexport const TreeViewFeatureClient = createClientFeature({\n plugins: [\n {\n Component: TreeViewPlugin,\n position: 'bottom',\n },\n ],\n})\n", "'use client'\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { BoldIcon } from '../../../lexical/ui/icons/Bold/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport {\n BOLD_ITALIC_STAR,\n BOLD_ITALIC_UNDERSCORE,\n BOLD_STAR,\n BOLD_UNDERSCORE,\n} from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: BoldIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('bold')\n }\n return false\n },\n key: 'bold',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'bold')\n },\n order: 1,\n },\n ]),\n]\n\nexport const BoldFeatureClient = createClientFeature(({ featureProviderMap }) => {\n const markdownTransformers = [BOLD_STAR, BOLD_UNDERSCORE]\n if (featureProviderMap.get('italic')) {\n markdownTransformers.push(BOLD_ITALIC_UNDERSCORE, BOLD_ITALIC_STAR)\n }\n\n return {\n markdownTransformers,\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n", "'use client'\nimport React from 'react'\n\nexport const BoldIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.6772 15H6.27017V5.718H10.4172C12.6792 5.718 13.8492 6.602 13.8492 8.292C13.8492 9.098 13.1992 9.982 12.4712 10.216C13.3812 10.476 14.1742 11.256 14.1742 12.322C14.1742 14.09 12.9002 15 10.6772 15ZM8.46717 9.501H10.3262C11.3012 9.501 11.7042 9.046 11.7042 8.409C11.7042 7.72 11.2362 7.317 10.3392 7.317H8.46717V9.501ZM8.46717 11.061V13.401H10.4822C11.4702 13.401 11.9642 12.959 11.9642 12.218C11.9642 11.49 11.4702 11.061 10.4822 11.061H8.46717Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nexport const toolbarFormatGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'buttons',\n items,\n key: 'format',\n order: 40,\n }\n}\n", "import type { TextFormatTransformer } from '@lexical/markdown'\n\nexport const BOLD_ITALIC_STAR: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold', 'italic'],\n tag: '***',\n}\n\nexport const BOLD_ITALIC_UNDERSCORE: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold', 'italic'],\n intraword: false,\n tag: '___',\n}\n\nexport const BOLD_STAR: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold'],\n tag: '**',\n}\n\nexport const BOLD_UNDERSCORE: TextFormatTransformer = {\n type: 'text-format',\n format: ['bold'],\n intraword: false,\n tag: '__',\n}\n", "'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { CodeIcon } from '../../../lexical/ui/icons/Code/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { INLINE_CODE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: CodeIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('code')\n }\n return false\n },\n key: 'inlineCode',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code')\n },\n order: 7,\n },\n ]),\n]\n\nexport const InlineCodeFeatureClient = createClientFeature({\n markdownTransformers: [INLINE_CODE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const CodeIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M7.76465 6L3.76465 10L7.76465 14\" stroke=\"currentColor\" />\n <path d=\"M12.2354 6L16.2354 10L12.2354 14\" stroke=\"currentColor\" />\n </svg>\n)\n", "import type { TextFormatTransformer } from '@lexical/markdown'\n\nexport const INLINE_CODE: TextFormatTransformer = {\n type: 'text-format',\n format: ['code'],\n tag: '`',\n}\n", "'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { ItalicIcon } from '../../../lexical/ui/icons/Italic/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { ITALIC_STAR, ITALIC_UNDERSCORE } from './markdownTransformers.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: ItalicIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('italic')\n }\n return false\n },\n key: 'italic',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'italic')\n },\n order: 2,\n },\n ]),\n]\n\nexport const ItalicFeatureClient = createClientFeature({\n markdownTransformers: [ITALIC_STAR, ITALIC_UNDERSCORE],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const ItalicIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.311 14.2969L11.0327 15H6.18408L6.4624 14.2969C7.54639 14.2969 7.70752 14.209 7.83936 13.8721L10.8423 6.45996C10.8716 6.38672 10.8862 6.32812 10.8862 6.26953C10.8862 6.09375 10.6519 6.03516 9.80225 6.03516L10.0952 5.33203H14.9438L14.6509 6.03516C13.5669 6.03516 13.4204 6.12305 13.2886 6.45996L10.2856 13.8721C10.2563 13.9453 10.2271 14.0039 10.2271 14.0625C10.2271 14.2383 10.4614 14.2969 11.311 14.2969Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "import type { TextFormatTransformer } from '@lexical/markdown'\n\nexport const ITALIC_STAR: TextFormatTransformer = {\n type: 'text-format',\n format: ['italic'],\n tag: '*',\n}\n\nexport const ITALIC_UNDERSCORE: TextFormatTransformer = {\n type: 'text-format',\n format: ['italic'],\n intraword: false,\n tag: '_',\n}\n", "'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport { StrikethroughIcon } from '../../../lexical/ui/icons/Strikethrough/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\nimport { STRIKETHROUGH } from './markdownTransformers.js'\n\nconst toolbarGroups = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: StrikethroughIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('strikethrough')\n }\n return false\n },\n key: 'strikethrough',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'strikethrough')\n },\n order: 4,\n },\n ]),\n]\n\nexport const StrikethroughFeatureClient = createClientFeature({\n markdownTransformers: [STRIKETHROUGH],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const StrikethroughIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.50756 12.76H7.42756C7.56256 14.215 8.82256 14.71 10.1576 14.71C11.4326 14.71 12.4226 14.14 12.4226 13.06C12.4226 12.28 11.9576 11.845 10.6676 11.605L8.70256 11.245C7.12756 10.96 5.85256 10.21 5.85256 8.335C5.85256 6.43 7.53256 5.11 9.87256 5.11C12.4226 5.11 13.9526 6.22 14.1626 8.23H12.2876C12.1526 7.18 11.2226 6.595 9.88756 6.595C8.59756 6.595 7.78756 7.27 7.78756 8.215C7.78756 9.1 8.34256 9.385 9.49756 9.61L11.5676 10.015C13.3226 10.345 14.3726 11.215 14.3726 12.94C14.3726 14.89 12.5876 16.18 10.2176 16.18C7.66756 16.18 5.70256 15.115 5.50756 12.76Z\"\n fill=\"currentColor\"\n />\n <path d=\"M4.99756 11.44H15.0026V12.19H4.99756V11.44Z\" fill=\"currentColor\" />\n </svg>\n)\n", "import type { TextFormatTransformer } from '@lexical/markdown'\n\nexport const STRIKETHROUGH: TextFormatTransformer = {\n type: 'text-format',\n format: ['strikethrough'],\n tag: '~~',\n}\n", "'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SubscriptIcon } from '../../../lexical/ui/icons/Subscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SubscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('subscript')\n }\n return false\n },\n key: 'subscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'subscript')\n },\n order: 5,\n },\n ]),\n]\n\nexport const SubscriptFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const SubscriptIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.167 15L7.45002 11.36L4.73302 15H2.91302L6.55302 10.177L3.23802 5.718H5.20102L7.54102 8.89L9.89402 5.718H11.714L8.43802 10.06L12.13 15H10.167ZM16.7768 13.258C16.7768 14.155 16.1398 14.532 15.2038 15C14.5538 15.325 14.2808 15.546 14.2418 15.78H16.7898V16.82H12.7208V16.339C12.7208 15.286 13.5918 14.675 14.3588 14.233C15.0868 13.83 15.4378 13.635 15.4378 13.232C15.4378 12.894 15.2038 12.686 14.8268 12.686C14.3848 12.686 14.1248 13.024 14.1118 13.427H12.7468C12.8248 12.426 13.5528 11.633 14.8398 11.633C15.9448 11.633 16.7768 12.257 16.7768 13.258Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { SuperscriptIcon } from '../../../lexical/ui/icons/Superscript/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: SuperscriptIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('superscript')\n }\n return false\n },\n key: 'superscript',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'superscript')\n },\n order: 6,\n },\n ]),\n]\n\nexport const SuperscriptFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const SuperscriptIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.167 15L7.45002 11.36L4.73302 15H2.91302L6.55302 10.177L3.23802 5.718H5.20102L7.54102 8.89L9.89402 5.718H11.714L8.43802 10.06L12.13 15H10.167ZM16.7768 7.252C16.7768 8.149 16.1398 8.526 15.2038 8.994C14.5538 9.319 14.2808 9.54 14.2418 9.774H16.7898V10.814H12.7208V10.333C12.7208 9.28 13.5918 8.669 14.3588 8.227C15.0868 7.824 15.4378 7.629 15.4378 7.226C15.4378 6.888 15.2038 6.68 14.8268 6.68C14.3848 6.68 14.1248 7.018 14.1118 7.421H12.7468C12.8248 6.42 13.5528 5.627 14.8398 5.627C15.9448 5.627 16.7768 6.251 16.7768 7.252Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\n\nimport { $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { UnderlineIcon } from '../../../lexical/ui/icons/Underline/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFormatGroupWithItems } from '../shared/toolbarFormatGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFormatGroupWithItems([\n {\n ChildComponent: UnderlineIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n return selection.hasFormat('underline')\n }\n return false\n },\n key: 'underline',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'underline')\n },\n order: 3,\n },\n ]),\n]\n\nexport const UnderlineFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const UnderlineIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.9656 11.256C13.9656 13.791 12.5096 15.156 10.0006 15.156C7.50461 15.156 6.03561 13.791 6.03561 11.23V5.718H7.76461V11.243C7.76461 12.868 8.50561 13.778 10.0006 13.778C11.4956 13.778 12.2496 12.868 12.2496 11.243V5.718H13.9656V11.256Z\"\n fill=\"currentColor\"\n />\n <path d=\"M5.09961 16.3H14.9016V16.95H5.09961V16.3Z\" fill=\"currentColor\" />\n </svg>\n)\n", "'use client'\n\nimport type { HeadingTagType } from '@lexical/rich-text'\n\nimport { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text'\nimport { $setBlocksType } from '@lexical/selection'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { HeadingFeatureProps } from '../server/index.js'\n\nimport { H1Icon } from '../../../lexical/ui/icons/H1/index.js'\nimport { H2Icon } from '../../../lexical/ui/icons/H2/index.js'\nimport { H3Icon } from '../../../lexical/ui/icons/H3/index.js'\nimport { H4Icon } from '../../../lexical/ui/icons/H4/index.js'\nimport { H5Icon } from '../../../lexical/ui/icons/H5/index.js'\nimport { H6Icon } from '../../../lexical/ui/icons/H6/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../shared/toolbar/textDropdownGroup.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\n\nconst $setHeading = (headingSize: HeadingTagType) => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createHeadingNode(headingSize))\n}\n\nconst iconImports = {\n h1: H1Icon,\n h2: H2Icon,\n h3: H3Icon,\n h4: H4Icon,\n h5: H5Icon,\n h6: H6Icon,\n}\n\nexport const HeadingFeatureClient = createClientFeature<HeadingFeatureProps>(({ props }) => {\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = props\n\n const toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems(\n enabledHeadingSizes.map((headingSize, i) => {\n return {\n ChildComponent: iconImports[headingSize],\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isHeadingNode(node) && node.getTag() === headingSize) {\n continue\n }\n\n const parent = node.getParent()\n if ($isHeadingNode(parent) && parent.getTag() === headingSize) {\n continue\n }\n\n return false\n }\n return true\n },\n key: headingSize,\n label: ({ i18n }) => {\n return i18n.t('lexical:heading:label', { headingLevel: headingSize.charAt(1) })\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n $setHeading(headingSize)\n })\n },\n order: i + 2,\n }\n }),\n ),\n ]\n\n return {\n markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],\n nodes: [HeadingNode],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: enabledHeadingSizes?.length\n ? [\n slashMenuBasicGroupWithItems(\n enabledHeadingSizes.map((headingSize) => {\n return {\n Icon: iconImports[headingSize],\n key: `heading-${headingSize.charAt(1)}`,\n keywords: ['heading', headingSize],\n label: ({ i18n }) => {\n return i18n.t('lexical:heading:label', {\n headingLevel: headingSize.charAt(1),\n })\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n $setHeading(headingSize)\n })\n },\n }\n }),\n ),\n ]\n : [],\n },\n toolbarFixed: {\n groups: enabledHeadingSizes?.length ? toolbarGroups : [],\n },\n toolbarInline: {\n groups: enabledHeadingSizes?.length ? toolbarGroups : [],\n },\n }\n})\n", "'use client'\nimport React from 'react'\n\nexport const H1Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.639 13.5V7.074H6.196V9.648H9.076V7.074H10.642V13.5H9.076V10.836H6.196V13.5H4.639ZM11.5656 9.045V8.019C12.6636 8.019 13.1316 7.731 13.2846 7.065H14.4006V13.5H12.8436V9.045H11.5656Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H2Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.139 13.5V7.074H5.696V9.648H8.576V7.074H10.142V13.5H8.576V10.836H5.696V13.5H4.139ZM15.9796 8.973C15.9796 10.116 15.1696 10.656 14.0356 11.232C13.2256 11.646 12.8206 11.943 12.7846 12.294H15.9886V13.5H11.0566V12.951C11.0566 11.601 12.1636 10.845 13.1176 10.287C14.0356 9.756 14.5126 9.486 14.5126 8.946C14.5126 8.46 14.2156 8.145 13.6306 8.145C13.0186 8.145 12.6586 8.613 12.6226 9.198H11.1196C11.2186 7.947 12.1006 6.966 13.6396 6.966C15.0346 6.966 15.9796 7.785 15.9796 8.973Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H3Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.139 13.5V7.074H5.696V9.648H8.576V7.074H10.142V13.5H8.576V10.836H5.696V13.5H4.139ZM16.1146 11.745C16.1146 12.744 15.2236 13.608 13.6126 13.608C12.0736 13.608 11.0926 12.762 10.9846 11.547H12.4696C12.5146 12.114 13.0006 12.456 13.6126 12.456C14.2876 12.456 14.6746 12.132 14.6746 11.619C14.6746 11.061 14.2426 10.836 13.6216 10.836H12.9826V9.738H13.6036C14.1526 9.738 14.5486 9.486 14.5486 8.937C14.5486 8.46 14.2156 8.127 13.6486 8.127C13.0366 8.127 12.6586 8.514 12.6226 9.045H11.1916C11.2726 7.929 12.1276 6.966 13.6666 6.966C15.1876 6.966 15.9706 7.848 15.9706 8.865C15.9706 9.603 15.5026 10.143 14.8186 10.269C15.6196 10.404 16.1146 10.971 16.1146 11.745Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H4Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.639 13.5V7.074H5.196V9.648H8.076V7.074H9.642V13.5H8.076V10.836H5.196V13.5H3.639ZM15.1736 7.074V10.854H16.3706V12.033H15.1736V13.5H13.6796V12.033H10.5116V10.845L13.4996 7.074H15.1736ZM13.6796 8.46L11.8256 10.854H13.6796V8.46Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H5Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.639 13.5V7.074H5.196V9.648H8.076V7.074H9.642V13.5H8.076V10.836H5.196V13.5H3.639ZM13.1576 10.269C12.6896 10.269 12.3746 10.494 12.2216 10.737H10.8176L11.1956 7.074H15.2546V8.28H12.3206L12.1856 9.549C12.4016 9.351 12.8516 9.126 13.4636 9.126C14.7866 9.126 15.6596 10.053 15.6596 11.358C15.6596 12.609 14.7326 13.608 13.1756 13.608C11.5826 13.608 10.6556 12.753 10.5566 11.511H12.1136C12.1586 12.06 12.5456 12.465 13.1576 12.465C13.8236 12.465 14.1746 11.97 14.1746 11.376C14.1746 10.764 13.8416 10.269 13.1576 10.269Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const H6Icon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.639 13.5V7.074H5.196V9.648H8.076V7.074H9.642V13.5H8.076V10.836H5.196V13.5H3.639ZM13.3646 8.127C12.5456 8.127 12.0416 8.937 12.0416 9.999C12.3296 9.54 12.8246 9.207 13.5536 9.207C14.8586 9.207 15.8036 10.134 15.8036 11.376C15.8036 12.645 14.8226 13.608 13.3196 13.608C11.7266 13.608 10.6196 12.393 10.6196 10.395C10.6196 8.316 11.7716 6.966 13.4186 6.966C14.7056 6.966 15.5786 7.749 15.7316 8.829H14.3186C14.2016 8.415 13.9226 8.127 13.3646 8.127ZM13.3106 12.51C13.9586 12.51 14.3816 12.042 14.3816 11.385C14.3816 10.737 13.9586 10.278 13.3106 10.278C12.6536 10.278 12.2126 10.737 12.2126 11.385C12.2126 12.042 12.6536 12.51 13.3106 12.51Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "import type { ElementTransformer } from '@lexical/markdown'\nimport type { HeadingTagType } from '@lexical/rich-text'\n\nimport { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text'\n\nimport { createBlockNode } from '../../lexical/utils/markdown/createBlockNode.js'\n\nexport const MarkdownTransformer: (enabledHeadingSizes: HeadingTagType[]) => ElementTransformer = (\n enabledHeadingSizes,\n) => {\n // Convert enabledHeadingSizes to a list of numbers (1 for h1, 2 for h2, etc.)\n const enabledSizes = enabledHeadingSizes.map((tag) => Number(tag.slice(1)))\n\n // Create a regex pattern that matches any of the enabled sizes\n const pattern = `^(${enabledSizes.map((size) => `#{${size}}`).join('|')})\\\\s`\n const regExp = new RegExp(pattern)\n\n return {\n type: 'element',\n dependencies: [HeadingNode],\n export: (node, exportChildren) => {\n if (!$isHeadingNode(node)) {\n return null\n }\n const level = Number(node.getTag().slice(1))\n return '#'.repeat(level) + ' ' + exportChildren(node)\n },\n regExp,\n replace: createBlockNode((match) => {\n const tag = ('h' + match[1].length) as HeadingTagType\n return $createHeadingNode(tag)\n }),\n }\n}\n", "import type { ElementTransformer } from '@lexical/markdown'\nimport type { ElementNode } from 'lexical'\n\nexport const createBlockNode = (\n createNode: (match: Array<string>) => ElementNode,\n): ElementTransformer['replace'] => {\n return (parentNode, children, match) => {\n const node = createNode(match)\n if (node) {\n node.append(...children)\n parentNode.replace(node)\n node.select(0, 0)\n }\n }\n}\n", "'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport { HorizontalRuleIcon } from '../../../lexical/ui/icons/HorizontalRule/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_HORIZONTAL_RULE_COMMAND } from '../server/nodes/HorizontalRuleNode.js'\nimport { MarkdownTransformer } from './markdownTransformer.js'\nimport { $isHorizontalRuleNode, HorizontalRuleNode } from './nodes/HorizontalRuleNode.js'\nimport { HorizontalRulePlugin } from './plugin/index.js'\n\nexport const HorizontalRuleFeatureClient = createClientFeature({\n markdownTransformers: [MarkdownTransformer],\n nodes: [HorizontalRuleNode],\n plugins: [\n {\n Component: HorizontalRulePlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: HorizontalRuleIcon,\n key: 'horizontalRule',\n keywords: ['hr', 'horizontal rule', 'line', 'separator'],\n label: ({ i18n }) => {\n return i18n.t('lexical:horizontalRule:label')\n },\n\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_HORIZONTAL_RULE_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: HorizontalRuleIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isHorizontalRuleNode(firstNode)\n },\n key: 'horizontalRule',\n label: ({ i18n }) => {\n return i18n.t('lexical:horizontalRule:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_HORIZONTAL_RULE_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const HorizontalRuleIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect fill=\"currentColor\" height=\"1\" width=\"12\" x=\"4\" y=\"9.5\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const AddIcon: React.FC = () => (\n <svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 10h10\" stroke=\"currentColor\" />\n <path d=\"M10 15V5\" stroke=\"currentColor\" />\n </svg>\n)\n", "import type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { AddIcon } from '../../../lexical/ui/icons/Add/index.js'\n\nexport const toolbarAddDropdownGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'dropdown',\n ChildComponent: AddIcon,\n items,\n key: 'add',\n order: 10,\n }\n}\n", "import type { ElementTransformer } from '@lexical/markdown'\n\nimport {\n $createHorizontalRuleNode,\n $isHorizontalRuleNode,\n HorizontalRuleNode,\n} from './nodes/HorizontalRuleNode.js'\n\nexport const MarkdownTransformer: ElementTransformer = {\n type: 'element',\n dependencies: [HorizontalRuleNode],\n export: (node, exportChildren) => {\n if (!$isHorizontalRuleNode(node)) {\n return null\n }\n return '---'\n },\n // match ---\n regExp: /^---\\s*$/,\n replace: (parentNode) => {\n const node = $createHorizontalRuleNode()\n if (node) {\n parentNode.replace(node)\n }\n },\n}\n", "'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot } from '@lexical/utils'\nimport { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR } from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\n\nimport { INSERT_HORIZONTAL_RULE_COMMAND } from '../../server/nodes/HorizontalRuleNode.js'\nimport { $createHorizontalRuleNode } from '../nodes/HorizontalRuleNode.js'\nimport './index.scss'\n\n/**\n * Registers the INSERT_HORIZONTAL_RULE_COMMAND lexical command and defines the behavior for when it is called.\n */\nexport const HorizontalRulePlugin: PluginComponent<undefined> = () => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n return editor.registerCommand(\n INSERT_HORIZONTAL_RULE_COMMAND,\n (type) => {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const focusNode = selection.focus.getNode()\n\n if (focusNode !== null) {\n const horizontalRuleNode = $createHorizontalRuleNode()\n $insertNodeToNearestRoot(horizontalRuleNode)\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor])\n\n return null\n}\n", "'use client'\n\nimport { INDENT_CONTENT_COMMAND, OUTDENT_CONTENT_COMMAND } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { IndentDecreaseIcon } from '../../../lexical/ui/icons/IndentDecrease/index.js'\nimport { IndentIncreaseIcon } from '../../../lexical/ui/icons/IndentIncrease/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarIndentGroupWithItems } from './toolbarIndentGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarIndentGroupWithItems([\n {\n ChildComponent: IndentDecreaseIcon,\n isActive: () => false,\n isEnabled: ({ selection }) => {\n if (!selection || !selection?.getNodes()?.length) {\n return false\n }\n for (const node of selection.getNodes()) {\n // If at least one node is indented, this should be active\n if (\n ('__indent' in node && (node.__indent as number) > 0) ||\n (node.getParent() && '__indent' in node.getParent() && node.getParent().__indent > 0)\n ) {\n return true\n }\n }\n return false\n },\n key: 'indentDecrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:decreaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OUTDENT_CONTENT_COMMAND, undefined)\n },\n order: 1,\n },\n {\n ChildComponent: IndentIncreaseIcon,\n isActive: () => false,\n key: 'indentIncrease',\n label: ({ i18n }) => {\n return i18n.t('lexical:indent:increaseLabel')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INDENT_CONTENT_COMMAND, undefined)\n },\n order: 2,\n },\n ]),\n]\n\nexport const IndentFeatureClient = createClientFeature({\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const IndentDecreaseIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M2.5 5H10.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 10H10.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2.5 15H17.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M12.25 7.25L17.25 3.75V10.75L12.25 7.25Z\" fill=\"currentColor\" />\n </svg>\n)\n", "'use client'\nimport React from 'react'\n\nexport const IndentIncreaseIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M17.5 5H9.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17.5 10H9.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17.5 15H2.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.75 7.25L2.75 3.75V10.75L7.75 7.25Z\" fill=\"currentColor\" />\n </svg>\n)\n", "'use client'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nexport const toolbarIndentGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'buttons',\n items,\n key: 'indent',\n order: 35,\n }\n}\n", "'use client'\n\nimport type { LexicalNode } from 'lexical'\n\nimport { $findMatchingParent } from '@lexical/utils'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { LinkFields } from '../nodes/types.js'\nimport type { ExclusiveLinkCollectionsProps } from '../server/index.js'\n\nimport { LinkIcon } from '../../../lexical/ui/icons/Link/index.js'\nimport { getSelectedNode } from '../../../lexical/utils/getSelectedNode.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { toolbarFeatureButtonsGroupWithItems } from '../../shared/toolbar/featureButtonsGroup.js'\nimport { LinkMarkdownTransformer } from '../markdownTransformer.js'\nimport { AutoLinkNode } from '../nodes/AutoLinkNode.js'\nimport { $isLinkNode, LinkNode, TOGGLE_LINK_COMMAND } from '../nodes/LinkNode.js'\nimport { AutoLinkPlugin } from './plugins/autoLink/index.js'\nimport { ClickableLinkPlugin } from './plugins/clickableLink/index.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './plugins/floatingLinkEditor/LinkEditor/commands.js'\nimport { FloatingLinkEditorPlugin } from './plugins/floatingLinkEditor/index.js'\nimport { LinkPlugin } from './plugins/link/index.js'\n\nexport type ClientProps = ExclusiveLinkCollectionsProps\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarFeatureButtonsGroupWithItems([\n {\n ChildComponent: LinkIcon,\n isActive: ({ selection }) => {\n if ($isRangeSelection(selection)) {\n const selectedNode = getSelectedNode(selection)\n const linkParent = $findMatchingParent(selectedNode, $isLinkNode)\n return linkParent != null\n }\n return false\n },\n isEnabled: ({ selection }) => {\n return !!($isRangeSelection(selection) && $getSelection()?.getTextContent()?.length)\n },\n key: 'link',\n label: ({ i18n }) => {\n return i18n.t('lexical:link:label')\n },\n onSelect: ({ editor, isActive }) => {\n if (!isActive) {\n let selectedText: string = null\n let selectedNodes: LexicalNode[] = []\n editor.getEditorState().read(() => {\n selectedText = $getSelection()?.getTextContent()\n // We need to selected nodes here before the drawer opens, as clicking around in the drawer may change the original selection\n selectedNodes = $getSelection()?.getNodes() ?? []\n })\n\n if (!selectedText?.length) {\n return\n }\n\n const linkFields: LinkFields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: 'https://',\n }\n\n editor.dispatchCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, {\n fields: linkFields,\n selectedNodes,\n text: selectedText,\n })\n } else {\n // remove link\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }\n },\n order: 1,\n },\n ]),\n]\n\nexport const LinkFeatureClient = createClientFeature({\n markdownTransformers: [LinkMarkdownTransformer],\n nodes: [LinkNode, AutoLinkNode],\n plugins: [\n {\n Component: LinkPlugin,\n position: 'normal',\n },\n {\n Component: AutoLinkPlugin,\n position: 'normal',\n },\n {\n Component: ClickableLinkPlugin,\n position: 'normal',\n },\n {\n Component: FloatingLinkEditorPlugin,\n position: 'floatingAnchorElem',\n },\n ],\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const LinkIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 11.5L11.5 8.5M8.5 7L9.625 5.875C10.868 4.633 12.882 4.633 14.125 5.875C15.368 7.118 15.368 9.133 14.125 10.375L13 11.5M7 8.5L5.746 9.754C4.56 10.94 4.519 12.85 5.652 14.087C6.814 15.354 8.78 15.449 10.058 14.298L11.5 13\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n", "'use client'\nimport type { ElementNode, RangeSelection, TextNode } from 'lexical'\n\nimport { $isAtNodeEnd } from '@lexical/selection'\n\nexport function getSelectedNode(selection: RangeSelection): ElementNode | TextNode {\n const { anchor } = selection\n const { focus } = selection\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n if (anchorNode === focusNode) {\n return anchorNode\n }\n const isBackward = selection.isBackward()\n if (isBackward) {\n return $isAtNodeEnd(focus) ? anchorNode : focusNode\n }\n return $isAtNodeEnd(anchor) ? anchorNode : focusNode\n}\n", "import type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nexport const toolbarFeatureButtonsGroupWithItems = (items: ToolbarGroupItem[]): ToolbarGroup => {\n return {\n type: 'buttons',\n items,\n key: 'features',\n order: 50,\n }\n}\n", "/**\n * Code taken from https://github.com/facebook/lexical/blob/main/packages/lexical-markdown/src/MarkdownTransformers.ts#L357\n */\n\n// Order of text transformers matters:\n//\n// - code should go first as it prevents any transformations inside\n\nimport type { TextMatchTransformer } from '@lexical/markdown'\n\nimport { $createTextNode, $isTextNode } from 'lexical'\n\nimport { $createLinkNode, $isLinkNode, LinkNode } from './nodes/LinkNode.js'\n\n// - then longer tags match (e.g. ** or __ should go before * or _)\nexport const LinkMarkdownTransformer: TextMatchTransformer = {\n type: 'text-match',\n dependencies: [LinkNode],\n export: (_node, exportChildren, exportFormat) => {\n if (!$isLinkNode(_node)) {\n return null\n }\n const node: LinkNode = _node\n const { url } = node.getFields()\n const linkContent = `[${node.getTextContent()}](${url})`\n const firstChild = node.getFirstChild()\n // Add text styles only if link has single text node inside. If it's more\n // then one we ignore it as markdown does not support nested styles for links\n if (node.getChildrenSize() === 1 && $isTextNode(firstChild)) {\n return exportFormat(firstChild, linkContent)\n } else {\n return linkContent\n }\n },\n importRegExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)/,\n regExp: /\\[([^[]+)\\]\\(([^()\\s]+)(?:\\s\"((?:[^\"]*\\\\\")*[^\"]*)\"\\s*)?\\)$/,\n replace: (textNode, match) => {\n const [, linkText, linkUrl] = match\n const linkNode = $createLinkNode({\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: linkUrl,\n },\n })\n const linkTextNode = $createTextNode(linkText)\n linkTextNode.setFormat(textNode.getFormat())\n linkNode.append(linkTextNode)\n textNode.replace(linkNode)\n },\n trigger: ')',\n}\n", "import type {\n BaseSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode as ElementNodeType,\n LexicalCommand,\n LexicalNode,\n NodeKey,\n RangeSelection,\n} from 'lexical'\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n ElementNode,\n createCommand,\n} from 'lexical'\n\nimport type { LinkPayload } from '../client/plugins/floatingLinkEditor/types.js'\nimport type { LinkFields, SerializedLinkNode } from './types.js'\n\nconst SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:'])\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n __fields: LinkFields\n __id: string\n\n constructor({\n id,\n fields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: undefined,\n },\n key,\n }: {\n fields: LinkFields\n id: string\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__id = id\n }\n\n static clone(node: LinkNode): LinkNode {\n return new LinkNode({\n id: node.__id,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'link'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n a: (node: Node) => ({\n conversion: $convertAnchorElement,\n priority: 1,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedLinkNode): LinkNode {\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n if (serializedNode.version === 2 && !serializedNode.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const node = $createLinkNode({\n id: serializedNode.id,\n fields: serializedNode.fields,\n })\n node.setFormat(serializedNode.format)\n node.setIndent(serializedNode.indent)\n node.setDirection(serializedNode.direction)\n return node\n }\n\n canBeEmpty(): false {\n return false\n }\n\n canInsertTextAfter(): false {\n return false\n }\n\n canInsertTextBefore(): false {\n return false\n }\n\n createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement('a')\n if (this.__fields?.linkType === 'custom') {\n element.href = this.sanitizeUrl(this.__fields.url ?? '')\n }\n if (this.__fields?.newTab ?? false) {\n element.target = '_blank'\n }\n\n if (this.__fields?.newTab === true && this.__fields?.linkType === 'custom') {\n element.rel = manageRel(element.rel, 'add', 'noopener')\n }\n\n addClassNamesToElement(element, config.theme.link)\n return element\n }\n\n exportJSON(): SerializedLinkNode {\n const returnObject: SerializedLinkNode = {\n ...super.exportJSON(),\n type: 'link',\n fields: this.getFields(),\n version: 3,\n }\n const id = this.getID()\n if (id) {\n returnObject.id = id\n }\n return returnObject\n }\n\n extractWithChild(\n child: LexicalNode,\n selection: BaseSelection,\n destination: 'clone' | 'html',\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n )\n }\n\n getFields(): LinkFields {\n return this.getLatest().__fields\n }\n\n getID(): string {\n return this.getLatest().__id\n }\n\n insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNodeType | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n isInline(): true {\n return true\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url)\n\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return 'about:blank'\n }\n } catch (e) {\n return 'https://'\n }\n return url\n }\n\n setFields(fields: LinkFields): void {\n const writable = this.getWritable()\n writable.__fields = fields\n }\n\n updateDOM(prevNode: LinkNode, anchor: HTMLAnchorElement, config: EditorConfig): boolean {\n const url = this.__fields?.url\n const newTab = this.__fields?.newTab\n if (url != null && url !== prevNode.__fields?.url && this.__fields?.linkType === 'custom') {\n anchor.href = url\n }\n if (this.__fields?.linkType === 'internal' && prevNode.__fields?.linkType === 'custom') {\n anchor.removeAttribute('href')\n }\n\n // TODO: not 100% sure why we're settign rel to '' - revisit\n // Start rel config here, then check newTab below\n if (anchor.rel == null) {\n anchor.rel = ''\n }\n\n if (newTab !== prevNode.__fields?.newTab) {\n if (newTab ?? false) {\n anchor.target = '_blank'\n if (this.__fields?.linkType === 'custom') {\n anchor.rel = manageRel(anchor.rel, 'add', 'noopener')\n }\n } else {\n anchor.removeAttribute('target')\n anchor.rel = manageRel(anchor.rel, 'remove', 'noopener')\n }\n }\n\n return false\n }\n}\n\nfunction $convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node: LinkNode | null = null\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent\n if (content !== null && content !== '') {\n node = $createLinkNode({\n id: new ObjectID.default().toHexString(),\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: domNode.getAttribute('target') === '_blank',\n url: domNode.getAttribute('href') ?? '',\n },\n })\n }\n }\n return { node }\n}\n\nexport function $createLinkNode({ id, fields }: { fields: LinkFields; id?: string }): LinkNode {\n return $applyNodeReplacement(\n new LinkNode({\n id: id ?? new ObjectID.default().toHexString(),\n fields,\n }),\n )\n}\n\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<LinkPayload | null> =\n createCommand('TOGGLE_LINK_COMMAND')\n\nexport function $toggleLink(payload: LinkPayload): void {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection) && !payload.selectedNodes.length) {\n return\n }\n const nodes = $isRangeSelection(selection) ? selection.extract() : payload.selectedNodes\n\n if (payload === null) {\n // Remove LinkNodes\n nodes.forEach((node) => {\n const parent = node.getParent()\n\n if ($isLinkNode(parent)) {\n const children = parent.getChildren()\n\n for (let i = 0; i < children.length; i += 1) {\n parent.insertBefore(children[i])\n }\n\n parent.remove()\n }\n })\n } else {\n // Add or merge LinkNodes\n if (nodes.length === 1) {\n const firstNode = nodes[0]\n // if the first node is a LinkNode or if its\n // parent is a LinkNode, we update the URL, target and rel.\n const linkNode: LinkNode | null = $isLinkNode(firstNode)\n ? firstNode\n : $getLinkAncestor(firstNode)\n if (linkNode !== null) {\n linkNode.setFields(payload.fields)\n\n if (payload.text != null && payload.text !== linkNode.getTextContent()) {\n // remove all children and add child with new textcontent:\n linkNode.append($createTextNode(payload.text))\n linkNode.getChildren().forEach((child) => {\n if (child !== linkNode.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n }\n\n let prevParent: ElementNodeType | LinkNode | null = null\n let linkNode: LinkNode | null = null\n\n nodes.forEach((node) => {\n const parent = node.getParent()\n\n if (parent === linkNode || parent === null || ($isElementNode(node) && !node.isInline())) {\n return\n }\n\n if ($isLinkNode(parent)) {\n linkNode = parent\n parent.setFields(payload.fields)\n if (payload.text != null && payload.text !== parent.getTextContent()) {\n // remove all children and add child with new textcontent:\n parent.append($createTextNode(payload.text))\n parent.getChildren().forEach((child) => {\n if (child !== parent.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n\n if (!parent.is(prevParent)) {\n prevParent = parent\n linkNode = $createLinkNode({ fields: payload.fields })\n\n if ($isLinkNode(parent)) {\n if (node.getPreviousSibling() === null) {\n parent.insertBefore(linkNode)\n } else {\n parent.insertAfter(linkNode)\n }\n } else {\n node.insertBefore(linkNode)\n }\n }\n\n if ($isLinkNode(node)) {\n if (node.is(linkNode)) {\n return\n }\n if (linkNode !== null) {\n const children = node.getChildren()\n\n for (let i = 0; i < children.length; i += 1) {\n linkNode.append(children[i])\n }\n }\n\n node.remove()\n return\n }\n\n if (linkNode !== null) {\n linkNode.append(node)\n }\n })\n }\n}\n\nfunction $getLinkAncestor(node: LexicalNode): LinkNode | null {\n return $getAncestor(node, (ancestor) => $isLinkNode(ancestor)) as LinkNode\n}\n\nfunction $getAncestor(\n node: LexicalNode,\n predicate: (ancestor: LexicalNode) => boolean,\n): LexicalNode | null {\n let parent: LexicalNode | null = node\n while (parent !== null && (parent = parent.getParent()) !== null && !predicate(parent));\n return parent\n}\n\nfunction manageRel(input: string, action: 'add' | 'remove', value: string): string {\n let result: string\n let mutableInput = `${input}`\n if (action === 'add') {\n // if we somehow got out of sync - clean up\n if (mutableInput.includes(value)) {\n const re = new RegExp(value, 'g')\n mutableInput = mutableInput.replace(re, '').trim()\n }\n mutableInput = mutableInput.trim()\n result = mutableInput.length === 0 ? `${value}` : `${mutableInput} ${value}`\n } else {\n const re = new RegExp(value, 'g')\n result = mutableInput.replace(re, '').trim()\n }\n return result\n}\n", "import type { ElementNode, LexicalNode, RangeSelection } from 'lexical'\n\nimport { $applyNodeReplacement, $isElementNode } from 'lexical'\n\nimport type { LinkFields, SerializedAutoLinkNode } from './types.js'\n\nimport { LinkNode } from './LinkNode.js'\n\n// Custom node type to override `canInsertTextAfter` that will\n// allow typing within the link\n\nexport class AutoLinkNode extends LinkNode {\n static clone(node: AutoLinkNode): AutoLinkNode {\n return new AutoLinkNode({ id: undefined, fields: node.__fields, key: node.__key })\n }\n\n static getType(): string {\n return 'autolink'\n }\n\n static importDOM(): null {\n // TODO: Should link node should handle the import over autolink?\n return null\n }\n\n static importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode {\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n const node = $createAutoLinkNode({ fields: serializedNode.fields })\n\n node.setFormat(serializedNode.format)\n node.setIndent(serializedNode.indent)\n node.setDirection(serializedNode.direction)\n return node\n }\n\n // @ts-expect-error\n exportJSON(): SerializedAutoLinkNode {\n const serialized = super.exportJSON()\n return {\n type: 'autolink',\n children: serialized.children,\n direction: serialized.direction,\n fields: serialized.fields,\n format: serialized.format,\n indent: serialized.indent,\n version: 2,\n }\n }\n\n insertNewAfter(selection: RangeSelection, restoreSelection = true): ElementNode | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createAutoLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n}\n\nexport function $createAutoLinkNode({ fields }: { fields: LinkFields }): AutoLinkNode {\n return $applyNodeReplacement(new AutoLinkNode({ id: undefined, fields }))\n}\nexport function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode {\n return node instanceof AutoLinkNode\n}\n", "'use client'\nimport type { ElementNode, LexicalEditor, LexicalNode, TextNode } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isLineBreakNode,\n $isNodeSelection,\n $isRangeSelection,\n $isTextNode,\n TextNode as TextNodeValue,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\n\nimport { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from '../../../nodes/AutoLinkNode.js'\nimport { $isLinkNode } from '../../../nodes/LinkNode.js'\n\ntype ChangeHandler = (url: null | string, prevUrl: null | string) => void\n\ninterface LinkMatcherResult {\n fields?: LinkFields\n index: number\n length: number\n text: string\n url: string\n}\n\nexport type LinkMatcher = (text: string) => LinkMatcherResult | null\n\nexport function createLinkMatcherWithRegExp(\n regExp: RegExp,\n urlTransformer: (text: string) => string = (text) => text,\n) {\n return (text: string) => {\n const match = regExp.exec(text)\n if (match === null) return null\n return {\n index: match.index,\n length: match[0].length,\n text: match[0],\n url: urlTransformer(match[0]),\n }\n }\n}\n\nfunction findFirstMatch(text: string, matchers: LinkMatcher[]): LinkMatcherResult | null {\n for (let i = 0; i < matchers.length; i++) {\n const match = matchers[i](text)\n\n if (match != null) {\n return match\n }\n }\n\n return null\n}\n\nconst PUNCTUATION_OR_SPACE = /[.,;\\s]/\n\nfunction isSeparator(char: string): boolean {\n return PUNCTUATION_OR_SPACE.test(char)\n}\n\nfunction endsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[textContent.length - 1])\n}\n\nfunction startsWithSeparator(textContent: string): boolean {\n return isSeparator(textContent[0])\n}\n\n/**\n * Check if the text content starts with a fullstop followed by a top-level domain.\n * Meaning if the text content can be a beginning of a top level domain.\n * @param textContent\n * @param isEmail\n * @returns boolean\n */\nfunction startsWithTLD(textContent: string, isEmail: boolean): boolean {\n if (isEmail) {\n return /^\\.[a-z]{2,}/i.test(textContent)\n } else {\n return /^\\.[a-z0-9]+/i.test(textContent)\n }\n}\n\nfunction isPreviousNodeValid(node: LexicalNode): boolean {\n let previousNode = node.getPreviousSibling()\n if ($isElementNode(previousNode)) {\n previousNode = previousNode.getLastDescendant()\n }\n return (\n previousNode === null ||\n $isLineBreakNode(previousNode) ||\n ($isTextNode(previousNode) && endsWithSeparator(previousNode.getTextContent()))\n )\n}\n\nfunction isNextNodeValid(node: LexicalNode): boolean {\n let nextNode = node.getNextSibling()\n if ($isElementNode(nextNode)) {\n nextNode = nextNode.getFirstDescendant()\n }\n return (\n nextNode === null ||\n $isLineBreakNode(nextNode) ||\n ($isTextNode(nextNode) && startsWithSeparator(nextNode.getTextContent()))\n )\n}\n\nfunction isContentAroundIsValid(\n matchStart: number,\n matchEnd: number,\n text: string,\n nodes: TextNode[],\n): boolean {\n const contentBeforeIsValid =\n matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(nodes[0])\n if (!contentBeforeIsValid) {\n return false\n }\n\n const contentAfterIsValid =\n matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(nodes[nodes.length - 1])\n return contentAfterIsValid\n}\n\nfunction extractMatchingNodes(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n): [\n matchingOffset: number,\n unmodifiedBeforeNodes: TextNode[],\n matchingNodes: TextNode[],\n unmodifiedAfterNodes: TextNode[],\n] {\n const unmodifiedBeforeNodes: TextNode[] = []\n const matchingNodes: TextNode[] = []\n const unmodifiedAfterNodes: TextNode[] = []\n let matchingOffset = 0\n\n let currentOffset = 0\n const currentNodes = [...nodes]\n\n while (currentNodes.length > 0) {\n const currentNode = currentNodes[0]\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = currentOffset\n const currentNodeEnd = currentOffset + currentNodeLength\n\n if (currentNodeEnd <= startIndex) {\n unmodifiedBeforeNodes.push(currentNode)\n matchingOffset += currentNodeLength\n } else if (currentNodeStart >= endIndex) {\n unmodifiedAfterNodes.push(currentNode)\n } else {\n matchingNodes.push(currentNode)\n }\n currentOffset += currentNodeLength\n currentNodes.shift()\n }\n return [matchingOffset, unmodifiedBeforeNodes, matchingNodes, unmodifiedAfterNodes]\n}\n\nfunction $createAutoLinkNode_(\n nodes: TextNode[],\n startIndex: number,\n endIndex: number,\n match: LinkMatcherResult,\n): TextNode | undefined {\n const fields: LinkFields = {\n linkType: 'custom',\n url: match.url,\n ...match.fields,\n }\n\n const linkNode = $createAutoLinkNode({ fields })\n if (nodes.length === 1) {\n let remainingTextNode = nodes[0]\n let linkTextNode\n if (startIndex === 0) {\n ;[linkTextNode, remainingTextNode] = remainingTextNode.splitText(endIndex)\n } else {\n ;[, linkTextNode, remainingTextNode] = remainingTextNode.splitText(startIndex, endIndex)\n }\n const textNode = $createTextNode(match.text)\n textNode.setFormat(linkTextNode.getFormat())\n textNode.setDetail(linkTextNode.getDetail())\n textNode.setStyle(linkTextNode.getStyle())\n linkNode.append(textNode)\n linkTextNode.replace(linkNode)\n return remainingTextNode\n } else if (nodes.length > 1) {\n const firstTextNode = nodes[0]\n let offset = firstTextNode.getTextContent().length\n let firstLinkTextNode\n if (startIndex === 0) {\n firstLinkTextNode = firstTextNode\n } else {\n ;[, firstLinkTextNode] = firstTextNode.splitText(startIndex)\n }\n const linkNodes = []\n let remainingTextNode\n for (let i = 1; i < nodes.length; i++) {\n const currentNode = nodes[i]\n const currentNodeText = currentNode.getTextContent()\n const currentNodeLength = currentNodeText.length\n const currentNodeStart = offset\n const currentNodeEnd = offset + currentNodeLength\n if (currentNodeStart < endIndex) {\n if (currentNodeEnd <= endIndex) {\n linkNodes.push(currentNode)\n } else {\n const [linkTextNode, endNode] = currentNode.splitText(endIndex - currentNodeStart)\n linkNodes.push(linkTextNode)\n remainingTextNode = endNode\n }\n }\n offset += currentNodeLength\n }\n const selection = $getSelection()\n const selectedTextNode = selection ? selection.getNodes().find($isTextNode) : undefined\n const textNode = $createTextNode(firstLinkTextNode.getTextContent())\n textNode.setFormat(firstLinkTextNode.getFormat())\n textNode.setDetail(firstLinkTextNode.getDetail())\n textNode.setStyle(firstLinkTextNode.getStyle())\n linkNode.append(textNode, ...linkNodes)\n // it does not preserve caret position if caret was at the first text node\n // so we need to restore caret position\n if (selectedTextNode && selectedTextNode === firstLinkTextNode) {\n if ($isRangeSelection(selection)) {\n textNode.select(selection.anchor.offset, selection.focus.offset)\n } else if ($isNodeSelection(selection)) {\n textNode.select(0, textNode.getTextContent().length)\n }\n }\n firstLinkTextNode.replace(linkNode)\n return remainingTextNode\n }\n return undefined\n}\n\nfunction $handleLinkCreation(\n nodes: TextNode[],\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n let currentNodes = [...nodes]\n const initialText = currentNodes.map((node) => node.getTextContent()).join('')\n let text = initialText\n\n let match\n let invalidMatchEnd = 0\n\n while ((match = findFirstMatch(text, matchers)) != null && match !== null) {\n const matchStart: number = match.index\n const matchLength: number = match.length\n const matchEnd = matchStart + matchLength\n const isValid = isContentAroundIsValid(\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n initialText,\n currentNodes,\n )\n\n if (isValid) {\n const [matchingOffset, , matchingNodes, unmodifiedAfterNodes] = extractMatchingNodes(\n currentNodes,\n invalidMatchEnd + matchStart,\n invalidMatchEnd + matchEnd,\n )\n\n const actualMatchStart = invalidMatchEnd + matchStart - matchingOffset\n const actualMatchEnd = invalidMatchEnd + matchEnd - matchingOffset\n const remainingTextNode = $createAutoLinkNode_(\n matchingNodes,\n actualMatchStart,\n actualMatchEnd,\n match,\n )\n currentNodes = remainingTextNode\n ? [remainingTextNode, ...unmodifiedAfterNodes]\n : unmodifiedAfterNodes\n onChange(match.url, null)\n invalidMatchEnd = 0\n } else {\n invalidMatchEnd += matchEnd\n }\n\n text = text.substring(matchEnd)\n }\n}\n\nfunction handleLinkEdit(\n linkNode: AutoLinkNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n // Check children are simple text\n const children = linkNode.getChildren()\n const childrenLength = children.length\n for (let i = 0; i < childrenLength; i++) {\n const child = children[i]\n if (!$isTextNode(child) || !child.isSimpleText()) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n }\n\n // Check text content fully matches\n const text = linkNode.getTextContent()\n const match = findFirstMatch(text, matchers)\n if (match === null || match.text !== text) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n // Check neighbors\n if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {\n replaceWithChildren(linkNode)\n onChange(null, linkNode.getFields()?.url ?? null)\n return\n }\n\n const url = linkNode.getFields()?.url\n if (url !== match?.url) {\n const flds = linkNode.getFields()\n flds.url = match?.url\n linkNode.setFields(flds)\n onChange(match.url, url ?? null)\n }\n}\n\n// Bad neighbors are edits in neighbor nodes that make AutoLinks incompatible.\n// Given the creation preconditions, these can only be simple text nodes.\nfunction handleBadNeighbors(\n textNode: TextNode,\n matchers: LinkMatcher[],\n onChange: ChangeHandler,\n): void {\n const previousSibling = textNode.getPreviousSibling()\n const nextSibling = textNode.getNextSibling()\n const text = textNode.getTextContent()\n\n if ($isAutoLinkNode(previousSibling)) {\n const isEmailURI = previousSibling.getFields()?.url\n ? previousSibling.getFields()?.url?.startsWith('mailto:')\n : false\n if (!startsWithSeparator(text) || startsWithTLD(text, isEmailURI)) {\n previousSibling.append(textNode)\n handleLinkEdit(previousSibling, matchers, onChange)\n onChange(null, previousSibling.getFields()?.url ?? null)\n }\n }\n\n if ($isAutoLinkNode(nextSibling) && !endsWithSeparator(text)) {\n replaceWithChildren(nextSibling)\n handleLinkEdit(nextSibling, matchers, onChange)\n onChange(null, nextSibling.getFields()?.url ?? null)\n }\n}\n\nfunction replaceWithChildren(node: ElementNode): LexicalNode[] {\n const children = node.getChildren()\n const childrenLength = children.length\n\n for (let j = childrenLength - 1; j >= 0; j--) {\n node.insertAfter(children[j])\n }\n\n node.remove()\n return children.map((child) => child.getLatest())\n}\n\nfunction getTextNodesToMatch(textNode: TextNode): TextNode[] {\n // check if next siblings are simple text nodes till a node contains a space separator\n const textNodesToMatch = [textNode]\n let nextSibling = textNode.getNextSibling()\n while (nextSibling !== null && $isTextNode(nextSibling) && nextSibling.isSimpleText()) {\n textNodesToMatch.push(nextSibling)\n if (/\\s/.test(nextSibling.getTextContent())) {\n break\n }\n nextSibling = nextSibling.getNextSibling()\n }\n return textNodesToMatch\n}\n\nfunction useAutoLink(\n editor: LexicalEditor,\n matchers: LinkMatcher[],\n onChange?: ChangeHandler,\n): void {\n useEffect(() => {\n if (!editor.hasNodes([AutoLinkNode])) {\n throw new Error('LexicalAutoLinkPlugin: AutoLinkNode not registered on editor')\n }\n\n const onChangeWrapped = (url: null | string, prevUrl: null | string): void => {\n if (onChange != null) {\n onChange(url, prevUrl)\n }\n }\n\n return mergeRegister(\n editor.registerNodeTransform(TextNodeValue, (textNode: TextNode) => {\n const parent = textNode.getParentOrThrow()\n const previous = textNode.getPreviousSibling()\n if ($isAutoLinkNode(parent)) {\n handleLinkEdit(parent, matchers, onChangeWrapped)\n } else if (!$isLinkNode(parent)) {\n if (\n textNode.isSimpleText() &&\n (startsWithSeparator(textNode.getTextContent()) || !$isAutoLinkNode(previous))\n ) {\n const textNodesToMatch = getTextNodesToMatch(textNode)\n $handleLinkCreation(textNodesToMatch, matchers, onChangeWrapped)\n }\n\n handleBadNeighbors(textNode, matchers, onChangeWrapped)\n }\n }),\n )\n }, [editor, matchers, onChange])\n}\n\nconst URL_REGEX =\n /((https?:\\/\\/(www\\.)?)|(www\\.))[-\\w@:%.+~#=]{1,256}\\.[a-zA-Z\\d()]{1,6}\\b([-\\w()@:%+.~#?&/=]*)(?<![-.+():%])/\n\nconst EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\])|(([a-z\\-\\d]+\\.)+[a-z]{2,}))/i\n\nconst MATCHERS = [\n createLinkMatcherWithRegExp(URL_REGEX, (text) => {\n return text.startsWith('http') ? text : `https://${text}`\n }),\n createLinkMatcherWithRegExp(EMAIL_REGEX, (text) => {\n return `mailto:${text}`\n }),\n]\n\nexport const AutoLinkPlugin: PluginComponent<ClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n\n useAutoLink(editor, MATCHERS)\n\n return null\n}\n", "'use client'\nimport { ClickableLinkPlugin as LexicalClickableLinkPlugin } from '@lexical/react/LexicalClickableLinkPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nexport const ClickableLinkPlugin: PluginComponent<ClientProps> = () => {\n return <LexicalClickableLinkPlugin />\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nimport type { LinkPayload } from '../types.js'\n\nexport const TOGGLE_LINK_WITH_MODAL_COMMAND: LexicalCommand<LinkPayload | null> = createCommand(\n 'TOGGLE_LINK_WITH_MODAL_COMMAND',\n)\n", "'use client'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ClientProps } from '../../index.js'\n\nimport { LinkEditor } from './LinkEditor/index.js'\nimport './index.scss'\n\nexport const FloatingLinkEditorPlugin: PluginComponentWithAnchor<ClientProps> = (props) => {\n const { anchorElem = document.body } = props\n\n return createPortal(<LinkEditor anchorElem={anchorElem} />, anchorElem)\n}\n", "'use client'\nimport type { LexicalNode } from 'lexical'\nimport type { Data, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n CloseMenuIcon,\n EditIcon,\n formatDrawerSlug,\n useConfig,\n useEditDepth,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $getSelection,\n $isLineBreakNode,\n $isRangeSelection,\n COMMAND_PRIORITY_HIGH,\n COMMAND_PRIORITY_LOW,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { LinkNode } from '../../../../nodes/LinkNode.js'\nimport type { LinkFields } from '../../../../nodes/types.js'\nimport type { LinkPayload } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getSelectedNode } from '../../../../../../lexical/utils/getSelectedNode.js'\nimport { setFloatingElemPositionForLinkEditor } from '../../../../../../lexical/utils/setFloatingElemPositionForLinkEditor.js'\nimport { FieldsDrawer } from '../../../../../../utilities/fieldsDrawer/Drawer.js'\nimport { $isAutoLinkNode } from '../../../../nodes/AutoLinkNode.js'\nimport { $createLinkNode, $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../../nodes/LinkNode.js'\nimport { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands.js'\n\nexport function LinkEditor({ anchorElem }: { anchorElem: HTMLElement }): React.ReactNode {\n const [editor] = useLexicalComposerContext()\n\n const editorRef = useRef<HTMLDivElement | null>(null)\n const [linkUrl, setLinkUrl] = useState(null)\n const [linkLabel, setLinkLabel] = useState(null)\n\n const { uuid } = useEditorConfigContext()\n\n const { config } = useConfig()\n\n const { i18n, t } = useTranslation()\n\n const [stateData, setStateData] = useState<{ id?: string; text: string } & LinkFields>(null)\n\n const { closeModal, toggleModal } = useModal()\n const editDepth = useEditDepth()\n const [isLink, setIsLink] = useState(false)\n const [selectedNodes, setSelectedNodes] = useState<LexicalNode[]>([])\n\n const [isAutoLink, setIsAutoLink] = useState(false)\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-rich-text-link-` + uuid,\n depth: editDepth,\n })\n\n const setNotLink = useCallback(() => {\n setIsLink(false)\n if (editorRef && editorRef.current) {\n editorRef.current.style.opacity = '0'\n editorRef.current.style.transform = 'translate(-10000px, -10000px)'\n }\n setIsAutoLink(false)\n setLinkUrl(null)\n setLinkLabel(null)\n setSelectedNodes([])\n setStateData(null)\n }, [setIsLink, setLinkUrl, setLinkLabel, setSelectedNodes])\n\n const $updateLinkEditor = useCallback(() => {\n const selection = $getSelection()\n let selectedNodeDomRect: DOMRect | undefined = null\n\n if (!$isRangeSelection(selection) || !selection) {\n setNotLink()\n return\n }\n\n // Handle the data displayed in the floating link editor & drawer when you click on a link node\n\n const focusNode = getSelectedNode(selection)\n selectedNodeDomRect = editor.getElementByKey(focusNode.getKey())?.getBoundingClientRect()\n const focusLinkParent: LinkNode = $findMatchingParent(focusNode, $isLinkNode)\n\n // Prevent link modal from showing if selection spans further than the link: https://github.com/facebook/lexical/issues/4064\n const badNode = selection\n .getNodes()\n .filter((node) => !$isLineBreakNode(node))\n .find((node) => {\n const linkNode = $findMatchingParent(node, $isLinkNode)\n return (\n (focusLinkParent && !focusLinkParent.is(linkNode)) ||\n (linkNode && !linkNode.is(focusLinkParent))\n )\n })\n\n if (focusLinkParent == null || badNode) {\n setNotLink()\n return\n }\n\n // Initial state:\n const data: { text: string } & LinkFields = {\n doc: undefined,\n linkType: undefined,\n newTab: undefined,\n url: '',\n ...focusLinkParent.getFields(),\n id: focusLinkParent.getID(),\n text: focusLinkParent.getTextContent(),\n }\n\n if (focusLinkParent.getFields()?.linkType === 'custom') {\n setLinkUrl(focusLinkParent.getFields()?.url ?? null)\n setLinkLabel(null)\n } else {\n // internal link\n setLinkUrl(\n `/admin/collections/${focusLinkParent.getFields()?.doc?.relationTo}/${\n focusLinkParent.getFields()?.doc?.value\n }`,\n )\n\n const relatedField = config.collections.find(\n (coll) => coll.slug === focusLinkParent.getFields()?.doc?.relationTo,\n )\n if (!relatedField) {\n // Usually happens if the user removed all default fields. In this case, we let them specify the label or do not display the label at all.\n // label could be a virtual field the user added. This is useful if they want to use the link feature for things other than links.\n setLinkLabel(\n focusLinkParent.getFields()?.label ? String(focusLinkParent.getFields()?.label) : null,\n )\n setLinkUrl(\n focusLinkParent.getFields()?.url ? String(focusLinkParent.getFields()?.url) : null,\n )\n } else {\n const label = t('fields:linkedTo', {\n label: getTranslation(relatedField.labels.singular, i18n),\n }).replace(/<[^>]*>?/g, '')\n setLinkLabel(label)\n }\n }\n\n setStateData(data)\n setIsLink(true)\n setSelectedNodes(selection ? selection?.getNodes() : [])\n\n if ($isAutoLinkNode(focusLinkParent)) {\n setIsAutoLink(true)\n } else {\n setIsAutoLink(false)\n }\n\n const editorElem = editorRef.current\n const nativeSelection = window.getSelection()\n const { activeElement } = document\n\n if (editorElem === null) {\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n if (!selectedNodeDomRect) {\n // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong\n // result, which is why we use lexical's selection preferably.\n selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect()\n }\n\n if (selectedNodeDomRect != null) {\n selectedNodeDomRect.y += 40\n setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem)\n }\n } else if (activeElement == null || activeElement.className !== 'link-input') {\n if (rootElement !== null) {\n setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem)\n }\n setLinkUrl(null)\n setLinkLabel(null)\n }\n\n return true\n }, [editor, setNotLink, config.collections, t, i18n, anchorElem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_WITH_MODAL_COMMAND,\n (payload: LinkPayload) => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload)\n\n // Now, open the modal\n $updateLinkEditor()\n toggleModal(drawerSlug)\n\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateLinkEditor, toggleModal, drawerSlug])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = (): void => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }\n\n window.addEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n\n if (scrollerElem != null) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [anchorElem.parentElement, editor, $updateLinkEditor])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n void $updateLinkEditor()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n void $updateLinkEditor()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ESCAPE_COMMAND,\n () => {\n if (isLink) {\n setNotLink()\n\n return true\n }\n return false\n },\n COMMAND_PRIORITY_HIGH,\n ),\n )\n }, [editor, $updateLinkEditor, isLink, setNotLink])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n void $updateLinkEditor()\n })\n }, [editor, $updateLinkEditor])\n\n return (\n <React.Fragment>\n <div className=\"link-editor\" ref={editorRef}>\n <div className=\"link-input\">\n {linkUrl && linkUrl.length > 0 ? (\n <a href={linkUrl} rel=\"noopener noreferrer\" target=\"_blank\">\n {linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl}\n </a>\n ) : linkLabel != null && linkLabel.length > 0 ? (\n <span className=\"link-input__label-pure\">{linkLabel}</span>\n ) : null}\n\n {editor.isEditable() && (\n <React.Fragment>\n <button\n aria-label=\"Edit link\"\n className=\"link-edit\"\n onClick={() => {\n toggleModal(drawerSlug)\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n >\n <EditIcon />\n </button>\n {!isAutoLink && (\n <button\n aria-label=\"Remove link\"\n className=\"link-trash\"\n onClick={() => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null)\n }}\n onMouseDown={(event) => {\n event.preventDefault()\n }}\n tabIndex={0}\n type=\"button\"\n >\n <CloseMenuIcon />\n </button>\n )}\n </React.Fragment>\n )}\n </div>\n </div>\n <FieldsDrawer\n className=\"lexical-link-edit-drawer\"\n data={stateData}\n drawerSlug={drawerSlug}\n drawerTitle={t('fields:editLink')}\n featureKey=\"link\"\n handleDrawerSubmit={(fields: FormState, data: Data) => {\n closeModal(drawerSlug)\n\n const newLinkPayload = data as { text: string } & LinkFields\n\n const bareLinkFields: LinkFields = {\n ...newLinkPayload,\n }\n delete bareLinkFields.text\n\n // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).\n editor.update(() => {\n const selection = $getSelection()\n let linkParent = null\n if ($isRangeSelection(selection)) {\n linkParent = getSelectedNode(selection).getParent()\n } else {\n if (selectedNodes.length) {\n linkParent = selectedNodes[0].getParent()\n }\n }\n\n if (linkParent && $isAutoLinkNode(linkParent)) {\n const linkNode = $createLinkNode({\n fields: bareLinkFields,\n })\n linkParent.replace(linkNode, true)\n }\n })\n\n // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to\n // it being applied to the auto link node instead of the link node.\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: bareLinkFields,\n selectedNodes,\n text: newLinkPayload.text,\n })\n }}\n schemaPathSuffix=\"fields\"\n />\n </React.Fragment>\n )\n}\n", "'use client'\nconst VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 5\n\nexport function setFloatingElemPositionForLinkEditor(\n targetRect: DOMRect | null,\n floatingElem: HTMLElement,\n anchorElem: HTMLElement,\n verticalGap: number = VERTICAL_GAP,\n horizontalOffset: number = HORIZONTAL_OFFSET,\n): void {\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (top < editorScrollerRect.top) {\n top += floatingElemRect.height + targetRect.height + verticalGap * 2\n }\n\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n\n top -= anchorElementRect.top\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n}\n", "'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n PASTE_COMMAND,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { LinkFields } from '../../../nodes/types.js'\nimport type { ClientProps } from '../../index.js'\nimport type { LinkPayload } from '../floatingLinkEditor/types.js'\n\nimport { validateUrl } from '../../../../../lexical/utils/url.js'\nimport { $toggleLink, LinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode.js'\n\nexport const LinkPlugin: PluginComponent<ClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n\n useEffect(() => {\n if (!editor.hasNodes([LinkNode])) {\n throw new Error('LinkPlugin: LinkNode not registered on editor')\n }\n return mergeRegister(\n editor.registerCommand(\n TOGGLE_LINK_COMMAND,\n (payload: LinkPayload) => {\n $toggleLink(payload)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n PASTE_COMMAND,\n (event) => {\n const selection = $getSelection()\n if (\n !$isRangeSelection(selection) ||\n selection.isCollapsed() ||\n !(event instanceof ClipboardEvent) ||\n event.clipboardData == null\n ) {\n return false\n }\n const clipboardText = event.clipboardData.getData('text')\n if (!validateUrl(clipboardText)) {\n return false\n }\n // If we select nodes that are elements then avoid applying the link.\n if (!selection.getNodes().some((node) => $isElementNode(node))) {\n const linkFields: LinkFields = {\n doc: null,\n linkType: 'custom',\n newTab: false,\n url: clipboardText,\n }\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n fields: linkFields,\n text: null,\n })\n event.preventDefault()\n return true\n }\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor])\n\n return null\n}\n", "export function sanitizeUrl(url: string): string {\n /** A pattern that matches safe URLs. */\n const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /** A pattern that matches safe data URLs. */\n const DATA_URL_PATTERN =\n /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z\\d+/]+=*$/i\n\n url = String(url).trim()\n\n if (url.match(SAFE_URL_PATTERN) != null || url.match(DATA_URL_PATTERN) != null) return url\n\n return 'https://'\n}\n\n// Source: https://stackoverflow.com/a/8234912/2013580\nconst absoluteRegExp =\n /(?:[A-Za-z]{3,9}:(?:\\/\\/)?(?:[-;:&=+$,\\w]+@)?[A-Za-z\\d.-]+|(?:www.|[-;:&=+$,\\w]+@)[A-Za-z\\d.-]+)(?:\\/[+~%/.\\w-]*)?\\??[-+=&;%@.\\w]*#?\\w*/\n\n/**\n * This regex checks for relative URLs starting with / or anchor links starting with # in a string. Tested for the following use cases:\n * - /privacy-policy\n * - /privacy-policy#primary-terms\n * - #primary-terms\n * */\nconst relativeOrAnchorRegExp = /^[\\w\\-./]*(?:#\\w[\\w-]*)?$/\n\n// Do not keep validateUrl function too loose. This is run when pasting in text, to determine if links are in that text and if it should create AutoLinkNodes.\n// This is why we do not allow stuff like anchors here, as we don't want copied anchors to be turned into AutoLinkNodes.\nexport function validateUrl(url: string): boolean {\n // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.\n // Maybe show a dialog where they user can type the URL before inserting it.\n\n if (!url) return false\n\n if (url === 'https://') return true\n\n // This makes sure URLs starting with www. instead of https are valid too\n if (absoluteRegExp.test(url)) return true\n\n // Check relative or anchor links\n if (relativeOrAnchorRegExp.test(url)) return true\n\n // While this doesn't allow URLs starting with www (which is why we use the regex above), it does properly handle tel: URLs\n try {\n new URL(url)\n return true\n } catch {\n /* empty */\n }\n\n return false\n}\n", "'use client'\nimport { $isListNode, INSERT_CHECK_LIST_COMMAND, ListItemNode, ListNode } from '@lexical/list'\nimport { $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../../toolbars/types.js'\nimport type { ClientFeature } from '../../../typesClient.js'\n\nimport { ChecklistIcon } from '../../../../lexical/ui/icons/Checklist/index.js'\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../../shared/toolbar/textDropdownGroup.js'\nimport { LexicalListPlugin } from '../../plugin/index.js'\nimport { slashMenuListGroupWithItems } from '../../shared/slashMenuListGroup.js'\nimport { CHECK_LIST } from '../markdownTransformers.js'\nimport { LexicalCheckListPlugin } from './plugin/index.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: ChecklistIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isListNode(node) && node.getListType() === 'check') {\n continue\n }\n\n const parent = node.getParent()\n\n if ($isListNode(parent) && parent.getListType() === 'check') {\n continue\n }\n\n const parentParent = parent?.getParent()\n // Example scenario: Node = textNode, parent = listItemNode, parentParent = listNode\n if ($isListNode(parentParent) && parentParent.getListType() === 'check') {\n continue\n }\n\n return false\n }\n return true\n },\n key: 'checklist',\n label: ({ i18n }) => {\n return i18n.t('lexical:checklist:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, undefined)\n },\n order: 12,\n },\n ]),\n]\n\nexport const ChecklistFeatureClient = createClientFeature(({ featureProviderMap }) => {\n const plugins: ClientFeature<undefined>['plugins'] = [\n {\n Component: LexicalCheckListPlugin,\n position: 'normal',\n },\n ]\n\n if (!featureProviderMap.has('unorderedList') && !featureProviderMap.has('orderedList')) {\n plugins.push({\n Component: LexicalListPlugin,\n position: 'normal',\n })\n }\n\n return {\n markdownTransformers: [CHECK_LIST],\n nodes:\n featureProviderMap.has('unorderedList') || featureProviderMap.has('orderedList')\n ? []\n : [ListNode, ListItemNode],\n plugins,\n slashMenu: {\n groups: [\n slashMenuListGroupWithItems([\n {\n Icon: ChecklistIcon,\n key: 'checklist',\n keywords: ['check list', 'check', 'checklist', 'cl'],\n label: ({ i18n }) => {\n return i18n.t('lexical:checklist:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n", "'use client'\nimport React from 'react'\n\nexport const ChecklistIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect height=\"13\" rx=\"1.5\" stroke=\"currentColor\" width=\"13\" x=\"3.5\" y=\"3.5\" />\n <path d=\"M7 10L9 12.5L13 7.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "'use client'\nimport type {\n SerializedListItemNode as _SerializedListItemNode,\n SerializedListNode as _SerializedListNode,\n} from '@lexical/list'\nimport type { Spread } from 'lexical'\n\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../typesClient.js'\n\nexport type SerializedListItemNode = Spread<\n {\n checked?: boolean\n type: 'listitem'\n },\n _SerializedListItemNode\n>\n\nexport type SerializedListNode = Spread<\n {\n checked?: boolean\n type: 'list'\n },\n _SerializedListNode\n>\n\nexport const LexicalListPlugin: PluginComponent<undefined> = () => {\n return <ListPlugin />\n}\n", "import type {\n SlashMenuGroup,\n SlashMenuItem,\n} from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport function slashMenuListGroupWithItems(items: SlashMenuItem[]): SlashMenuGroup {\n return {\n items,\n key: 'lists',\n label: ({ i18n }) => {\n return i18n.t('lexical:general:slashMenuListGroupLabel')\n },\n }\n}\n", "import type { ElementTransformer } from '@lexical/markdown'\n\nimport { $isListNode, ListItemNode, ListNode } from '@lexical/list'\n\nimport { listExport, listReplace } from '../shared/markdown.js'\n\nexport const CHECK_LIST: ElementTransformer = {\n type: 'element',\n dependencies: [ListNode, ListItemNode],\n export: (node, exportChildren) => {\n return $isListNode(node) ? listExport(node, exportChildren, 0) : null\n },\n regExp: /^(\\s*)(?:-\\s)?\\s?(\\[(\\s|x)?\\])\\s/i,\n replace: listReplace('check'),\n}\n", "// Copied from https://github.com/facebook/lexical/blob/176b8cf16ecb332ee5efe2c75219e223b7b019f2/packages/lexical-markdown/src/MarkdownTransformers.ts#L97C1-L172C1\n\nimport type { ListNode, ListType } from '@lexical/list'\nimport type { ElementTransformer } from '@lexical/markdown'\nimport type { ElementNode } from 'lexical'\n\nimport { $createListItemNode, $createListNode, $isListItemNode, $isListNode } from '@lexical/list'\n\n// Amount of spaces that define indentation level\nconst LIST_INDENT_SIZE = 4\n\nexport const listReplace = (listType: ListType): ElementTransformer['replace'] => {\n return (parentNode, children, match) => {\n const previousNode = parentNode.getPreviousSibling()\n const nextNode = parentNode.getNextSibling()\n const listItem = $createListItemNode(listType === 'check' ? match[3] === 'x' : undefined)\n if ($isListNode(nextNode) && nextNode.getListType() === listType) {\n const firstChild = nextNode.getFirstChild()\n if (firstChild !== null) {\n firstChild.insertBefore(listItem)\n } else {\n // should never happen, but let's handle gracefully, just in case.\n nextNode.append(listItem)\n }\n parentNode.remove()\n } else if ($isListNode(previousNode) && previousNode.getListType() === listType) {\n previousNode.append(listItem)\n parentNode.remove()\n } else {\n const list = $createListNode(listType, listType === 'number' ? Number(match[2]) : undefined)\n list.append(listItem)\n parentNode.replace(list)\n }\n listItem.append(...children)\n listItem.select(0, 0)\n const indent = Math.floor(match[1].length / LIST_INDENT_SIZE)\n if (indent) {\n listItem.setIndent(indent)\n }\n }\n}\n\nexport const listExport = (\n listNode: ListNode,\n exportChildren: (node: ElementNode) => string,\n depth: number,\n): string => {\n const output = []\n const children = listNode.getChildren()\n let index = 0\n for (const listItemNode of children) {\n if ($isListItemNode(listItemNode)) {\n if (listItemNode.getChildrenSize() === 1) {\n const firstChild = listItemNode.getFirstChild()\n if ($isListNode(firstChild)) {\n output.push(listExport(firstChild, exportChildren, depth + 1))\n continue\n }\n }\n const indent = ' '.repeat(depth * LIST_INDENT_SIZE)\n const listType = listNode.getListType()\n const prefix =\n listType === 'number'\n ? `${listNode.getStart() + index}. `\n : listType === 'check'\n ? `- [${listItemNode.getChecked() ? 'x' : ' '}] `\n : '- '\n output.push(indent + prefix + exportChildren(listItemNode))\n index++\n }\n }\n\n return output.join('\\n')\n}\n", "'use client'\nimport { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin.js'\nimport React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nexport const LexicalCheckListPlugin: PluginComponent<undefined> = () => {\n return <CheckListPlugin />\n}\n", "'use client'\nimport { $isListNode, INSERT_ORDERED_LIST_COMMAND, ListItemNode, ListNode } from '@lexical/list'\nimport { $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../../toolbars/types.js'\n\nimport { OrderedListIcon } from '../../../../lexical/ui/icons/OrderedList/index.js'\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../../shared/toolbar/textDropdownGroup.js'\nimport { LexicalListPlugin } from '../../plugin/index.js'\nimport { slashMenuListGroupWithItems } from '../../shared/slashMenuListGroup.js'\nimport { ORDERED_LIST } from '../markdownTransformer.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: OrderedListIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isListNode(node) && node.getListType() === 'number') {\n continue\n }\n\n const parent = node.getParent()\n\n if ($isListNode(parent) && parent.getListType() === 'number') {\n continue\n }\n\n const parentParent = parent?.getParent()\n // Example scenario: Node = textNode, parent = listItemNode, parentParent = listNode\n if ($isListNode(parentParent) && parentParent.getListType() === 'number') {\n continue\n }\n\n return false\n }\n return true\n },\n key: 'orderedList',\n label: ({ i18n }) => {\n return i18n.t('lexical:orderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined)\n },\n order: 10,\n },\n ]),\n]\n\nexport const OrderedListFeatureClient = createClientFeature(({ featureProviderMap }) => {\n return {\n markdownTransformers: [ORDERED_LIST],\n nodes: featureProviderMap.has('orderedList') ? [] : [ListNode, ListItemNode],\n plugins: featureProviderMap.has('orderedList')\n ? []\n : [\n {\n Component: LexicalListPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuListGroupWithItems([\n {\n Icon: OrderedListIcon,\n key: 'orderedList',\n keywords: ['ordered list', 'ol'],\n label: ({ i18n }) => {\n return i18n.t('lexical:orderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n }\n})\n", "'use client'\nimport React from 'react'\n\nexport const OrderedListIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.89284 12.479C5.89284 13.368 5.26284 13.788 4.38084 14.236C3.75084 14.558 3.43584 14.789 3.40784 15.062H5.89984V16H2.06384V15.573C2.06384 14.523 2.92484 13.935 3.66684 13.501C4.38084 13.088 4.75184 12.878 4.75184 12.458C4.75184 12.08 4.52084 11.835 4.06584 11.835C3.58984 11.835 3.30984 12.199 3.28184 12.654H2.11284C2.18984 11.681 2.87584 10.918 4.07284 10.918C5.15784 10.918 5.89284 11.555 5.89284 12.479Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M2.68608 4.535V3.737C3.54008 3.737 3.90408 3.513 4.02308 2.995H4.89108V8H3.68008L3.68008 4.535H2.68608Z\"\n fill=\"currentColor\"\n />\n <path d=\"M8 15L17 15\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 10L17 10\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 5L17 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "import type { ElementTransformer } from '@lexical/markdown'\n\nimport { $isListNode, ListItemNode, ListNode } from '@lexical/list'\n\nimport { listExport, listReplace } from '../shared/markdown.js'\n\nexport const ORDERED_LIST: ElementTransformer = {\n type: 'element',\n dependencies: [ListNode, ListItemNode],\n export: (node, exportChildren) => {\n return $isListNode(node) ? listExport(node, exportChildren, 0) : null\n },\n regExp: /^(\\s*)(\\d+)\\.\\s/,\n replace: listReplace('number'),\n}\n", "'use client'\n\nimport { $isListNode, INSERT_UNORDERED_LIST_COMMAND, ListItemNode, ListNode } from '@lexical/list'\nimport { $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../../toolbars/types.js'\n\nimport { UnorderedListIcon } from '../../../../lexical/ui/icons/UnorderedList/index.js'\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../../shared/toolbar/textDropdownGroup.js'\nimport { LexicalListPlugin } from '../../plugin/index.js'\nimport { slashMenuListGroupWithItems } from '../../shared/slashMenuListGroup.js'\nimport { UNORDERED_LIST } from '../markdownTransformer.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: UnorderedListIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isListNode(node) && node.getListType() === 'bullet') {\n continue\n }\n\n const parent = node.getParent()\n\n if ($isListNode(parent) && parent.getListType() === 'bullet') {\n continue\n }\n\n const parentParent = parent?.getParent()\n // Example scenario: Node = textNode, parent = listItemNode, parentParent = listNode\n if ($isListNode(parentParent) && parentParent.getListType() === 'bullet') {\n continue\n }\n\n return false\n }\n return true\n },\n key: 'unorderedList',\n label: ({ i18n }) => {\n return i18n.t('lexical:unorderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined)\n },\n order: 11,\n },\n ]),\n]\n\nexport const UnorderedListFeatureClient = createClientFeature({\n markdownTransformers: [UNORDERED_LIST],\n nodes: [ListNode, ListItemNode],\n plugins: [\n {\n Component: LexicalListPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuListGroupWithItems([\n {\n Icon: UnorderedListIcon,\n key: 'unorderedList',\n keywords: ['unordered list', 'ul'],\n label: ({ i18n }) => {\n return i18n.t('lexical:unorderedList:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined)\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const UnorderedListIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"4\" cy=\"5\" fill=\"currentColor\" r=\"1.15\" stroke=\"currentColor\" strokeWidth=\"0.3\" />\n <circle cx=\"4\" cy=\"10\" fill=\"currentColor\" r=\"1.15\" stroke=\"currentColor\" strokeWidth=\"0.3\" />\n <circle cx=\"4\" cy=\"15\" fill=\"currentColor\" r=\"1.15\" stroke=\"currentColor\" strokeWidth=\"0.3\" />\n <path d=\"M17 5H7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17 10H7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M17 15H7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n)\n", "import type { ElementTransformer } from '@lexical/markdown'\n\nimport { $isListNode, ListItemNode, ListNode } from '@lexical/list'\n\nimport { listExport, listReplace } from '../shared/markdown.js'\n\nexport const UNORDERED_LIST: ElementTransformer = {\n type: 'element',\n dependencies: [ListNode, ListItemNode],\n export: (node, exportChildren) => {\n return $isListNode(node) ? listExport(node, exportChildren, 0) : null\n },\n regExp: /^(\\s*)[-*+]\\s/,\n replace: listReplace('bullet'),\n}\n", "import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { DecoratorNode } from 'lexical'\nimport * as React from 'react'\n\nexport type UnknownConvertedNodeData = {\n nodeData: unknown\n nodeType: string\n}\n\nexport type SerializedUnknownConvertedNode = Spread<\n {\n data: UnknownConvertedNodeData\n },\n SerializedLexicalNode\n>\n\nconst Component = React.lazy(() =>\n import('./Component.js').then((module) => ({\n default: module.UnknownConvertedNodeComponent,\n })),\n)\n\n/** @noInheritDoc */\nexport class UnknownConvertedNode extends DecoratorNode<JSX.Element> {\n __data: UnknownConvertedNodeData\n\n constructor({ data, key }: { data: UnknownConvertedNodeData; key?: NodeKey }) {\n super(key)\n this.__data = data\n }\n\n static clone(node: UnknownConvertedNode): UnknownConvertedNode {\n return new UnknownConvertedNode({\n data: node.__data,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'unknownConverted'\n }\n\n static importJSON(serializedNode: SerializedUnknownConvertedNode): UnknownConvertedNode {\n const node = $createUnknownConvertedNode({ data: serializedNode.data })\n return node\n }\n\n canInsertTextAfter(): true {\n return true\n }\n\n canInsertTextBefore(): true {\n return true\n }\n\n createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, 'unknownConverted')\n return element\n }\n\n decorate(): JSX.Element | null {\n return <Component data={this.__data} />\n }\n\n exportJSON(): SerializedUnknownConvertedNode {\n return {\n type: this.getType(),\n data: this.__data,\n version: 1,\n }\n }\n\n // Mutation\n\n isInline(): boolean {\n return true\n }\n\n updateDOM(prevNode: UnknownConvertedNode, dom: HTMLElement): boolean {\n return false\n }\n}\n\nexport function $createUnknownConvertedNode({\n data,\n}: {\n data: UnknownConvertedNodeData\n}): UnknownConvertedNode {\n return new UnknownConvertedNode({\n data,\n })\n}\n\nexport function $isUnknownConvertedNode(\n node: LexicalNode | null | undefined,\n): node is UnknownConvertedNode {\n return node instanceof UnknownConvertedNode\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { UnknownConvertedNode } from './nodes/unknownConvertedNode/index.js'\n\nexport const LexicalPluginToLexicalFeatureClient = createClientFeature(() => {\n return {\n nodes: [UnknownConvertedNode],\n }\n})\n", "import type { EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { addClassNamesToElement } from '@lexical/utils'\nimport { DecoratorNode } from 'lexical'\nimport * as React from 'react'\n\nexport type UnknownConvertedNodeData = {\n nodeData: unknown\n nodeType: string\n}\n\nexport type SerializedUnknownConvertedNode = Spread<\n {\n data: UnknownConvertedNodeData\n },\n SerializedLexicalNode\n>\n\nconst Component = React.lazy(() =>\n import('./Component.js').then((module) => ({\n default: module.UnknownConvertedNodeComponent,\n })),\n)\n\n/** @noInheritDoc */\nexport class UnknownConvertedNode extends DecoratorNode<JSX.Element> {\n __data: UnknownConvertedNodeData\n\n constructor({ data, key }: { data: UnknownConvertedNodeData; key?: NodeKey }) {\n super(key)\n this.__data = data\n }\n\n static clone(node: UnknownConvertedNode): UnknownConvertedNode {\n return new UnknownConvertedNode({\n data: node.__data,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'unknownConverted'\n }\n\n static importJSON(serializedNode: SerializedUnknownConvertedNode): UnknownConvertedNode {\n const node = $createUnknownConvertedNode({ data: serializedNode.data })\n return node\n }\n\n canInsertTextAfter(): true {\n return true\n }\n\n canInsertTextBefore(): true {\n return true\n }\n\n createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement('span')\n addClassNamesToElement(element, 'unknownConverted')\n return element\n }\n\n decorate(): JSX.Element | null {\n return <Component data={this.__data} />\n }\n\n exportJSON(): SerializedUnknownConvertedNode {\n return {\n type: this.getType(),\n data: this.__data,\n version: 1,\n }\n }\n\n // Mutation\n\n isInline(): boolean {\n return true\n }\n\n updateDOM(prevNode: UnknownConvertedNode, dom: HTMLElement): boolean {\n return false\n }\n}\n\nexport function $createUnknownConvertedNode({\n data,\n}: {\n data: UnknownConvertedNodeData\n}): UnknownConvertedNode {\n return new UnknownConvertedNode({\n data,\n })\n}\n\nexport function $isUnknownConvertedNode(\n node: LexicalNode | null | undefined,\n): node is UnknownConvertedNode {\n return node instanceof UnknownConvertedNode\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { UnknownConvertedNode } from './nodes/unknownConvertedNode/index.js'\n\nexport const SlateToLexicalFeatureClient = createClientFeature(({ clientFunctions }) => {\n return {\n nodes: [UnknownConvertedNode],\n }\n})\n", "'use client'\n\nimport { $setBlocksType } from '@lexical/selection'\nimport { $createParagraphNode, $getSelection, $isParagraphNode, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\n\nimport { TextIcon } from '../../../lexical/ui/icons/Text/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../shared/toolbar/textDropdownGroup.js'\n\nconst toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems([\n {\n ChildComponent: TextIcon,\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if (!$isParagraphNode(node) && !$isParagraphNode(node.getParent())) {\n return false\n }\n }\n return true\n },\n key: 'paragraph',\n label: ({ i18n }) => {\n return i18n.t('lexical:paragraph:label2')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createParagraphNode())\n })\n },\n order: 1,\n },\n ]),\n]\n\nexport const ParagraphFeatureClient = createClientFeature({\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: TextIcon,\n key: 'paragraph',\n keywords: ['normal', 'paragraph', 'p', 'text'],\n label: ({ i18n }) => {\n return i18n.t('lexical:paragraph:label')\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createParagraphNode())\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: toolbarGroups,\n },\n toolbarInline: {\n groups: toolbarGroups,\n },\n})\n", "'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport type { RelationshipFeatureProps } from '../server/index.js'\n\nimport { RelationshipIcon } from '../../../lexical/ui/icons/Relationship/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from './drawer/commands.js'\nimport { $isRelationshipNode, RelationshipNode } from './nodes/RelationshipNode.js'\nimport { RelationshipPlugin } from './plugins/index.js'\n\nexport const RelationshipFeatureClient = createClientFeature<RelationshipFeatureProps>({\n nodes: [RelationshipNode],\n plugins: [\n {\n Component: RelationshipPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: RelationshipIcon,\n key: 'relationship',\n keywords: ['relationship', 'relation', 'rel'],\n label: ({ i18n }) => {\n return i18n.t('lexical:relationship:label')\n },\n onSelect: ({ editor }) => {\n // dispatch INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND\n editor.dispatchCommand(INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: RelationshipIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isRelationshipNode(firstNode)\n },\n key: 'relationship',\n label: ({ i18n }) => {\n return i18n.t('lexical:relationship:label')\n },\n onSelect: ({ editor }) => {\n // dispatch INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND\n editor.dispatchCommand(INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const RelationshipIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_4397_10817)\">\n <path\n d=\"M7.75 12.25L15.25 4.75M15.25 4.75H11.5M15.25 4.75V8.5M13 11.5V13.75C13 14.5784 12.3284 15.25 11.5 15.25H6.25C5.42157 15.25 4.75 14.5784 4.75 13.75V8.5C4.75 7.67157 5.42157 7 6.25 7H8.5\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4397_10817\">\n <rect fill=\"currentColor\" height=\"12\" transform=\"translate(4 4)\" width=\"12\" />\n </clipPath>\n </defs>\n </svg>\n)\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot } from '@lexical/utils'\nimport { useConfig } from '@payloadcms/ui'\nimport {\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n COMMAND_PRIORITY_EDITOR,\n createCommand,\n} from 'lexical'\nimport { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { RelationshipFeatureProps } from '../../server/index.js'\nimport type { RelationshipData } from '../../server/nodes/RelationshipNode.js'\n\nimport { RelationshipDrawer } from '../drawer/index.js'\nimport { $createRelationshipNode, RelationshipNode } from '../nodes/RelationshipNode.js'\n\nexport const INSERT_RELATIONSHIP_COMMAND: LexicalCommand<RelationshipData> = createCommand(\n 'INSERT_RELATIONSHIP_COMMAND',\n)\n\nexport const RelationshipPlugin: PluginComponent<RelationshipFeatureProps> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n const {\n config: { collections },\n } = useConfig()\n\n let enabledRelations: string[] = null\n\n if (clientProps?.enabledCollections) {\n enabledRelations = clientProps?.enabledCollections\n } else if (clientProps?.disabledCollections) {\n enabledRelations = collections\n .filter(({ slug }) => !clientProps?.disabledCollections?.includes(slug))\n .map(({ slug }) => slug)\n }\n\n useEffect(() => {\n if (!editor.hasNodes([RelationshipNode])) {\n throw new Error('RelationshipPlugin: RelationshipNode not registered on editor')\n }\n\n return editor.registerCommand<RelationshipData>(\n INSERT_RELATIONSHIP_COMMAND,\n (payload) => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const relationshipNode = $createRelationshipNode(payload)\n // Insert relationship node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(relationshipNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParent()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor])\n\n return <RelationshipDrawer enabledCollectionSlugs={enabledRelations} />\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useListDrawer } from '@payloadcms/ui'\nimport { $getNodeByKey, COMMAND_PRIORITY_EDITOR } from 'lexical'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { $createRelationshipNode } from '../nodes/RelationshipNode.js'\nimport { INSERT_RELATIONSHIP_COMMAND } from '../plugins/index.js'\nimport { EnabledRelationshipsCondition } from '../utils/EnabledRelationshipsCondition.js'\nimport { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from './commands.js'\n\nconst insertRelationship = ({\n editor,\n relationTo,\n replaceNodeKey,\n value,\n}: {\n editor: LexicalEditor\n relationTo: string\n replaceNodeKey: null | string\n value: number | string\n}) => {\n if (!replaceNodeKey) {\n editor.dispatchCommand(INSERT_RELATIONSHIP_COMMAND, {\n relationTo,\n value,\n })\n } else {\n editor.update(() => {\n const node = $getNodeByKey(replaceNodeKey)\n if (node) {\n node.replace($createRelationshipNode({ relationTo, value }))\n }\n })\n }\n}\n\ntype Props = {\n enabledCollectionSlugs: null | string[]\n}\n\nconst RelationshipDrawerComponent: React.FC<Props> = ({ enabledCollectionSlugs }) => {\n const [editor] = useLexicalComposerContext()\n const [selectedCollectionSlug, setSelectedCollectionSlug] = useState(\n () => enabledCollectionSlugs[0],\n )\n const [replaceNodeKey, setReplaceNodeKey] = useState<null | string>(null)\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer, isDrawerOpen, openDrawer }] = useListDrawer({\n collectionSlugs: enabledCollectionSlugs,\n selectedCollection: selectedCollectionSlug,\n })\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND,\n (payload) => {\n setReplaceNodeKey(payload?.replace ? payload?.replace.nodeKey : null)\n openDrawer()\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor, openDrawer])\n\n const onSelect = useCallback(\n ({ collectionSlug, docID }) => {\n insertRelationship({\n editor,\n relationTo: collectionSlug,\n replaceNodeKey,\n value: docID,\n })\n closeDrawer()\n },\n [editor, closeDrawer, replaceNodeKey],\n )\n\n useEffect(() => {\n // always reset back to first option\n // TODO: this is not working, see the ListDrawer component\n setSelectedCollectionSlug(enabledCollectionSlugs[0])\n }, [isDrawerOpen, enabledCollectionSlugs])\n\n return <ListDrawer onSelect={onSelect} />\n}\n\nexport const RelationshipDrawer = (props: Props): React.ReactNode => {\n return props?.enabledCollectionSlugs?.length > 0 ? ( // If enabledCollectionSlugs it overrides what EnabledRelationshipsCondition is doing\n <RelationshipDrawerComponent {...props} />\n ) : (\n <EnabledRelationshipsCondition {...props}>\n <RelationshipDrawerComponent {...props} />\n </EnabledRelationshipsCondition>\n )\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport './index.scss'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n {item?.ChildComponent && <item.ChildComponent />}\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { i18n } = useTranslation()\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n const [dropdownLabel, setDropdownLabel] = React.useState<null | string>(null)\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | null>(null)\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(null)\n }\n }, [group])\n\n const onActiveChange = ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n setDropdownLabel(null)\n } else {\n setDropdownIcon(null)\n setDropdownLabel(null)\n }\n return\n }\n const item = activeItems[0]\n\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function' ? item.label({ i18n, richTextComponentMap }) : item.label\n }\n // Crop title to max. 25 characters\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n setDropdownLabel(label)\n setDropdownIcon(() => item.ChildComponent)\n }\n\n return (\n <div className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`} key={group.key}>\n {group.type === 'dropdown' &&\n group.items.length &&\n (DropdownIcon ? (\n <ToolbarDropdown\n Icon={DropdownIcon}\n anchorElem={anchorElem}\n editor={editor}\n groupKey={group.key}\n items={group.items}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n groupKey={group.key}\n items={group.items}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={1}\n onActiveChange={onActiveChange}\n />\n ))}\n {group.type === 'buttons' &&\n group.items.length &&\n group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n\n const { y } = useScrollInfo()\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarRef.current.className = 'fixed-toolbar fixed-toolbar--overlapping'\n parentToolbarElem.className = 'fixed-toolbar fixed-toolbar--hide'\n } else {\n if (!currentToolbarRef.current.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarRef.current.className = 'fixed-toolbar'\n parentToolbarElem.className = 'fixed-toolbar'\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n >\n {editor.isEditable() && (\n <React.Fragment>\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponentWithAnchor<FixedToolbarFeatureProps> = ({\n anchorElem,\n clientProps,\n}) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { $getSelection } from 'lexical'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport './index.scss'\n\nconst baseClass = 'toolbar-popup__button'\n\nexport const ToolbarButton = ({\n children,\n editor,\n item,\n}: {\n children: React.JSX.Element\n editor: LexicalEditor\n item: ToolbarGroupItem\n}) => {\n const [enabled, setEnabled] = useState<boolean>(true)\n const [active, setActive] = useState<boolean>(false)\n const [className, setClassName] = useState<string>(baseClass)\n const editorConfigContext = useEditorConfigContext()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (item.isActive) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (active !== isActive) {\n setActive(isActive)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (enabled !== isEnabled) {\n setEnabled(isEnabled)\n }\n }\n })\n }, [active, editor, editorConfigContext, enabled, item])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n document.addEventListener('mouseup', updateStates)\n return () => {\n document.removeEventListener('mouseup', updateStates)\n }\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-` + item.key : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, item.key])\n\n return (\n <button\n className={className}\n onClick={() => {\n if (enabled !== false) {\n editor._updateTags = new Set([...editor._updateTags, 'toolbar']) // without setting the tags, our onSelect will not be able to trigger our onChange as focus onChanges are ignored.\n\n editor.focus(() => {\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect({\n editor,\n isActive: active,\n })\n })\n\n return true\n }\n }}\n onMouseDown={(e) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }}\n type=\"button\"\n >\n {children}\n </button>\n )\n}\n", "'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $getSelection } from 'lexical'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { DropDown, DropDownItem } from './DropDown.js'\nimport './index.scss'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation()\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component\n active={active}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabled}\n item={item}\n key={item.key}\n />\n )\n )\n }\n\n let title = item.key\n if (item.label) {\n title =\n typeof item.label === 'function' ? item.label({ i18n, richTextComponentMap }) : item.label\n }\n // Crop title to max. 25 characters\n if (title.length > 25) {\n title = title.substring(0, 25) + '...'\n }\n\n return (\n <DropDownItem active={active} editor={editor} enabled={enabled} item={item} key={item.key}>\n {item?.ChildComponent && <item.ChildComponent />}\n <span className=\"text\">{title}</span>\n </DropDownItem>\n )\n}\n\nexport const ToolbarDropdown = ({\n Icon,\n anchorElem,\n classNames,\n editor,\n groupKey,\n items,\n itemsContainerClassNames,\n label,\n maxActiveItems,\n onActiveChange,\n}: {\n Icon?: React.FC\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n groupKey: string\n items: ToolbarGroupItem[]\n itemsContainerClassNames?: string[]\n label?: string\n /**\n * Maximum number of active items allowed. This is a performance optimization to prevent\n * unnecessary item active checks when the maximum number of active items is reached.\n */\n maxActiveItems?: number\n onActiveChange?: ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => void\n}) => {\n const [activeItemKeys, setActiveItemKeys] = React.useState<string[]>([])\n const [enabledItemKeys, setEnabledItemKeys] = React.useState<string[]>([])\n const editorConfigContext = useEditorConfigContext()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n\n const _activeItemKeys: string[] = []\n const _activeItems: ToolbarGroupItem[] = []\n const _enabledItemKeys: string[] = []\n\n for (const item of items) {\n if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (isActive) {\n _activeItemKeys.push(item.key)\n _activeItems.push(item)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (isEnabled) {\n _enabledItemKeys.push(item.key)\n }\n } else {\n _enabledItemKeys.push(item.key)\n }\n }\n setActiveItemKeys(_activeItemKeys)\n setEnabledItemKeys(_enabledItemKeys)\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n document.addEventListener('mouseup', updateStates)\n return () => {\n document.removeEventListener('mouseup', updateStates)\n }\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n return (\n <DropDown\n Icon={Icon}\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {items.length &&\n items.map((item) => {\n return (\n <ToolbarItem\n active={activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n )\n })}\n </DropDown>\n )\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport React, { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { ToolbarGroupItem } from '../../types.js'\n\nconst baseClass = 'toolbar-popup__dropdown-item'\n\ninterface DropDownContextType {\n registerItem: (ref: React.RefObject<HTMLButtonElement | null>) => void\n}\n\nconst DropDownContext = React.createContext<DropDownContextType | null>(null)\n\nexport function DropDownItem({\n active,\n children,\n editor,\n enabled,\n item,\n title,\n}: {\n active?: boolean\n children: React.ReactNode\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n title?: string\n}): React.ReactNode {\n const [className, setClassName] = useState<string>(baseClass)\n\n useEffect(() => {\n setClassName(\n [\n baseClass,\n enabled === false ? 'disabled' : '',\n active ? 'active' : '',\n item?.key ? `${baseClass}-${item.key}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n )\n }, [enabled, active, className, item.key])\n\n const ref = useRef<HTMLButtonElement>(null)\n\n const dropDownContext = React.useContext(DropDownContext)\n\n if (dropDownContext === null) {\n throw new Error('DropDownItem must be used within a DropDown')\n }\n\n const { registerItem } = dropDownContext\n\n useEffect(() => {\n if (ref?.current != null) {\n registerItem(ref)\n }\n }, [ref, registerItem])\n\n return (\n <button\n className={className}\n onClick={() => {\n if (enabled !== false) {\n editor._updateTags = new Set([...editor._updateTags, 'toolbar']) // without setting the tags, our onSelect will not be able to trigger our onChange as focus onChanges are ignored.\n\n editor.focus(() => {\n // We need to wrap the onSelect in the callback, so the editor is properly focused before the onSelect is called.\n item.onSelect({\n editor,\n isActive: active,\n })\n })\n }\n }}\n onMouseDown={(e) => {\n // This is required for Firefox compatibility. Without it, the dropdown will disappear without the onClick being called.\n // This only happens in Firefox. Must be something about how Firefox handles focus events differently.\n e.preventDefault()\n }}\n ref={ref}\n title={title}\n type=\"button\"\n >\n {children}\n </button>\n )\n}\n\nfunction DropDownItems({\n children,\n dropDownRef,\n itemsContainerClassNames,\n onClose,\n}: {\n children: React.ReactNode\n dropDownRef: React.Ref<HTMLDivElement>\n itemsContainerClassNames?: string[]\n onClose: () => void\n}): React.ReactElement {\n const [items, setItems] = useState<Array<React.RefObject<HTMLButtonElement | null>>>()\n const [highlightedItem, setHighlightedItem] =\n useState<React.RefObject<HTMLButtonElement | null>>()\n\n const registerItem = useCallback(\n (itemRef: React.RefObject<HTMLButtonElement | null>) => {\n setItems((prev) => (prev != null ? [...prev, itemRef] : [itemRef]))\n },\n [setItems],\n )\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (items == null) return\n\n const { key } = event\n\n if (['ArrowDown', 'ArrowUp', 'Escape', 'Tab'].includes(key)) {\n event.preventDefault()\n }\n\n if (key === 'Escape' || key === 'Tab') {\n onClose()\n } else if (key === 'ArrowUp') {\n setHighlightedItem((prev) => {\n if (prev == null) return items[0]\n const index = items.indexOf(prev) - 1\n return items[index === -1 ? items.length - 1 : index]\n })\n } else if (key === 'ArrowDown') {\n setHighlightedItem((prev) => {\n if (prev == null) return items[0]\n return items[items.indexOf(prev) + 1]\n })\n }\n }\n\n const contextValue = useMemo(\n () => ({\n registerItem,\n }),\n [registerItem],\n )\n\n useEffect(() => {\n if (items != null && highlightedItem == null) {\n setHighlightedItem(items[0])\n }\n\n if (highlightedItem != null && highlightedItem?.current != null) {\n highlightedItem.current.focus()\n }\n }, [items, highlightedItem])\n\n return (\n <DropDownContext.Provider value={contextValue}>\n <div\n className={(itemsContainerClassNames ?? ['toolbar-popup__dropdown-items']).join(' ')}\n onKeyDown={handleKeyDown}\n ref={dropDownRef}\n >\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\nexport function DropDown({\n Icon,\n buttonAriaLabel,\n buttonClassName,\n children,\n disabled = false,\n itemsContainerClassNames,\n label,\n stopCloseOnClickSelf,\n}: {\n Icon?: React.FC\n buttonAriaLabel?: string\n buttonClassName: string\n children: ReactNode\n disabled?: boolean\n itemsContainerClassNames?: string[]\n label?: string\n stopCloseOnClickSelf?: boolean\n}): React.ReactNode {\n const dropDownRef = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const [showDropDown, setShowDropDown] = useState(false)\n\n const handleClose = (): void => {\n setShowDropDown(false)\n if (buttonRef?.current != null) {\n buttonRef.current.focus()\n }\n }\n\n useEffect(() => {\n const button = buttonRef.current\n const dropDown = dropDownRef.current\n\n if (showDropDown && button !== null && dropDown !== null) {\n const { left, top } = button.getBoundingClientRect()\n const scrollTopOffset = window.scrollY || document.documentElement.scrollTop\n dropDown.style.top = `${top + scrollTopOffset + button.offsetHeight + 5}px`\n dropDown.style.left = `${Math.min(left - 5, window.innerWidth - dropDown.offsetWidth - 20)}px`\n }\n }, [dropDownRef, buttonRef, showDropDown])\n\n useEffect(() => {\n const button = buttonRef.current\n\n if (button !== null && showDropDown) {\n const handle = (event: MouseEvent): void => {\n const { target } = event\n if (stopCloseOnClickSelf != null) {\n if (dropDownRef.current != null && dropDownRef.current.contains(target as Node)) {\n return\n }\n }\n if (!button.contains(target as Node)) {\n setShowDropDown(false)\n }\n }\n document.addEventListener('click', handle)\n\n return () => {\n document.removeEventListener('click', handle)\n }\n }\n }, [dropDownRef, buttonRef, showDropDown, stopCloseOnClickSelf])\n\n const portal = createPortal(\n <DropDownItems\n dropDownRef={dropDownRef}\n itemsContainerClassNames={itemsContainerClassNames}\n onClose={handleClose}\n >\n {children}\n </DropDownItems>,\n document.body,\n )\n\n return (\n <React.Fragment>\n <button\n aria-label={buttonAriaLabel}\n className={buttonClassName + (showDropDown ? ' active' : '')}\n disabled={disabled}\n onClick={(event) => {\n event.preventDefault()\n setShowDropDown(!showDropDown)\n }}\n onMouseDown={(e) => {\n // This fixes a bug where you are unable to click the button if you are in a NESTED editor (editor in blocks field in editor).\n // Thus only happens if you click on the SVG of the button. Clicking on the outside works. Related issue: https://github.com/payloadcms/payload/issues/4025\n // TODO: Find out why exactly it happens and why e.preventDefault() on the mouseDown fixes it. Write that down here, or potentially fix a root cause, if there is any.\n e.preventDefault()\n }}\n ref={buttonRef}\n type=\"button\"\n >\n {Icon && <Icon />}\n {label && <span className=\"toolbar-popup__dropdown-label\">{label}</span>}\n <i className=\"toolbar-popup__dropdown-caret\" />\n </button>\n\n {showDropDown && <React.Fragment>{portal}</React.Fragment>}\n </React.Fragment>\n )\n}\n", "'use client'\n\nimport type { FixedToolbarFeatureProps } from '../server/index.js'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { FixedToolbarPlugin } from './Toolbar/index.js'\n\nexport const FixedToolbarFeatureClient = createClientFeature<FixedToolbarFeatureProps>({\n plugins: [\n {\n Component: FixedToolbarPlugin,\n position: 'aboveContainer',\n },\n ],\n})\n", "'use client'\nimport type { LexicalEditor } 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 SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getDOMRangeRect } from '../../../../../lexical/utils/getDOMRangeRect.js'\nimport { setFloatingElemPosition } from '../../../../../lexical/utils/setFloatingElemPosition.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport './index.scss'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n {item?.ChildComponent && <item.ChildComponent />}\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { editorConfig } = useEditorConfigContext()\n\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | null>(null)\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(null)\n }\n }, [group])\n\n const onActiveChange = ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(null)\n }\n return\n }\n const item = activeItems[0]\n setDropdownIcon(() => item.ChildComponent)\n }\n\n return (\n <div\n className={`inline-toolbar-popup__group inline-toolbar-popup__group-${group.key}`}\n key={group.key}\n >\n {group.type === 'dropdown' &&\n group.items.length &&\n (DropdownIcon ? (\n <ToolbarDropdown\n Icon={DropdownIcon}\n anchorElem={anchorElem}\n editor={editor}\n groupKey={group.key}\n items={group.items}\n maxActiveItems={1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n groupKey={group.key}\n items={group.items}\n maxActiveItems={1}\n onActiveChange={onActiveChange}\n />\n ))}\n {group.type === 'buttons' &&\n group.items.length &&\n group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })}\n {index < editorConfig.features.toolbarInline?.groups.length - 1 && (\n <div className=\"divider\" />\n )}\n </div>\n )\n}\n\nfunction InlineToolbar({\n anchorElem,\n editor,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n}): React.ReactNode {\n const floatingToolbarRef = useRef<HTMLDivElement | null>(null)\n const caretRef = useRef<HTMLDivElement | null>(null)\n\n const { editorConfig } = useEditorConfigContext()\n\n const closeFloatingToolbar = useCallback(() => {\n if (floatingToolbarRef?.current) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n\n if (!isOpacityZero) {\n floatingToolbarRef.current.style.opacity = '0'\n }\n if (!isPointerEventsNone) {\n floatingToolbarRef.current.style.pointerEvents = 'none'\n }\n }\n }, [floatingToolbarRef])\n\n const mouseMoveListener = useCallback(\n (e: MouseEvent) => {\n if (floatingToolbarRef?.current && (e.buttons === 1 || e.buttons === 3)) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n if (!isOpacityZero || !isPointerEventsNone) {\n // Check if the mouse is not over the popup\n const x = e.clientX\n const y = e.clientY\n const elementUnderMouse = document.elementFromPoint(x, y)\n if (!floatingToolbarRef.current.contains(elementUnderMouse)) {\n // Mouse is not over the target element => not a normal click, but probably a drag\n closeFloatingToolbar()\n }\n }\n }\n },\n [closeFloatingToolbar],\n )\n\n const mouseUpListener = useCallback(() => {\n if (floatingToolbarRef?.current) {\n if (floatingToolbarRef.current.style.opacity !== '1') {\n floatingToolbarRef.current.style.opacity = '1'\n }\n if (floatingToolbarRef.current.style.pointerEvents !== 'auto') {\n floatingToolbarRef.current.style.pointerEvents = 'auto'\n }\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('mousemove', mouseMoveListener)\n document.addEventListener('mouseup', mouseUpListener)\n\n return () => {\n document.removeEventListener('mousemove', mouseMoveListener)\n document.removeEventListener('mouseup', mouseUpListener)\n }\n }, [floatingToolbarRef, mouseMoveListener, mouseUpListener])\n\n const $updateTextFormatFloatingToolbar = useCallback(() => {\n const selection = $getSelection()\n\n const nativeSelection = window.getSelection()\n\n if (floatingToolbarRef.current === null) {\n return\n }\n\n const possibleLinkEditor = anchorElem.querySelector(':scope > .link-editor')\n const isLinkEditorVisible =\n possibleLinkEditor !== null &&\n 'style' in possibleLinkEditor &&\n possibleLinkEditor?.style?.['opacity'] === '1'\n\n const rootElement = editor.getRootElement()\n if (\n selection !== null &&\n nativeSelection !== null &&\n !nativeSelection.isCollapsed &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n const rangeRect = getDOMRangeRect(nativeSelection, rootElement)\n\n // Position floating toolbar\n const offsetIfFlipped = setFloatingElemPosition({\n alwaysDisplayOnTop: isLinkEditorVisible,\n anchorElem,\n floatingElem: floatingToolbarRef.current,\n horizontalPosition: 'center',\n targetRect: rangeRect,\n })\n\n // Position caret\n if (caretRef.current) {\n setFloatingElemPosition({\n anchorElem: floatingToolbarRef.current,\n anchorFlippedOffset: offsetIfFlipped,\n floatingElem: caretRef.current,\n horizontalOffset: 5,\n horizontalPosition: 'center',\n specialHandlingForCaret: true,\n targetRect: rangeRect,\n verticalGap: 8,\n })\n }\n } else {\n closeFloatingToolbar()\n }\n }, [editor, closeFloatingToolbar, anchorElem])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = () => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }\n\n window.addEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [editor, $updateTextFormatFloatingToolbar, anchorElem])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n $updateTextFormatFloatingToolbar()\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateTextFormatFloatingToolbar])\n\n return (\n <div className=\"inline-toolbar-popup\" ref={floatingToolbarRef}>\n <div className=\"caret\" ref={caretRef} />\n {editor.isEditable() && (\n <React.Fragment>\n {editorConfig?.features &&\n editorConfig.features?.toolbarInline?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nfunction useInlineToolbar(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n): React.ReactElement | null {\n const [isText, setIsText] = useState(false)\n\n const updatePopup = useCallback(() => {\n editor.getEditorState().read(() => {\n // Should not to pop up the floating toolbar when using IME input\n if (editor.isComposing()) {\n return\n }\n const selection = $getSelection()\n const nativeSelection = window.getSelection()\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n (!$isRangeSelection(selection) ||\n rootElement === null ||\n !rootElement.contains(nativeSelection.anchorNode))\n ) {\n setIsText(false)\n return\n }\n\n if (!$isRangeSelection(selection)) {\n return\n }\n\n if (selection.getTextContent() !== '') {\n const nodes = selection.getNodes()\n let foundNodeWithText = false\n for (const node of nodes) {\n if ($isTextNode(node)) {\n setIsText(true)\n foundNodeWithText = true\n break\n }\n }\n if (!foundNodeWithText) {\n setIsText(false)\n }\n } else {\n setIsText(false)\n }\n\n const rawTextContent = selection.getTextContent().replace(/\\n/g, '')\n if (!selection.isCollapsed() && rawTextContent === '') {\n setIsText(false)\n return\n }\n })\n }, [editor])\n\n useEffect(() => {\n document.addEventListener('selectionchange', updatePopup)\n document.addEventListener('mouseup', updatePopup)\n return () => {\n document.removeEventListener('selectionchange', updatePopup)\n document.removeEventListener('mouseup', updatePopup)\n }\n }, [updatePopup])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updatePopup()\n }),\n editor.registerRootListener(() => {\n if (editor.getRootElement() === null) {\n setIsText(false)\n }\n }),\n )\n }, [editor, updatePopup])\n\n if (!isText) {\n return null\n }\n\n return createPortal(<InlineToolbar anchorElem={anchorElem} editor={editor} />, anchorElem)\n}\n\nexport const InlineToolbarPlugin: PluginComponentWithAnchor<undefined> = ({ anchorElem }) => {\n const [editor] = useLexicalComposerContext()\n\n return useInlineToolbar(editor, anchorElem)\n}\n", "'use client'\nexport function getDOMRangeRect(nativeSelection: Selection, rootElement: HTMLElement): DOMRect {\n const domRange = nativeSelection.getRangeAt(0)\n\n let rect\n\n if (nativeSelection.anchorNode === rootElement) {\n let inner = rootElement\n while (inner.firstElementChild != null) {\n inner = inner.firstElementChild as HTMLElement\n }\n rect = inner.getBoundingClientRect()\n } else {\n rect = domRange.getBoundingClientRect()\n }\n\n return rect\n}\n", "'use client'\nconst VERTICAL_GAP = 10\nconst HORIZONTAL_OFFSET = 32\n\n// TODO: needs refactoring\n// This is supposed to position the floatingElem based on the parent (anchorElem) and the target (targetRect) which is usually the selected text.\n// So basically, it positions the floatingElem either below or above the target (targetRect) and aligns it to the left or center of the target (targetRect).\n// This is used for positioning the floating toolbar (anchor: richtext editor) and its caret (anchor: floating toolbar)\nexport function setFloatingElemPosition(args: {\n alwaysDisplayOnTop?: boolean\n anchorElem: HTMLElement\n anchorFlippedOffset?: number // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem: HTMLElement\n horizontalOffset?: number\n horizontalPosition?: 'center' | 'left'\n specialHandlingForCaret?: boolean\n targetRect: ClientRect | null\n verticalGap?: number\n}): number {\n const {\n alwaysDisplayOnTop = false,\n anchorElem,\n anchorFlippedOffset = 0, // Offset which was added to the anchor (for caret, floating toolbar) if it was flipped\n floatingElem,\n horizontalOffset = HORIZONTAL_OFFSET,\n horizontalPosition = 'left',\n specialHandlingForCaret = false,\n targetRect,\n verticalGap = VERTICAL_GAP,\n } = args\n // Returns the top offset if the target was flipped\n const scrollerElem = anchorElem.parentElement\n\n if (targetRect === null || scrollerElem == null) {\n floatingElem.style.opacity = '0'\n floatingElem.style.transform = 'translate(-10000px, -10000px)'\n return\n }\n\n const floatingElemRect = floatingElem.getBoundingClientRect()\n const anchorElementRect = anchorElem.getBoundingClientRect()\n const editorScrollerRect = scrollerElem.getBoundingClientRect()\n\n let top = targetRect.top - floatingElemRect.height - verticalGap\n let left = targetRect.left - horizontalOffset\n\n if (horizontalPosition === 'center') {\n // Calculate left to position floatingElem to the horizontal middle of targetRect\n left = targetRect.left + targetRect.width / 2 - floatingElemRect.width / 2\n }\n\n let addedToTop = 0\n if (!alwaysDisplayOnTop && top < editorScrollerRect.top && !specialHandlingForCaret) {\n addedToTop = floatingElemRect.height + targetRect.height + verticalGap * 2\n\n top += addedToTop\n }\n\n if (horizontalPosition === 'center') {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n } else if (left < editorScrollerRect.left) {\n left = editorScrollerRect.left + horizontalOffset\n }\n } else {\n if (left + floatingElemRect.width > editorScrollerRect.right) {\n left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset\n }\n }\n\n left -= anchorElementRect.left\n\n floatingElem.style.opacity = '1'\n\n if (specialHandlingForCaret && anchorFlippedOffset !== 0) {\n // Floating select toolbar was flipped (positioned below text rather than above). Thus, the caret now needs to be positioned\n // on the other side and rotated.\n top -= anchorElementRect.bottom - anchorFlippedOffset + floatingElemRect.height - 3\n // top += anchorFlippedOffset - anchorElementRect.height - floatingElemRect.height + 2\n floatingElem.style.transform = `translate(${left}px, ${top}px) rotate(180deg)`\n } else {\n top -= anchorElementRect.top\n\n floatingElem.style.transform = `translate(${left}px, ${top}px)`\n }\n\n return addedToTop\n}\n", "'use client'\n\nimport { createClientFeature } from '../../../../utilities/createClientFeature.js'\nimport { InlineToolbarPlugin } from './Toolbar/index.js'\n\nexport const InlineToolbarFeatureClient = createClientFeature({\n plugins: [\n {\n Component: InlineToolbarPlugin,\n position: 'floatingAnchorElem',\n },\n ],\n})\n", "'use client'\n\nimport { TableCellNode, TableNode, TableRowNode } from '@lexical/table'\n\nimport { TableIcon } from '../../../lexical/ui/icons/Table/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { TableActionMenuPlugin } from './plugins/TableActionMenuPlugin/index.js'\nimport { TableCellResizerPlugin } from './plugins/TableCellResizerPlugin/index.js'\nimport { TableHoverActionsPlugin } from './plugins/TableHoverActionsPlugin/index.js'\nimport {\n OPEN_TABLE_DRAWER_COMMAND,\n TableContext,\n TablePlugin,\n} from './plugins/TablePlugin/index.js'\n\nexport const TableFeatureClient = createClientFeature({\n nodes: [TableNode, TableCellNode, TableRowNode],\n plugins: [\n {\n Component: TablePlugin,\n position: 'normal',\n },\n {\n Component: TableCellResizerPlugin,\n position: 'normal',\n },\n {\n Component: TableActionMenuPlugin,\n position: 'floatingAnchorElem',\n },\n {\n Component: TableHoverActionsPlugin,\n position: 'floatingAnchorElem',\n },\n ],\n providers: [TableContext],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: TableIcon,\n key: 'table',\n keywords: ['table'],\n label: 'Table',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_TABLE_DRAWER_COMMAND, {})\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: TableIcon,\n key: 'table',\n label: 'Table',\n onSelect: ({ editor }) => {\n editor.dispatchCommand(OPEN_TABLE_DRAWER_COMMAND, {})\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const TableIcon: React.FC = () => {\n return (\n <svg\n className=\"icon\"\n fill=\"none\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.33333 4.5C4.8731 4.5 4.5 4.8731 4.5 5.33333V7.5H9.5V4.5H5.33333ZM5.33333 3.5C4.32081 3.5 3.5 4.32081 3.5 5.33333V14.6667C3.5 15.6792 4.32081 16.5 5.33333 16.5H14.6667C15.6792 16.5 16.5 15.6792 16.5 14.6667V5.33333C16.5 4.32081 15.6792 3.5 14.6667 3.5H5.33333ZM10.5 4.5V7.5H15.5V5.33333C15.5 4.8731 15.1269 4.5 14.6667 4.5H10.5ZM15.5 8.5H10.5V11.5H15.5V8.5ZM15.5 12.5H10.5V15.5H14.6667C15.1269 15.5 15.5 15.1269 15.5 14.6667V12.5ZM9.5 15.5V12.5H4.5V14.6667C4.5 15.1269 4.8731 15.5 5.33333 15.5H9.5ZM4.5 11.5H9.5V8.5H4.5V11.5Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n )\n}\n", "'use client'\n\nimport type {\n HTMLTableElementWithWithTableSelectionState,\n TableRowNode,\n TableSelection,\n} from '@lexical/table'\nimport type { ElementNode } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $deleteTableColumn__EXPERIMENTAL,\n $deleteTableRow__EXPERIMENTAL,\n $getNodeTriplet,\n $getTableCellNodeFromLexicalNode,\n $getTableColumnIndexFromTableCellNode,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumn__EXPERIMENTAL,\n $insertTableRow__EXPERIMENTAL,\n $isTableCellNode,\n $isTableRowNode,\n $isTableSelection,\n $unmergeCell,\n TableCellHeaderStates,\n TableCellNode,\n getTableObserverFromTableElement,\n} from '@lexical/table'\nimport { useScrollInfo } from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getRoot,\n $getSelection,\n $isElementNode,\n $isParagraphNode,\n $isRangeSelection,\n $isTextNode,\n} from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\n\nimport { MeatballsIcon } from '../../../../../lexical/ui/icons/Meatballs/index.js'\nimport './index.scss'\n\nfunction computeSelectionCount(selection: TableSelection): {\n columns: number\n rows: number\n} {\n const selectionShape = selection.getShape()\n return {\n columns: selectionShape.toX - selectionShape.fromX + 1,\n rows: selectionShape.toY - selectionShape.fromY + 1,\n }\n}\n\n// This is important when merging cells as there is no good way to re-merge weird shapes (a result\n// of selecting merged cells and non-merged)\nfunction isTableSelectionRectangular(selection: TableSelection): boolean {\n const nodes = selection.getNodes()\n const currentRows: Array<number> = []\n let currentRow = null\n let expectedColumns = null\n let currentColumns = 0\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i]\n if ($isTableCellNode(node)) {\n const row = node.getParentOrThrow()\n if ($isTableRowNode(row)) {\n throw new Error('Expected CellNode to have a RowNode parent')\n }\n if (currentRow !== row) {\n if (expectedColumns !== null && currentColumns !== expectedColumns) {\n return false\n }\n if (currentRow !== null) {\n expectedColumns = currentColumns\n }\n currentRow = row\n currentColumns = 0\n }\n const colSpan = node.__colSpan\n for (let j = 0; j < colSpan; j++) {\n if (currentRows[currentColumns + j] === undefined) {\n currentRows[currentColumns + j] = 0\n }\n currentRows[currentColumns + j] += node.__rowSpan\n }\n currentColumns += colSpan\n }\n }\n return (\n (expectedColumns === null || currentColumns === expectedColumns) &&\n currentRows.every((v) => v === currentRows[0])\n )\n}\n\nfunction $canUnmerge(): boolean {\n const selection = $getSelection()\n if (\n ($isRangeSelection(selection) && !selection.isCollapsed()) ||\n ($isTableSelection(selection) && !selection.anchor.is(selection.focus)) ||\n (!$isRangeSelection(selection) && !$isTableSelection(selection))\n ) {\n return false\n }\n const [cell] = $getNodeTriplet(selection.anchor)\n return cell.__colSpan > 1 || cell.__rowSpan > 1\n}\n\nfunction $cellContainsEmptyParagraph(cell: TableCellNode): boolean {\n if (cell.getChildrenSize() !== 1) {\n return false\n }\n const firstChild = cell.getFirstChildOrThrow()\n if (!$isParagraphNode(firstChild) || !firstChild.isEmpty()) {\n return false\n }\n return true\n}\n\nfunction $selectLastDescendant(node: ElementNode): void {\n const lastDescendant = node.getLastDescendant()\n if ($isTextNode(lastDescendant)) {\n lastDescendant.select()\n } else if ($isElementNode(lastDescendant)) {\n lastDescendant.selectEnd()\n } else if (lastDescendant !== null) {\n lastDescendant.selectNext()\n }\n}\n\ntype TableCellActionMenuProps = Readonly<{\n cellMerge: boolean\n contextRef: { current: HTMLElement | null }\n onClose: () => void\n setIsMenuOpen: (isOpen: boolean) => void\n tableCellNode: TableCellNode\n}>\n\nfunction TableActionMenu({\n cellMerge,\n contextRef,\n onClose,\n setIsMenuOpen,\n tableCellNode: _tableCellNode,\n}: TableCellActionMenuProps) {\n const [editor] = useLexicalComposerContext()\n const dropDownRef = useRef<HTMLDivElement | null>(null)\n const [tableCellNode, updateTableCellNode] = useState(_tableCellNode)\n const [selectionCounts, updateSelectionCounts] = useState({\n columns: 1,\n rows: 1,\n })\n const [canMergeCells, setCanMergeCells] = useState(false)\n const [canUnmergeCell, setCanUnmergeCell] = useState(false)\n const { y } = useScrollInfo()\n\n useEffect(() => {\n return editor.registerMutationListener(\n TableCellNode,\n (nodeMutations) => {\n const nodeUpdated = nodeMutations.get(tableCellNode.getKey()) === 'updated'\n\n if (nodeUpdated) {\n editor.getEditorState().read(() => {\n updateTableCellNode(tableCellNode.getLatest())\n })\n }\n },\n { skipInitialization: true },\n )\n }, [editor, tableCellNode])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n // Merge cells\n if ($isTableSelection(selection)) {\n const currentSelectionCounts = computeSelectionCount(selection)\n updateSelectionCounts(computeSelectionCount(selection))\n setCanMergeCells(\n isTableSelectionRectangular(selection) &&\n (currentSelectionCounts.columns > 1 || currentSelectionCounts.rows > 1),\n )\n }\n // Unmerge cell\n setCanUnmergeCell($canUnmerge())\n })\n }, [editor])\n\n useEffect(() => {\n const menuButtonElement = contextRef.current\n const dropDownElement = dropDownRef.current\n const rootElement = editor.getRootElement()\n\n if (menuButtonElement != null && dropDownElement != null && rootElement != null) {\n const rootEleRect = rootElement.getBoundingClientRect()\n const menuButtonRect = menuButtonElement.getBoundingClientRect()\n dropDownElement.style.opacity = '1'\n const dropDownElementRect = dropDownElement.getBoundingClientRect()\n const margin = 5\n let leftPosition = menuButtonRect.right + margin\n if (\n leftPosition + dropDownElementRect.width > window.innerWidth ||\n leftPosition + dropDownElementRect.width > rootEleRect.right\n ) {\n const position = menuButtonRect.left - dropDownElementRect.width - margin\n leftPosition = (position < 0 ? margin : position) + window.pageXOffset\n }\n dropDownElement.style.left = `${leftPosition + window.pageXOffset}px`\n\n let topPosition = menuButtonRect.top\n if (topPosition + dropDownElementRect.height > window.innerHeight) {\n const position = menuButtonRect.bottom - dropDownElementRect.height\n topPosition = (position < 0 ? margin : position) + window.pageYOffset\n }\n dropDownElement.style.top = `${topPosition}px`\n }\n }, [contextRef, dropDownRef, editor, y])\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n dropDownRef.current != null &&\n contextRef.current != null &&\n !dropDownRef.current.contains(event.target as Node) &&\n !contextRef.current.contains(event.target as Node)\n ) {\n setIsMenuOpen(false)\n }\n }\n\n window.addEventListener('click', handleClickOutside)\n\n return () => window.removeEventListener('click', handleClickOutside)\n }, [setIsMenuOpen, contextRef])\n\n const clearTableSelection = useCallback(() => {\n editor.update(() => {\n if (tableCellNode.isAttached()) {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = editor.getElementByKey(\n tableNode.getKey(),\n ) as HTMLTableElementWithWithTableSelectionState\n\n if (!tableElement) {\n throw new Error('Expected to find tableElement in DOM')\n }\n\n const tableSelection = getTableObserverFromTableElement(tableElement)\n if (tableSelection !== null) {\n tableSelection.clearHighlight()\n }\n\n tableNode.markDirty()\n updateTableCellNode(tableCellNode.getLatest())\n }\n\n const rootNode = $getRoot()\n rootNode.selectStart()\n })\n }, [editor, tableCellNode])\n\n const mergeTableCellsAtSelection = () => {\n editor.update(() => {\n const selection = $getSelection()\n if ($isTableSelection(selection)) {\n const { columns, rows } = computeSelectionCount(selection)\n const nodes = selection.getNodes()\n let firstCell: TableCellNode | null = null\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i]\n if ($isTableCellNode(node)) {\n if (firstCell === null) {\n node.setColSpan(columns).setRowSpan(rows)\n firstCell = node\n const isEmpty = $cellContainsEmptyParagraph(node)\n let firstChild\n if (isEmpty && $isParagraphNode((firstChild = node.getFirstChild()))) {\n firstChild.remove()\n }\n } else if ($isTableCellNode(firstCell)) {\n const isEmpty = $cellContainsEmptyParagraph(node)\n if (!isEmpty) {\n firstCell.append(...node.getChildren())\n }\n node.remove()\n }\n }\n }\n if (firstCell !== null) {\n if (firstCell.getChildrenSize() === 0) {\n firstCell.append($createParagraphNode())\n }\n $selectLastDescendant(firstCell)\n }\n onClose()\n }\n })\n }\n\n const unmergeTableCellsAtSelection = () => {\n editor.update(() => {\n $unmergeCell()\n })\n }\n\n const insertTableRowAtSelection = useCallback(\n (shouldInsertAfter: boolean) => {\n editor.update(() => {\n $insertTableRow__EXPERIMENTAL(shouldInsertAfter)\n onClose()\n })\n },\n [editor, onClose],\n )\n\n const insertTableColumnAtSelection = useCallback(\n (shouldInsertAfter: boolean) => {\n editor.update(() => {\n for (let i = 0; i < selectionCounts.columns; i++) {\n $insertTableColumn__EXPERIMENTAL(shouldInsertAfter)\n }\n onClose()\n })\n },\n [editor, onClose, selectionCounts.columns],\n )\n\n const deleteTableRowAtSelection = useCallback(() => {\n editor.update(() => {\n $deleteTableRow__EXPERIMENTAL()\n onClose()\n })\n }, [editor, onClose])\n\n const deleteTableAtSelection = useCallback(() => {\n editor.update(() => {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n tableNode.remove()\n\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n const deleteTableColumnAtSelection = useCallback(() => {\n editor.update(() => {\n $deleteTableColumn__EXPERIMENTAL()\n onClose()\n })\n }, [editor, onClose])\n\n const toggleTableRowIsHeader = useCallback(() => {\n editor.update(() => {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n\n const tableRows = tableNode.getChildren()\n\n if (tableRowIndex >= tableRows.length || tableRowIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n const tableRow = tableRows[tableRowIndex]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n tableRow.getChildren().forEach((tableCell) => {\n if (!$isTableCellNode(tableCell)) {\n throw new Error('Expected table cell')\n }\n\n tableCell.toggleHeaderStyle(TableCellHeaderStates.ROW)\n })\n\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n const toggleTableColumnIsHeader = useCallback(() => {\n editor.update(() => {\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableColumnIndex = $getTableColumnIndexFromTableCellNode(tableCellNode)\n\n const tableRows = tableNode.getChildren<TableRowNode>()\n const maxRowsLength = Math.max(...tableRows.map((row) => row.getChildren().length))\n\n if (tableColumnIndex >= maxRowsLength || tableColumnIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n for (let r = 0; r < tableRows.length; r++) {\n const tableRow = tableRows[r]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n const tableCells = tableRow.getChildren()\n if (tableColumnIndex >= tableCells.length) {\n // if cell is outside of bounds for the current row (for example various merge cell cases) we shouldn't highlight it\n continue\n }\n\n const tableCell = tableCells[tableColumnIndex]\n\n if (!$isTableCellNode(tableCell)) {\n throw new Error('Expected table cell')\n }\n\n tableCell.toggleHeaderStyle(TableCellHeaderStates.COLUMN)\n }\n\n clearTableSelection()\n onClose()\n })\n }, [editor, tableCellNode, clearTableSelection, onClose])\n\n let mergeCellButton: JSX.Element | null = null\n if (cellMerge) {\n if (canMergeCells) {\n mergeCellButton = (\n <button\n className=\"item\"\n data-test-id=\"table-merge-cells\"\n onClick={() => mergeTableCellsAtSelection()}\n type=\"button\"\n >\n Merge cells\n </button>\n )\n } else if (canUnmergeCell) {\n mergeCellButton = (\n <button\n className=\"item\"\n data-test-id=\"table-unmerge-cells\"\n onClick={() => unmergeTableCellsAtSelection()}\n type=\"button\"\n >\n Unmerge cells\n </button>\n )\n }\n }\n\n return createPortal(\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events\n <div\n className=\"table-action-menu-dropdown\"\n onClick={(e) => {\n e.stopPropagation()\n }}\n ref={dropDownRef}\n >\n {mergeCellButton ? (\n <React.Fragment>\n {mergeCellButton}\n <hr />\n </React.Fragment>\n ) : null}\n\n <button\n className=\"item\"\n data-test-id=\"table-insert-row-above\"\n onClick={() => insertTableRowAtSelection(false)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.rows === 1 ? 'row' : `${selectionCounts.rows} rows`} above\n </span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-insert-row-below\"\n onClick={() => insertTableRowAtSelection(true)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.rows === 1 ? 'row' : `${selectionCounts.rows} rows`} below\n </span>\n </button>\n <hr />\n <button\n className=\"item\"\n data-test-id=\"table-insert-column-before\"\n onClick={() => insertTableColumnAtSelection(false)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.columns === 1 ? 'column' : `${selectionCounts.columns} columns`}{' '}\n left\n </span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-insert-column-after\"\n onClick={() => insertTableColumnAtSelection(true)}\n type=\"button\"\n >\n <span className=\"text\">\n Insert {selectionCounts.columns === 1 ? 'column' : `${selectionCounts.columns} columns`}{' '}\n right\n </span>\n </button>\n <hr />\n <button\n className=\"item\"\n data-test-id=\"table-delete-columns\"\n onClick={() => deleteTableColumnAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Delete column</span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-delete-rows\"\n onClick={() => deleteTableRowAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Delete row</span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-delete\"\n onClick={() => deleteTableAtSelection()}\n type=\"button\"\n >\n <span className=\"text\">Delete table</span>\n </button>\n <hr />\n <button className=\"item\" onClick={() => toggleTableRowIsHeader()} type=\"button\">\n <span className=\"text\">\n {(tableCellNode.__headerState & TableCellHeaderStates.ROW) === TableCellHeaderStates.ROW\n ? 'Remove'\n : 'Add'}{' '}\n row header\n </span>\n </button>\n <button\n className=\"item\"\n data-test-id=\"table-column-header\"\n onClick={() => toggleTableColumnIsHeader()}\n type=\"button\"\n >\n <span className=\"text\">\n {(tableCellNode.__headerState & TableCellHeaderStates.COLUMN) ===\n TableCellHeaderStates.COLUMN\n ? 'Remove'\n : 'Add'}{' '}\n column header\n </span>\n </button>\n </div>,\n document.body,\n )\n}\n\nfunction TableCellActionMenuContainer({\n anchorElem,\n cellMerge,\n}: {\n anchorElem: HTMLElement\n cellMerge: boolean\n}): JSX.Element {\n const [editor] = useLexicalComposerContext()\n\n const menuButtonRef = useRef(null)\n const menuRootRef = useRef(null)\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n\n const [tableCellNode, setTableMenuCellNode] = useState<TableCellNode | null>(null)\n\n const $moveMenu = useCallback(() => {\n const menu = menuButtonRef.current\n const selection = $getSelection()\n const nativeSelection = window.getSelection()\n const activeElement = document.activeElement\n\n if (selection == null || menu == null) {\n setTableMenuCellNode(null)\n return\n }\n\n const rootElement = editor.getRootElement()\n\n if (\n $isRangeSelection(selection) &&\n rootElement !== null &&\n nativeSelection !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n const tableCellNodeFromSelection = $getTableCellNodeFromLexicalNode(\n selection.anchor.getNode(),\n )\n\n if (tableCellNodeFromSelection == null) {\n setTableMenuCellNode(null)\n return\n }\n\n const tableCellParentNodeDOM = editor.getElementByKey(tableCellNodeFromSelection.getKey())\n\n if (tableCellParentNodeDOM == null) {\n setTableMenuCellNode(null)\n return\n }\n\n setTableMenuCellNode(tableCellNodeFromSelection)\n } else if (!activeElement) {\n setTableMenuCellNode(null)\n }\n }, [editor])\n\n useEffect(() => {\n return editor.registerUpdateListener(() => {\n editor.getEditorState().read(() => {\n $moveMenu()\n })\n })\n })\n\n useEffect(() => {\n const menuButtonDOM = menuButtonRef.current as HTMLButtonElement | null\n\n if (menuButtonDOM != null && tableCellNode != null) {\n const tableCellNodeDOM = editor.getElementByKey(tableCellNode.getKey())\n\n if (tableCellNodeDOM != null) {\n const tableCellRect = tableCellNodeDOM.getBoundingClientRect()\n const menuRect = menuButtonDOM.getBoundingClientRect()\n const anchorRect = anchorElem.getBoundingClientRect()\n\n const top = tableCellRect.top - anchorRect.top + 4\n const left = tableCellRect.right - menuRect.width - 10 - anchorRect.left\n\n menuButtonDOM.style.opacity = '1'\n menuButtonDOM.style.transform = `translate(${left}px, ${top}px)`\n } else {\n menuButtonDOM.style.opacity = '0'\n menuButtonDOM.style.transform = 'translate(-10000px, -10000px)'\n }\n }\n }, [menuButtonRef, tableCellNode, editor, anchorElem])\n\n const prevTableCellDOM = useRef(tableCellNode)\n\n useEffect(() => {\n if (prevTableCellDOM.current !== tableCellNode) {\n setIsMenuOpen(false)\n }\n\n prevTableCellDOM.current = tableCellNode\n }, [prevTableCellDOM, tableCellNode])\n\n return (\n <div className=\"table-cell-action-button-container\" ref={menuButtonRef}>\n {tableCellNode != null && (\n <React.Fragment>\n <button\n className=\"table-cell-action-button\"\n onClick={(e) => {\n e.stopPropagation()\n setIsMenuOpen(!isMenuOpen)\n }}\n ref={menuRootRef}\n type=\"button\"\n >\n <MeatballsIcon />\n </button>\n {isMenuOpen && (\n <TableActionMenu\n cellMerge={cellMerge}\n contextRef={menuRootRef}\n onClose={() => setIsMenuOpen(false)}\n setIsMenuOpen={setIsMenuOpen}\n tableCellNode={tableCellNode}\n />\n )}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableActionMenuPlugin: PluginComponentWithAnchor = ({ anchorElem }) => {\n const isEditable = useLexicalEditable()\n return createPortal(\n isEditable ? (\n <TableCellActionMenuContainer anchorElem={anchorElem ?? document.body} cellMerge />\n ) : null,\n anchorElem ?? document.body,\n )\n}\n", "'use client'\nimport React from 'react'\n\nexport const MeatballsIcon: React.FC = () => (\n <svg fill=\"none\" height=\"18\" viewBox=\"0 0 20 20\" width=\"18\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5 11C5.55228 11 6 10.5523 6 10C6 9.44772 5.55228 9 5 9C4.44772 9 4 9.44772 4 10C4 10.5523 4.44772 11 5 11Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M15 11C15.5523 11 16 10.5523 16 10C16 9.44772 15.5523 9 15 9C14.4477 9 14 9.44772 14 10C14 10.5523 14.4477 11 15 11Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n", "'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType, TableMapValueType } from '@lexical/table'\nimport type { LexicalEditor } from 'lexical'\nimport type { JSX, MouseEventHandler } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $computeTableMapSkipCellCheck,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $isTableCellNode,\n $isTableRowNode,\n getDOMCellFromTarget,\n} from '@lexical/table'\nimport { calculateZoomLevel } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\n\ntype MousePosition = {\n x: number\n y: number\n}\n\ntype MouseDraggingDirection = 'bottom' | 'right'\n\nconst MIN_ROW_HEIGHT = 33\nconst MIN_COLUMN_WIDTH = 50\n\nfunction TableCellResizer({ editor }: { editor: LexicalEditor }): JSX.Element {\n const targetRef = useRef<HTMLElement | null>(null)\n const resizerRef = useRef<HTMLDivElement | null>(null)\n const tableRectRef = useRef<ClientRect | null>(null)\n const editorConfig = useEditorConfigContext()\n\n const mouseStartPosRef = useRef<MousePosition | null>(null)\n const [mouseCurrentPos, updateMouseCurrentPos] = useState<MousePosition | null>(null)\n\n const [activeCell, updateActiveCell] = useState<TableDOMCell | null>(null)\n const [isMouseDown, updateIsMouseDown] = useState<boolean>(false)\n const [draggingDirection, updateDraggingDirection] = useState<MouseDraggingDirection | null>(null)\n\n const resetState = useCallback(() => {\n updateActiveCell(null)\n targetRef.current = null\n updateDraggingDirection(null)\n mouseStartPosRef.current = null\n tableRectRef.current = null\n }, [])\n\n const isMouseDownOnEvent = (event: MouseEvent) => {\n return (event.buttons & 1) === 1\n }\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n setTimeout(() => {\n const target = event.target\n\n if (draggingDirection) {\n updateMouseCurrentPos({\n x: event.clientX,\n y: event.clientY,\n })\n return\n }\n updateIsMouseDown(isMouseDownOnEvent(event))\n if (resizerRef.current && resizerRef.current.contains(target as Node)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target as HTMLElement\n const cell = getDOMCellFromTarget(target as HTMLElement)\n\n if (cell && activeCell !== cell) {\n editor.update(() => {\n const tableCellNode = $getNearestNodeFromDOMNode(cell.elem)\n\n if (!tableCellNode) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = editor.getElementByKey(tableNode.getKey())\n\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target as HTMLElement\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n })\n } else if (cell == null) {\n resetState()\n }\n }\n }, 0)\n }\n\n const onMouseDown = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(true)\n }, 0)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(false)\n }, 0)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, resetState])\n\n const isHeightChanging = (direction: MouseDraggingDirection) => {\n if (direction === 'bottom') {\n return true\n }\n return false\n }\n\n const updateRowHeight = useCallback(\n (heightChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableRowIndex = $getTableRowIndexFromTableCellNode(tableCellNode)\n\n const tableRows = tableNode.getChildren()\n\n if (tableRowIndex >= tableRows.length || tableRowIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n const tableRow = tableRows[tableRowIndex]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n let height = tableRow.getHeight()\n if (height === undefined) {\n const rowCells = tableRow.getChildren<TableCellNode>()\n height = Math.min(\n ...rowCells.map((cell) => getCellNodeHeight(cell, editor) ?? Infinity),\n )\n }\n\n const newHeight = Math.max(height + heightChange, MIN_ROW_HEIGHT)\n tableRow.setHeight(newHeight)\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const getCellNodeWidth = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const width = cell.getWidth()\n if (width !== undefined) {\n return width\n }\n\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n if (domCellNode == null) {\n return undefined\n }\n const computedStyle = getComputedStyle(domCellNode)\n return (\n domCellNode.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight)\n )\n }\n\n const getCellNodeHeight = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n return domCellNode?.clientHeight\n }\n\n const getCellColumnIndex = (tableCellNode: TableCellNode, tableMap: TableMapType) => {\n for (let row = 0; row < tableMap.length; row++) {\n for (let column = 0; column < tableMap[row].length; column++) {\n if (tableMap[row][column].cell === tableCellNode) {\n return column\n }\n }\n }\n }\n\n const updateColumnWidth = useCallback(\n (widthChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const [tableMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n const columnIndex = getCellColumnIndex(tableCellNode, tableMap)\n if (columnIndex === undefined) {\n throw new Error('TableCellResizer: Table column not found.')\n }\n\n for (let row = 0; row < tableMap.length; row++) {\n const cell: TableMapValueType = tableMap[row][columnIndex]\n if (\n cell.startRow === row &&\n (columnIndex === tableMap[row].length - 1 ||\n tableMap[row][columnIndex].cell !== tableMap[row][columnIndex + 1].cell)\n ) {\n const width = getCellNodeWidth(cell.cell, editor)\n if (width === undefined) {\n continue\n }\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n cell.cell.setWidth(newWidth)\n }\n }\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const mouseUpHandler = useCallback(\n (direction: MouseDraggingDirection) => {\n const handler = (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n if (mouseStartPosRef.current) {\n const { x, y } = mouseStartPosRef.current\n\n if (activeCell === null) {\n return\n }\n const zoom = calculateZoomLevel(event.target as Element)\n\n if (isHeightChanging(direction)) {\n const heightChange = (event.clientY - y) / zoom\n updateRowHeight(heightChange)\n } else {\n const widthChange = (event.clientX - x) / zoom\n updateColumnWidth(widthChange)\n }\n\n resetState()\n document.removeEventListener('mouseup', handler)\n }\n }\n return handler\n },\n [activeCell, resetState, updateColumnWidth, updateRowHeight],\n )\n\n const toggleResize = useCallback(\n (direction: MouseDraggingDirection): MouseEventHandler<HTMLDivElement> =>\n (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n mouseStartPosRef.current = {\n x: event.clientX,\n y: event.clientY,\n }\n updateMouseCurrentPos(mouseStartPosRef.current)\n updateDraggingDirection(direction)\n\n document.addEventListener('mouseup', mouseUpHandler(direction))\n },\n [activeCell, mouseUpHandler],\n )\n\n const getResizers = useCallback(() => {\n if (activeCell) {\n const { height, left, top, width } = activeCell.elem.getBoundingClientRect()\n const zoom = calculateZoomLevel(activeCell.elem)\n const zoneWidth = 10 // Pixel width of the zone where you can drag the edge\n const styles = {\n bottom: {\n backgroundColor: 'none',\n cursor: 'row-resize',\n height: `${zoneWidth}px`,\n left: `${window.pageXOffset + left}px`,\n top: `${window.pageYOffset + top + height - zoneWidth / 2}px`,\n width: `${width}px`,\n },\n right: {\n backgroundColor: 'none',\n cursor: 'col-resize',\n height: `${height}px`,\n left: `${window.pageXOffset + left + width - zoneWidth / 2}px`,\n top: `${window.pageYOffset + top}px`,\n width: `${zoneWidth}px`,\n },\n }\n\n const tableRect = tableRectRef.current\n\n if (draggingDirection && mouseCurrentPos && tableRect) {\n if (isHeightChanging(draggingDirection)) {\n styles[draggingDirection].left = `${window.pageXOffset + tableRect.left}px`\n styles[draggingDirection].top = `${window.pageYOffset + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.pageYOffset + tableRect.top}px`\n styles[draggingDirection].left = `${window.pageXOffset + mouseCurrentPos.x / zoom}px`\n styles[draggingDirection].width = '3px'\n styles[draggingDirection].height = `${tableRect.height}px`\n }\n\n styles[draggingDirection].backgroundColor = '#adf'\n }\n\n return styles\n }\n\n return {\n bottom: null,\n left: null,\n right: null,\n top: null,\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\n\n const resizerStyles = getResizers()\n\n return (\n <div ref={resizerRef}>\n {activeCell != null && !isMouseDown && (\n <React.Fragment>\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('right')}\n style={resizerStyles.right || undefined}\n />\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('bottom')}\n style={resizerStyles.bottom || undefined}\n />\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableCellResizerPlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n return useMemo(\n () => (isEditable ? createPortal(<TableCellResizer editor={editor} />, document.body) : null),\n [editor, isEditable],\n )\n}\n", "'use client'\n\nimport type { TableCellNode, TableRowNode } from '@lexical/table'\nimport type { EditorConfig, NodeKey } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport {\n $getTableColumnIndexFromTableCellNode,\n $getTableRowIndexFromTableCellNode,\n $insertTableColumn__EXPERIMENTAL,\n $insertTableRow__EXPERIMENTAL,\n $isTableCellNode,\n $isTableNode,\n TableNode,\n} from '@lexical/table'\nimport { $findMatchingParent, mergeRegister } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport { useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useDebounce } from '../../utils/useDebounce.js'\n\nconst BUTTON_WIDTH_PX = 20\n\nfunction TableHoverActionsContainer({ anchorElem }: { anchorElem: HTMLElement }): JSX.Element {\n const [editor] = useLexicalComposerContext()\n const editorConfig = useEditorConfigContext()\n const [isShownRow, setShownRow] = useState<boolean>(false)\n const [isShownColumn, setShownColumn] = useState<boolean>(false)\n const [shouldListenMouseMove, setShouldListenMouseMove] = useState<boolean>(false)\n const [position, setPosition] = useState({})\n const codeSetRef = useRef<Set<NodeKey>>(new Set())\n const tableDOMNodeRef = useRef<HTMLElement | null>(null)\n\n const debouncedOnMouseMove = useDebounce(\n (event: MouseEvent) => {\n const { isOutside, tableDOMNode } = getMouseInfo(event, editorConfig.editorConfig?.lexical)\n\n if (isOutside) {\n setShownRow(false)\n setShownColumn(false)\n return\n }\n\n if (!tableDOMNode) {\n return\n }\n\n tableDOMNodeRef.current = tableDOMNode\n\n let hoveredRowNode: TableCellNode | null = null\n let hoveredColumnNode: TableCellNode | null = null\n let tableDOMElement: HTMLElement | null = null\n\n editor.update(() => {\n const maybeTableCell = $getNearestNodeFromDOMNode(tableDOMNode)\n\n if ($isTableCellNode(maybeTableCell)) {\n const table = $findMatchingParent(maybeTableCell, (node) => $isTableNode(node))\n if (!$isTableNode(table)) {\n return\n }\n\n tableDOMElement = editor.getElementByKey(table?.getKey())\n\n if (tableDOMElement) {\n const rowCount = table.getChildrenSize()\n const colCount =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n ((table as TableNode).getChildAtIndex(0) as TableRowNode)?.getChildrenSize()\n\n const rowIndex = $getTableRowIndexFromTableCellNode(maybeTableCell)\n const colIndex = $getTableColumnIndexFromTableCellNode(maybeTableCell)\n\n if (rowIndex === rowCount - 1) {\n hoveredRowNode = maybeTableCell\n } else if (colIndex === colCount - 1) {\n hoveredColumnNode = maybeTableCell\n }\n }\n }\n })\n\n if (tableDOMElement) {\n const {\n bottom: tableElemBottom,\n height: tableElemHeight,\n right: tableElemRight,\n width: tableElemWidth,\n x: tableElemX,\n y: tableElemY,\n } = (tableDOMElement as HTMLTableElement).getBoundingClientRect()\n\n const { left: editorElemLeft, y: editorElemY } = anchorElem.getBoundingClientRect()\n\n if (hoveredRowNode) {\n setShownColumn(false)\n setShownRow(true)\n setPosition({\n height: BUTTON_WIDTH_PX,\n left: tableElemX - editorElemLeft,\n top: tableElemBottom - editorElemY + 5,\n width: tableElemWidth,\n })\n } else if (hoveredColumnNode) {\n setShownColumn(true)\n setShownRow(false)\n setPosition({\n height: tableElemHeight,\n left: tableElemRight - editorElemLeft + 5,\n top: tableElemY - editorElemY,\n width: BUTTON_WIDTH_PX,\n })\n }\n }\n },\n 50,\n 250,\n )\n\n useEffect(() => {\n if (!shouldListenMouseMove) {\n return\n }\n\n document.addEventListener('mousemove', debouncedOnMouseMove)\n\n return () => {\n setShownRow(false)\n setShownColumn(false)\n\n document.removeEventListener('mousemove', debouncedOnMouseMove)\n }\n }, [shouldListenMouseMove, debouncedOnMouseMove])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerMutationListener(\n TableNode,\n (mutations) => {\n editor.getEditorState().read(() => {\n for (const [key, type] of mutations) {\n switch (type) {\n case 'created':\n codeSetRef.current.add(key)\n setShouldListenMouseMove(codeSetRef.current.size > 0)\n break\n\n case 'destroyed':\n codeSetRef.current.delete(key)\n setShouldListenMouseMove(codeSetRef.current.size > 0)\n break\n\n default:\n break\n }\n }\n })\n },\n { skipInitialization: false },\n ),\n )\n }, [editor])\n\n const insertAction = (insertRow: boolean) => {\n editor.update(() => {\n if (tableDOMNodeRef.current) {\n const maybeTableNode = $getNearestNodeFromDOMNode(tableDOMNodeRef.current)\n maybeTableNode?.selectEnd()\n if (insertRow) {\n $insertTableRow__EXPERIMENTAL()\n setShownRow(false)\n } else {\n $insertTableColumn__EXPERIMENTAL()\n setShownColumn(false)\n }\n }\n })\n }\n\n return (\n <>\n {isShownRow && (\n <button\n className={editorConfig.editorConfig.lexical.theme.tableAddRows}\n onClick={() => insertAction(true)}\n style={{ ...position }}\n />\n )}\n {isShownColumn && (\n <button\n className={editorConfig.editorConfig.lexical.theme.tableAddColumns}\n onClick={() => insertAction(false)}\n style={{ ...position }}\n />\n )}\n </>\n )\n}\n\nfunction getMouseInfo(\n event: MouseEvent,\n editorConfig: EditorConfig,\n): {\n isOutside: boolean\n tableDOMNode: HTMLElement | null\n} {\n const target = event.target\n\n if (target && target instanceof HTMLElement) {\n const tableDOMNode = target.closest<HTMLElement>(\n `td.${editorConfig.theme.tableCell}, th.${editorConfig.theme.tableCell}`,\n )\n\n const isOutside = !(\n tableDOMNode ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddRows}`) ||\n target.closest<HTMLElement>(`button.${editorConfig.theme.tableAddColumns}`) ||\n target.closest<HTMLElement>(`div.${editorConfig.theme.tableCellResizer}`)\n )\n\n return { isOutside, tableDOMNode }\n } else {\n return { isOutside: true, tableDOMNode: null }\n }\n}\n\nexport function TableHoverActionsPlugin({\n anchorElem = document.body,\n}: {\n anchorElem?: HTMLElement\n}): React.ReactPortal | null {\n return createPortal(<TableHoverActionsContainer anchorElem={anchorElem} />, anchorElem)\n}\n", "'use client'\nimport { useMemo, useRef } from 'react'\n\nimport debounce from './debounce.js'\n\nexport function useDebounce<T extends (...args: never[]) => void>(\n fn: T,\n ms: number,\n maxWait?: number,\n) {\n const funcRef = useRef<T | null>(null)\n funcRef.current = fn\n\n return useMemo(\n () =>\n debounce(\n (...args: Parameters<T>) => {\n if (funcRef.current) {\n funcRef.current(...args)\n }\n },\n ms,\n { maxWait },\n ),\n [ms, maxWait],\n )\n}\n", "'use client'\n// Copied & modified from https://github.com/lodash/lodash/blob/main/src/debounce.ts\n/*\nThe MIT License\n\nCopyright JS Foundation and other contributors <https://js.foundation/>\n\nBased on Underscore.js, copyright Jeremy Ashkenas,\nDocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>\n\nThis software consists of voluntary contributions made by many\nindividuals. For exact contribution history, see the revision history\navailable at https://github.com/lodash/lodash\n\nThe following license applies to all parts of this software except as\ndocumented below:\n\n====\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n====\n\nCopyright and related rights for sample code are waived via CC0. Sample\ncode is defined as all source code displayed within the prose of the\ndocumentation.\n\nCC0: http://creativecommons.org/publicdomain/zero/1.0/\n\n====\n\nFiles located in the node_modules and vendor directories are externally\nmaintained libraries used by this software which have their own\nlicenses; we recommend you read them, as their terms may differ from the\nterms above.\n */\n\n/** Error message constants. */\nconst FUNC_ERROR_TEXT = 'Expected a function'\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nconst nativeMax = Math.max,\n nativeMin = Math.min\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n let lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT)\n }\n wait = wait || 0\n if (typeof options === 'object') {\n leading = !!options.leading\n maxing = 'maxWait' in options\n maxWait = maxing ? nativeMax(options.maxWait || 0, wait) : maxWait\n trailing = 'trailing' in options ? !!options.trailing : trailing\n }\n\n function invokeFunc(time) {\n const args = lastArgs,\n thisArg = lastThis\n\n lastArgs = lastThis = undefined\n lastInvokeTime = time\n result = func.apply(thisArg, args)\n return result\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait)\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result\n }\n\n function remainingWait(time) {\n const timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall\n\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting\n }\n\n function shouldInvoke(time) {\n const timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (\n lastCallTime === undefined ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n )\n }\n\n function timerExpired() {\n const time = Date.now()\n if (shouldInvoke(time)) {\n return trailingEdge(time)\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time))\n }\n\n function trailingEdge(time) {\n timerId = undefined\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time)\n }\n lastArgs = lastThis = undefined\n return result\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId)\n }\n lastInvokeTime = 0\n lastArgs = lastCallTime = lastThis = timerId = undefined\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now())\n }\n\n function debounced() {\n const time = Date.now(),\n isInvoking = shouldInvoke(time)\n\n // eslint-disable-next-line prefer-rest-params\n lastArgs = arguments\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n lastThis = this\n lastCallTime = time\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime)\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId)\n timerId = setTimeout(timerExpired, wait)\n return invokeFunc(lastCallTime)\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait)\n }\n return result\n }\n debounced.cancel = cancel\n debounced.flush = flush\n return debounced\n}\n\nexport default debounce\n", "'use client'\n\nimport type {\n EditorThemeClasses,\n Klass,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n RangeSelection,\n} from 'lexical'\nimport type { JSX } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { TablePlugin as LexicalReactTablePlugin } from '@lexical/react/LexicalTablePlugin'\nimport { INSERT_TABLE_COMMAND, TableNode } from '@lexical/table'\nimport { mergeRegister } from '@lexical/utils'\nimport { formatDrawerSlug, useEditDepth, useModal } from '@payloadcms/ui'\nimport { $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, createCommand } from 'lexical'\nimport { createContext, useContext, useEffect, useMemo, useState } from 'react'\nimport * as React from 'react'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../../utilities/fieldsDrawer/Drawer.js'\nimport './index.scss'\n\nexport type CellContextShape = {\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n set: (\n cellEditorConfig: CellEditorConfig | null,\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null,\n ) => void\n}\n\nexport type CellEditorConfig = Readonly<{\n namespace: string\n nodes?: ReadonlyArray<Klass<LexicalNode>>\n onError: (error: Error, editor: LexicalEditor) => void\n readOnly?: boolean\n theme?: EditorThemeClasses\n}>\n\nexport const OPEN_TABLE_DRAWER_COMMAND: LexicalCommand<{}> = createCommand(\n 'OPEN_EMBED_DRAWER_COMMAND',\n)\n\nexport const CellContext = createContext<CellContextShape>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n set: () => {\n // Empty\n },\n})\n\nexport function TableContext({ children }: { children: JSX.Element }) {\n const [contextValue, setContextValue] = useState<{\n cellEditorConfig: CellEditorConfig | null\n cellEditorPlugins: Array<JSX.Element> | JSX.Element | null\n }>({\n cellEditorConfig: null,\n cellEditorPlugins: null,\n })\n return (\n <CellContext.Provider\n value={useMemo(\n () => ({\n cellEditorConfig: contextValue.cellEditorConfig,\n cellEditorPlugins: contextValue.cellEditorPlugins,\n set: (cellEditorConfig, cellEditorPlugins) => {\n setContextValue({ cellEditorConfig, cellEditorPlugins })\n },\n }),\n [contextValue.cellEditorConfig, contextValue.cellEditorPlugins],\n )}\n >\n {children}\n </CellContext.Provider>\n )\n}\n\nexport const TablePlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const cellContext = useContext(CellContext)\n const { closeModal, toggleModal } = useModal()\n const editDepth = useEditDepth()\n const { uuid } = useEditorConfigContext()\n\n const drawerSlug = formatDrawerSlug({\n slug: 'lexical-table-create-' + uuid,\n depth: editDepth,\n })\n\n useEffect(() => {\n if (!editor.hasNodes([TableNode])) {\n throw new Error('TablePlugin: TableNode is not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand(\n OPEN_TABLE_DRAWER_COMMAND,\n () => {\n let rangeSelection: RangeSelection | null = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n toggleModal(drawerSlug)\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [cellContext, editor, toggleModal])\n\n return (\n <React.Fragment>\n <FieldsDrawer\n drawerSlug={drawerSlug}\n drawerTitle=\"Create Table\"\n featureKey=\"experimental_table\"\n handleDrawerSubmit={(_fields, data) => {\n closeModal(drawerSlug)\n\n if (!data.columns || !data.rows) {\n return\n }\n\n editor.dispatchCommand(INSERT_TABLE_COMMAND, {\n columns: String(data.columns),\n rows: String(data.rows),\n })\n }}\n schemaPathSuffix=\"fields\"\n />\n <LexicalReactTablePlugin hasCellBackgroundColor={false} hasCellMerge />\n </React.Fragment>\n )\n}\n", "'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport { UploadIcon } from '../../../lexical/ui/icons/Upload/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './drawer/commands.js'\nimport { $isUploadNode, UploadNode } from './nodes/UploadNode.js'\nimport { UploadPlugin } from './plugin/index.js'\n\nexport type UploadFeaturePropsClient = {\n collections: {\n [collection: string]: {\n hasExtraFields: boolean\n }\n }\n}\n\nexport const UploadFeatureClient = createClientFeature<UploadFeaturePropsClient>({\n nodes: [UploadNode],\n plugins: [\n {\n Component: UploadPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: UploadIcon,\n key: 'upload',\n keywords: ['upload', 'image', 'file', 'img', 'picture', 'photo', 'media'],\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: UploadIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isUploadNode(firstNode)\n },\n key: 'upload',\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n})\n", "'use client'\nimport React from 'react'\n\nexport const UploadIcon: React.FC = () => (\n <svg\n aria-hidden=\"true\"\n className=\"icon\"\n fill=\"none\"\n focusable=\"false\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.6667 4H5.33333C4.59695 4 4 4.59695 4 5.33333V14.6667C4 15.403 4.59695 16 5.33333 16H14.6667C15.403 16 16 15.403 16 14.6667V5.33333C16 4.59695 15.403 4 14.6667 4Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M7.99984 9.33366C8.73622 9.33366 9.33317 8.73671 9.33317 8.00033C9.33317 7.26395 8.73622 6.66699 7.99984 6.66699C7.26346 6.66699 6.6665 7.26395 6.6665 8.00033C6.6665 8.73671 7.26346 9.33366 7.99984 9.33366Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M16 11.9995L13.9427 9.94214C13.6926 9.69218 13.3536 9.55176 13 9.55176C12.6464 9.55176 12.3074 9.69218 12.0573 9.94214L6 15.9995\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils'\nimport { useConfig } from '@payloadcms/ui'\nimport {\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n COMMAND_PRIORITY_EDITOR,\n createCommand,\n} from 'lexical'\nimport React, { useEffect } from 'react'\n\nimport type { PluginComponentWithAnchor } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../feature.client.js'\n\nimport { UploadDrawer } from '../drawer/index.js'\nimport { $createUploadNode, UploadNode } from '../nodes/UploadNode.js'\n\nexport type InsertUploadPayload = Readonly<Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>>\n\nexport const INSERT_UPLOAD_COMMAND: LexicalCommand<InsertUploadPayload> =\n createCommand('INSERT_UPLOAD_COMMAND')\n\nexport const UploadPlugin: PluginComponentWithAnchor<UploadFeaturePropsClient> = ({\n clientProps,\n}) => {\n const [editor] = useLexicalComposerContext()\n const {\n config: { collections },\n } = useConfig()\n\n useEffect(() => {\n if (!editor.hasNodes([UploadNode])) {\n throw new Error('UploadPlugin: UploadNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertUploadPayload>(\n INSERT_UPLOAD_COMMAND,\n (payload: InsertUploadPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const uploadNode = $createUploadNode({\n data: {\n id: payload.id,\n fields: payload.fields,\n relationTo: payload.relationTo,\n value: payload.value,\n },\n })\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(uploadNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParent()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor])\n\n return <UploadDrawer enabledCollectionSlugs={collections.map(({ slug }) => slug)} />\n}\n", "'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useListDrawer } from '@payloadcms/ui'\nimport { $getNodeByKey, COMMAND_PRIORITY_EDITOR } from 'lexical'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { EnabledRelationshipsCondition } from '../../../relationship/client/utils/EnabledRelationshipsCondition.js'\nimport { $createUploadNode } from '../nodes/UploadNode.js'\nimport { INSERT_UPLOAD_COMMAND } from '../plugin/index.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './commands.js'\n\nconst insertUpload = ({\n editor,\n relationTo,\n replaceNodeKey,\n value,\n}: {\n editor: LexicalEditor\n relationTo: string\n replaceNodeKey: null | string\n value: number | string\n}) => {\n if (!replaceNodeKey) {\n editor.dispatchCommand(INSERT_UPLOAD_COMMAND, {\n fields: null,\n relationTo,\n value,\n })\n } else {\n editor.update(() => {\n const node = $getNodeByKey(replaceNodeKey)\n if (node) {\n node.replace(\n $createUploadNode({\n data: {\n fields: null,\n relationTo,\n value,\n },\n }),\n )\n }\n })\n }\n}\n\ntype Props = {\n enabledCollectionSlugs: string[]\n}\n\nconst UploadDrawerComponent: React.FC<Props> = ({ enabledCollectionSlugs }) => {\n const [editor] = useLexicalComposerContext()\n\n const [replaceNodeKey, setReplaceNodeKey] = useState<null | string>(null)\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer, openDrawer }] = useListDrawer({\n collectionSlugs: enabledCollectionSlugs,\n uploads: true,\n })\n\n useEffect(() => {\n return editor.registerCommand<{\n replace: { nodeKey: string } | false\n }>(\n INSERT_UPLOAD_WITH_DRAWER_COMMAND,\n (payload) => {\n setReplaceNodeKey(payload?.replace ? payload?.replace.nodeKey : null)\n openDrawer()\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n )\n }, [editor, openDrawer])\n\n const onSelect = useCallback(\n ({ collectionSlug, docID }) => {\n insertUpload({\n editor,\n relationTo: collectionSlug,\n replaceNodeKey,\n value: docID,\n })\n closeDrawer()\n },\n [editor, closeDrawer, replaceNodeKey],\n )\n\n return <ListDrawer onSelect={onSelect} />\n}\n\nexport const UploadDrawer = (props: Props): React.ReactNode => {\n return (\n <EnabledRelationshipsCondition {...props} uploads>\n <UploadDrawerComponent {...props} />\n </EnabledRelationshipsCondition>\n )\n}\n", "'use client'\n\nimport { ShimmerEffect, useClientFunctions, useFieldProps } from '@payloadcms/ui'\nimport React, { Suspense, lazy, useEffect, useState } from 'react'\n\nimport type { FeatureProviderClient } from '../features/typesClient.js'\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\nimport type { GeneratedFeatureProviderComponent, LexicalRichTextFieldProps } from '../types.js'\n\nimport { defaultEditorLexicalConfig } from '../lexical/config/client/default.js'\nimport { loadClientFeatures } from '../lexical/config/client/loader.js'\nimport { sanitizeClientEditorConfig } from '../lexical/config/client/sanitize.js'\n\nconst RichTextEditor = lazy(() =>\n import('./Field.js').then((module) => ({ default: module.RichText })),\n)\n\nexport const RichTextField: React.FC<LexicalRichTextFieldProps> = (props) => {\n const {\n admin = {},\n field: { richTextComponentMap },\n lexicalEditorConfig,\n } = props\n const { schemaPath } = useFieldProps()\n const clientFunctions = useClientFunctions()\n const [hasLoadedFeatures, setHasLoadedFeatures] = useState(false)\n\n const [featureProviders, setFeatureProviders] = useState<\n FeatureProviderClient<unknown, unknown>[]\n >([])\n\n const [finalSanitizedEditorConfig, setFinalSanitizedEditorConfig] =\n useState<SanitizedClientEditorConfig>(null)\n\n let featureProviderComponents: GeneratedFeatureProviderComponent[] = richTextComponentMap.get(\n 'features',\n ) as GeneratedFeatureProviderComponent[]\n // order by order\n featureProviderComponents = featureProviderComponents.sort((a, b) => a.order - b.order)\n\n let featureProvidersAndComponentsToLoad = 0 // feature providers and components\n for (const featureProvider of featureProviderComponents) {\n const featureComponentKeys = Array.from(richTextComponentMap.keys()).filter((key) =>\n key.startsWith(\n `lexical_internal_feature.${featureProvider.key}.lexical_internal_components.`,\n ),\n )\n\n featureProvidersAndComponentsToLoad += 1\n featureProvidersAndComponentsToLoad += featureComponentKeys.length\n }\n\n useEffect(() => {\n if (!hasLoadedFeatures) {\n const featureProvidersLocal: FeatureProviderClient<unknown, unknown>[] = []\n let featureProvidersAndComponentsLoaded = 0\n\n Object.entries(clientFunctions).forEach(([key, plugin]) => {\n if (key.startsWith(`lexicalFeature.${schemaPath}.`)) {\n if (!key.includes('.lexical_internal_components.')) {\n featureProvidersLocal.push(plugin)\n }\n\n featureProvidersAndComponentsLoaded++\n }\n })\n\n if (featureProvidersAndComponentsLoaded === featureProvidersAndComponentsToLoad) {\n setFeatureProviders(featureProvidersLocal)\n setHasLoadedFeatures(true)\n\n /**\n * Loaded feature provided => create the final sanitized editor config\n */\n\n const resolvedClientFeatures = loadClientFeatures({\n clientFunctions,\n schemaPath,\n unSanitizedEditorConfig: {\n features: featureProvidersLocal,\n lexical: lexicalEditorConfig,\n },\n })\n\n setFinalSanitizedEditorConfig(\n sanitizeClientEditorConfig(\n lexicalEditorConfig ? lexicalEditorConfig : defaultEditorLexicalConfig,\n resolvedClientFeatures,\n admin,\n ),\n )\n }\n }\n }, [\n admin,\n hasLoadedFeatures,\n clientFunctions,\n schemaPath,\n featureProviderComponents.length,\n featureProviders,\n finalSanitizedEditorConfig,\n lexicalEditorConfig,\n featureProvidersAndComponentsToLoad,\n ])\n\n if (!hasLoadedFeatures) {\n return (\n <React.Fragment>\n {Array.isArray(featureProviderComponents) &&\n featureProviderComponents.map((featureProvider) => {\n // get all components starting with key feature.${FeatureProvider.key}.components.{featureComponentKey}\n const featureComponentKeys = Array.from(richTextComponentMap.keys()).filter((key) =>\n key.startsWith(\n `lexical_internal_feature.${featureProvider.key}.lexical_internal_components.`,\n ),\n )\n const featureComponents: React.ReactNode[] = featureComponentKeys.map((key) => {\n return richTextComponentMap.get(key)\n }) as React.ReactNode[] // TODO: Type better\n\n return (\n <React.Fragment key={featureProvider.key}>\n {featureComponents?.length\n ? featureComponents.map((FeatureComponent) => {\n return FeatureComponent\n })\n : null}\n {featureProvider.ClientFeature}\n </React.Fragment>\n )\n })}\n </React.Fragment>\n )\n }\n\n return (\n <Suspense fallback={<ShimmerEffect height=\"35vh\" />}>\n {finalSanitizedEditorConfig && (\n <RichTextEditor {...props} editorConfig={finalSanitizedEditorConfig} />\n )}\n </Suspense>\n )\n}\n", "'use client'\nexport function joinClasses(...args: Array<boolean | null | string | undefined>): string {\n return args.filter(Boolean).join(' ')\n}\n", "'use client'\ntype Force = [number, number]\ntype Listener = (force: Force, e: TouchEvent) => void\ninterface ElementValues {\n handleTouchend: (e: TouchEvent) => void\n handleTouchstart: (e: TouchEvent) => void\n listeners: Set<Listener>\n start: Force | null\n}\n\nconst elements = new WeakMap<HTMLElement, ElementValues>()\n\nfunction readTouch(e: TouchEvent): [number, number] | null {\n const touch = e.changedTouches[0]\n if (touch === undefined) {\n return null\n }\n return [touch.clientX, touch.clientY]\n}\n\nfunction addListener(element: HTMLElement, cb: Listener): () => void {\n let elementValues = elements.get(element)\n if (elementValues === undefined) {\n const listeners = new Set<Listener>()\n const handleTouchstart = (e: TouchEvent): void => {\n if (elementValues !== undefined) {\n elementValues.start = readTouch(e)\n }\n }\n const handleTouchend = (e: TouchEvent): void => {\n if (elementValues === undefined) {\n return\n }\n const { start } = elementValues\n if (start === null) {\n return\n }\n const end = readTouch(e)\n for (const listener of listeners) {\n if (end !== null) {\n listener([end[0] - start[0], end[1] - start[1]], e)\n }\n }\n }\n element.addEventListener('touchstart', handleTouchstart)\n element.addEventListener('touchend', handleTouchend)\n\n elementValues = {\n handleTouchend,\n handleTouchstart,\n listeners,\n start: null,\n }\n elements.set(element, elementValues)\n }\n elementValues.listeners.add(cb)\n return () => {\n deleteListener(element, cb)\n }\n}\n\nfunction deleteListener(element: HTMLElement, cb: Listener): void {\n const elementValues = elements.get(element)\n if (elementValues === undefined) {\n return\n }\n const { listeners } = elementValues\n listeners.delete(cb)\n if (listeners.size === 0) {\n elements.delete(element)\n element.removeEventListener('touchstart', elementValues.handleTouchstart)\n element.removeEventListener('touchend', elementValues.handleTouchend)\n }\n}\n\nexport function addSwipeLeftListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (x < 0 && -x > Math.abs(y)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeRightListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (x > 0 && x > Math.abs(y)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeUpListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (y < 0 && -y > Math.abs(x)) {\n cb(x, e)\n }\n })\n}\n\nexport function addSwipeDownListener(\n element: HTMLElement,\n cb: (_force: number, e: TouchEvent) => void,\n): () => void {\n return addListener(element, (force, e) => {\n const [x, y] = force\n if (y > 0 && y > Math.abs(x)) {\n cb(x, e)\n }\n })\n}\n", "/* eslint-disable perfectionist/sort-objects */\n/* eslint-disable regexp/no-obscure-range */\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n/* eslint-disable regexp/no-misleading-unicode-character */\n//This copy-and-pasted from lexical here: https://github.com/facebook/lexical/blob/c2ceee223f46543d12c574e62155e619f9a18a5d/packages/lexical/src/LexicalConstants.ts\n\nimport type { ElementFormatType, TextFormatType, TextModeType } from 'lexical'\nexport type TextDetailType = 'directionless' | 'unmergable'\n\n// DOM\nexport const NodeFormat = {\n DOM_ELEMENT_TYPE: 1,\n DOM_TEXT_TYPE: 3,\n // Reconciling\n NO_DIRTY_NODES: 0,\n HAS_DIRTY_NODES: 1,\n FULL_RECONCILE: 2,\n // Text node modes\n IS_NORMAL: 0,\n IS_TOKEN: 1,\n IS_SEGMENTED: 2,\n IS_INERT: 3,\n // Text node formatting\n IS_BOLD: 1,\n IS_ITALIC: 1 << 1,\n IS_STRIKETHROUGH: 1 << 2,\n IS_UNDERLINE: 1 << 3,\n IS_CODE: 1 << 4,\n IS_SUBSCRIPT: 1 << 5,\n IS_SUPERSCRIPT: 1 << 6,\n IS_HIGHLIGHT: 1 << 7,\n // Text node details\n IS_DIRECTIONLESS: 1,\n IS_UNMERGEABLE: 1 << 1,\n // Element node formatting\n IS_ALIGN_LEFT: 1,\n IS_ALIGN_CENTER: 2,\n IS_ALIGN_RIGHT: 3,\n IS_ALIGN_JUSTIFY: 4,\n IS_ALIGN_START: 5,\n IS_ALIGN_END: 6,\n} as const\n\nexport const IS_ALL_FORMATTING =\n NodeFormat.IS_BOLD |\n NodeFormat.IS_ITALIC |\n NodeFormat.IS_STRIKETHROUGH |\n NodeFormat.IS_UNDERLINE |\n NodeFormat.IS_CODE |\n NodeFormat.IS_SUBSCRIPT |\n NodeFormat.IS_SUPERSCRIPT |\n NodeFormat.IS_HIGHLIGHT\n\n// Reconciliation\nexport const NON_BREAKING_SPACE = '\\u00A0'\n\nexport const DOUBLE_LINE_BREAK = '\\n\\n'\n\n// For FF, we need to use a non-breaking space, or it gets composition\n// in a stuck state.\n\nconst RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n// eslint-disable-next-line no-misleading-character-class\nexport const RTL_REGEX = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\n// eslint-disable-next-line no-misleading-character-class\nexport const LTR_REGEX = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nexport const TEXT_TYPE_TO_FORMAT: Record<TextFormatType | string, number> = {\n bold: NodeFormat.IS_BOLD,\n code: NodeFormat.IS_CODE,\n highlight: NodeFormat.IS_HIGHLIGHT,\n italic: NodeFormat.IS_ITALIC,\n strikethrough: NodeFormat.IS_STRIKETHROUGH,\n subscript: NodeFormat.IS_SUBSCRIPT,\n superscript: NodeFormat.IS_SUPERSCRIPT,\n underline: NodeFormat.IS_UNDERLINE,\n}\n\nexport const DETAIL_TYPE_TO_DETAIL: Record<TextDetailType | string, number> = {\n directionless: NodeFormat.IS_DIRECTIONLESS,\n unmergeable: NodeFormat.IS_UNMERGEABLE,\n}\n\nexport const ELEMENT_TYPE_TO_FORMAT: Record<Exclude<ElementFormatType, ''>, number> = {\n center: NodeFormat.IS_ALIGN_CENTER,\n end: NodeFormat.IS_ALIGN_END,\n justify: NodeFormat.IS_ALIGN_JUSTIFY,\n left: NodeFormat.IS_ALIGN_LEFT,\n right: NodeFormat.IS_ALIGN_RIGHT,\n start: NodeFormat.IS_ALIGN_START,\n}\n\nexport const ELEMENT_FORMAT_TO_TYPE: Record<number, ElementFormatType> = {\n [NodeFormat.IS_ALIGN_CENTER]: 'center',\n [NodeFormat.IS_ALIGN_END]: 'end',\n [NodeFormat.IS_ALIGN_JUSTIFY]: 'justify',\n [NodeFormat.IS_ALIGN_LEFT]: 'left',\n [NodeFormat.IS_ALIGN_RIGHT]: 'right',\n [NodeFormat.IS_ALIGN_START]: 'start',\n}\n\nexport const TEXT_MODE_TO_TYPE: Record<TextModeType, 0 | 1 | 2> = {\n normal: NodeFormat.IS_NORMAL,\n segmented: NodeFormat.IS_SEGMENTED,\n token: NodeFormat.IS_TOKEN,\n}\n\nexport const TEXT_TYPE_TO_MODE: Record<number, TextModeType> = {\n [NodeFormat.IS_NORMAL]: 'normal',\n [NodeFormat.IS_SEGMENTED]: 'segmented',\n [NodeFormat.IS_TOKEN]: 'token',\n}\n"],
5
+ "mappings": "0aAKO,SAASA,EAA6BC,EAAsB,CACjE,MAAO,CACLA,MAAAA,EACAC,IAAK,QACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,0CAAA,CAElB,CACF,qDCTA,OAASC,wBAAAA,OAA4B,oBACrC,OAASC,sBAAAA,GAAoBC,gBAAAA,OAAoB,iBACjD,OAASC,YAAAA,OAAgB,UACzB,OAAOC,IAASC,aAAAA,GAAWC,YAAAA,OAAgB,QCJpC,IAAMC,GAAyC,CACpDC,MAAO,4BACPC,YAAa,kCACbC,eAAgB,qCAChBC,KAAM,2BACNC,cAAe,CACbC,OAAQ,gCACRC,KAAM,gCACNC,QAAS,oCACTC,QAAS,oCACTC,MAAO,mCACPC,KAAM,oCACNC,MAAO,oCACP,aAAc,oCACdC,QAAS,mCACTC,SAAU,oCACVC,QAAS,oCACTC,QAAS,mCACTC,OAAQ,oCACRC,SAAU,oCACVC,UAAW,oCACXC,SAAU,oCACVC,QAAS,gCACTC,UAAW,oCACXC,OAAQ,oCACRC,SAAU,oCACVC,OAAQ,mCACRC,SAAU,oCACVC,YAAa,uCACbC,MAAO,oCACPC,SAAU,oCACVC,OAAQ,oCACRC,OAAQ,oCACRC,IAAK,oCACLC,IAAK,oCACLC,SAAU,mCACZ,EACAC,WAAY,CACVC,KAAM,iCACNC,MAAO,qCACT,EACAC,QAAS,8BACTC,QAAS,CACPC,GAAI,yBACJC,GAAI,yBACJC,GAAI,yBACJC,GAAI,yBACJC,GAAI,yBACJC,GAAI,wBACN,EACAC,GAAI,yBACJC,OAAQ,6BACRC,YAAa,8BACbC,KAAM,2BACNC,KAAM,CACJC,UAAW,gCACXC,SAAU,+BACVC,gBAAiB,sCACjBC,kBAAmB,wCACnBC,OAAQ,CACNH,SAAU,oCACZ,EACAI,QAAS,CACP,0BACA,0BACA,0BACA,0BACA,yBAAA,EAEFC,GAAI,wBACN,EACAC,IAAK,0BACLC,KAAM,2BACNC,YAAa,kCACbC,UAAW,gCACXC,MAAO,4BACPC,aAAc,mCACdC,IAAK,0BACLC,MAAO,4BACPC,gBAAiB,sCACjBC,aAAc,mCACdC,UAAW,gCACXC,sBAAuB,4CACvBC,+BAAgC,qDAChCC,iBAAkB,uCAClBC,gBAAiB,sCACjBC,yBAA0B,+CAC1BC,iBAAkB,uCAClBC,kBAAmB,wCACnBC,yBAA0B,+CAC1BC,iBAAkB,2CAClBC,cAAe,oCACfC,KAAM,CACJC,KAAM,+BACN5E,KAAM,+BACN6E,OAAQ,iCACRC,cAAe,wCACfC,UAAW,oCACXC,YAAa,sCACbC,UAAW,oCACXC,uBAAwB,gDAC1B,EACAC,OAAQ,eACV,ECrGO,IAAMC,GAAkD,CAC7DC,UAAW,UACXC,MAAOC,EACT,ECKO,SAASC,GAAmB,CACjCC,gBAAAA,EACAC,WAAAA,EACAC,wBAAAA,CAAuB,EAKxB,CACC,QAAWC,KAAmBD,EAAwBE,SACpD,GACE,CAACD,GAAiBE,oBAAoBC,YACtCH,GAAiBE,oBAAoBE,QAAUC,QAC/CL,GAAiBE,oBAAoBE,QAAU,KAE/C,MAAM,IAAIE,MACR,sOAAA,EAMNP,EAAwBE,SAAWF,EAAwBE,SAASM,KAClE,CAACC,EAAGC,IAAMD,EAAEN,mBAAmBE,MAAQK,EAAEP,mBAAmBE,KAAK,EAGnE,IAAMM,EAA+C,IAAIC,IACvDZ,EAAwBE,SAASW,IAC9BC,GACC,CAACA,EAAEX,mBAAmBC,WAAYU,CAAA,CAAE,CAAA,EAIpCC,EAA6C,IAAIH,IAGnDI,EAAS,EACb,QAAWf,KAAmBD,EAAwBE,SAAU,CAI9D,IAAMe,EAA+C,CAAC,EACtDC,OAAOC,QAAQrB,CAAA,EAAiBsB,QAAQ,CAAC,CAACC,EAAKC,CAAA,IAAO,CACpD,GACED,EAAIE,WACF,kBAAkBxB,CAAA,IAAcE,EAAgBE,mBAAmBC,UAAU,cAAc,EAE7F,CACA,IAAMoB,EAAsBH,EAAII,MAC9B,GAAG1B,CAAA,IAAcE,EAAgBE,mBAAmBC,UAAU,cAAc,EAC5E,CAAA,EACFa,EAAwBO,CAAA,EAAuBF,CACjD,CACF,CAAA,EAEA,IAAMI,EACJ,OAAOzB,EAAgByB,SAAY,WAC/BzB,EAAgByB,QAAQ,CACtB5B,gBAAiBmB,EACjBN,mBAAAA,EACAI,iBAAAA,EACAf,wBAAAA,CACF,CAAA,EACAC,EAAgByB,QAEtBX,EAAiBY,IAAI1B,EAAgBE,mBAAmBC,WAAY,CAClE,GAAGsB,EACHL,IAAKpB,EAAgBE,mBAAmBC,WACxCC,MAAOW,CACT,CAAA,EAEAA,GACF,CAEA,OAAOD,CACT,CC7EO,IAAMa,GACXC,GAAA,CAEA,IAAMC,EAAqC,CACzCC,gBAAiB,CAAA,EACjBC,MAAO,CACLC,KAAM,CAAA,EACNC,KAAM,CAAA,CACR,EACAC,qBAAsB,CAAA,EACtBC,MAAO,CAAA,EACPC,QAAS,CAAA,EACTC,UAAW,CAAA,EACXC,UAAW,CACTC,cAAe,CAAA,EACfC,OAAQ,CAAA,CACV,EACAC,aAAc,CACZD,OAAQ,CAAA,CACV,EACAE,cAAe,CACbF,OAAQ,CAAA,CACV,CACF,EAEA,GAAI,CAACZ,GAAUe,KACb,OAAOd,EAGTD,EAASgB,QAASC,GAAA,CA4BhB,GA3BIA,EAAQd,QACNc,EAAQd,OAAOC,MAAMc,SACvBjB,EAAUE,MAAMC,KAAOH,EAAUE,MAAMC,KAAKe,OAAOF,EAAQd,MAAMC,IAAI,GAEnEa,EAAQd,OAAOE,MAAMa,SACvBjB,EAAUE,MAAME,KAAOJ,EAAUE,MAAME,KAAKc,OAAOF,EAAQd,MAAME,IAAI,IAIrEY,EAAQR,WAAWS,SACrBjB,EAAUQ,UAAYR,EAAUQ,UAAUU,OAAOF,EAAQR,SAAS,GAGhEQ,EAAQV,OAAOW,SACjBjB,EAAUM,MAAQN,EAAUM,MAAMY,OAAOF,EAAQV,KAAK,GAEpDU,EAAQT,SAASU,QACnBD,EAAQT,QAAQQ,QAAQ,CAACI,EAAQC,IAAA,CAC/BpB,EAAUO,QAAQc,KAAK,CACrBC,UAAWH,EAAOG,UAClBC,YAAaP,EAAQQ,4BACrBC,IAAKT,EAAQS,IAAML,EACnBM,SAAUP,EAAOO,QACnB,CAAA,CACF,CAAA,EAGEV,EAAQH,eAAeF,QAAQM,OACjC,QAAWU,KAASX,EAAQH,cAAcF,OAAQ,CAEhD,IAAIiB,EAAa5B,EAAUa,cAAcF,OAAOkB,KAC7CC,GAAmBA,EAAeL,MAAQE,EAAMF,GAAG,EAEjDG,EAMH5B,EAAUa,cAAcF,OAASX,EAAUa,cAAcF,OAAOoB,OAC7DD,GAAmBA,EAAeL,MAAQE,EAAMF,GAAG,EANtDG,EAAa,CACX,GAAGD,EACHK,MAAO,CAAA,CACT,EAQEL,GAAOK,OAAOf,SAChBW,EAAWI,MAAQJ,EAAWI,MAAMd,OAAOS,EAAMK,KAAK,GAExDhC,EAAUa,eAAeF,OAAOU,KAAKO,CAAA,CACvC,CAGF,GAAIZ,EAAQJ,cAAcD,QAAQM,OAChC,QAAWU,KAASX,EAAQJ,aAAaD,OAAQ,CAE/C,IAAIiB,EAAa5B,EAAUY,aAAaD,OAAOkB,KAC5CC,GAAmBA,EAAeL,MAAQE,EAAMF,GAAG,EAEjDG,EAMH5B,EAAUY,aAAaD,OAASX,EAAUY,aAAaD,OAAOoB,OAC3DD,GAAmBA,EAAeL,MAAQE,EAAMF,GAAG,EANtDG,EAAa,CACX,GAAGD,EACHK,MAAO,CAAA,CACT,EAQEL,GAAOK,OAAOf,SAChBW,EAAWI,MAAQJ,EAAWI,MAAMd,OAAOS,EAAMK,KAAK,GAExDhC,EAAUY,cAAcD,OAAOU,KAAKO,CAAA,CACtC,CAGF,GAAIZ,EAAQP,WAAWE,OAAQ,CACzBK,EAAQP,UAAUC,eAAeO,SACnCjB,EAAUS,UAAUC,cAAgBV,EAAUS,UAAUC,cAAcQ,OACpEF,EAAQP,UAAUC,aAAa,GAInC,QAAWuB,KAAejB,EAAQP,UAAUE,OAAQ,CAElD,IAAIgB,EAAQ3B,EAAUS,UAAUE,OAAOkB,KAAMF,GAAUA,EAAMF,MAAQQ,EAAYR,GAAG,EAC/EE,EAMH3B,EAAUS,UAAUE,OAASX,EAAUS,UAAUE,OAAOoB,OACrDJ,GAAUA,EAAMF,MAAQQ,EAAYR,GAAG,EAN1CE,EAAQ,CACN,GAAGM,EACHD,MAAO,CAAA,CACT,EAQEC,GAAaD,OAAOf,SACtBU,EAAMK,MAAQL,EAAMK,MAAMd,OAAOe,EAAYD,KAAK,GAEpDhC,EAAUS,UAAUE,OAAOU,KAAKM,CAAA,CAClC,CACF,CAEIX,EAAQX,sBAAsBY,SAChCjB,EAAUK,qBAAuBL,EAAUK,qBAAqBa,OAC9DF,EAAQX,oBAAoB,GAGhCL,EAAUC,gBAAgBoB,KAAKL,EAAQS,GAAG,CAC5C,CAAA,EAGAzB,EAAUa,cAAcF,OAAOuB,KAAK,CAACC,EAAGC,IAClCD,EAAEE,OAASD,EAAEC,MACRF,EAAEE,MAAQD,EAAEC,MACVF,EAAEE,MACJ,GACED,EAAEC,MACJ,EAEA,CAEX,EAEArC,EAAUY,aAAaD,OAAOuB,KAAK,CAACC,EAAGC,IACjCD,EAAEE,OAASD,EAAEC,MACRF,EAAEE,MAAQD,EAAEC,MACVF,EAAEE,MACJ,GACED,EAAEC,MACJ,EAEA,CAEX,EAGA,QAAWV,KAAS3B,EAAUa,cAAcF,OAC1CgB,EAAMK,MAAME,KAAK,CAACC,EAAGC,IACfD,EAAEE,OAASD,EAAEC,MACRF,EAAEE,MAAQD,EAAEC,MACVF,EAAEE,MACJ,GACED,EAAEC,MACJ,EAEA,CAEX,EAIF,QAAWV,KAAS3B,EAAUY,aAAaD,OACzCgB,EAAMK,MAAME,KAAK,CAACC,EAAGC,IACfD,EAAEE,OAASD,EAAEC,MACRF,EAAEE,MAAQD,EAAEC,MACVF,EAAEE,MACJ,GACED,EAAEC,MACJ,EAEA,CAEX,EAGF,OAAOrC,CACT,EAEO,SAASsC,GACdC,EACAC,EACAC,EAA8B,CAE9B,MAAO,CACLA,MAAAA,EACA1C,SAAUD,GAAuB0C,CAAA,EACjCD,QAAAA,EACAG,mBAAoBF,CACtB,CACF,CJ9MO,IAAMG,GAKRC,GAAA,CACH,GAAM,CACJC,MAAAA,EACAC,MAAO,CAAEC,YAAAA,EAAaC,qBAAAA,CAAoB,EAC1CC,oBAAAA,CAAmB,EACjBL,EAEE,CAACM,EAASC,CAAA,EAAcC,GAAMC,SAAS,YAAA,EAEvC,CAAEC,SAAAA,CAAQ,EAAKC,GAAA,EAEfC,EAAkBC,GAAA,EAClB,CAACC,EAAmBC,CAAA,EAAwBN,GAAS,EAAA,EAErD,CAACO,EAAkBC,CAAA,EAAuBR,GAE9C,CAAA,CAAE,EAEE,CAACS,EAA4BC,CAAA,EACjCV,GAAsC,IAAA,EAElCW,EAAiEhB,EAChDiB,IAAI,UAAA,EACzBC,KAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAQD,EAAEC,KAAK,EAE9BC,EAAsC,EAC1C,QAAWC,KAAmBP,EAA2B,CACvD,IAAMQ,EAAuBC,MAAMC,KAAK1B,EAAqB2B,KAAI,CAAA,EAAIC,OAAQC,GAC3EA,EAAIC,WAAW,WAAWP,EAAgBM,GAAG,cAAc,CAAA,EAG7DP,GAAuC,EACvCA,GAAuCE,EAAqBO,MAC9D,CA2GA,OAzGAC,GAAU,IAAA,CACR,GAAI,CAACtB,EAAmB,CACtB,IAAMuB,EAAmE,CAAA,EACrEC,EAAsC,EAW1C,GATAC,OAAOC,QAAQ5B,CAAA,EAAiB6B,QAAQ,CAAC,CAACR,EAAKS,CAAA,IAAO,CAChDT,EAAIC,WAAW,kBAAkB/B,CAAA,GAAc,IAC5C8B,EAAIU,SAAS,+BAAA,GAChBN,EAAsBO,KAAKF,CAAA,EAE7BJ,IAEJ,CAAA,EAEIA,IAAwCZ,EAAqC,CAC/ET,EAAoBoB,CAAA,EACpBtB,EAAqB,EAAA,EAMrB,IAAM8B,EAAyBC,GAAmB,CAChDlC,gBAAAA,EACAmC,WAAY5C,EACZ6C,wBAAyB,CACvBC,SAAUZ,EACVa,QAAS7C,CACX,CACF,CAAA,EAEAc,EACEgC,GACE9C,GAA4C+C,GAC5CP,EACA5C,CAAA,CAAA,CAGN,CACF,CACF,EAAG,CACDA,EACAmB,EACAN,EACAF,EACAT,EACAiB,EAA0Be,OAC1BnB,EACAE,EACAb,EACAD,EACAsB,CAAA,CACD,EAEDU,GAAU,IAAA,CACR,GAAI,CAACtB,EACH,OAEF,IAAIuC,EAAY3C,EAChB,GAAI2C,GAAa,MAAQ,CAACvC,GAAqB,CAACI,EAA4B,CAC1EX,EAAW,EAAA,EACX,MACF,CASA,GANIW,GAA4B+B,UAAUK,OAAOC,MAAMpB,QACrDjB,EAA2B+B,SAASK,MAAMC,KAAKd,QAASe,GAAA,CACtDH,EAAYG,EAAK,CAAEC,oBAAqBJ,CAAU,CAAA,CACpD,CAAA,EAGE,CAACA,GAAa,OAAOA,GAAc,SAAU,CAC/C9C,EAAW,EAAA,EACX,MACF,CAGA,GAAIsB,MAAM6B,QAAQL,CAAA,GAAc,EAAE,SAAUA,GAAY,CACtD9C,EAAW,EAAA,EACX,MACF,CAGA,GAAI,gBAAiB8C,EAAW,CAC9B9C,EAAW,EAAA,EACX,MACF,CAGA,IAAMoD,EAAiBC,GAAqB,CAC1CC,UAAW3C,EAA2BgC,QAAQW,UAC9CC,MAAOC,GAAgB,CAAEC,aAAc9C,CAA2B,CAAA,EAClE+C,MAAO/C,EAA2BgC,QAAQe,KAC5C,CAAA,EACAN,EAAeO,eAAeP,EAAeQ,iBAAiBd,CAAA,CAAA,EAE9D,IAAMe,EACJT,EAAeU,eAAc,EAAGC,KAAK,IAC5BC,GAAA,EAAWC,eAAc,CAClC,GAAM,GAGRjE,EAAW6D,CAAA,CACb,EAAG,CAAC1D,EAAUL,EAAqBS,EAAmBI,CAAA,CAA2B,EAE5EJ,EA+BE2D,GAAC,OAAA,UAAMnE,IA7BVmE,GAACjE,GAAMkE,SAAQ,UACZ7C,MAAM6B,QAAQtC,CAAA,GACbA,EAA0BuD,IAAKhD,GAAA,CAQ7B,IAAMiD,EANuB/C,MAAMC,KAAK1B,EAAqB2B,KAAI,CAAA,EAAIC,OAAQC,GAC3EA,EAAIC,WACF,4BAA4BP,EAAgBM,GAAG,+BAA+B,CAAA,EAIhB0C,IAAK1C,GAC9D7B,EAAqBiB,IAAIY,CAAA,CAClC,EAEA,OACE4C,GAACrE,GAAMkE,SAAQ,WACZE,GAAmBzC,OAChByC,EAAkBD,IAAKG,GACdA,CACT,EACA,KACHnD,EAAgBoD,aAAa,GANXpD,EAAgBM,GAAG,CAS5C,CAAA,GAMV,EKjMA,OAAS+C,kBAAAA,GAAgBC,qBAAAA,GAAmBC,0BAAAA,OAA8B,8DCD1E,MAAkB,QAEX,IAAMC,GAA4BA,IACvCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,WAAWC,OAAO,eAAeC,YAAY,+DCfzD,MAAkB,QAEX,IAAMC,GAA6BA,IACxCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,+DCf7D,MAAkB,QAEX,IAAMC,GAA0BA,IACrCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,+DCf7D,MAAkB,QAEX,IAAMC,GAA2BA,IACtCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,WCd7D,OAASC,wBAAAA,GAAsBC,iBAAAA,GAAeC,gBAAAA,OAAoB,iBAI3D,IAAMC,GAAoBA,CAAAC,EAAAC,IAAA,CAI/B,GAAA,CAAAC,WAAAC,CAAA,EAAiDN,GAAA,EAKjDK,EAJkBJ,GAAA,GAEcM,WAAAC,OAAAC,aAEcH,EAE9CP,GAAqB,kBAAkBM,CAAA,IAAcF,CAAA,GAAcC,CAAA,CAAA,ECN9D,IAAMM,GACXC,GAEQC,IACNC,GAAkBD,EAAME,WAAYH,EAAcC,CAAA,CAAA,EAC3C,MCWJ,IAAMG,EAKuCC,GA0C3CC,GAzCwEC,GAAA,CAC7E,IAAMC,EAAkE,CACtEC,mBAAoBF,CACtB,EAEA,GAAI,OAAOF,GAAY,WACrBG,EAAsBH,QAAU,CAAC,CAC/BK,gBAAAA,EACAC,mBAAAA,EACAC,iBAAAA,EACAC,wBAAAA,CAAuB,IACxB,CACC,IAAMC,EAAWT,EAAQ,CACvBK,gBAAAA,EACAC,mBAAAA,EACAJ,MAAAA,EACAK,iBAAAA,EACAC,wBAAAA,CACF,CAAA,EAEA,OAAIC,EAASC,8BAAgC,OAC3CD,EAASC,4BAA8BR,GAGlCO,CACT,MACK,CAQL,IAAME,EAAiC,CAAE,GAAGX,CAAQ,EACpDW,EAAWD,4BAA8BR,EACzCC,EAAsBH,QAAUW,CAClC,CACA,OAAOR,CACT,CAE6B,ECrExB,IAAMS,GAA8BC,IAClC,CACLC,KAAM,WACNC,eAAgBC,GAChBH,MAAAA,EACAI,IAAK,QACLC,MAAO,EACT,GRCF,IAAMC,GAAgC,CACpCC,GAA2B,CACzB,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EAAI,CACvC,GAAIC,GAAeF,CAAA,GACbA,EAAKG,cAAa,IAAO,OAC3B,SAIJ,IAAMC,EAASJ,EAAKK,UAAS,EAC7B,GAAIH,EAAAA,GAAeE,CAAA,GACbA,EAAOD,cAAa,IAAO,QAKjC,MAAO,EACT,CACA,MAAO,EACT,EACAG,IAAK,YACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,8BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAwB,MAAA,CACjD,EACAC,MAAO,CACT,EACA,CACEnB,eAAgBoB,GAChBlB,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EAAI,CACvC,GAAIC,GAAeF,CAAA,GACbA,EAAKG,cAAa,IAAO,SAC3B,SAIJ,IAAMC,EAASJ,EAAKK,UAAS,EAC7B,GAAIH,EAAAA,GAAeE,CAAA,GACbA,EAAOD,cAAa,IAAO,UAKjC,MAAO,EACT,CACA,MAAO,EACT,EACAG,IAAK,cACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,gCAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAwB,QAAA,CACjD,EACAC,MAAO,CACT,EACA,CACEnB,eAAgBqB,GAChBnB,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EAAI,CACvC,GAAIC,GAAeF,CAAA,GACbA,EAAKG,cAAa,IAAO,QAC3B,SAIJ,IAAMC,EAASJ,EAAKK,UAAS,EAC7B,GAAIH,EAAAA,GAAeE,CAAA,GACbA,EAAOD,cAAa,IAAO,SAKjC,MAAO,EACT,CACA,MAAO,EACT,EACAG,IAAK,aACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,+BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAwB,OAAA,CACjD,EACAC,MAAO,CACT,EACA,CACEnB,eAAgBsB,GAChBpB,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EAAI,CACvC,GAAIC,GAAeF,CAAA,GACbA,EAAKG,cAAa,IAAO,UAC3B,SAIJ,IAAMC,EAASJ,EAAKK,UAAS,EAC7B,GAAIH,EAAAA,GAAeE,CAAA,GACbA,EAAOD,cAAa,IAAO,WAKjC,MAAO,EACT,CACA,MAAO,EACT,EACAG,IAAK,eACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,iCAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAwB,SAAA,CACjD,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUI,GAAqBC,EAAoB,CACpDC,aAAc,CACZC,OAAQ5B,EACV,EACA6B,cAAe,CACbD,OAAQ5B,EACV,CACF,CAAA,ES3JA,OAAS8B,oBAAAA,GAAkBC,gBAAAA,GAAcC,aAAAA,OAAiB,qBAC1D,OAASC,kBAAAA,OAAsB,qBAC/B,OAASC,iBAAAA,GAAeC,qBAAAA,OAAyB,mDCHjD,MAAkB,QAEX,IAAMC,GAA2BA,IACtCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,4gBACFN,KAAK,4DCfX,MAAkB,QAEX,IAAMO,GAAqBA,IAChCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,eACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,2UACFN,KAAK,mBCZJ,IAAMO,EAAqCC,IACzC,CACLC,KAAM,WACNC,eAAgBC,GAChBH,MAAAA,EACAI,IAAK,OACLC,MAAO,EACT,GCTF,OAASC,oBAAAA,GAAkBC,gBAAAA,GAAcC,aAAAA,OAAiB,qBAC1D,OAASC,wBAAAA,OAA4B,UAE9B,IAAMC,GAA0C,CACrDC,KAAM,UACNC,aAAc,CAACJ,EAAA,EACfK,OAAQA,CAACC,EAAMC,IAAA,CACb,GAAI,CAACR,GAAaO,CAAA,EAChB,OAAO,KAGT,IAAME,EAAQD,EAAeD,CAAA,EAAMG,MAAM;CAAA,EACnCC,EAAS,CAAA,EACf,QAAWC,KAAQH,EACjBE,EAAOE,KAAK,KAAOD,CAAA,EAErB,OAAOD,EAAOG,KAAK;CAAA,CACrB,EACAC,OAAQ,OACRC,QAASA,CAACC,EAAYC,EAAUC,EAAQC,IAAA,CACtC,GAAIA,EAAU,CACZ,IAAMC,EAAeJ,EAAWK,mBAAkB,EAClD,GAAItB,GAAaqB,CAAA,EAAe,CAC9BA,EAAaE,OAAOF,EAAaG,gBAAe,EAAI,EAAG,CACrDtB,GAAA,EAAA,GACGgB,CAAA,CACJ,EACDG,EAAaI,OAAO,EAAG,CAAA,EACvBR,EAAWS,OAAM,EACjB,MACF,CACF,CAEA,IAAMnB,EAAOR,GAAA,EACbQ,EAAKoB,OAAM,GAAIT,CAAA,EACfD,EAAWD,QAAQT,CAAA,EACnBA,EAAKkB,OAAO,EAAG,CAAA,CACjB,CACF,EJ1BA,IAAMG,GAAgC,CACpCC,EAAkC,CAChC,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EACnC,GAAI,CAACC,GAAaF,CAAA,GAAS,CAACE,GAAaF,EAAKG,UAAS,CAAA,EACrD,MAAO,GAGX,MAAO,EACT,EACAC,IAAK,aACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,0BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,OAAO,IAAA,CACZ,IAAMZ,EAAYa,GAAA,EAClBC,GAAed,EAAW,IAAMe,GAAA,CAAA,CAClC,CAAA,CACF,EACAC,MAAO,EACT,CAAA,CACD,CAAA,EAGUC,GAA0BC,EAAoB,CACzDC,qBAAsB,CAACC,EAAA,EACvBC,MAAO,CAACC,EAAA,EAERC,UAAW,CACTC,OAAQ,CACNC,EAA6B,CAC3B,CACEC,KAAM5B,GACNQ,IAAK,aACLqB,SAAU,CAAC,QAAS,YAAA,EACpBpB,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,0BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,OAAO,IAAA,CACZ,IAAMZ,EAAYa,GAAA,EAClBC,GAAed,EAAW,IAAMe,GAAA,CAAA,CAClC,CAAA,CACF,CACF,CAAA,CACD,CAAA,CAEL,EACAa,aAAc,CACZJ,OAAQ7B,EACV,EACAkC,cAAe,CACbL,OAAQ7B,EACV,CACF,CAAA,EKtEA,OAASmC,kBAAAA,OAAsB,+ECH/B,MAAkB,QAEX,IAAMC,GAAsBA,IACjCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKJ,OAAO,IAAIK,GAAG,MAAMC,OAAO,eAAeJ,MAAM,IAAIK,EAAE,IAAIC,EAAE,MAClEJ,GAAC,OAAA,CAAKJ,OAAO,IAAIK,GAAG,MAAMC,OAAO,eAAeJ,MAAM,IAAIK,EAAE,IAAIC,EAAE,OAClEJ,GAAC,OAAA,CAAKJ,OAAO,IAAIK,GAAG,MAAMC,OAAO,eAAeJ,MAAM,IAAIK,EAAE,KAAKC,EAAE,mDCfvE,MAAkB,QAEX,IAAMC,GAA6BA,IACxCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,SAAS,UACTC,EAAE,k9CACFP,KAAK,eACLQ,SAAS,uDCff,OAAOC,OAAc,gBACrB,OAAOC,OAAyB,QCUhC,OAASC,sBAAAA,OAA0B,8CACnC,OAAOC,OAAc,gBACrB,OAASC,wBAAAA,OAA4B,iBAkB9B,IAAMC,GAAN,cAA8BH,EAAA,CACnCI,SAEAC,YAAY,CACVC,OAAAA,EACAC,OAAAA,EACAC,IAAAA,CAAG,EAKF,CACD,MAAMD,EAAQC,CAAA,EACd,KAAKJ,SAAWE,CAClB,CAEA,OAAOG,MAAMC,EAAwC,CACnD,OAAO,IAAI,KAAK,CACdJ,OAAQI,EAAKN,SACbG,OAAQG,EAAKC,SACbH,IAAKE,EAAKE,KACZ,CAAA,CACF,CAEA,OAAOC,SAAkB,CACvB,MAAO,OACT,CAEA,OAAOC,WAAqD,CAC1D,MAAO,CAAC,CACV,CAEA,OAAOC,WAAWC,EAAsD,CAClEA,EAAeC,UAAY,IAE7BD,EAAiB,CACf,GAAGA,EACHV,OAAQ,CACN,GAAGU,EAAwBV,OAAOY,IACpC,EACAD,QAAS,CACX,GAEF,IAAMP,EAAOS,GAAuBH,EAAeV,MAAM,EACzDI,OAAAA,EAAKU,UAAUJ,EAAeT,MAAM,EAC7BG,CACT,CAEA,OAAOW,UAAkB,CACvB,MAAO,EACT,CAEAC,SAASC,EAAuBC,EAAmC,CACjE,OAAO,IACT,CAEAC,WAA6B,CAC3B,IAAMC,EAAUC,SAASC,cAAc,KAAA,EAEjCC,EAAOF,SAASG,eAAe,KAAKC,eAAc,CAAA,EACxDL,OAAAA,EAAQM,OAAOH,CAAA,EACR,CAAEH,QAAAA,CAAQ,CACnB,CAEAO,YAAkC,CAChC,MAAO,CACL,GAAG,MAAMA,WAAA,EACTC,KAAM,QACN5B,OAAQ,KAAK6B,UAAS,EACtBlB,QAAS,CACX,CACF,CAEAkB,WAAyB,CACvB,OAAO,KAAKC,UAAS,EAAGhC,QAC1B,CAEA2B,gBAAyB,CACvB,MAAO,aACT,CAEAM,UAAU/B,EAA2B,CACnC,IAAMgC,EAAapC,GAAqBI,CAAA,EAElCiC,EAAW,KAAKC,YAAW,EACjCD,EAASnC,SAAWkC,CACtB,CACF,EAEO,SAASnB,GAAuBb,EAAkC,CACvE,OAAO,IAAIH,GAAgB,CACzBG,OAAQ,CACN,GAAGA,EACHmC,GAAInC,GAAQmC,IAAM,IAAIxC,GAASyC,QAAO,EAAGC,YAAW,CACtD,CACF,CAAA,CACF,CDxHA,IAAMC,GAAiBC,GAAMC,KAAK,IAChC,OAAO,yBAAA,EAAyBC,KAAMC,IAAY,CAChDC,QAASD,EAAOJ,cAClB,EAAA,CAAA,EAGWM,EAAN,cAAwBC,EAAA,CAC7B,OAAOC,MAAMC,EAAwC,CACnD,OAAO,MAAMD,MAAMC,CAAA,CACrB,CAEA,OAAOC,SAAkB,CACvB,OAAO,MAAMA,QAAA,CACf,CAEA,OAAOC,WAAWC,EAAgD,CAC5DA,EAAeC,UAAY,IAE7BD,EAAiB,CACf,GAAGA,EACHE,OAAQ,CACN,GAAGF,EAAwBE,OAAOC,IACpC,EACAF,QAAS,CACX,GAEF,IAAMJ,EAAOO,GAAiBJ,EAAeE,MAAM,EACnDL,OAAAA,EAAKQ,UAAUL,EAAeM,MAAM,EAC7BT,CACT,CAEAU,SAASC,EAAuBC,EAAmC,CACjE,OAAOC,GAACtB,GAAA,CAAeuB,SAAU,KAAKC,UAAS,EAAIC,QAAS,KAAKC,OAAM,GACzE,CAEAC,YAAkC,CAChC,OAAO,MAAMA,WAAA,CACf,CACF,EAEO,SAASX,GAAiBF,EAAkC,CACjE,OAAO,IAAIR,EAAU,CACnBQ,OAAQ,CACN,GAAGA,EACHc,GAAId,GAAQc,IAAM,IAAIC,GAASxB,QAAO,EAAGyB,YAAW,CACtD,CACF,CAAA,CACF,CAEO,SAASC,GAAatB,EAAgD,CAC3E,OAAOA,aAAgBH,CACzB,CE7DA,OAAA0B,KAAAC,OAAA,kEAIA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,4BAAAA,GAA0BC,sBAAAA,GAAoBC,iBAAAA,OAAqB,iBAC5E,OAASC,kBAAAA,OAAsB,2BAC/B,OACEC,oBAAAA,GACAC,gBAAAA,GACAC,iBAAAA,GACAC,YAAAA,GACAC,kBAAAA,OACK,iBACP,OACEC,wBAAAA,GACAC,iBAAAA,GACAC,yBAAAA,GACAC,iBAAAA,GACAC,gBAAAA,GACAC,oBAAAA,GACAC,qBAAAA,GACAC,uBAAAA,GACAC,2BAAAA,OAEK,UACP,OAAgBC,aAAAA,GAAWC,YAAAA,OAAgB,QAmBpC,IAAMC,GAA0DA,IAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EACrE,CAAAC,CAAA,EAAiBC,GAAA,EACjB,CAAAC,WAAAA,EAAAC,YAAAA,CAAA,EAAoCC,GAAA,EACpC,CAAAC,EAAAC,CAAA,EAAsCC,GAAA,IAAsB,EAC5D,CAAAC,EAAAC,CAAA,EAAkCF,GAAiB,EAAA,EACnD,CAAAG,EAAAC,CAAA,EAA0CJ,GAAA,IAAwB,EAClE,CAAAK,KAAAA,EAAAC,EAAAA,CAAA,EAAoBC,GAAA,EACpB,CAAAC,WAAAA,CAAA,EAAuBC,GAAA,EACvB,CAAAC,KAAAA,CAAA,EAAiBC,EAAA,EACjBC,EAAkBC,GAAA,EAGVC,EAAA,+BAAiCJ,EAAAK,EAAAxB,EAAA,CAAA,IAAAuB,GAAAvB,EAAA,CAAA,IAAAqB,GADtBG,EAAAC,GAAA,CAAAC,KACXH,EAAiCI,MAChCN,CAAA,CACT,EAAArB,EAAA,CAAA,EAAAuB,EAAAvB,EAAA,CAAA,EAAAqB,EAAArB,EAAA,CAAA,EAAAwB,GAAAA,EAAAxB,EAAA,CAAA,EAHA,IAAA4B,EAAmBJ,EAKnB,CAAAK,MAAAC,CAAA,EAEIV,EAAA,EADK,CAAAW,qBAAAA,CAAA,EAAAD,EAAwBE,EAAAC,EAkGkB,GAlGlBjC,EAAA,CAAA,IAAAE,GAAAF,EAAA,CAAA,IAAAY,GAAAZ,EAAA,CAAA,IAAAK,GAAAL,EAAA,CAAA,IAAA4B,GAGvBI,EAAAA,IAAA,CAAA,GAAA,CACH9B,EAAAgC,SAAA,CAAAC,CAAA,CAA2B,EAAA,MAAA,IAAAC,MACd,mDAAA,EAAA,OAGXC,GACLnC,EAAAoC,gBAAAC,GAAAC,IAGItC,EAAAuC,OAAA,IAAA,CACE,IAAAC,EAAkBC,GAAA,GAAmBC,GAAA,EAAA,GAEjCC,GAAkBH,CAAA,EAAA,CACpB,IAAAI,EAAkBC,GAAiBP,CAAA,EAEnCQ,GAAyBF,CAAA,EAEzB,GAAA,CAAAG,MAAAA,CAAA,EAAkBP,EAClBQ,EAAkBD,EAAAE,QAAa,EAK7BC,GAAiBF,CAAA,GACjBA,EAAAG,mBAA4B,IAAA,GAC5BH,EAAAI,UACY,EAAAC,YACE,EAAAC,OAAAC,GACML,GAAiBK,CAAA,CAAA,EAAAC,OAAA,GAErCR,EAAAS,OAAgB,CAAA,CAAA,CAGtB,EAAA,IAAAC,EAIF,EAEF1D,EAAAoC,gBAAAuB,GAAAC,GAAA,CAAA,GAGQlD,EAAA,CACF,IAAAmD,EAA8BC,GAAcpD,CAAA,EAAA,OAEvC6C,GAILA,EAAAQ,UAAeH,CAAA,EAEfjD,EAAA,IAAiB,EAAA,IANZ,EAMY,CAInB,IAAAqD,EAAwBC,GAAuBL,CAAA,EAC/CM,OAAAA,GAAA,CAAcF,CAAA,CAAgB,EAC1BG,GAAoBH,EAAAI,iBAAgC,CAAA,GACtDC,GAAmBL,EAAAM,EAAiB,EAAAC,UAA+B,EAAA,EAAA,EAAAb,EAKvE,EAEF1D,EAAAoC,gBAAAoC,GAAAC,GAAA,CAEG,GAAA,CAAAb,OAAAc,EAAAC,QAAAA,CAAA,EAAAF,EAGoC,GAFnCnE,EAAesD,GAAC,IAA0B,EAC1CjD,EAAiBgE,GAAA,IAAW,EAC5BlE,EAAamD,GAAApD,WAAsB,EAAA,EAE/BmE,EACFxE,OAAAA,EAAYuB,CAAA,EAAA,GAId,IAAAkD,EAAAA,OAAAA,EAAA,KAEA5E,EAAA6E,eAAqB,EAAAC,KAAA,IAAA,CACnB,IAAAC,EAAkBtC,GAAA,EACdE,GAAkBH,CAAA,IACpBoC,EAAiBpC,EAAjB,CAEJ,EAEIoC,GAEFzE,EAAYuB,CAAA,EAAA,EAAA,EAAAgC,EAIhB,CAAA,CAAA,EAGH3B,EAAA,CAAC/B,EAAQU,EAAeP,EAAauB,CAAA,EAAW5B,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAY,EAAAZ,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,EAAA4B,EAAA5B,EAAA,CAAA,EAAAgC,EAAAhC,EAAA,CAAA,EAAAiC,IAAAD,EAAAhC,EAAA,CAAA,EAAAiC,EAAAjC,EAAA,CAAA,GA/FnDkF,GAAUlD,EA+FPC,CAAgD,EAAA,CAE9C1B,EAAA,OAAA,KAIL,IAAA4E,EAAyB,GAAGlE,CAAA,gFAA0FV,GAAAG,SAAA,GAEtH0E,EAAsC,+DAA8DT,EAAAU,EAAA,GAAArF,EAAA,CAAA,IAAA+B,GAAA/B,EAAA,EAAA,IAAAO,GAAAP,EAAA,EAAA,IAAAc,GAAAd,EAAA,EAAA,IAAAe,GAAAf,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAA4B,GAAA5B,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAE,GAAAF,EAAA,EAAA,IAAAmF,EAAA,CAU3FE,EAAAC,OAAAC,IAAA,6BAAA,EAAAC,EAAA,CATT,IAAAC,EAAsC1D,EAAA2D,IAAyBN,CAAA,EAC3DrD,EAAA4D,IAAyBP,CAAA,EAA8B,CAAA,EAAA,KAG3DQ,EAAoBH,EAChBA,EAAAI,OAAAC,KAAAC,GAAmCA,EAAArE,OAAenB,GAAAG,SAAa,EAAA,KAC/D,GAAA,CAEC+E,EAAA,CACIJ,EAAA,KAAA,MAAAG,CAAA,CAGT,IAAAQ,EAAyBJ,GAAAK,QAAAC,SACrBC,GAAeP,GAAAK,QAAAC,SAA+BpF,CAAA,EAC9C8E,GAAAlE,KAAa0E,EAAApG,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAA4B,GAAA5B,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAE,GAWOkG,EAAAA,CAAAC,EAAAC,IAAA,CAClBlG,EAAWwB,CAAA,EACN0E,IAILA,EAAA5F,UAAiBA,EAEjBR,EAAAqG,gBAAA1C,GAAoDyC,CAAA,EAAA,EACtDtG,EAAA,EAAA,EAAAI,EAAAJ,EAAA,EAAA,EAAA4B,EAAA5B,EAAA,EAAA,EAAAU,EAAAV,EAAA,EAAA,EAAAE,EAAAF,EAAA,EAAA,EAAAoG,GAAAA,EAAApG,EAAA,EAAA,EAjBF2E,EAAA6B,GAAAC,GAAA,CAAAH,KACQ/F,EAAAqB,WAAAA,EAAA8E,YAEO3F,EAAE,+BAA+BR,GAAAoG,GAAkB,OAAS,QAAA,GAAU,CAAAC,MAC1EZ,GAAoBjF,EAAE,mCAAA,CAAA,CAC/B,EAAA8F,WACW,SAAAC,iBACOlB,GAAA9B,OAAAiD,mBACEX,EASpBY,yBAC0B7B,EAAA8B,iBACR1G,GAAAG,SAAA,CAAA,qKAnBpBiE,GLpKG,IAAMuC,GAAsBC,EAA8C,CAAC,CAAEC,MAAAA,CAAK,KAAQ,CAC/FC,MAAO,CAACC,EAAWC,EAAA,EACnBC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,EAEFC,4BAA6BR,EAC7BS,UAAW,CACTC,OAAQ,CACNV,EAAMW,kBAAkBC,OACpB,CACEC,MAAOb,EAAMW,iBAAiBG,IAAKC,IAC1B,CACLC,KAAMC,GACNC,IAAK,SAAWH,EAChBI,SAAU,CAAC,QAAS,SAAUJ,CAAA,EAC9BK,MAAOA,CAAC,CAAEC,KAAAA,EAAMC,qBAAAA,CAAoB,IAAE,CAMpC,IAAMC,EAJgCD,EAAqBE,IADrB,uDAEpC,EACA,CAAA,EAE8BC,OAAOC,KAAMC,GAAWA,EAAOC,OAASb,CAAA,EAMxE,OAJyBQ,EAAYM,OAAOC,SACxCC,GAAeR,EAAYM,OAAOC,SAAUT,CAAA,EAC5CE,EAAYK,IAGlB,EACAI,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAsB,CAC3CC,GAAI,KACJC,UAAW,GACXC,UAAWvB,CACb,CAAA,CACF,CACF,EACF,EACAG,IAAK,SACLE,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKkB,EAAE,sBAAA,CAElB,EACA,KACJvC,EAAMwC,wBAAwB5B,OAC1B,CACEC,MAAOb,EAAMwC,uBAAuB1B,IAAK2B,IAChC,CACLzB,KAAM0B,GACNxB,IAAK,gBAAkBuB,EACvBtB,SAAU,CAAC,cAAe,eAAgBsB,CAAA,EAC1CrB,MAAOA,CAAC,CAAEC,KAAAA,EAAMC,qBAAAA,CAAoB,IAAE,CAOpC,IAAMC,EAJgCD,EAAqBE,IAFrB,8DAGpC,EACA,CAAA,EAE8BC,OAAOC,KACpCC,GAAWA,EAAOC,OAASa,CAAA,EAO9B,OAJyBlB,EAAYM,OAAOC,SACxCC,GAAeR,EAAYM,OAAOC,SAAUT,CAAA,EAC5CE,EAAYK,IAGlB,EACAI,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBS,GAAkC,CACvDC,OAAQ,CACNR,GAAI,KACJC,UAAW,GACXC,UAAWG,CACb,CACF,CAAA,CACF,CACF,EACF,EACAvB,IAAK,eACLE,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKkB,EAAE,mCAAA,CAElB,EACA,IAAA,EACJM,OAAOC,OAAA,CACX,EACAC,aAAc,CACZrC,OAAQ,CACNV,EAAMW,kBAAkBC,OACpB,CACEoC,KAAM,WACNC,eAAgBhC,GAChBJ,MAAOb,EAAMW,iBAAiBG,IAAI,CAACC,EAAWmC,KACrC,CACLD,eAAgBhC,GAChBkC,SAAUC,OACVlC,IAAK,SAAWH,EAChBK,MAAOA,CAAC,CAAEC,KAAAA,EAAMC,qBAAAA,CAAoB,IAAE,CAMpC,IAAMC,EAJgCD,EAAqBE,IADrB,uDAEpC,EACA,CAAA,EAE8BC,OAAOC,KAAMC,GAAWA,EAAOC,OAASb,CAAA,EAMxE,OAJyBQ,EAAYM,OAAOC,SACxCC,GAAeR,EAAYM,OAAOC,SAAUT,CAAA,EAC5CE,EAAYK,IAGlB,EACAI,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAsB,CAC3CC,GAAI,KACJC,UAAW,GACXC,UAAWvB,CACb,CAAA,CACF,EACAsC,MAAOH,CACT,EACF,EACAhC,IAAK,SACLmC,MAAO,EACT,EACA,KACJrD,EAAMwC,wBAAwB5B,OAC1B,CACEoC,KAAM,WACNC,eAAgBP,GAChB7B,MAAOb,EAAMwC,uBAAuB1B,IAAI,CAAC2B,EAAiBS,KACjD,CACLD,eAAgBP,GAChBS,SAAUC,OACVlC,IAAK,eAAiBuB,EACtBrB,MAAOA,CAAC,CAAEC,KAAAA,EAAMC,qBAAAA,CAAoB,IAAE,CAMpC,IAAMC,EAJgCD,EAAqBE,IADrB,8DAEpC,EACA,CAAA,EAE8BC,OAAOC,KACpCC,GAAWA,EAAOC,OAASa,CAAA,EAO9B,OAJyBlB,EAAYM,OAAOC,SACxCC,GAAeR,EAAYM,OAAOC,SAAUT,CAAA,EAC5CE,EAAYK,IAGlB,EACAI,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBS,GAAkC,CACvDC,OAAQ,CACNN,UAAWG,CACb,CACF,CAAA,CACF,EACAY,MAAOH,CACT,EACF,EACAhC,IAAK,eACLmC,MAAO,EACT,EACA,IAAA,EACJR,OAAOC,OAAA,CACX,CACF,EAAA,sDM7LA,OAASQ,6BAAAA,OAAiC,2CAC1C,OAASC,wBAAAA,GAAsBC,mBAAAA,GAAiBC,YAAAA,OAAgB,UAChE,UAAYC,OAAW,QACvB,OAAmBC,eAAAA,GAAaC,aAAAA,GAAWC,mBAAAA,GAAiBC,UAAAA,GAAQC,YAAAA,OAAgB,QCL7E,IAAMC,EACX,OAAOC,OAAW,KAClB,OAAOA,OAAOC,SAAa,KAC3B,OAAOD,OAAOC,SAASC,cAAkB,ICS3C,IAAMC,GAAeC,GAAe,iBAAkBC,SAAWA,SAASF,aAAe,KAE5EG,GAAoBF,GAAe,uBAAuBG,KAAKC,UAAUC,QAAQ,EAEjFC,GACXN,GAAe,mCAAmCG,KAAKC,UAAUG,SAAS,EAE/DC,GACXR,GAAe,eAAgBS,QAAU,CAACV,GACtC,oBAAqB,IAAIU,OAAOC,WAAW,OAAA,EAC3C,GAEOC,GAAqBX,GAAe,yBAAyBG,KAAKC,UAAUG,SAAS,EAErFK,GACXZ,GAAe,mBAAmBG,KAAKC,UAAUG,SAAS,GAAK,CAACE,OAAOI,SAE5DC,GAAsBd,GAAe,UAAUG,KAAKC,UAAUG,SAAS,EAEvEQ,GAAsBf,GAAe,MAAMG,KAAKC,UAAUC,QAAQ,EAClEW,GAAqBhB,GAAe,mBAAmBG,KAAKC,UAAUG,SAAS,EAG/EU,GACXjB,GAAe,sBAAsBG,KAAKC,UAAUG,SAAS,GAAK,CAACS,GFxBrE,IAAME,GAAQC,GAAA,CACZ,IAAMC,EAAWC,SAASC,cAAc,UAAA,EACxCF,EAASG,MAAQJ,GAAQ,GACzBC,EAASI,MAAMC,SAAW,WAC1BL,EAASI,MAAME,QAAU,IACzBL,SAASM,MAAMC,YAAYR,CAAA,EAC3BA,EAASS,MAAK,EACdT,EAASU,OAAM,EACf,GAAI,CACF,IAAMC,EAASV,SAASW,YAAY,MAAA,EAEpCC,QAAQC,IAAIH,CAAA,CACd,OAASI,EAAO,CACdF,QAAQE,MAAMA,CAAA,CAChB,CACAd,SAASM,MAAMS,YAAYhB,CAAA,CAC7B,EAEMiB,GAAWA,CAACC,EAAkBnB,IAAA,CAClC,IAAMoB,EAAIlB,SAASC,cAAc,GAAA,EACjCiB,EAAEC,aAAa,OAAQ,iCAAmCC,mBAAmBtB,GAAQ,EAAA,CAAA,EACrFoB,EAAEC,aAAa,WAAYF,CAAA,EAC3BC,EAAEf,MAAMkB,QAAU,OAClBrB,SAASM,MAAMC,YAAYW,CAAA,EAC3BA,EAAEI,MAAK,EACPtB,SAASM,MAAMS,YAAYG,CAAA,CAC7B,EAEMK,GAAcC,GAAA,CAmClB,IAAMC,GAlCgBC,CAACC,EAAczB,IAAA,CACnC,OAAQyB,EAAA,CACN,IAAK,QACH,MAAO,gCAAgCzB,EAAM0B,CAAC,KAAK1B,EAAM2B,CAAC,KAE5D,IAAK,QACH,MAAO,oCAAoC3B,CAAA,MAE7C,IAAK,UACH,MAAO,sCAAsCA,CAAA,MAE/C,IAAK,QACH,MAAO,oCAAoCA,CAAA,MAE7C,IAAK,OACH,MAAO,mCAAmCA,CAAA,MAE5C,IAAK,YACH,MAAO,+BAET,IAAK,WACH,MAAO;;uBAEQA,EAAM4B,WAAWC,SAAQ,CAAA;wBACxB7B,EAAM8B,YAAY;sBACpB9B,EAAM+B,UAAUF,SAAQ,CAAA;uBACvB7B,EAAMgC,WAAW;;EAIlC,QACE,MAAO,EACX,CACF,GACoCV,EAAKG,KAAMH,EAAKtB,KAAK,EACzD,OAAQsB,EAAKW,MAAK,CAChB,IAAK,GACH,OAAOV,EACT,IAAK,GACH,MAAO,CAACA,EAAeA,CAAA,EAAeW,KAAK;CAAI,EACjD,QACE,MAAO,sBAAsBZ,EAAKW,KAAK;IACzCV,CAAA;SAEF,CACF,EAEO,SAASY,GAAYC,EAAoB,CAC9C,OAAOA,EAAMC,IAAIC,YAAW,IAAO,MAAQC,GAAWH,EAAMI,QAAUJ,EAAMK,QAC9E,CAGA,SAASC,GAAkBC,EAAoB,CAC7C,GAAM,CAAEC,WAAAA,EAAYC,UAAAA,CAAS,EAAKF,EAC9B,CAAEb,aAAAA,EAAcE,YAAAA,CAAW,EAAKW,EACpC,OAAIb,IAAiB,GACnBA,IAEEE,IAAgB,GAClBA,IAEK,CAAEY,WAAAA,EAAYd,aAAAA,EAAce,UAAAA,EAAWb,YAAAA,CAAY,CAC5D,CAEA,SAASc,GAAwBC,EAAYC,EAA+B,CAC1E,IAAIC,EAAuCF,EACrCG,EAAO,CAAA,EACb,KAAOD,IAAgBD,GACjBC,GAAgB,MAClBC,EAAKC,QACHC,MAAMC,KAAKJ,GAAaK,YAAYC,YAAc,CAAA,CAAE,EAAEC,QAAQP,CAAA,CAAA,EAGlEA,EAAcA,GAAaK,WAE7B,OAAOJ,CACT,CAEA,IAAMO,GAAa,IAAIC,IAAI,CACzB,QACA,YACA,SACA,SACA,YACA,aACA,UACA,WAAA,CACD,EAWD,SAASC,GAAgBC,EAAqB,CAC5C,GAAM,CAACC,EAAOC,CAAA,EAAYC,GAAgB,CAAA,CAAE,EACtC,CAACC,EAAaC,CAAA,EAAkBF,GAAS,EAAA,EACzC,CAAA,CAAGG,CAAA,EAAuBH,GAAS,EAAA,EACnC,CAACI,EAAeC,CAAA,EAAoBL,GAAS,EAAA,EAC7CM,EAAuBC,GAA6B,IAAA,EACpDC,EAA6BD,GAAO,EAAA,EACpCE,EAASF,GAAuB,IAAA,EAEhCG,EAAmBC,GAAY,IAC5Bd,EACN,CAACA,CAAA,CAAO,EAELe,EAAsBD,GAAY,IAAA,CACtC,IAAM1B,EAAcY,EAAOgB,eAAc,EACnCC,EAAmBC,OAAOC,aAAY,EAE5C,OACE/B,GAAe,MACf6B,GAAoB,MACpBA,EAAiBjC,YAAc,MAC/BiC,EAAiBhC,WAAa,MAC9B,CAACG,EAAYgC,SAASH,EAAiBjC,UAAU,GACjD,CAACI,EAAYgC,SAASH,EAAiBhC,SAAS,EAEzC,KAGF;;;;;;;;;;;;;;;;;EAiBTgB,EAAMoB,IAAI5D,EAAA,EAAYa,KAAK;CAAI,CAAA;;;KAI/B,EAAG,CAAC0B,EAAQC,CAAA,CAAM,EAIZqB,EAAWR,GACf,CAACjD,EAAczB,IAAA,CACb8D,EAAUqB,GAAA,CAER,IAAMC,EAAevB,EAAMwB,OAAS,EAC9BC,EAAWzB,EAAMuB,CAAA,EACvB,GAAIE,GACEA,EAAS7D,OAASA,EAAM,CAC1B,GAAIA,IAAS,OAEX,MAAO,CAAA,GACFoC,EAAM0B,MAAM,EAAGH,CAAA,EAClB,CAAE,GAAGE,EAAUtF,MAAOsF,EAAStF,MAAQA,CAAM,CAAA,EAI/C,GAAIsF,EAAStF,QAAUA,EACrB,MAAO,CAAA,GAAI6D,EAAM0B,MAAM,EAAGH,CAAA,EAAe,CAAE,GAAGE,EAAUrD,MAAOqD,EAASrD,MAAQ,CAAE,CAAA,CAGxF,CAGF,MAAO,CAAA,GAAIkD,EAAc,CAAE1D,KAAAA,EAAMQ,MAAO,EAAGjC,MAAAA,CAAM,CAAA,CACnD,CAAA,CACF,EACA,CAAC6D,EAAOC,CAAA,CAAS,EAGnB0B,GAAgB,IAAA,CACd,IAAMC,EAAarD,GAAA,CACjB,GAAI,CAAC4B,EACH,OAEF,IAAM3B,EAAMD,EAAMC,IACdF,GAAYC,CAAA,EACd8C,EAAS,YAAa,EAAA,EACbzB,GAAWiC,IAAIrD,CAAA,EACxB6C,EAAS,QAAS9C,EAAMC,GAAG,EAClB,CAAA,GAAIA,CAAA,EAAKgD,OAAS,EAC3BH,EAAS,UAAW9C,EAAMC,GAAG,EAE7B6C,EAAS,OAAQ9C,EAAMC,GAAG,CAE9B,EAEMsD,EAAWvD,GAAA,CACf,GAAI,CAAC4B,EACH,OAEF,IAAM3B,EAAMD,EAAMC,IACd,CAACoB,GAAWiC,IAAIrD,CAAA,GAAQ,CAAA,GAAIA,CAAA,EAAKgD,OAAS,GAC5CH,EAAS,QAAS9C,EAAMC,GAAG,CAE/B,EAEA,OAAOuB,EAAOgC,qBACZ,CAAC5C,EAAiC6C,IAAA,CAC5BA,IAAoB,OACtBA,EAAgBC,oBAAoB,UAAWL,CAAA,EAC/CI,EAAgBC,oBAAoB,QAASH,CAAA,GAE3C3C,IAAgB,OAClBA,EAAY+C,iBAAiB,UAAWN,CAAA,EACxCzC,EAAY+C,iBAAiB,QAASJ,CAAA,EAE1C,CAAA,CAEJ,EAAG,CAAC/B,EAAQI,EAAakB,CAAA,CAAS,EAElCM,GAAgB,IAAA,CACVhB,EAAOwB,SACTxB,EAAOwB,QAAQC,SAAS,EAAGzB,EAAOwB,QAAQE,YAAY,CAE1D,EAAG,CAACvB,CAAA,CAAoB,EAExBwB,GAAU,IAAA,CACR,GAAItC,EAAO,CACT,IAAMuC,EAAczB,EAAA,EAChByB,IAAgB,MAClBhC,EAAiBgC,CAAA,EAEf5B,EAAOwB,SACTxB,EAAOwB,QAAQC,SAAS,EAAGzB,EAAOwB,QAAQE,YAAY,CAE1D,CACF,EAAG,CAACvB,EAAqBd,CAAA,CAAM,EAE/BsC,GAAU,IACqBvC,EAAOyC,uBAClC,CAAC,CAAEC,cAAAA,EAAeC,YAAAA,EAAaC,YAAAA,CAAW,IAAE,CAC1C,GAAI,CAACxC,EACH,OAEF,IAAMyC,EAAmBD,EAAYE,WAC/BC,EAAoBtC,EAAqB2B,QACzCY,EAA0BrC,EAA2ByB,QAC3D,GAAIW,IAAsBF,EAAkB,CAC1C,GAAIF,EAAYM,OAAS,GAAKP,EAAcO,OAAS,GAAK,CAACD,EAAyB,CAClF,IAAM/B,EAAmBC,OAAOC,aAAY,EAC5C,GACEF,IACCA,EAAiBjC,YAAc,MAAQiC,EAAiBhC,WAAa,MAEtE,MAEJ,CACAwB,EAAqB2B,QAAUS,CACjC,CACAlC,EAA2ByB,QAAU,GACrC,IAAMI,EAAczB,EAAA,EAChByB,IAAgB,MAClBhC,EAAiBgC,CAAA,CAErB,CAAA,EAGD,CAACxC,EAAQe,EAAqBX,EAAakB,CAAA,CAAS,EAGvDiB,GAAU,IACHnC,EAGwBJ,EAAOyC,uBAAuB,IAAA,CACzD,IAAMrD,EAAcY,EAAOgB,eAAc,EACrC5B,IAAgB,MAClBkB,EAAoBlB,GAAa8D,SAAA,CAErC,CAAA,EAPE,OASD,CAAClD,EAAQI,CAAA,CAAY,EAGxB,IAAM+C,EAAwBrC,GAC3BsC,GAAA,CACMhD,IACHgD,EAAcC,OAAO,IAAA,CACnB,IAAMC,EAAOC,GAAA,EACbD,EAAKE,MAAK,EACV,IAAMxH,EAAOyH,GAAA,EACbH,EAAKI,OAAOC,GAAA,EAAuBD,OAAO1H,CAAA,CAAA,EAC1CA,EAAKW,OAAM,CACb,CAAA,EACAuD,EAAS,CAAA,CAAE,GAEbG,EAAgBuD,GAAuB,CAACA,CAAA,CAC1C,EACA,CAACxD,CAAA,CAAY,EAGTyD,EAAkB/C,GAAY,IAAA,CAClC,GAAI,CAACV,EACH,OAEF,IAAMa,EAAmBC,OAAOC,aAAY,EAC5C,GACEF,IAAqB,MACrBA,EAAiBjC,YAAc,MAC/BiC,EAAiBhC,WAAa,KAE9B,OAEF,GAAM,CAAED,WAAAA,EAAYd,aAAAA,EAAce,UAAAA,EAAWb,YAAAA,CAAW,EAAKU,GAAkBmC,CAAA,EACzE7B,EAAcyB,EAAA,EAAmBG,eAAc,EACjDhD,EACAgB,IAAe,OACjBhB,EAAakB,GAAwBF,EAAYI,CAAA,GAEnD,IAAIjB,EACAc,IAAc,OAChBd,EAAYe,GAAwBD,EAAWG,CAAA,GAEjDkC,EAAS,WAAY,CACnBtC,WAAAA,EACAd,aAAAA,EACAF,WAAAA,EACAiB,UAAAA,EACAb,YAAAA,EACAD,UAAAA,CACF,CAAA,CACF,EAAG,CAACmD,EAAUlB,EAAaS,CAAA,CAAiB,EAEtCiD,EAAchD,GAAY,IAAA,CAC9B/E,GAAKgF,EAAA,CAAA,CACP,EAAG,CAACA,CAAA,CAAoB,EAElBgD,EAAkBjD,GAAY,IAAA,CAClC5D,GAAS,UAAW6D,EAAA,CAAA,CACtB,EAAG,CAACA,CAAA,CAAoB,EA8DxB,MAAO,CA3DLiD,GAAC,SAAA,CACCC,UAAW,qBAAqB7D,EAAc,SAAW,EAAA,GACzD8D,GAAG,uBACHC,QAAUC,GAAA,CACRjB,EAAsBtC,EAAA,CAAA,EACtBuD,EAAEC,eAAc,CAClB,EACAC,MAAOlE,EAAc,wBAA0B,uBAC/CmE,KAAK,kBAEJnE,EAAc,wBAA0B,yBAG9BA,EACboE,GAAC,MAAA,CAAIP,UAAU,iCACbO,GAAC,MAAA,CAAIP,UAAU,kCACbD,GAAC,SAAA,CACCC,UAAU,uBACVC,GAAG,gCACHC,QAAUC,GAAA,CACRP,EAAA,EACAO,EAAEC,eAAc,CAClB,EACAC,MAAM,kBACNC,KAAK,kBACN,oBAGDP,GAAC,SAAA,CACCC,UAAU,uBACVC,GAAG,4BACHC,QAAUC,GAAA,CACRN,EAAA,EACAM,EAAEC,eAAc,CAClB,EACAC,MAAM,oBACNC,KAAK,kBACN,SAGDP,GAAC,SAAA,CACCC,UAAU,uBACVC,GAAG,gCACHC,QAAUC,GAAA,CACRL,EAAA,EACAK,EAAEC,eAAc,CAClB,EACAC,MAAM,qBACNC,KAAK,kBACN,gBAIHP,GAAC,MAAA,CAAIE,GAAG,gBAAgBO,IAAK7D,WAC1BL,OAGH,IAEY,CAClB,CACO,IAAMmE,GAAiDA,IAAA,CAC5D,GAAM,CAAC1E,CAAA,EAAU2E,GAAA,EACX,CAACC,EAAoBC,CAAA,EAAsB9E,GAAgBC,CAAA,EAEjE,OACEwE,GAAOM,YAAQ,WACbd,GAAC,IAAA,UAAE,OACFY,EACAC,EACDb,GAAC,IAAA,UAAE,WAGT,EGrcO,IAAMe,GAA4BC,EAAoB,CAC3DC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,CAEJ,CAAA,ECZA,OAAAC,KAAAC,OAAA,kEACA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,YAAAA,OAAgB,oCACzB,MAAuB,QAMhB,IAAMC,GAA6CA,IAAA,CAAA,IAAAC,EAAAJ,GAAA,CAAA,EACxD,CAAAK,CAAA,EAAiBJ,GAAA,EAAAK,EAAA,OAAAF,EAAA,CAAA,IAAAC,GAEfC,EAAAC,GAAAL,GAAA,CAAAG,OAAAA,EAAAG,0BAE4B,0BAAAC,+BACK,gCAAAC,yBACN,yBAAAC,+BACM,gCAAAC,wBACP,wBAAAC,cACV,kBAAA,CAAA,wBAPhBP,GCPG,IAAMQ,GAAwBC,EAAoB,CACvDC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,CAEJ,CAAA,ECXA,OAASC,qBAAAA,GAAmBC,uBAAAA,OAA2B,mDCAvD,MAAkB,QAEX,IAAMC,GAAqBA,IAChCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,eACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,mcACFN,KAAK,mBCbJ,IAAMO,EAA+BC,IACnC,CACLC,KAAM,UACND,MAAAA,EACAE,IAAK,SACLC,MAAO,EACT,GCPK,IAAMC,GAA0C,CACrDC,KAAM,cACNC,OAAQ,CAAC,OAAQ,QAAA,EACjBC,IAAK,KACP,EAEaC,GAAgD,CAC3DH,KAAM,cACNC,OAAQ,CAAC,OAAQ,QAAA,EACjBG,UAAW,GACXF,IAAK,KACP,EAEaG,GAAmC,CAC9CL,KAAM,cACNC,OAAQ,CAAC,MAAA,EACTC,IAAK,IACP,EAEaI,GAAyC,CACpDN,KAAM,cACNC,OAAQ,CAAC,MAAA,EACTG,UAAW,GACXF,IAAK,IACP,EHXA,IAAMK,GAAgC,CACpCC,EAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAChBC,GAAkBD,CAAA,EACbA,EAAUE,UAAU,MAAA,EAEtB,GAETC,IAAK,OACLC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAqB,MAAA,CAC9C,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAAoBC,EAAoB,CAAC,CAAEC,mBAAAA,CAAkB,IAAE,CAC1E,IAAMC,EAAuB,CAACC,GAAWC,EAAA,EACzC,OAAIH,EAAmBI,IAAI,QAAA,GACzBH,EAAqBI,KAAKC,GAAwBC,EAAA,EAG7C,CACLN,qBAAAA,EACAO,aAAc,CACZC,OAAQzB,EACV,EACA0B,cAAe,CACbD,OAAQzB,EACV,CACF,CACF,CAAA,EI/CA,OAAS2B,qBAAAA,GAAmBC,uBAAAA,OAA2B,8DCDvD,MAAkB,QAEX,IAAMC,GAAqBA,IAChCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKC,EAAE,mCAAmCC,OAAO,iBAClDF,GAAC,OAAA,CAAKC,EAAE,mCAAmCC,OAAO,oBCb/C,IAAMC,GAAqC,CAChDC,KAAM,cACNC,OAAQ,CAAC,MAAA,EACTC,IAAK,GACP,EFKA,IAAMC,GAAgC,CACpCC,EAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAChBC,GAAkBD,CAAA,EACbA,EAAUE,UAAU,MAAA,EAEtB,GAETC,IAAK,aACLC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAqB,MAAA,CAC9C,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAA0BC,EAAoB,CACzDC,qBAAsB,CAACC,EAAA,EACvBC,aAAc,CACZC,OAAQnB,EACV,EACAoB,cAAe,CACbD,OAAQnB,EACV,CACF,CAAA,EGpCA,OAASqB,qBAAAA,GAAmBC,uBAAAA,OAA2B,mDCDvD,MAAkB,QAEX,IAAMC,GAAuBA,IAClCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,eACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,2ZACFN,KAAK,mBCdJ,IAAMO,GAAqC,CAChDC,KAAM,cACNC,OAAQ,CAAC,QAAA,EACTC,IAAK,GACP,EAEaC,GAA2C,CACtDH,KAAM,cACNC,OAAQ,CAAC,QAAA,EACTG,UAAW,GACXF,IAAK,GACP,EFFA,IAAMG,GAAgC,CACpCC,EAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAChBC,GAAkBD,CAAA,EACbA,EAAUE,UAAU,QAAA,EAEtB,GAETC,IAAK,SACLC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAqB,QAAA,CAC9C,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAAsBC,EAAoB,CACrDC,qBAAsB,CAACC,GAAaC,EAAA,EACpCC,aAAc,CACZC,OAAQpB,EACV,EACAqB,cAAe,CACbD,OAAQpB,EACV,CACF,CAAA,EGpCA,OAASsB,qBAAAA,GAAmBC,uBAAAA,OAA2B,8DCDvD,MAAkB,QAEX,IAAMC,GAA8BA,IACzCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,eACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CACCC,EAAE,mjBACFP,KAAK,iBAEPM,GAAC,OAAA,CAAKC,EAAE,8CAA8CP,KAAK,oBChBxD,IAAMQ,GAAuC,CAClDC,KAAM,cACNC,OAAQ,CAAC,eAAA,EACTC,IAAK,IACP,EFGA,IAAMC,GAAgB,CACpBC,EAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAChBC,GAAkBD,CAAA,EACbA,EAAUE,UAAU,eAAA,EAEtB,GAETC,IAAK,gBACLC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAqB,eAAA,CAC9C,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAA6BC,EAAoB,CAC5DC,qBAAsB,CAACC,EAAA,EACvBC,aAAc,CACZC,OAAQnB,EACV,EACAoB,cAAe,CACbD,OAAQnB,EACV,CACF,CAAA,EGlCA,OAASqB,qBAAAA,GAAmBC,uBAAAA,OAA2B,mDCDvD,MAAkB,QAEX,IAAMC,GAA0BA,IACrCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,eACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,2iBACFN,KAAK,mBDNX,IAAMO,GAAgC,CACpCC,EAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAChBC,GAAkBD,CAAA,EACbA,EAAUE,UAAU,WAAA,EAEtB,GAETC,IAAK,YACLC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAqB,WAAA,CAC9C,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAAyBC,EAAoB,CACxDC,aAAc,CACZC,OAAQjB,EACV,EACAkB,cAAe,CACbD,OAAQjB,EACV,CACF,CAAA,EElCA,OAASmB,qBAAAA,GAAmBC,uBAAAA,OAA2B,mDCDvD,MAAkB,QAEX,IAAMC,GAA4BA,IACvCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,eACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,mhBACFN,KAAK,mBDNX,IAAMO,GAAgC,CACpCC,EAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAChBC,GAAkBD,CAAA,EACbA,EAAUE,UAAU,aAAA,EAEtB,GAETC,IAAK,cACLC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAqB,aAAA,CAC9C,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAA2BC,EAAoB,CAC1DC,aAAc,CACZC,OAAQjB,EACV,EACAkB,cAAe,CACbD,OAAQjB,EACV,CACF,CAAA,EElCA,OAASmB,qBAAAA,GAAmBC,uBAAAA,OAA2B,8DCDvD,MAAkB,QAEX,IAAMC,GAA0BA,IACrCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,eACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CACCC,EAAE,gPACFP,KAAK,iBAEPM,GAAC,OAAA,CAAKC,EAAE,4CAA4CP,KAAK,oBDR7D,IAAMQ,GAAgC,CACpCC,EAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAChBC,GAAkBD,CAAA,EACbA,EAAUE,UAAU,WAAA,EAEtB,GAETC,IAAK,YACLC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAqB,WAAA,CAC9C,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAAyBC,EAAoB,CACxDC,aAAc,CACZC,OAAQjB,EACV,EACAkB,cAAe,CACbD,OAAQjB,EACV,CACF,CAAA,EEhCA,OAASmB,sBAAAA,GAAoBC,kBAAAA,GAAgBC,eAAAA,OAAmB,qBAChE,OAASC,kBAAAA,OAAsB,qBAC/B,OAASC,iBAAAA,GAAeC,qBAAAA,OAAyB,mDCLjD,MAAkB,QAEX,IAAMC,GAAmBA,IAC9BC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,yLACFN,KAAK,4DCfX,MAAkB,QAEX,IAAMO,GAAmBA,IAC9BC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,keACFN,KAAK,4DCfX,MAAkB,QAEX,IAAMO,GAAmBA,IAC9BC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,wpBACFN,KAAK,4DCfX,MAAkB,QAEX,IAAMO,GAAmBA,IAC9BC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,sOACFN,KAAK,4DCfX,MAAkB,QAEX,IAAMO,GAAmBA,IAC9BC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,ygBACFN,KAAK,4DCfX,MAAkB,QAEX,IAAMO,GAAmBA,IAC9BC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CACCQ,EAAE,ooBACFN,KAAK,mBCbX,OAASO,sBAAAA,GAAoBC,kBAAAA,GAAgBC,eAAAA,OAAmB,qBCAzD,IAAMC,GACXC,GAEO,CAACC,EAAYC,EAAUC,IAAA,CAC5B,IAAMC,EAAOJ,EAAWG,CAAA,EACpBC,IACFA,EAAKC,OAAM,GAAIH,CAAA,EACfD,EAAWK,QAAQF,CAAA,EACnBA,EAAKG,OAAO,EAAG,CAAA,EAEnB,EDNK,IAAMC,GACXC,GAAA,CAMA,IAAMC,EAAU,KAHKD,EAAoBE,IAAKC,GAAQC,OAAOD,EAAIE,MAAM,CAAA,CAAA,CAAA,EAGrCH,IAAKI,GAAS,KAAKA,CAAA,GAAO,EAAEC,KAAK,GAAA,CAAA,OAC7DC,EAAS,IAAIC,OAAOR,CAAA,EAE1B,MAAO,CACLS,KAAM,UACNC,aAAc,CAACC,EAAA,EACfC,OAAQA,CAACC,EAAMC,IAAA,CACb,GAAI,CAACC,GAAeF,CAAA,EAClB,OAAO,KAET,IAAMG,EAAQb,OAAOU,EAAKI,OAAM,EAAGb,MAAM,CAAA,CAAA,EACzC,MAAO,IAAIc,OAAOF,CAAA,EAAS,IAAMF,EAAeD,CAAA,CAClD,EACAN,OAAAA,EACAY,QAASC,GAAiBC,GAAA,CACxB,IAAMnB,EAAO,IAAMmB,EAAM,CAAA,EAAGC,OAC5B,OAAOC,GAAmBrB,CAAA,CAC5B,CAAA,CACF,CACF,EPXA,IAAMsB,GAAeC,GAAA,CACnB,IAAMC,EAAYC,GAAA,EAClBC,GAAeF,EAAW,IAAMG,GAAmBJ,CAAA,CAAA,CACrD,EAEMK,GAAc,CAClBC,GAAIC,GACJC,GAAIC,GACJC,GAAIC,GACJC,GAAIC,GACJC,GAAIC,GACJC,GAAIC,EACN,EAEaC,GAAuBC,EAAyC,CAAC,CAAEC,MAAAA,CAAK,IAAE,CACrF,GAAM,CAAEC,oBAAAA,EAAsB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAA,CAAK,EAAKD,EAEjEE,EAAgC,CACpCC,EACEF,EAAoBG,IAAI,CAACxB,EAAayB,KAC7B,CACLC,eAAgBrB,GAAYL,CAAA,EAC5B2B,SAAUA,CAAC,CAAE1B,UAAAA,CAAS,IAAE,CACtB,GAAI,CAAC2B,GAAkB3B,CAAA,EACrB,MAAO,GAET,QAAW4B,KAAQ5B,EAAU6B,SAAQ,EAAI,CACvC,GAAIC,GAAeF,CAAA,GAASA,EAAKG,OAAM,IAAOhC,EAC5C,SAGF,IAAMiC,EAASJ,EAAKK,UAAS,EAC7B,GAAIH,EAAAA,GAAeE,CAAA,GAAWA,EAAOD,OAAM,IAAOhC,GAIlD,MAAO,EACT,CACA,MAAO,EACT,EACAmC,IAAKnC,EACLoC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,wBAAyB,CAAEC,aAAcvC,EAAYwC,OAAO,CAAA,CAAG,CAAA,EAE/EC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,OAAO,IAAA,CACZ5C,GAAYC,CAAA,CACd,CAAA,CACF,EACA4C,MAAOnB,EAAI,CACb,EACF,CAAA,CAAA,EAIJ,MAAO,CACLoB,qBAAsB,CAACC,GAAoBzB,CAAA,CAAA,EAC3C0B,MAAO,CAACC,EAAA,EACRC,4BAA6B7B,EAC7B8B,UAAW,CACTC,OAAQ9B,GAAqB+B,OACzB,CACEC,EACEhC,EAAoBG,IAAKxB,IAChB,CACLsD,KAAMjD,GAAYL,CAAA,EAClBmC,IAAK,WAAWnC,EAAYwC,OAAO,CAAA,CAAA,GACnCe,SAAU,CAAC,UAAWvD,CAAA,EACtBoC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,wBAAyB,CACrCC,aAAcvC,EAAYwC,OAAO,CAAA,CACnC,CAAA,EAEFC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,OAAO,IAAA,CACZ5C,GAAYC,CAAA,CACd,CAAA,CACF,CACF,EACF,CAAA,CAAA,EAGJ,CAAA,CACN,EACAwD,aAAc,CACZL,OAAQ9B,GAAqB+B,OAAS9B,EAAgB,CAAA,CACxD,EACAmC,cAAe,CACbN,OAAQ9B,GAAqB+B,OAAS9B,EAAgB,CAAA,CACxD,CACF,CACF,CAAA,ES/GA,OAASoC,oBAAAA,OAAwB,mDCDjC,MAAkB,QAEX,IAAMC,GAA+BA,IAC1CC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENP,GAAC,OAAA,CAAKE,KAAK,eAAeE,OAAO,IAAIE,MAAM,KAAKE,EAAE,IAAIC,EAAE,8DCb5D,MAAkB,QAEX,IAAMC,GAAoBA,IAC/BC,GAAC,MAAA,CAAIC,KAAK,OAAOC,OAAO,KAAKC,QAAQ,YAAYC,MAAM,KAAKC,MAAM,uCAChEC,GAAC,OAAA,CAAKC,EAAE,WAAWC,OAAO,iBAC1BF,GAAC,OAAA,CAAKC,EAAE,WAAWC,OAAO,oBCFvB,IAAMC,EAAoCC,IACxC,CACLC,KAAM,WACNC,eAAgBC,GAChBH,MAAAA,EACAI,IAAK,MACLC,MAAO,EACT,GCHK,IAAMC,GAA0C,CACrDC,KAAM,UACNC,aAAc,CAACC,EAAA,EACfC,OAAQA,CAACC,EAAMC,IACRC,GAAsBF,CAAA,EAGpB,MAFE,KAKXG,OAAQ,WACRC,QAAUC,GAAA,CACR,IAAML,EAAOM,GAAA,EACTN,GACFK,EAAWD,QAAQJ,CAAA,CAEvB,CACF,ECzBA,OAAAO,KAAAC,OAAA,yBAEA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,4BAAAA,OAAgC,iBACzC,OAASC,iBAAAA,GAAeC,qBAAAA,GAAmBC,2BAAAA,OAA+B,UAC1E,OAASC,aAAAA,OAAiB,QAWnB,IAAMC,GAAmDA,IAAA,CAAA,IAAAC,EAAAC,GAAA,CAAA,EAC9D,CAAAC,CAAA,EAAiBC,GAAA,EAAAC,EAAAC,EAAA,OAAAL,EAAA,CAAA,IAAAE,GAEPE,EAAAA,IACDF,EAAAI,gBAAAC,GAAAC,GAAA,CAGH,IAAAC,EAAkBC,GAAA,EAAA,GAAA,CAEbC,GAAkBF,CAAA,EAAA,MAAA,GAIkB,GAAvBA,EAAAG,MAAAC,QAAuB,IAErC,KAAc,CAChB,IAAAC,EAA2BC,GAAA,EAC3BC,GAAyBF,CAAA,CAAA,CAAA,MAAA,EAAA,EAAAG,EAK7B,EAEDZ,EAAA,CAACH,CAAA,EAAOF,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,EAAAK,IAAAD,EAAAJ,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,GArBXkB,GAAUd,EAqBPC,CAAQ,EAAA,IAAA,EL3BN,IAAMc,GAA8BC,EAAoB,CAC7DC,qBAAsB,CAACC,EAAA,EACvBC,MAAO,CAACC,EAAA,EACRC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,EAEFC,UAAW,CACTC,OAAQ,CACNC,EAA6B,CAC3B,CACEC,KAAMC,GACNC,IAAK,iBACLC,SAAU,CAAC,KAAM,kBAAmB,OAAQ,WAAA,EAC5CC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,8BAAA,EAGhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAgCC,MAAA,CACzD,CACF,CAAA,CACD,CAAA,CAEL,EACAC,aAAc,CACZd,OAAQ,CACNe,EAAiC,CAC/B,CACEC,eAAgBb,GAChBc,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAiBD,CAAA,GAAc,CAACA,EAAUE,SAAQ,EAAGC,OACxD,MAAO,GAGT,IAAMC,EAAYJ,EAAUE,SAAQ,EAAG,CAAA,EACvC,OAAOG,GAAsBD,CAAA,CAC/B,EACAlB,IAAK,iBACLE,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,8BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAgCC,MAAA,CACzD,CACF,CAAA,CACD,CAAA,CAEL,CACF,CAAA,EM9DA,OAASW,0BAAAA,GAAwBC,2BAAAA,OAA+B,8DCDhE,MAAkB,QAEX,IAAMC,GAA+BA,IAC1CC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,2CAA2CP,KAAK,wEChB5D,MAAkB,QAEX,IAAMU,GAA+BA,IAC1CC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,eAAeC,OAAO,eAAeC,YAAY,QACzDH,GAAC,OAAA,CAAKC,EAAE,wCAAwCP,KAAK,oBCdlD,IAAMU,GAA+BC,IACnC,CACLC,KAAM,UACND,MAAAA,EACAE,IAAK,SACLC,MAAO,EACT,GHEF,IAAMC,GAAgC,CACpCC,GAA4B,CAC1B,CACEC,eAAgBC,GAChBC,SAAUA,IAAM,GAChBC,UAAWA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACvB,GAAI,CAACA,GAAa,CAACA,GAAWC,SAAA,GAAYC,OACxC,MAAO,GAET,QAAWC,KAAQH,EAAUC,SAAQ,EAEnC,GACE,aAAeE,GAAQA,EAAMC,SAAsB,GAClDD,EAAKE,UAAS,GAAM,aAAcF,EAAKE,UAAS,GAAMF,EAAKE,UAAS,EAAGD,SAAW,EAEnF,MAAO,GAGX,MAAO,EACT,EACAE,IAAK,iBACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,8BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAyBC,MAAA,CAClD,EACAC,MAAO,CACT,EACA,CACEnB,eAAgBoB,GAChBlB,SAAUA,IAAM,GAChBQ,IAAK,iBACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,8BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBK,GAAwBH,MAAA,CACjD,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUG,GAAsBC,EAAoB,CACrDC,aAAc,CACZC,OAAQ3B,EACV,EACA4B,cAAe,CACbD,OAAQ3B,EACV,CACF,CAAA,EI1DA,OAAS6B,uBAAAA,OAA2B,iBACpC,OAASC,iBAAAA,GAAeC,qBAAAA,OAAyB,mDCJjD,MAAkB,QAEX,IAAMC,GAAqBA,IAChCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENN,GAAC,OAAA,CACCO,EAAE,mOACFC,OAAO,eACPC,cAAc,QACdC,eAAe,YCdrB,OAASC,gBAAAA,OAAoB,qBAEtB,SAASC,GAAgBC,EAAyB,CACvD,GAAM,CAAEC,OAAAA,CAAM,EAAKD,EACb,CAAEE,MAAAA,CAAK,EAAKF,EACZG,EAAaH,EAAUC,OAAOG,QAAO,EACrCC,EAAYL,EAAUE,MAAME,QAAO,EACzC,OAAID,IAAeE,EACVF,EAEUH,EAAUM,WAAU,EAE9BR,GAAaI,CAAA,EAASC,EAAaE,EAErCP,GAAaG,CAAA,EAAUE,EAAaE,CAC7C,CChBO,IAAME,GAAuCC,IAC3C,CACLC,KAAM,UACND,MAAAA,EACAE,IAAK,WACLC,MAAO,EACT,GCEF,OAASC,mBAAAA,GAAiBC,eAAAA,OAAmB,UCE7C,OAASC,0BAAAA,GAAwBC,uBAAAA,OAA2B,iBAC5D,OAAOC,OAAc,gBACrB,OACEC,yBAAAA,GACAC,mBAAAA,GACAC,iBAAAA,GACAC,kBAAAA,GACAC,qBAAAA,GACAC,eAAAA,GACAC,iBAAAA,OACK,UAKP,IAAMC,GAA0B,IAAIC,IAAI,CAAC,QAAS,SAAU,UAAW,OAAQ,MAAA,CAAO,EAGzEC,EAAN,MAAMA,UAAiBJ,EAAA,CAC5BK,SACAC,KAEAC,YAAY,CACVC,GAAAA,EACAC,OAAAA,EAAS,CACPC,IAAK,KACLC,SAAU,SACVC,OAAQ,GACRC,IAAKC,MACP,EACAC,IAAAA,CAAG,EAKF,CACD,MAAMA,CAAA,EACN,KAAKV,SAAWI,EAChB,KAAKH,KAAOE,CACd,CAEA,OAAOQ,MAAMC,EAA0B,CACrC,OAAO,IAAIb,EAAS,CAClBI,GAAIS,EAAKX,KACTG,OAAQQ,EAAKZ,SACbU,IAAKE,EAAKC,KACZ,CAAA,CACF,CAEA,OAAOC,SAAkB,CACvB,MAAO,MACT,CAEA,OAAOC,WAAqC,CAC1C,MAAO,CACLC,EAAIJ,IAAgB,CAClBK,WAAYC,GACZC,SAAU,CACZ,EACF,CACF,CAEA,OAAOC,WAAWC,EAA8C,CAE5DA,EAAeC,UAAY,GAC3B,OAAOD,EAAejB,QAAQC,KAAKkB,OAAU,UAC7CF,EAAejB,QAAQC,KAAKkB,OAAOpB,KAEnCkB,EAAejB,OAAOC,IAAIkB,MAAQF,EAAejB,OAAOC,IAAIkB,MAAMpB,GAClEkB,EAAeC,QAAU,GAGvBD,EAAeC,UAAY,GAAK,CAACD,EAAelB,KAClDkB,EAAelB,GAAK,IAAId,GAASmC,QAAO,EAAGC,YAAW,EACtDJ,EAAeC,QAAU,GAG3B,IAAMV,EAAOc,EAAgB,CAC3BvB,GAAIkB,EAAelB,GACnBC,OAAQiB,EAAejB,MACzB,CAAA,EACAQ,OAAAA,EAAKe,UAAUN,EAAeO,MAAM,EACpChB,EAAKiB,UAAUR,EAAeS,MAAM,EACpClB,EAAKmB,aAAaV,EAAeW,SAAS,EACnCpB,CACT,CAEAqB,YAAoB,CAClB,MAAO,EACT,CAEAC,oBAA4B,CAC1B,MAAO,EACT,CAEAC,qBAA6B,CAC3B,MAAO,EACT,CAEAC,UAAUC,EAAyC,CACjD,IAAMC,EAAUC,SAASC,cAAc,GAAA,EACvC,OAAI,KAAKxC,UAAUM,WAAa,WAC9BgC,EAAQG,KAAO,KAAKC,YAAY,KAAK1C,SAASQ,KAAO,EAAA,IAEnD,KAAKR,UAAUO,QAAU,MAC3B+B,EAAQK,OAAS,UAGf,KAAK3C,UAAUO,SAAW,IAAQ,KAAKP,UAAUM,WAAa,WAChEgC,EAAQM,IAAMC,GAAUP,EAAQM,IAAK,MAAO,UAAA,GAG9CzD,GAAuBmD,EAASD,EAAOS,MAAMC,IAAI,EAC1CT,CACT,CAEAU,YAAiC,CAC/B,IAAMC,EAAmC,CACvC,GAAG,MAAMD,WAAA,EACTE,KAAM,OACN9C,OAAQ,KAAK+C,UAAS,EACtB7B,QAAS,CACX,EACMnB,EAAK,KAAKiD,MAAK,EACrB,OAAIjD,IACF8C,EAAa9C,GAAKA,GAEb8C,CACT,CAEAI,iBACEC,EACAC,EACAC,EACS,CACT,GAAI,CAAC9D,GAAkB6D,CAAA,EACrB,MAAO,GAGT,IAAME,EAAaF,EAAUG,OAAOC,QAAO,EACrCC,EAAYL,EAAUM,MAAMF,QAAO,EAEzC,OACE,KAAKG,WAAWL,CAAA,GAChB,KAAKK,WAAWF,CAAA,GAChBL,EAAUQ,eAAc,EAAGC,OAAS,CAExC,CAEAb,WAAwB,CACtB,OAAO,KAAKc,UAAS,EAAGjE,QAC1B,CAEAoD,OAAgB,CACd,OAAO,KAAKa,UAAS,EAAGhE,IAC1B,CAEAiE,eAAeX,EAA2BY,EAAmB,GAA8B,CACzF,IAAM7B,EAAU,KAAK8B,iBAAgB,EAAGF,eAAeX,EAAWY,CAAA,EAClE,GAAI1E,GAAe6C,CAAA,EAAU,CAC3B,IAAM+B,EAAW3C,EAAgB,CAAEtB,OAAQ,KAAKJ,QAAS,CAAA,EACzDsC,OAAAA,EAAQgC,OAAOD,CAAA,EACRA,CACT,CACA,OAAO,IACT,CAEAE,UAAiB,CACf,MAAO,EACT,CAEA7B,YAAYlC,EAAqB,CAC/B,GAAI,CACF,IAAMgE,EAAY,IAAIC,IAAIjE,CAAA,EAE1B,GAAI,CAACX,GAAwB6E,IAAIF,EAAUG,QAAQ,EACjD,MAAO,aAEX,MAAY,CACV,MAAO,UACT,CACA,OAAOnE,CACT,CAEAoE,UAAUxE,EAA0B,CAClC,IAAMyE,EAAW,KAAKC,YAAW,EACjCD,EAAS7E,SAAWI,CACtB,CAEA2E,UAAUC,EAAoBtB,EAA2BrB,EAA+B,CACtF,IAAM7B,EAAM,KAAKR,UAAUQ,IACrBD,EAAS,KAAKP,UAAUO,OAC9B,OAAIC,GAAO,MAAQA,IAAQwE,EAAShF,UAAUQ,KAAO,KAAKR,UAAUM,WAAa,WAC/EoD,EAAOjB,KAAOjC,GAEZ,KAAKR,UAAUM,WAAa,YAAc0E,EAAShF,UAAUM,WAAa,UAC5EoD,EAAOuB,gBAAgB,MAAA,EAKrBvB,EAAOd,KAAO,OAChBc,EAAOd,IAAM,IAGXrC,IAAWyE,EAAShF,UAAUO,SAC5BA,GAAU,IACZmD,EAAOf,OAAS,SACZ,KAAK3C,UAAUM,WAAa,WAC9BoD,EAAOd,IAAMC,GAAUa,EAAOd,IAAK,MAAO,UAAA,KAG5Cc,EAAOuB,gBAAgB,QAAA,EACvBvB,EAAOd,IAAMC,GAAUa,EAAOd,IAAK,SAAU,UAAA,IAI1C,EACT,CACF,EAEA,SAAS1B,GAAsBgE,EAAa,CAC1C,IAAItE,EAAwB,KAC5B,GAAIxB,GAAoB8F,CAAA,EAAU,CAChC,IAAMC,EAAUD,EAAQE,YACpBD,IAAY,MAAQA,IAAY,KAClCvE,EAAOc,EAAgB,CACrBvB,GAAI,IAAId,GAASmC,QAAO,EAAGC,YAAW,EACtCrB,OAAQ,CACNC,IAAK,KACLC,SAAU,SACVC,OAAQ2E,EAAQG,aAAa,QAAA,IAAc,SAC3C7E,IAAK0E,EAAQG,aAAa,MAAA,GAAW,EACvC,CACF,CAAA,EAEJ,CACA,MAAO,CAAEzE,KAAAA,CAAK,CAChB,CAEO,SAASc,EAAgB,CAAEvB,GAAAA,EAAIC,OAAAA,CAAM,EAAuC,CACjF,OAAOd,GACL,IAAIS,EAAS,CACXI,GAAIA,GAAM,IAAId,GAASmC,QAAO,EAAGC,YAAW,EAC5CrB,OAAAA,CACF,CAAA,CAAA,CAEJ,CAEO,SAASkF,EAAY1E,EAAoC,CAC9D,OAAOA,aAAgBb,CACzB,CAEO,IAAMwF,EACX3F,GAAc,qBAAA,EAET,SAAS4F,GAAYC,EAAoB,CAC9C,IAAMlC,EAAY/D,GAAA,EAElB,GAAI,CAACE,GAAkB6D,CAAA,GAAc,CAACkC,EAAQC,cAAc1B,OAC1D,OAEF,IAAM2B,EAAQjG,GAAkB6D,CAAA,EAAaA,EAAUqC,QAAO,EAAKH,EAAQC,cAE3E,GAAID,IAAY,KAEdE,EAAME,QAASjF,GAAA,CACb,IAAMkF,EAASlF,EAAKmF,UAAS,EAE7B,GAAIT,EAAYQ,CAAA,EAAS,CACvB,IAAME,EAAWF,EAAOG,YAAW,EAEnC,QAASC,EAAI,EAAGA,EAAIF,EAAShC,OAAQkC,GAAK,EACxCJ,EAAOK,aAAaH,EAASE,CAAA,CAAE,EAGjCJ,EAAOM,OAAM,CACf,CACF,CAAA,MACK,CAEL,GAAIT,EAAM3B,SAAW,EAAG,CACtB,IAAMqC,EAAYV,EAAM,CAAA,EAGlBtB,EAA4BiB,EAAYe,CAAA,EAC1CA,EACAC,GAAiBD,CAAA,EACrB,GAAIhC,IAAa,KAAM,CACrBA,EAASO,UAAUa,EAAQrF,MAAM,EAE7BqF,EAAQc,MAAQ,MAAQd,EAAQc,OAASlC,EAASN,eAAc,IAElEM,EAASC,OAAO/E,GAAgBkG,EAAQc,IAAI,CAAA,EAC5ClC,EAAS4B,YAAW,EAAGJ,QAASvC,GAAA,CAC1BA,IAAUe,EAASmC,aAAY,GACjClD,EAAM8C,OAAM,CAEhB,CAAA,GAEF,MACF,CACF,CAEA,IAAIK,EAAgD,KAChDpC,EAA4B,KAEhCsB,EAAME,QAASjF,GAAA,CACb,IAAMkF,EAASlF,EAAKmF,UAAS,EAE7B,GAAID,EAAAA,IAAWzB,GAAYyB,IAAW,MAASrG,GAAemB,CAAA,GAAS,CAACA,EAAK2D,SAAQ,GAIrF,IAAIe,EAAYQ,CAAA,EAAS,CACvBzB,EAAWyB,EACXA,EAAOlB,UAAUa,EAAQrF,MAAM,EAC3BqF,EAAQc,MAAQ,MAAQd,EAAQc,OAAST,EAAO/B,eAAc,IAEhE+B,EAAOxB,OAAO/E,GAAgBkG,EAAQc,IAAI,CAAA,EAC1CT,EAAOG,YAAW,EAAGJ,QAASvC,GAAA,CACxBA,IAAUwC,EAAOU,aAAY,GAC/BlD,EAAM8C,OAAM,CAEhB,CAAA,GAEF,MACF,CAiBA,GAfKN,EAAOY,GAAGD,CAAA,IACbA,EAAaX,EACbzB,EAAW3C,EAAgB,CAAEtB,OAAQqF,EAAQrF,MAAO,CAAA,EAEhDkF,EAAYQ,CAAA,EACVlF,EAAK+F,mBAAkB,IAAO,KAChCb,EAAOK,aAAa9B,CAAA,EAEpByB,EAAOc,YAAYvC,CAAA,EAGrBzD,EAAKuF,aAAa9B,CAAA,GAIlBiB,EAAY1E,CAAA,EAAO,CACrB,GAAIA,EAAK8F,GAAGrC,CAAA,EACV,OAEF,GAAIA,IAAa,KAAM,CACrB,IAAM2B,EAAWpF,EAAKqF,YAAW,EAEjC,QAASC,EAAI,EAAGA,EAAIF,EAAShC,OAAQkC,GAAK,EACxC7B,EAASC,OAAO0B,EAASE,CAAA,CAAE,CAE/B,CAEAtF,EAAKwF,OAAM,EACX,MACF,CAEI/B,IAAa,MACfA,EAASC,OAAO1D,CAAA,EAEpB,CAAA,CACF,CACF,CAEA,SAAS0F,GAAiB1F,EAAiB,CACzC,OAAOiG,GAAajG,EAAOkG,GAAaxB,EAAYwB,CAAA,CAAA,CACtD,CAEA,SAASD,GACPjG,EACAmG,EAA6C,CAE7C,IAAIjB,EAA6BlF,EACjC,KAAOkF,IAAW,OAASA,EAASA,EAAOC,UAAS,KAAQ,MAAQ,CAACgB,EAAUjB,CAAA,GAAA,CAC/E,OAAOA,CACT,CAEA,SAASjD,GAAUmE,EAAeC,EAA0B1F,EAAa,CACvE,IAAI2F,EACAC,EAAe,GAAGH,CAAA,GACtB,GAAIC,IAAW,MAAO,CAEpB,GAAIE,EAAaC,SAAS7F,CAAA,EAAQ,CAChC,IAAM8F,EAAK,IAAIC,OAAO/F,EAAO,GAAA,EAC7B4F,EAAeA,EAAaI,QAAQF,EAAI,EAAA,EAAIG,KAAI,CAClD,CACAL,EAAeA,EAAaK,KAAI,EAChCN,EAASC,EAAanD,SAAW,EAAI,GAAGzC,CAAA,GAAU,GAAG4F,CAAA,IAAgB5F,CAAA,EACvE,KAAO,CACL,IAAM8F,EAAK,IAAIC,OAAO/F,EAAO,GAAA,EAC7B2F,EAASC,EAAaI,QAAQF,EAAI,EAAA,EAAIG,KAAI,CAC5C,CACA,OAAON,CACT,CDzYO,IAAMO,GAAgD,CAC3DC,KAAM,aACNC,aAAc,CAACC,CAAA,EACfC,OAAQA,CAACC,EAAOC,EAAgBC,IAAA,CAC9B,GAAI,CAACC,EAAYH,CAAA,EACf,OAAO,KAET,IAAMI,EAAiBJ,EACjB,CAAEK,IAAAA,CAAG,EAAKD,EAAKE,UAAS,EACxBC,EAAc,IAAIH,EAAKI,eAAc,CAAA,KAAOH,CAAA,IAC5CI,EAAaL,EAAKM,cAAa,EAGrC,OAAIN,EAAKO,gBAAe,IAAO,GAAKC,GAAYH,CAAA,EACvCP,EAAaO,EAAYF,CAAA,EAEzBA,CAEX,EACAM,aAAc,4DACdC,OAAQ,6DACRC,QAASA,CAACC,EAAUC,IAAA,CAClB,GAAM,CAAA,CAAGC,EAAUC,CAAA,EAAWF,EACxBG,EAAWC,EAAgB,CAC/BC,OAAQ,CACNC,IAAK,KACLC,SAAU,SACVC,OAAQ,GACRpB,IAAKc,CACP,CACF,CAAA,EACMO,EAAeC,GAAgBT,CAAA,EACrCQ,EAAaE,UAAUZ,EAASa,UAAS,CAAA,EACzCT,EAASU,OAAOJ,CAAA,EAChBV,EAASD,QAAQK,CAAA,CACnB,EACAW,QAAS,GACX,EElDA,OAASC,yBAAAA,GAAuBC,kBAAAA,OAAsB,UAS/C,IAAMC,EAAN,MAAMA,UAAqBC,CAAA,CAChC,OAAOC,MAAMC,EAAkC,CAC7C,OAAO,IAAIH,EAAa,CAAEI,GAAIC,OAAWC,OAAQH,EAAKI,SAAUC,IAAKL,EAAKM,KAAM,CAAA,CAClF,CAEA,OAAOC,SAAkB,CACvB,MAAO,UACT,CAEA,OAAOC,WAAkB,CAEvB,OAAO,IACT,CAEA,OAAOC,WAAWC,EAAsD,CAEpEA,EAAeC,UAAY,GAC3B,OAAOD,EAAeP,QAAQS,KAAKC,OAAU,UAC7CH,EAAeP,QAAQS,KAAKC,OAAOZ,KAEnCS,EAAeP,OAAOS,IAAIC,MAAQH,EAAeP,OAAOS,IAAIC,MAAMZ,GAClES,EAAeC,QAAU,GAG3B,IAAMX,EAAOc,GAAoB,CAAEX,OAAQO,EAAeP,MAAO,CAAA,EAEjEH,OAAAA,EAAKe,UAAUL,EAAeM,MAAM,EACpChB,EAAKiB,UAAUP,EAAeQ,MAAM,EACpClB,EAAKmB,aAAaT,EAAeU,SAAS,EACnCpB,CACT,CAGAqB,YAAqC,CACnC,IAAMC,EAAa,MAAMD,WAAA,EACzB,MAAO,CACLE,KAAM,WACNC,SAAUF,EAAWE,SACrBJ,UAAWE,EAAWF,UACtBjB,OAAQmB,EAAWnB,OACnBa,OAAQM,EAAWN,OACnBE,OAAQI,EAAWJ,OACnBP,QAAS,CACX,CACF,CAEAc,eAAeC,EAA2BC,EAAmB,GAA0B,CACrF,IAAMC,EAAU,KAAKC,iBAAgB,EAAGJ,eAAeC,EAAWC,CAAA,EAClE,GAAIG,GAAeF,CAAA,EAAU,CAC3B,IAAMG,EAAWjB,GAAoB,CAAEX,OAAQ,KAAKC,QAAS,CAAA,EAC7DwB,OAAAA,EAAQI,OAAOD,CAAA,EACRA,CACT,CACA,OAAO,IACT,CACF,EAEO,SAASjB,GAAoB,CAAEX,OAAAA,CAAM,EAA0B,CACpE,OAAO8B,GAAsB,IAAIpC,EAAa,CAAEI,GAAIC,OAAWC,OAAAA,CAAO,CAAA,CAAA,CACxE,CACO,SAAS+B,GAAgBlC,EAAoC,CAClE,OAAOA,aAAgBH,CACzB,CCzEA,OAAAsC,KAAAC,OAAA,yBAGA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,iBAAAA,OAAqB,iBAC9B,OACEC,mBAAAA,GACAC,iBAAAA,GACAC,kBAAAA,GACAC,oBAAAA,GACAC,oBAAAA,GACAC,qBAAAA,GACAC,eAAAA,GACAC,YAAYC,OACP,UACP,OAASC,aAAAA,OAAiB,QAqBnB,SAASC,GACdC,EACAC,EAA4CC,GAASA,EAAI,CAEzD,OAAQA,GAAA,CACN,IAAMC,EAAQH,EAAOI,KAAKF,CAAA,EAC1B,OAAIC,IAAU,KAAa,KACpB,CACLE,MAAOF,EAAME,MACbC,OAAQH,EAAM,CAAA,EAAGG,OACjBJ,KAAMC,EAAM,CAAA,EACZI,IAAKN,EAAeE,EAAM,CAAA,CAAE,CAC9B,CACF,CACF,CAEA,SAASK,GAAeN,EAAcO,EAAuB,CAC3D,QAASC,EAAI,EAAGA,EAAID,EAASH,OAAQI,IAAK,CACxC,IAAMP,EAAQM,EAASC,CAAA,EAAGR,CAAA,EAE1B,GAAIC,GAAS,KACX,OAAOA,CAEX,CAEA,OAAO,IACT,CAEA,IAAMQ,GAAuB,UAE7B,SAASC,GAAYC,EAAY,CAC/B,OAAOF,GAAqBG,KAAKD,CAAA,CACnC,CAEA,SAASE,GAAkBC,EAAmB,CAC5C,OAAOJ,GAAYI,EAAYA,EAAYV,OAAS,CAAA,CAAE,CACxD,CAEA,SAASW,GAAoBD,EAAmB,CAC9C,OAAOJ,GAAYI,EAAY,CAAA,CAAE,CACnC,CASA,SAASE,GAAcF,EAAqBG,EAAgB,CAC1D,OAAIA,EACK,gBAAgBL,KAAKE,CAAA,EAErB,gBAAgBF,KAAKE,CAAA,CAEhC,CAEA,SAASI,GAAoBC,EAAiB,CAC5C,IAAIC,EAAeD,EAAKE,mBAAkB,EAC1C,OAAIC,GAAeF,CAAA,IACjBA,EAAeA,EAAaG,kBAAiB,GAG7CH,IAAiB,MACjBI,GAAiBJ,CAAA,GAChBK,GAAYL,CAAA,GAAiBP,GAAkBO,EAAaM,eAAc,CAAA,CAE/E,CAEA,SAASC,GAAgBR,EAAiB,CACxC,IAAIS,EAAWT,EAAKU,eAAc,EAClC,OAAIP,GAAeM,CAAA,IACjBA,EAAWA,EAASE,mBAAkB,GAGtCF,IAAa,MACbJ,GAAiBI,CAAA,GAChBH,GAAYG,CAAA,GAAab,GAAoBa,EAASF,eAAc,CAAA,CAEzE,CAEA,SAASK,GACPC,EACAC,EACAjC,EACAkC,EAAiB,CAIjB,OADEF,EAAa,EAAItB,GAAYV,EAAKgC,EAAa,CAAA,CAAE,EAAId,GAAoBgB,EAAM,CAAA,CAAE,GAMjFD,EAAWjC,EAAKI,OAASM,GAAYV,EAAKiC,CAAA,CAAS,EAAIN,GAAgBO,EAAMA,EAAM9B,OAAS,CAAA,CAAE,EAJvF,EAMX,CAEA,SAAS+B,GACPD,EACAE,EACAC,EAAgB,CAOhB,IAAMC,EAAoC,CAAA,EACpCC,EAA4B,CAAA,EAC5BC,EAAmC,CAAA,EACrCC,EAAiB,EAEjBC,EAAgB,EACdC,EAAe,CAAA,GAAIT,CAAA,EAEzB,KAAOS,EAAavC,OAAS,GAAG,CAC9B,IAAMwC,EAAcD,EAAa,CAAA,EAE3BE,EADkBD,EAAYlB,eAAc,EACRtB,OACpC0C,EAAmBJ,EACFA,EAAgBG,GAEjBT,GACpBE,EAAsBS,KAAKH,CAAA,EAC3BH,GAAkBI,GACTC,GAAoBT,EAC7BG,EAAqBO,KAAKH,CAAA,EAE1BL,EAAcQ,KAAKH,CAAA,EAErBF,GAAiBG,EACjBF,EAAaK,MAAK,CACpB,CACA,MAAO,CAACP,EAAgBH,EAAuBC,EAAeC,CAAA,CAChE,CAEA,SAASS,GACPf,EACAE,EACAC,EACApC,EAAwB,CAExB,IAAMiD,EAAqB,CACzBC,SAAU,SACV9C,IAAKJ,EAAMI,IACX,GAAGJ,EAAMiD,MACX,EAEME,EAAWC,GAAoB,CAAEH,OAAAA,CAAO,CAAA,EAC9C,GAAIhB,EAAM9B,SAAW,EAAG,CACtB,IAAIkD,EAAoBpB,EAAM,CAAA,EAC1BqB,EACAnB,IAAe,EAChB,CAACmB,EAAcD,CAAA,EAAqBA,EAAkBE,UAAUnB,CAAA,EAEhE,CAAA,CAAGkB,EAAcD,CAAA,EAAqBA,EAAkBE,UAAUpB,EAAYC,CAAA,EAEjF,IAAMoB,EAAWC,GAAgBzD,EAAMD,IAAI,EAC3CyD,OAAAA,EAASE,UAAUJ,EAAaK,UAAS,CAAA,EACzCH,EAASI,UAAUN,EAAaO,UAAS,CAAA,EACzCL,EAASM,SAASR,EAAaS,SAAQ,CAAA,EACvCZ,EAASa,OAAOR,CAAA,EAChBF,EAAaW,QAAQd,CAAA,EACdE,CACT,SAAWpB,EAAM9B,OAAS,EAAG,CAC3B,IAAM+D,EAAgBjC,EAAM,CAAA,EACxBkC,EAASD,EAAczC,eAAc,EAAGtB,OACxCiE,EACAjC,IAAe,EACjBiC,EAAoBF,EAEnB,CAAA,CAAGE,CAAA,EAAqBF,EAAcX,UAAUpB,CAAA,EAEnD,IAAMkC,EAAY,CAAA,EACdhB,EACJ,QAAS9C,EAAI,EAAGA,EAAI0B,EAAM9B,OAAQI,IAAK,CACrC,IAAMoC,EAAcV,EAAM1B,CAAA,EAEpBqC,EADkBD,EAAYlB,eAAc,EACRtB,OACpC0C,EAAmBsB,EACnBG,EAAiBH,EAASvB,EAChC,GAAIC,EAAmBT,EACrB,GAAIkC,GAAkBlC,EACpBiC,EAAUvB,KAAKH,CAAA,MACV,CACL,GAAM,CAACW,EAAciB,CAAA,EAAW5B,EAAYY,UAAUnB,EAAWS,CAAA,EACjEwB,EAAUvB,KAAKQ,CAAA,EACfD,EAAoBkB,CACtB,CAEFJ,GAAUvB,CACZ,CACA,IAAM4B,EAAYC,GAAA,EACZC,EAAmBF,EAAYA,EAAUG,SAAQ,EAAGC,KAAKpD,EAAA,EAAeqD,OACxErB,EAAWC,GAAgBW,EAAkB3C,eAAc,CAAA,EACjE+B,OAAAA,EAASE,UAAUU,EAAkBT,UAAS,CAAA,EAC9CH,EAASI,UAAUQ,EAAkBP,UAAS,CAAA,EAC9CL,EAASM,SAASM,EAAkBL,SAAQ,CAAA,EAC5CZ,EAASa,OAAOR,EAAA,GAAaa,CAAA,EAGzBK,GAAoBA,IAAqBN,IACvCU,GAAkBN,CAAA,EACpBhB,EAASuB,OAAOP,EAAUQ,OAAOb,OAAQK,EAAUS,MAAMd,MAAM,EACtDe,GAAiBV,CAAA,GAC1BhB,EAASuB,OAAO,EAAGvB,EAAS/B,eAAc,EAAGtB,MAAM,GAGvDiE,EAAkBH,QAAQd,CAAA,EACnBE,CACT,CAEF,CAEA,SAAS8B,GACPlD,EACA3B,EACA8E,EAAuB,CAEvB,IAAI1C,EAAe,CAAA,GAAIT,CAAA,EACjBoD,EAAc3C,EAAa4C,IAAKpE,GAASA,EAAKO,eAAc,CAAA,EAAI8D,KAAK,EAAA,EACvExF,EAAOsF,EAEPrF,EACAwF,EAAkB,EAEtB,MAAQxF,EAAQK,GAAeN,EAAMO,CAAA,IAAc,MAAQN,IAAU,MAAM,CACzE,IAAM+B,EAAqB/B,EAAME,MAC3BuF,EAAsBzF,EAAMG,OAC5B6B,EAAWD,EAAa0D,EAQ9B,GAPgB3D,GACd0D,EAAkBzD,EAClByD,EAAkBxD,EAClBqD,EACA3C,CAAA,EAGW,CACX,GAAM,CAACF,EAAA,CAAkBF,EAAeC,CAAA,EAAwBL,GAC9DQ,EACA8C,EAAkBzD,EAClByD,EAAkBxD,CAAA,EAGd0D,EAAmBF,EAAkBzD,EAAaS,EAClDmD,EAAiBH,EAAkBxD,EAAWQ,EAC9Ca,EAAoBL,GACxBV,EACAoD,EACAC,EACA3F,CAAA,EAEF0C,EAAeW,EACX,CAACA,EAAA,GAAsBd,CAAA,EACvBA,EACJ6C,EAASpF,EAAMI,IAAK,IAAA,EACpBoF,EAAkB,CACpB,MACEA,GAAmBxD,EAGrBjC,EAAOA,EAAK6F,UAAU5D,CAAA,CACxB,CACF,CAEA,SAAS6D,GACP1C,EACA7C,EACA8E,EAAuB,CAGvB,IAAMU,EAAW3C,EAAS4C,YAAW,EAC/BC,EAAiBF,EAAS3F,OAChC,QAASI,EAAI,EAAGA,EAAIyF,EAAgBzF,IAAK,CACvC,IAAM0F,EAAQH,EAASvF,CAAA,EACvB,GAAI,CAACiB,GAAYyE,CAAA,GAAU,CAACA,EAAMC,aAAY,EAAI,CAChDC,GAAoBhD,CAAA,EACpBiC,EAAS,KAAMjC,EAASiD,UAAS,GAAIhG,KAAO,IAAA,EAC5C,MACF,CACF,CAGA,IAAML,EAAOoD,EAAS1B,eAAc,EAC9BzB,EAAQK,GAAeN,EAAMO,CAAA,EACnC,GAAIN,IAAU,MAAQA,EAAMD,OAASA,EAAM,CACzCoG,GAAoBhD,CAAA,EACpBiC,EAAS,KAAMjC,EAASiD,UAAS,GAAIhG,KAAO,IAAA,EAC5C,MACF,CAGA,GAAI,CAACa,GAAoBkC,CAAA,GAAa,CAACzB,GAAgByB,CAAA,EAAW,CAChEgD,GAAoBhD,CAAA,EACpBiC,EAAS,KAAMjC,EAASiD,UAAS,GAAIhG,KAAO,IAAA,EAC5C,MACF,CAEA,IAAMA,EAAM+C,EAASiD,UAAS,GAAIhG,IAClC,GAAIA,IAAQJ,GAAOI,IAAK,CACtB,IAAMiG,EAAOlD,EAASiD,UAAS,EAC/BC,EAAKjG,IAAMJ,GAAOI,IAClB+C,EAASmD,UAAUD,CAAA,EACnBjB,EAASpF,EAAMI,IAAKA,GAAO,IAAA,CAC7B,CACF,CAIA,SAASmG,GACP/C,EACAlD,EACA8E,EAAuB,CAEvB,IAAMoB,EAAkBhD,EAASpC,mBAAkB,EAC7CqF,EAAcjD,EAAS5B,eAAc,EACrC7B,EAAOyD,EAAS/B,eAAc,EAEpC,GAAIiF,GAAgBF,CAAA,EAAkB,CACpC,IAAMG,EAAaH,EAAgBJ,UAAS,GAAIhG,IAC5CoG,EAAgBJ,UAAS,GAAIhG,KAAKwG,WAAW,SAAA,EAC7C,IACA,CAAC9F,GAAoBf,CAAA,GAASgB,GAAchB,EAAM4G,CAAA,KACpDH,EAAgBxC,OAAOR,CAAA,EACvBqC,GAAeW,EAAiBlG,EAAU8E,CAAA,EAC1CA,EAAS,KAAMoB,EAAgBJ,UAAS,GAAIhG,KAAO,IAAA,EAEvD,CAEIsG,GAAgBD,CAAA,GAAgB,CAAC7F,GAAkBb,CAAA,IACrDoG,GAAoBM,CAAA,EACpBZ,GAAeY,EAAanG,EAAU8E,CAAA,EACtCA,EAAS,KAAMqB,EAAYL,UAAS,GAAIhG,KAAO,IAAA,EAEnD,CAEA,SAAS+F,GAAoBjF,EAAiB,CAC5C,IAAM4E,EAAW5E,EAAK6E,YAAW,EAC3BC,EAAiBF,EAAS3F,OAEhC,QAAS0G,EAAIb,EAAiB,EAAGa,GAAK,EAAGA,IACvC3F,EAAK4F,YAAYhB,EAASe,CAAA,CAAE,EAG9B3F,OAAAA,EAAK6F,OAAM,EACJjB,EAASR,IAAKW,GAAUA,EAAMe,UAAS,CAAA,CAChD,CAEA,SAASC,GAAoBzD,EAAkB,CAE7C,IAAM0D,EAAmB,CAAC1D,CAAA,EACtBiD,EAAcjD,EAAS5B,eAAc,EACzC,KAAO6E,IAAgB,MAAQjF,GAAYiF,CAAA,GAAgBA,EAAYP,aAAY,IACjFgB,EAAiBpE,KAAK2D,CAAA,EAClB,MAAK9F,KAAK8F,EAAYhF,eAAc,CAAA,IAGxCgF,EAAcA,EAAY7E,eAAc,EAE1C,OAAOsF,CACT,CAEA,SAAAC,GAAAC,EAAA9G,EAAA8E,EAAA,CAAA,IAAAiC,EAAAC,GAAA,CAAA,EAAAC,EAAAC,EAAAH,EAAA,CAAA,IAAAD,GAAAC,EAAA,CAAA,IAAAjC,GAAAiC,EAAA,CAAA,IAAA/G,GAKYiH,EAAAA,IAAA,CAAA,GAAA,CACHH,EAAAK,SAAA,CAAAC,CAAA,CAA8B,EAAA,MAAA,IAAAC,MACjB,8DAAA,EAGlB,IAAAC,EAAAA,CAAAxH,EAAAyH,IAAA,CAEIzC,IAAShF,EAAKyH,CAAA,CAAA,EAElB,OAEOC,GACLV,EAAAW,sBAAAC,GAAAxE,GAAA,CACE,IAAAyE,EAAezE,EAAA0E,iBAAyB,EACxCC,EAAiB3E,EAAApC,mBAA2B,EAAA,GACxCsF,GAAgBuB,CAAA,EAClBpC,GAAeoC,EAAQ3H,EAAUsH,CAAA,UAAA,CACvBQ,EAAYH,CAAA,EAAA,CAAA,GAEpBzE,EAAA0C,aAAqB,IACpBpF,GAAoB0C,EAAA/B,eAAuB,CAAA,GAAA,CAAQiF,GAAgByB,CAAA,GAAQ,CAE5E,IAAAjB,EAAyBD,GAAoBzD,CAAA,EAC7C2B,GAAoB+B,EAAkB5G,EAAUsH,CAAA,CAAA,CAGlDrB,GAAmB/C,EAAUlD,EAAUsH,CAAA,CAAA,CAAA,CAE3C,CAAA,CAAA,EAEDJ,EAAA,CAACJ,EAAQ9G,EAAU8E,CAAA,EAASiC,EAAA,CAAA,EAAAD,EAAAC,EAAA,CAAA,EAAAjC,EAAAiC,EAAA,CAAA,EAAA/G,EAAA+G,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAG,IAAAD,EAAAF,EAAA,CAAA,EAAAG,EAAAH,EAAA,CAAA,GA9B/BgB,GAAUd,EA8BPC,CAA4B,CAAA,CAGjC,IAAMc,GACJ,8GAEIC,GACJ,oIAEIC,GAAW,CACf5I,GAA4B0I,GAAYvI,GAC/BA,EAAK6G,WAAW,MAAA,EAAU7G,EAAO,WAAWA,CAAA,EACrD,EACAH,GAA4B2I,GAAcxI,GACjC,UAAUA,CAAA,EACnB,CAAA,EAGW0I,GAA+CA,IAAA,CAC1D,GAAA,CAAArB,CAAA,EAAiBsB,GAAA,EAEjBvB,OAAAA,GAAYC,EAAAoB,EAAQ,EAAA,IAAA,2CCtctB,OAASG,uBAAuBC,OAAkC,+CAClE,MAAkB,QAKX,IAAMD,GAAoDA,IACxDE,GAACD,GAAA,CAAA,CAAA,ECLV,OAASE,iBAAAA,OAAqB,UAIvB,IAAMC,GAAqED,GAChF,gCAAA,2CCPF,MAAuB,QACvB,OAASE,gBAAAA,OAAoB,gECE7B,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,uBAAAA,GAAqBC,iBAAAA,OAAqB,iBACnD,OAASC,kBAAAA,OAAsB,2BAC/B,OACEC,iBAAAA,GACAC,YAAAA,GACAC,oBAAAA,GACAC,aAAAA,GACAC,gBAAAA,GACAC,YAAAA,GACAC,kBAAAA,OACK,iBACP,OACEC,iBAAAA,GACAC,oBAAAA,GACAC,qBAAAA,GACAC,yBAAAA,GACAC,wBAAAA,GACAC,sBAAAA,GACAC,4BAAAA,OACK,UACP,OAAOC,IAASC,eAAAA,GAAaC,aAAAA,GAAWC,UAAAA,GAAQC,YAAAA,OAAgB,QCrBzD,SAASC,GACdC,EACAC,EACAC,EACAC,EAAsBC,GACtBC,EAA2BC,EAAiB,CAE5C,IAAMC,EAAeL,EAAWM,cAEhC,GAAIR,IAAe,MAAQO,GAAgB,KAAM,CAC/CN,EAAaQ,MAAMC,QAAU,IAC7BT,EAAaQ,MAAME,UAAY,gCAC/B,MACF,CAEA,IAAMC,EAAmBX,EAAaY,sBAAqB,EACrDC,EAAoBZ,EAAWW,sBAAqB,EACpDE,EAAqBR,EAAaM,sBAAqB,EAEzDG,EAAMhB,EAAWgB,IAAMb,EACvBc,EAAOjB,EAAWiB,KAAOZ,EAEzBW,EAAMD,EAAmBC,MAC3BA,GAAOJ,EAAiBM,OAASlB,EAAWkB,OAASf,EAAc,GAGjEc,EAAOL,EAAiBO,MAAQJ,EAAmBK,QACrDH,EAAOF,EAAmBK,MAAQR,EAAiBO,MAAQd,GAG7DW,GAAOF,EAAkBE,IACzBC,GAAQH,EAAkBG,KAE1BhB,EAAaQ,MAAMC,QAAU,IAC7BT,EAAaQ,MAAME,UAAY,aAAaM,CAAA,OAAWD,CAAA,KACzD,CDAO,SAASK,GAAW,CAAEC,WAAAA,CAAU,EAA+B,CACpE,GAAM,CAACC,CAAA,EAAUC,GAAA,EAEXC,EAAYC,GAA8B,IAAA,EAC1C,CAACC,EAASC,CAAA,EAAcC,GAAS,IAAA,EACjC,CAACC,EAAWC,CAAA,EAAgBF,GAAS,IAAA,EAErC,CAAEG,KAAAA,CAAI,EAAKC,EAAA,EAEX,CAAEC,OAAAA,CAAM,EAAKC,GAAA,EAEb,CAAEC,KAAAA,EAAMC,EAAAA,CAAC,EAAKC,GAAA,EAEd,CAACC,EAAWC,CAAA,EAAgBX,GAAqD,IAAA,EAEjF,CAAEY,WAAAA,EAAYC,YAAAA,CAAW,EAAKC,GAAA,EAC9BC,EAAYC,GAAA,EACZ,CAACC,EAAQC,CAAA,EAAalB,GAAS,EAAA,EAC/B,CAACmB,EAAeC,CAAA,EAAoBpB,GAAwB,CAAA,CAAE,EAE9D,CAACqB,EAAYC,CAAA,EAAiBtB,GAAS,EAAA,EAEvCuB,EAAaC,GAAiB,CAClCC,KAAM,0BAA4BtB,EAClCuB,MAAOX,CACT,CAAA,EAEMY,EAAaC,GAAY,IAAA,CAC7BV,EAAU,EAAA,EACNtB,GAAaA,EAAUiC,UACzBjC,EAAUiC,QAAQC,MAAMC,QAAU,IAClCnC,EAAUiC,QAAQC,MAAME,UAAY,iCAEtCV,EAAc,EAAA,EACdvB,EAAW,IAAA,EACXG,EAAa,IAAA,EACbkB,EAAiB,CAAA,CAAE,EACnBT,EAAa,IAAA,CACf,EAAG,CAACO,EAAWnB,EAAYG,EAAckB,CAAA,CAAiB,EAEpDa,EAAoBL,GAAY,IAAA,CACpC,IAAMM,EAAYC,GAAA,EACdC,EAA2C,KAE/C,GAAI,CAACC,GAAkBH,CAAA,GAAc,CAACA,EAAW,CAC/CP,EAAA,EACA,MACF,CAIA,IAAMW,EAAYC,GAAgBL,CAAA,EAClCE,EAAsB1C,EAAO8C,gBAAgBF,EAAUG,OAAM,CAAA,GAAKC,sBAAA,EAClE,IAAMC,EAA4BC,GAAoBN,EAAWO,CAAA,EAG3DC,EAAUZ,EACba,SAAQ,EACRC,OAAQC,GAAS,CAACC,GAAiBD,CAAA,CAAA,EACnCE,KAAMF,GAAA,CACL,IAAMG,EAAWR,GAAoBK,EAAMJ,CAAA,EAC3C,OACEF,GAAoB,CAACA,EAAgBU,GAAGD,CAAA,GACvCA,GAAY,CAACA,EAASC,GAAGV,CAAA,CAE9B,CAAA,EAEF,GAAIA,GAAmB,MAAQG,EAAS,CACtCnB,EAAA,EACA,MACF,CAGA,IAAM2B,EAAsC,CAC1CC,IAAKC,OACLC,SAAUD,OACVE,OAAQF,OACRG,IAAK,GACL,GAAGhB,EAAgBiB,UAAS,EAC5BC,GAAIlB,EAAgBmB,MAAK,EACzBC,KAAMpB,EAAgBqB,eAAc,CACtC,EAEA,GAAIrB,EAAgBiB,UAAS,GAAIH,WAAa,SAC5C1D,EAAW4C,EAAgBiB,UAAS,GAAID,KAAO,IAAA,EAC/CzD,EAAa,IAAA,MACR,CAELH,EACE,sBAAsB4C,EAAgBiB,UAAS,GAAIL,KAAKU,UAAA,IACtDtB,EAAgBiB,UAAS,GAAIL,KAAKW,KAAA,EAClC,EAGJ,IAAMC,EAAe9D,EAAO+D,YAAYjB,KACrCkB,GAASA,EAAK5C,OAASkB,EAAgBiB,UAAS,GAAIL,KAAKU,UAAA,EAE5D,GAAI,CAACE,EAGHjE,EACEyC,EAAgBiB,UAAS,GAAIU,MAAQC,OAAO5B,EAAgBiB,UAAS,GAAIU,KAAA,EAAS,IAAA,EAEpFvE,EACE4C,EAAgBiB,UAAS,GAAID,IAAMY,OAAO5B,EAAgBiB,UAAS,GAAID,GAAA,EAAO,IAAA,MAE3E,CACL,IAAMW,EAAQ9D,EAAE,kBAAmB,CACjC8D,MAAOE,GAAeL,EAAaM,OAAOC,SAAUnE,CAAA,CACtD,CAAA,EAAGoE,QAAQ,YAAa,EAAA,EACxBzE,EAAaoE,CAAA,CACf,CACF,CAEA3D,EAAa2C,CAAA,EACbpC,EAAU,EAAA,EACVE,EAAiBc,EAAYA,GAAWa,SAAA,EAAa,CAAA,CAAE,EAEnD6B,GAAgBjC,CAAA,EAClBrB,EAAc,EAAA,EAEdA,EAAc,EAAA,EAGhB,IAAMuD,EAAajF,EAAUiC,QACvBiD,EAAkBC,OAAOC,aAAY,EACrC,CAAEC,cAAAA,CAAa,EAAKC,SAE1B,GAAIL,IAAe,KACjB,OAGF,IAAMM,EAAczF,EAAO0F,eAAc,EAEzC,OACEN,IAAoB,MACpBK,IAAgB,MAChBA,EAAYE,SAASP,EAAgBQ,UAAU,GAE1ClD,IAGHA,EAAsB0C,EAAgBS,WAAW,CAAA,EAAG7C,sBAAqB,GAGvEN,GAAuB,OACzBA,EAAoBoD,GAAK,GACzBC,GAAqCrD,EAAqByC,EAAYpF,CAAA,KAE/DwF,GAAiB,MAAQA,EAAcS,YAAc,gBAC1DP,IAAgB,MAClBM,GAAqC,KAAMZ,EAAYpF,CAAA,EAEzDM,EAAW,IAAA,EACXG,EAAa,IAAA,GAGR,EACT,EAAG,CAACR,EAAQiC,EAAYtB,EAAO+D,YAAa5D,EAAGD,EAAMd,CAAA,CAAW,EAEhEkG,OAAAA,GAAU,IACDC,GACLlG,EAAOmG,gBACLC,GACCC,IACCrG,EAAOsG,gBAAgBC,EAAqBF,CAAA,EAG5C9D,EAAA,EACApB,EAAYU,CAAA,EAEL,IAET2E,EAAA,CAAA,EAGH,CAACxG,EAAQuC,EAAmBpB,EAAaU,CAAA,CAAW,EAEvDoE,GAAU,IAAA,CACR,IAAMQ,EAAe1G,EAAW2G,cAE1BC,EAASA,IAAA,CACb3G,EAAO4G,eAAc,EAAGC,KAAK,IAAA,CACtBtE,EAAA,CACP,CAAA,CACF,EAEA8C,cAAOyB,iBAAiB,SAAUH,CAAA,EAGhCF,GAAaK,iBAAiB,SAAUH,CAAA,EAGnC,IAAA,CACLtB,OAAO0B,oBAAoB,SAAUJ,CAAA,EAGnCF,GAAaM,oBAAoB,SAAUJ,CAAA,CAE/C,CACF,EAAG,CAAC5G,EAAW2G,cAAe1G,EAAQuC,CAAA,CAAkB,EAExD0D,GAAU,IACDC,GACLlG,EAAOgH,uBAAuB,CAAC,CAAEC,YAAAA,CAAW,IAAE,CAC5CA,EAAYJ,KAAK,IAAA,CACVtE,EAAA,CACP,CAAA,CACF,CAAA,EAEAvC,EAAOmG,gBACLe,GACA,KACO3E,EAAA,EACE,IAETiE,EAAA,EAEFxG,EAAOmG,gBACLgB,GACA,IACM5F,GACFU,EAAA,EAEO,IAEF,GAETmF,EAAA,CAAA,EAGH,CAACpH,EAAQuC,EAAmBhB,EAAQU,CAAA,CAAW,EAElDgE,GAAU,IAAA,CACRjG,EAAO4G,eAAc,EAAGC,KAAK,IAAA,CACtBtE,EAAA,CACP,CAAA,CACF,EAAG,CAACvC,EAAQuC,CAAA,CAAkB,EAG5B8E,GAACC,GAAMC,SAAQ,WACbC,GAAC,MAAA,CAAIxB,UAAU,cAAcyB,IAAKvH,WAChCmH,GAAC,MAAA,CAAIrB,UAAU,uBACZ5F,GAAWA,EAAQsH,OAAS,EAC3BF,GAAC,IAAA,CAAEG,KAAMvH,EAASwH,IAAI,sBAAsBC,OAAO,kBAChDtH,GAAa,MAAQA,EAAUmH,OAAS,EAAInH,EAAYH,IAEzDG,GAAa,MAAQA,EAAUmH,OAAS,EAC1CF,GAAC,OAAA,CAAKxB,UAAU,kCAA0BzF,IACxC,KAEHP,EAAO8H,WAAU,GAChBT,GAACC,GAAMC,SAAQ,WACbC,GAAC,SAAA,CACC,aAAW,YACXxB,UAAU,YACV+B,QAASA,IAAA,CACP5G,EAAYU,CAAA,CACd,EACAmG,YAAcC,GAAA,CACZA,EAAMC,eAAc,CACtB,EACAC,SAAU,EACVC,KAAK,kBAELZ,GAACa,GAAA,CAAA,CAAA,IAEF,CAAC1G,GACA6F,GAAC,SAAA,CACC,aAAW,cACXxB,UAAU,aACV+B,QAASA,IAAA,CACP/H,EAAOsG,gBAAgBC,EAAqB,IAAA,CAC9C,EACAyB,YAAcC,GAAA,CACZA,EAAMC,eAAc,CACtB,EACAC,SAAU,EACVC,KAAK,kBAELZ,GAACc,GAAA,CAAA,CAAA,YAObd,GAACe,GAAA,CACCvC,UAAU,2BACVpC,KAAM5C,EACNa,WAAYA,EACZ2G,YAAa1H,EAAE,iBAAA,EACf2H,WAAW,OACXC,mBAAoBA,CAACC,EAAmB/E,IAAA,CACtC1C,EAAWW,CAAA,EAEX,IAAM+G,EAAiBhF,EAEjBiF,EAA6B,CACjC,GAAGD,CACL,EACA,OAAOC,EAAexE,KAGtBrE,EAAO2G,OAAO,IAAA,CACZ,IAAMnE,EAAYC,GAAA,EACdqG,EAAa,KASjB,GARInG,GAAkBH,CAAA,EACpBsG,EAAajG,GAAgBL,CAAA,EAAWuG,UAAS,EAE7CtH,EAAciG,SAChBoB,EAAarH,EAAc,CAAA,EAAGsH,UAAS,GAIvCD,GAAc5D,GAAgB4D,CAAA,EAAa,CAC7C,IAAMpF,EAAWsF,EAAgB,CAC/BL,OAAQE,CACV,CAAA,EACAC,EAAW7D,QAAQvB,EAAU,EAAA,CAC/B,CACF,CAAA,EAIA1D,EAAOsG,gBAAgBC,EAAqB,CAC1CoC,OAAQE,EACRpH,cAAAA,EACA4C,KAAMuE,EAAevE,IACvB,CAAA,CACF,EACA4E,iBAAiB,aAIzB,CD5WO,IAAMC,GAAoEC,GAAA,CAC/E,GAAM,CAAEC,WAAAA,EAAaC,SAASC,IAAI,EAAKH,EAEvC,OAAOI,GAAaC,GAACC,GAAA,CAAWL,WAAYA,IAAgBA,CAAA,CAC9D,EGdA,OAAAM,KAAAC,OAAA,yBACA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,iBAAAA,OAAqB,iBAC9B,OACEC,iBAAAA,GACAC,kBAAAA,GACAC,qBAAAA,GACAC,wBAAAA,GACAC,iBAAAA,OACK,UACP,OAASC,aAAAA,OAAiB,QCM1B,IAAMC,GACJ,0IAQIC,GAAyB,4BAIxB,SAASC,GAAYC,EAAW,CAIrC,GAAI,CAACA,EAAK,MAAO,GAQjB,GANIA,IAAQ,YAGRH,GAAeI,KAAKD,CAAA,GAGpBF,GAAuBG,KAAKD,CAAA,EAAM,MAAO,GAG7C,GAAI,CACF,WAAIE,IAAIF,CAAA,EACD,EACT,MAAQ,CACN,CAGF,MAAO,EACT,CDhCO,IAAMG,GAA2CA,IAAA,CAAA,IAAAC,EAAAC,GAAA,CAAA,EACtD,CAAAC,CAAA,EAAiBC,GAAA,EAAAC,EAAAC,EAAA,OAAAL,EAAA,CAAA,IAAAE,GAEPE,EAAAA,IAAA,CAAA,GAAA,CACHF,EAAAI,SAAA,CAAAC,CAAA,CAA0B,EAAA,MAAA,IAAAC,MACb,+CAAA,EAAA,OAEXC,GACLP,EAAAQ,gBAAAC,EAAAC,IAGIC,GAAYD,CAAA,EAAA,IAAAE,EAGd,EAEFZ,EAAAQ,gBAAAK,GAAAC,GAAA,CAGI,IAAAC,EAAkBC,GAAA,EAAA,GAEhB,CAACC,GAAkBF,CAAA,GACnBA,EAAAG,YAAqB,GAAA,EACnBJ,aAAAK,iBACFL,EAAAM,eAAA,KAAuB,MAAA,GAIzB,IAAAC,EAAsBP,EAAAM,cAAAE,QAA4B,MAAA,EAAA,GAAA,CAC7CC,GAAYF,CAAA,EAAA,MAAA,GAAA,GAAA,CAIZN,EAAAS,SAAkB,EAAAC,KAAAC,GAAkBC,GAAeD,CAAA,CAAA,EAAA,CACtD,IAAAE,EAAA,CAAAC,IAAA,KAAAC,SAEY,SAAAC,OAAA,GAAAC,IAELX,CAAA,EAEPrB,OAAAA,EAAAiC,gBAAAxB,EAAA,CAAAyB,OACUN,EAAAO,KAAA,IAAA,CAEV,EACArB,EAAAsB,eAAoB,EAAA,EAAA,CAAA,MAAA,EAAA,EAAAxB,EAKxB,CAAA,CAAA,EAGHT,EAAA,CAACH,CAAA,EAAOF,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,EAAAK,IAAAD,EAAAJ,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,GAjDXuC,GAAUnC,EAiDPC,CAAQ,EAAA,IAAA,Eb9Cb,IAAMmC,GAAgC,CACpCC,GAAoC,CAClC,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAIC,GAAkBD,CAAA,EAAY,CAChC,IAAME,EAAeC,GAAgBH,CAAA,EAErC,OADmBI,GAAoBF,EAAcG,CAAA,GAChC,IACvB,CACA,MAAO,EACT,EACAC,UAAWA,CAAC,CAAEN,UAAAA,CAAS,IACd,CAAC,EAAEC,GAAkBD,CAAA,GAAcO,GAAA,GAAiBC,eAAA,GAAkBC,QAE/EC,IAAK,OACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,oBAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,EAAQhB,SAAAA,CAAQ,IAAE,CAC7B,GAAKA,EA2BHgB,EAAOC,gBAAgBC,EAAqB,IAAA,MA3B/B,CACb,IAAIC,EAAuB,KACvBC,EAA+B,CAAA,EAOnC,GANAJ,EAAOK,eAAc,EAAGC,KAAK,IAAA,CAC3BH,EAAeX,GAAA,GAAiBC,eAAA,EAEhCW,EAAgBZ,GAAA,GAAiBe,SAAA,GAAc,CAAA,CACjD,CAAA,EAEI,CAACJ,GAAcT,OACjB,OAGF,IAAMc,EAAyB,CAC7BC,IAAK,KACLC,SAAU,SACVC,OAAQ,GACRC,IAAK,UACP,EAEAZ,EAAOC,gBAAgBY,GAAgC,CACrDC,OAAQN,EACRJ,cAAAA,EACAW,KAAMZ,CACR,CAAA,CACF,CAIF,EACAa,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAAoBC,EAAoB,CACnDC,qBAAsB,CAACC,EAAA,EACvBC,MAAO,CAACC,EAAUC,CAAA,EAClBC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,EACA,CACEF,UAAWG,GACXD,SAAU,QACZ,EACA,CACEF,UAAWI,GACXF,SAAU,QACZ,EACA,CACEF,UAAWK,GACXH,SAAU,oBACZ,CAAA,EAEFI,aAAc,CACZC,OAAQpD,EACV,EACAqD,cAAe,CACbD,OAAQpD,EACV,CACF,CAAA,Ee3GA,OAASsD,eAAAA,GAAaC,6BAAAA,GAA2BC,gBAAAA,GAAcC,YAAAA,OAAgB,gBAC/E,OAASC,qBAAAA,OAAyB,8DCDlC,MAAkB,QAEX,IAAMC,GAA0BA,IACrCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CAAKJ,OAAO,KAAKK,GAAG,MAAMC,OAAO,eAAeJ,MAAM,KAAKK,EAAE,MAAMC,EAAE,QACtEJ,GAAC,OAAA,CAAKK,EAAE,sBAAsBH,OAAO,eAAeI,YAAY,oDCRpE,OAASC,cAAAA,OAAkB,sCAC3B,MAAkB,QAoBX,IAAMC,GAAgDA,IACpDC,GAACF,GAAA,CAAA,CAAA,ECxBH,SAASG,GAA4BC,EAAsB,CAChE,MAAO,CACLA,MAAAA,EACAC,IAAK,QACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,yCAAA,CAElB,CACF,CCXA,OAASC,eAAAA,GAAaC,gBAAAA,GAAcC,YAAAA,OAAgB,gBCIpD,OAASC,uBAAAA,GAAqBC,mBAAAA,GAAiBC,mBAAAA,GAAiBC,eAAAA,OAAmB,gBAGnF,IAAMC,GAAmB,EAEZC,GAAeC,GACnB,CAACC,EAAYC,EAAUC,IAAA,CAC5B,IAAMC,EAAeH,EAAWI,mBAAkB,EAC5CC,EAAWL,EAAWM,eAAc,EACpCC,EAAWd,GAAoBM,IAAa,QAAUG,EAAM,CAAA,IAAO,IAAMM,MAAA,EAC/E,GAAIZ,GAAYS,CAAA,GAAaA,EAASI,YAAW,IAAOV,EAAU,CAChE,IAAMW,EAAaL,EAASM,cAAa,EACrCD,IAAe,KACjBA,EAAWE,aAAaL,CAAA,EAGxBF,EAASQ,OAAON,CAAA,EAElBP,EAAWc,OAAM,CACnB,SAAWlB,GAAYO,CAAA,GAAiBA,EAAaM,YAAW,IAAOV,EACrEI,EAAaU,OAAON,CAAA,EACpBP,EAAWc,OAAM,MACZ,CACL,IAAMC,EAAOrB,GAAgBK,EAAUA,IAAa,SAAWiB,OAAOd,EAAM,CAAA,CAAE,EAAIM,MAAA,EAClFO,EAAKF,OAAON,CAAA,EACZP,EAAWiB,QAAQF,CAAA,CACrB,CACAR,EAASM,OAAM,GAAIZ,CAAA,EACnBM,EAASW,OAAO,EAAG,CAAA,EACnB,IAAMC,EAASC,KAAKC,MAAMnB,EAAM,CAAA,EAAGoB,OAASzB,EAAA,EACxCsB,GACFZ,EAASgB,UAAUJ,CAAA,CAEvB,EAGWK,GAAaA,CACxBC,EACAC,EACAC,IAAA,CAEA,IAAMC,EAAS,CAAA,EACT3B,EAAWwB,EAASI,YAAW,EACjCC,EAAQ,EACZ,QAAWC,KAAgB9B,EACzB,GAAIN,GAAgBoC,CAAA,EAAe,CACjC,GAAIA,EAAaC,gBAAe,IAAO,EAAG,CACxC,IAAMtB,EAAaqB,EAAapB,cAAa,EAC7C,GAAIf,GAAYc,CAAA,EAAa,CAC3BkB,EAAOK,KAAKT,GAAWd,EAAYgB,EAAgBC,EAAQ,CAAA,CAAA,EAC3D,QACF,CACF,CACA,IAAMR,EAAS,IAAIe,OAAOP,EAAQ9B,EAAA,EAC5BE,EAAW0B,EAAShB,YAAW,EAC/B0B,EACJpC,IAAa,SACT,GAAG0B,EAASW,SAAQ,EAAKN,CAAA,KACzB/B,IAAa,QACX,MAAMgC,EAAaM,WAAU,EAAK,IAAM,GAAA,KACxC,KACRT,EAAOK,KAAKd,EAASgB,EAAST,EAAeK,CAAA,CAAA,EAC7CD,GACF,CAGF,OAAOF,EAAOU,KAAK;CAAA,CACrB,EDnEO,IAAMC,GAAiC,CAC5CC,KAAM,UACNC,aAAc,CAACC,GAAUC,EAAA,EACzBC,OAAQA,CAACC,EAAMC,IACNC,GAAYF,CAAA,EAAQG,GAAWH,EAAMC,EAAgB,CAAA,EAAK,KAEnEG,OAAQ,oCACRC,QAASC,GAAY,OAAA,CACvB,2CEbA,OAASC,mBAAAA,OAAuB,2CAChC,MAAkB,QAIX,IAAMC,GAAqDA,IACzDC,GAACF,GAAA,CAAA,CAAA,ENQV,IAAMG,GAAgC,CACpCC,EAAkC,CAChC,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EAAI,CACvC,GAAIC,GAAYF,CAAA,GAASA,EAAKG,YAAW,IAAO,QAC9C,SAGF,IAAMC,EAASJ,EAAKK,UAAS,EAE7B,GAAIH,GAAYE,CAAA,GAAWA,EAAOD,YAAW,IAAO,QAClD,SAGF,IAAMG,EAAeF,GAAQC,UAAA,EAE7B,GAAIH,EAAAA,GAAYI,CAAA,GAAiBA,EAAaH,YAAW,IAAO,SAIhE,MAAO,EACT,CACA,MAAO,EACT,EACAI,IAAK,YACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,yBAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA2BC,MAAA,CACpD,EACAC,MAAO,EACT,CAAA,CACD,CAAA,EAGUC,GAAyBC,EAAoB,CAAC,CAAEC,mBAAAA,CAAkB,IAAE,CAC/E,IAAMC,EAA+C,CACnD,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,EAGF,MAAI,CAACJ,EAAmBK,IAAI,eAAA,GAAoB,CAACL,EAAmBK,IAAI,aAAA,GACtEJ,EAAQK,KAAK,CACXJ,UAAWK,GACXH,SAAU,QACZ,CAAA,EAGK,CACLI,qBAAsB,CAACC,EAAA,EACvBC,MACEV,EAAmBK,IAAI,eAAA,GAAoBL,EAAmBK,IAAI,aAAA,EAC9D,CAAA,EACA,CAACM,GAAUC,EAAA,EACjBX,QAAAA,EACAY,UAAW,CACTC,OAAQ,CACNC,GAA4B,CAC1B,CACEC,KAAMvC,GACNW,IAAK,YACL6B,SAAU,CAAC,aAAc,QAAS,YAAa,IAAA,EAC/C5B,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,yBAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA2BC,MAAA,CACpD,CACF,CAAA,CACD,CAAA,CAEL,EACAsB,aAAc,CACZJ,OAAQxC,EACV,EACA6C,cAAe,CACbL,OAAQxC,EACV,CACF,CACF,CAAA,EOrGA,OAAS8C,eAAAA,GAAaC,+BAAAA,GAA6BC,gBAAAA,GAAcC,YAAAA,OAAgB,gBACjF,OAASC,qBAAAA,OAAyB,8DCDlC,MAAkB,QAEX,IAAMC,GAA4BA,IACvCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CACCC,EAAE,4ZACFP,KAAK,iBAEPM,GAAC,OAAA,CACCC,EAAE,0GACFP,KAAK,iBAEPM,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,cAAcC,OAAO,eAAeC,YAAY,QACxDH,GAAC,OAAA,CAAKC,EAAE,YAAYC,OAAO,eAAeC,YAAY,WCtB1D,OAASC,eAAAA,GAAaC,gBAAAA,GAAcC,YAAAA,OAAgB,gBAI7C,IAAMC,GAAmC,CAC9CC,KAAM,UACNC,aAAc,CAACC,GAAUC,EAAA,EACzBC,OAAQA,CAACC,EAAMC,IACNC,GAAYF,CAAA,EAAQG,GAAWH,EAAMC,EAAgB,CAAA,EAAK,KAEnEG,OAAQ,kBACRC,QAASC,GAAY,QAAA,CACvB,EFDA,IAAMC,GAAgC,CACpCC,EAAkC,CAChC,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EAAI,CACvC,GAAIC,GAAYF,CAAA,GAASA,EAAKG,YAAW,IAAO,SAC9C,SAGF,IAAMC,EAASJ,EAAKK,UAAS,EAE7B,GAAIH,GAAYE,CAAA,GAAWA,EAAOD,YAAW,IAAO,SAClD,SAGF,IAAMG,EAAeF,GAAQC,UAAA,EAE7B,GAAIH,EAAAA,GAAYI,CAAA,GAAiBA,EAAaH,YAAW,IAAO,UAIhE,MAAO,EACT,CACA,MAAO,EACT,EACAI,IAAK,cACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,2BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA6BC,MAAA,CACtD,EACAC,MAAO,EACT,CAAA,CACD,CAAA,EAGUC,GAA2BC,EAAoB,CAAC,CAAEC,mBAAAA,CAAkB,KACxE,CACLC,qBAAsB,CAACC,EAAA,EACvBC,MAAOH,EAAmBI,IAAI,aAAA,EAAiB,CAAA,EAAK,CAACC,GAAUC,EAAA,EAC/DC,QAASP,EAAmBI,IAAI,aAAA,EAC5B,CAAA,EACA,CACE,CACEI,UAAWC,GACXC,SAAU,QACZ,CAAA,EAENC,UAAW,CACTC,OAAQ,CACNC,GAA4B,CAC1B,CACEC,KAAMrC,GACNW,IAAK,cACL2B,SAAU,CAAC,eAAgB,IAAA,EAC3B1B,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,2BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA6BC,MAAA,CACtD,CACF,CAAA,CACD,CAAA,CAEL,EACAoB,aAAc,CACZJ,OAAQtC,EACV,EACA2C,cAAe,CACbL,OAAQtC,EACV,CACF,EACF,EGxFA,OAAS4C,eAAAA,GAAaC,iCAAAA,GAA+BC,gBAAAA,GAAcC,YAAAA,OAAgB,gBACnF,OAASC,qBAAAA,OAAyB,8DCFlC,MAAkB,QAEX,IAAMC,GAA8BA,IACzCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,SAAA,CAAOC,GAAG,IAAIC,GAAG,IAAIR,KAAK,eAAeS,EAAE,OAAOC,OAAO,eAAeC,YAAY,QACrFL,GAAC,SAAA,CAAOC,GAAG,IAAIC,GAAG,KAAKR,KAAK,eAAeS,EAAE,OAAOC,OAAO,eAAeC,YAAY,QACtFL,GAAC,SAAA,CAAOC,GAAG,IAAIC,GAAG,KAAKR,KAAK,eAAeS,EAAE,OAAOC,OAAO,eAAeC,YAAY,QACtFL,GAAC,OAAA,CAAKM,EAAE,UAAUF,OAAO,eAAeC,YAAY,QACpDL,GAAC,OAAA,CAAKM,EAAE,WAAWF,OAAO,eAAeC,YAAY,QACrDL,GAAC,OAAA,CAAKM,EAAE,WAAWF,OAAO,eAAeC,YAAY,WCjBzD,OAASE,eAAAA,GAAaC,gBAAAA,GAAcC,YAAAA,OAAgB,gBAI7C,IAAMC,GAAqC,CAChDC,KAAM,UACNC,aAAc,CAACC,GAAUC,EAAA,EACzBC,OAAQA,CAACC,EAAMC,IACNC,GAAYF,CAAA,EAAQG,GAAWH,EAAMC,EAAgB,CAAA,EAAK,KAEnEG,OAAQ,gBACRC,QAASC,GAAY,QAAA,CACvB,EFAA,IAAMC,GAAgC,CACpCC,EAAkC,CAChC,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EAAI,CACvC,GAAIC,GAAYF,CAAA,GAASA,EAAKG,YAAW,IAAO,SAC9C,SAGF,IAAMC,EAASJ,EAAKK,UAAS,EAE7B,GAAIH,GAAYE,CAAA,GAAWA,EAAOD,YAAW,IAAO,SAClD,SAGF,IAAMG,EAAeF,GAAQC,UAAA,EAE7B,GAAIH,EAAAA,GAAYI,CAAA,GAAiBA,EAAaH,YAAW,IAAO,UAIhE,MAAO,EACT,CACA,MAAO,EACT,EACAI,IAAK,gBACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,6BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA+BC,MAAA,CACxD,EACAC,MAAO,EACT,CAAA,CACD,CAAA,EAGUC,GAA6BC,EAAoB,CAC5DC,qBAAsB,CAACC,EAAA,EACvBC,MAAO,CAACC,GAAUC,EAAA,EAClBC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,EAEFC,UAAW,CACTC,OAAQ,CACNC,GAA4B,CAC1B,CACEC,KAAMnC,GACNW,IAAK,gBACLyB,SAAU,CAAC,iBAAkB,IAAA,EAC7BxB,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,6BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA+BC,MAAA,CACxD,CACF,CAAA,CACD,CAAA,CAEL,EACAkB,aAAc,CACZJ,OAAQpC,EACV,EACAyC,cAAe,CACbL,OAAQpC,EACV,CACF,CAAA,2CGpFA,OAAS0C,0BAAAA,OAA8B,iBACvC,OAASC,iBAAAA,OAAqB,UAC9B,UAAYC,OAAW,QAcvB,IAAMC,GAAkBC,QAAK,IAC3B,OAAO,yBAAA,EAAkBC,KAAMC,IAAY,CACzCC,QAASD,EAAOE,6BAClB,EAAA,CAAA,EAIWC,GAAN,MAAMA,UAA6BR,EAAA,CACxCS,OAEAC,YAAY,CAAEC,KAAAA,EAAMC,IAAAA,CAAG,EAAuD,CAC5E,MAAMA,CAAA,EACN,KAAKH,OAASE,CAChB,CAEA,OAAOE,MAAMC,EAAkD,CAC7D,OAAO,IAAIN,EAAqB,CAC9BG,KAAMG,EAAKL,OACXG,IAAKE,EAAKC,KACZ,CAAA,CACF,CAEA,OAAOC,SAAkB,CACvB,MAAO,kBACT,CAEA,OAAOC,WAAWC,EAAsE,CAEtF,OADaC,GAA4B,CAAER,KAAMO,EAAeP,IAAK,CAAA,CAEvE,CAEAS,oBAA2B,CACzB,MAAO,EACT,CAEAC,qBAA4B,CAC1B,MAAO,EACT,CAEAC,UAAUC,EAAmC,CAC3C,IAAMC,EAAUC,SAASC,cAAc,MAAA,EACvC3B,OAAAA,GAAuByB,EAAS,kBAAA,EACzBA,CACT,CAEAG,UAA+B,CAC7B,OAAOC,GAAC1B,GAAA,CAAUS,KAAM,KAAKF,QAC/B,CAEAoB,YAA6C,CAC3C,MAAO,CACLC,KAAM,KAAKd,QAAO,EAClBL,KAAM,KAAKF,OACXsB,QAAS,CACX,CACF,CAIAC,UAAoB,CAClB,MAAO,EACT,CAEAC,UAAUC,EAAgCC,EAA2B,CACnE,MAAO,EACT,CACF,EAEO,SAAShB,GAA4B,CAC1CR,KAAAA,CAAI,EAGL,CACC,OAAO,IAAIH,GAAqB,CAC9BG,KAAAA,CACF,CAAA,CACF,CC1FO,IAAMyB,GAAsCC,EAAoB,KAC9D,CACLC,MAAO,CAACC,EAAA,CACV,EACF,2CCNA,OAASC,0BAAAA,OAA8B,iBACvC,OAASC,iBAAAA,OAAqB,UAC9B,UAAYC,OAAW,QAcvB,IAAMC,GAAkBC,QAAK,IAC3B,OAAO,yBAAA,EAAkBC,KAAMC,IAAY,CACzCC,QAASD,EAAOE,6BAClB,EAAA,CAAA,EAIWC,GAAN,MAAMA,UAA6BR,EAAA,CACxCS,OAEAC,YAAY,CAAEC,KAAAA,EAAMC,IAAAA,CAAG,EAAuD,CAC5E,MAAMA,CAAA,EACN,KAAKH,OAASE,CAChB,CAEA,OAAOE,MAAMC,EAAkD,CAC7D,OAAO,IAAIN,EAAqB,CAC9BG,KAAMG,EAAKL,OACXG,IAAKE,EAAKC,KACZ,CAAA,CACF,CAEA,OAAOC,SAAkB,CACvB,MAAO,kBACT,CAEA,OAAOC,WAAWC,EAAsE,CAEtF,OADaC,GAA4B,CAAER,KAAMO,EAAeP,IAAK,CAAA,CAEvE,CAEAS,oBAA2B,CACzB,MAAO,EACT,CAEAC,qBAA4B,CAC1B,MAAO,EACT,CAEAC,UAAUC,EAAmC,CAC3C,IAAMC,EAAUC,SAASC,cAAc,MAAA,EACvC3B,OAAAA,GAAuByB,EAAS,kBAAA,EACzBA,CACT,CAEAG,UAA+B,CAC7B,OAAOC,GAAC1B,GAAA,CAAUS,KAAM,KAAKF,QAC/B,CAEAoB,YAA6C,CAC3C,MAAO,CACLC,KAAM,KAAKd,QAAO,EAClBL,KAAM,KAAKF,OACXsB,QAAS,CACX,CACF,CAIAC,UAAoB,CAClB,MAAO,EACT,CAEAC,UAAUC,EAAgCC,EAA2B,CACnE,MAAO,EACT,CACF,EAEO,SAAShB,GAA4B,CAC1CR,KAAAA,CAAI,EAGL,CACC,OAAO,IAAIH,GAAqB,CAC9BG,KAAAA,CACF,CAAA,CACF,CC1FO,IAAMyB,GAA8BC,EAAoB,CAAC,CAAEC,gBAAAA,CAAe,KACxE,CACLC,MAAO,CAACC,EAAA,CACV,EACF,ECPA,OAASC,kBAAAA,OAAsB,qBAC/B,OAASC,wBAAAA,GAAsBC,iBAAAA,GAAeC,oBAAAA,GAAkBC,qBAAAA,OAAyB,UASzF,IAAMC,GAAgC,CACpCC,EAAkC,CAChC,CACEC,eAAgBC,GAChBC,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAkBD,CAAA,EACrB,MAAO,GAET,QAAWE,KAAQF,EAAUG,SAAQ,EACnC,GAAI,CAACC,GAAiBF,CAAA,GAAS,CAACE,GAAiBF,EAAKG,UAAS,CAAA,EAC7D,MAAO,GAGX,MAAO,EACT,EACAC,IAAK,YACLC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,0BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,OAAO,IAAA,CACZ,IAAMZ,EAAYa,GAAA,EAClBC,GAAed,EAAW,IAAMe,GAAA,CAAA,CAClC,CAAA,CACF,EACAC,MAAO,CACT,CAAA,CACD,CAAA,EAGUC,GAAyBC,EAAoB,CACxDC,UAAW,CACTC,OAAQ,CACNC,EAA6B,CAC3B,CACEC,KAAMxB,GACNQ,IAAK,YACLiB,SAAU,CAAC,SAAU,YAAa,IAAK,MAAA,EACvChB,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,yBAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,OAAO,IAAA,CACZ,IAAMZ,EAAYa,GAAA,EAClBC,GAAed,EAAW,IAAMe,GAAA,CAAA,CAClC,CAAA,CACF,CACF,CAAA,CACD,CAAA,CAEL,EACAS,aAAc,CACZJ,OAAQzB,EACV,EACA8B,cAAe,CACbL,OAAQzB,EACV,CACF,CAAA,ECnEA,OAAS+B,oBAAAA,OAAwB,8DCDjC,MAAkB,QAEX,IAAMC,GAA6BA,IACxCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,IAAA,CAAEC,SAAS,kCACVD,GAAC,OAAA,CACCE,EAAE,2LACFC,OAAO,eACPC,cAAc,QACdC,eAAe,YAGnBL,GAAC,OAAA,UACCA,GAAC,WAAA,CAASM,GAAG,4BACXN,GAAC,OAAA,CAAKN,KAAK,eAAeE,OAAO,KAAKW,UAAU,iBAAiBT,MAAM,cCxB/E,OAAAU,KAAAC,OAAA,kEAGA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,4BAAAA,OAAgC,iBACzC,OAASC,aAAAA,OAAiB,iBAC1B,OACEC,yBAAAA,GACAC,iBAAAA,GACAC,oBAAAA,GACAC,qBAAAA,GACAC,2BAAAA,GACAC,iBAAAA,OACK,UACP,OAASC,aAAAA,OAAiB,QCd1B,OAAAC,KAAAC,OAAA,kEAGA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,iBAAAA,OAAqB,iBAC9B,OAASC,iBAAAA,GAAeC,2BAAAA,OAA+B,UACvD,OAA6BC,aAAAA,GAAWC,YAAAA,OAAgB,QAOxD,IAAMC,GAAqBA,CAAC,CAC1BC,OAAAA,EACAC,WAAAA,EACAC,eAAAA,EACAC,MAAAA,CAAK,IAMN,CACMD,EAMHF,EAAOI,OAAO,IAAA,CACZ,IAAMC,EAAOC,GAAcJ,CAAA,EACvBG,GACFA,EAAKE,QAAQC,GAAwB,CAAEP,WAAAA,EAAYE,MAAAA,CAAM,CAAA,CAAA,CAE7D,CAAA,EAVAH,EAAOS,gBAAgBC,GAA6B,CAClDT,WAAAA,EACAE,MAAAA,CACF,CAAA,CASJ,EAMMQ,GAA+CC,GAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAAC,CAAAC,uBAAAA,CAAA,EAAAH,EACpD,CAAAZ,CAAA,EAAiBgB,GAAA,EAAAC,EAAAJ,EAAA,CAAA,IAAAE,GAEfE,EAAAA,IAAMF,EAAsB,CAAA,EAAGF,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAI,GAAAA,EAAAJ,EAAA,CAAA,EADjC,GAAA,CAAAK,EAAAC,CAAA,EAA4DC,GAC1DH,CAA+B,EAEjC,CAAAf,EAAAmB,CAAA,EAA4CD,GAAA,IAAwB,EAAAE,EAAAT,EAAA,CAAA,IAAAE,GAAAF,EAAA,CAAA,IAAAK,GAE6BI,EAAA,CAAAC,gBAC9ER,EAAAS,mBACGN,CAAA,EACtBL,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,EAAAS,GAAAA,EAAAT,EAAA,CAAA,EAHA,GAAA,CAAAY,EAAAC,EAAAC,CAAA,EAAmFC,GAAcN,CAGjG,EAHsC,CAAAO,YAAAA,EAAAC,aAAAA,EAAAC,WAAAA,CAAA,EAAAJ,EAAyCK,EAAAC,EAAApB,EAAA,CAAA,IAAAb,GAAAa,EAAA,CAAA,IAAAkB,GAKrEC,EAAAA,IACDhC,EAAAkC,gBAAAC,GAAAC,IAKHf,EAAkBe,GAAA7B,QAAmB6B,GAAA7B,QAAA8B,QAAA,IAA2B,EAChEN,EAAA,EAAA,IAAAO,EAGF,EAEDL,EAAA,CAACjC,EAAQ+B,CAAA,EAAWlB,EAAA,CAAA,EAAAb,EAAAa,EAAA,CAAA,EAAAkB,EAAAlB,EAAA,CAAA,EAAAmB,EAAAnB,EAAA,CAAA,EAAAoB,IAAAD,EAAAnB,EAAA,CAAA,EAAAoB,EAAApB,EAAA,CAAA,GAZvB0B,GAAUP,EAYPC,CAAoB,EAAA,IAAAO,EAAA3B,EAAA,CAAA,IAAAb,GAAAa,EAAA,EAAA,IAAAX,GAAAW,EAAA,EAAA,IAAAgB,GAGrBW,EAAAC,GAAA,CAAC,GAAA,CAAAC,eAAAA,EAAAC,MAAAA,CAAA,EAAAF,EACC1C,GAAA,CAAAC,OAAAA,EAAAC,WAEcyC,EAAAxC,eAAAA,EAAAC,MAELwC,CAAA,CACT,EACAd,EAAA,CAAA,EACFhB,EAAA,CAAA,EAAAb,EAAAa,EAAA,EAAA,EAAAX,EAAAW,EAAA,EAAA,EAAAgB,EAAAhB,EAAA,EAAA,EAAA2B,GAAAA,EAAA3B,EAAA,EAAA,EATF,IAAA+B,EAAiBJ,EAUsBC,EAAA5B,EAAA,EAAA,IAAAE,GAG7B0B,EAAAA,IAAA,CAGRtB,EAA0BJ,EAAsB,CAAA,CAAG,CAAA,EACrDF,EAAA,EAAA,EAAAE,EAAAF,EAAA,EAAA,EAAA4B,GAAAA,EAAA5B,EAAA,EAAA,EAAA,IAAAgC,EAAAhC,EAAA,EAAA,IAAAiB,GAAAjB,EAAA,EAAA,IAAAE,GAAG8B,EAAA,CAACf,EAAcf,CAAA,EAAuBF,EAAA,EAAA,EAAAiB,EAAAjB,EAAA,EAAA,EAAAE,EAAAF,EAAA,EAAA,EAAAgC,GAAAA,EAAAhC,EAAA,EAAA,EAJzC0B,GAAUE,EAIPI,CAAsC,EAAA,IAAAC,EAAA,OAAAjC,EAAA,EAAA,IAAA+B,GAAA/B,EAAA,EAAA,IAAAY,GAElCqB,EAAAC,GAACtB,EAAA,CAAAmB,SAAAA,CAAA,CAAA,mCAADE,GAGIE,GAAsBC,GAC1BA,GAAOlC,wBAAwBmC,OAAS,EAC7CH,GAACpC,GAAA,CAA6B,GAAGsC,IAEjCF,GAACI,GAAA,CAA+B,GAAGF,WACjCF,GAACpC,GAAA,CAA6B,GAAGsC,MDzEhC,IAAMG,GAAgEC,GAC3E,6BAAA,EAGWC,GAAgEC,GAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAAC,CAAAC,YAAAA,CAAA,EAAAH,EAC5E,CAAAI,CAAA,EAAiBC,GAAA,EACjB,CAAAC,OAAAC,CAAA,EAEIC,GAAA,EADM,CAAAC,YAAAA,CAAA,EAAAF,EAGVG,EAAA,KAAiC,GAE7BP,GAAAQ,mBACFD,EAAmBP,GAAAQ,2BACVR,GAAAS,oBAAA,CAAA,IAAAC,EAAA,GAAAZ,EAAA,CAAA,IAAAE,GAAAF,EAAA,CAAA,IAAAQ,EAAA,CAAA,IAAAK,EAAAb,EAAA,CAAA,IAAAE,GAECW,EAAAC,GAAA,CAAC,GAAA,CAAAC,KAAAA,CAAA,EAAAD,EAAQ,MAAA,CAAMZ,GAAAS,qBAAAK,SAA2CD,CAAA,CAAA,EAAAf,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAa,GAAAA,EAAAb,EAAA,CAAA,EADjDY,EAAAJ,EAAAS,OACTJ,CAA0D,EAAAK,IAAAC,EAC/C,EAAAnB,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAQ,EAAAR,EAAA,CAAA,EAAAY,CAAA,MAAAA,EAAAZ,EAAA,CAAA,EAFrBS,EAAmBA,CAAnB,CAAA,IAAAG,EAAAC,EAAAb,EAAA,CAAA,IAAAG,GAKQS,EAAAA,IAAA,CAAA,GAAA,CACHT,EAAAiB,SAAA,CAAAC,EAAA,CAAkC,EAAA,MAAA,IAAAC,MACrB,+DAAA,EAAA,OAGXnB,EAAAoB,gBAAA3B,GAAA4B,GAAA,CAGH,IAAAC,EAAkBC,GAAA,GAAmBC,GAAA,EAAA,GAEjCC,GAAkBH,CAAA,EAAA,CACpB,IAAAI,EAAyBC,GAAwBN,CAAA,EAEjDO,GAAyBF,CAAA,EAEzB,GAAA,CAAAG,MAAAA,CAAA,EAAkBP,EAClBQ,EAAkBD,EAAAE,QAAa,EAK7BC,GAAiBF,CAAA,GACjBA,EAAAG,mBAA4B,IAAA,GAC5BH,EAAAI,UACY,EAAAC,YACE,EAAArB,OAAAsB,GACMJ,GAAiBI,CAAA,CAAA,EAAAC,OAAA,GAErCP,EAAAQ,OAAgB,CAAA,CAAA,MAAA,EAAA,EAAAC,EAMtB,CAAA,EAED7B,EAAA,CAACV,CAAA,EAAOH,EAAA,CAAA,EAAAG,EAAAH,EAAA,CAAA,EAAAY,EAAAZ,EAAA,CAAA,EAAAa,IAAAD,EAAAZ,EAAA,CAAA,EAAAa,EAAAb,EAAA,CAAA,GApCX2C,GAAU/B,EAoCPC,CAAQ,EAAA,IAAAC,EAAA,OAAAd,EAAA,CAAA,IAAAS,GAEJK,EAAA8B,GAAAC,GAAA,CAAAC,uBAA4CrC,CAAA,CAAA,wBAA5CK,GAtDoE,SAAAK,GAAApB,EAAA,CAajE,GAAA,CAAAgB,KAAAgC,CAAA,EAAAhD,EAAQ,OAAKgB,CAAA,CF1BlB,IAAMiC,GAA4BC,EAA8C,CACrFC,MAAO,CAACC,EAAA,EACRC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,EAEFC,UAAW,CACTC,OAAQ,CACNC,EAA6B,CAC3B,CACEC,KAAMC,GACNC,IAAK,eACLC,SAAU,CAAC,eAAgB,WAAY,KAAA,EACvCC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,4BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CAEnBA,EAAOC,gBAAgBC,GAAyC,CAC9DC,QAAS,EACX,CAAA,CACF,CACF,CAAA,CACD,CAAA,CAEL,EACAC,aAAc,CACZd,OAAQ,CACNe,EAAiC,CAC/B,CACEC,eAAgBb,GAChBc,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAiBD,CAAA,GAAc,CAACA,EAAUE,SAAQ,EAAGC,OACxD,MAAO,GAGT,IAAMC,EAAYJ,EAAUE,SAAQ,EAAG,CAAA,EACvC,OAAOG,GAAoBD,CAAA,CAC7B,EACAlB,IAAK,eACLE,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,4BAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CAEnBA,EAAOC,gBAAgBC,GAAyC,CAC9DC,QAAS,EACX,CAAA,CACF,CACF,CAAA,CACD,CAAA,CAEL,CACF,CAAA,EIrEA,OAAAW,KAAAC,OAAA,4EAGA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,iBAAAA,GAAeC,sBAAAA,GAAoBC,kBAAAA,OAAsB,iBAClE,UAAYC,OAAW,QACvB,OAASC,WAAAA,OAAe,iDCHxB,OAASC,iBAAAA,OAAqB,iBAC9B,OAASC,iBAAAA,OAAqB,UAC9B,OAAgBC,eAAAA,GAAaC,aAAAA,GAAWC,YAAAA,OAAgB,QAOxD,IAAMC,GAAY,wBAELC,GAAgBA,CAAC,CAC5BC,SAAAA,EACAC,OAAAA,EACAC,KAAAA,CAAI,IAKL,CACC,GAAM,CAACC,EAASC,CAAA,EAAcC,GAAkB,EAAA,EAC1C,CAACC,EAAQC,CAAA,EAAaF,GAAkB,EAAA,EACxC,CAACG,EAAWC,CAAA,EAAgBJ,GAAiBP,EAAA,EAC7CY,EAAsBC,EAAA,EAEtBC,EAAeC,GAAY,IAAA,CAC/BZ,EAAOa,eAAc,EAAGC,KAAK,IAAA,CAC3B,IAAMC,EAAYC,GAAA,EAClB,GAAIf,EAAKgB,SAAU,CACjB,IAAMA,EAAWhB,EAAKgB,SAAS,CAAEjB,OAAAA,EAAQS,oBAAAA,EAAqBM,UAAAA,CAAU,CAAA,EACpEV,IAAWY,GACbX,EAAUW,CAAA,CAEd,CACA,GAAIhB,EAAKiB,UAAW,CAClB,IAAMA,EAAYjB,EAAKiB,UAAU,CAAElB,OAAAA,EAAQS,oBAAAA,EAAqBM,UAAAA,CAAU,CAAA,EACtEb,IAAYgB,GACdf,EAAWe,CAAA,CAEf,CACF,CAAA,CACF,EAAG,CAACb,EAAQL,EAAQS,EAAqBP,EAASD,CAAA,CAAK,EAEvDkB,OAAAA,GAAU,IAAA,CACRR,EAAA,CACF,EAAG,CAACA,CAAA,CAAa,EAEjBQ,GAAU,KACRC,SAASC,iBAAiB,UAAWV,CAAA,EAC9B,IAAA,CACLS,SAASE,oBAAoB,UAAWX,CAAA,CAC1C,GACC,CAACA,CAAA,CAAa,EAEjBQ,GAAU,IACDI,GACLvB,EAAOwB,uBAAuB,IAAA,CAC5Bb,EAAA,CACF,CAAA,CAAA,EAED,CAACX,EAAQW,CAAA,CAAa,EAEzBQ,GAAU,IAAA,CACRX,EACE,CACEX,GACAK,IAAY,GAAQ,WAAa,GACjCG,EAAS,SAAW,GACpBJ,GAAMwB,IAAM,GAAG5B,EAAA,IAAeI,EAAKwB,IAAM,EAAA,EAExCC,OAAOC,OAAA,EACPC,KAAK,GAAA,CAAA,CAEZ,EAAG,CAAC1B,EAASG,EAAQE,EAAWN,EAAKwB,GAAG,CAAC,EAGvCI,GAAC,SAAA,CACCtB,UAAWA,EACXuB,QAASA,IAAA,CACP,GAAI5B,IAAY,GACdF,OAAAA,EAAO+B,YAAc,IAAIC,IAAI,CAAA,GAAIhC,EAAO+B,YAAa,SAAA,CAAU,EAE/D/B,EAAOiC,MAAM,IAAA,CAEXhC,EAAKiC,SAAS,CACZlC,OAAAA,EACAiB,SAAUZ,CACZ,CAAA,CACF,CAAA,EAEO,EAEX,EACA8B,YAAcC,GAAA,CAIZA,EAAEC,eAAc,CAClB,EACAC,KAAK,kBAEJvC,GAGP,EC3GA,OAAAwC,KAAAC,OAAA,6EACA,OAAOC,IAAsBC,aAAAA,OAAiB,QAM9C,OAASC,iBAAAA,OAAqB,iBAC9B,OAASC,kBAAAA,OAAsB,iBAC/B,OAASC,iBAAAA,OAAqB,8DCN9B,OAAOC,IAAyBC,eAAAA,GAAaC,aAAAA,GAAWC,WAAAA,GAASC,UAAAA,GAAQC,YAAAA,OAAgB,QACzF,OAASC,gBAAAA,OAAoB,YAI7B,IAAMC,GAAY,+BAMZC,GAAkBR,GAAMS,cAA0C,IAAA,EAEjE,SAASC,GAAa,CAC3BC,OAAAA,EACAC,SAAAA,EACAC,OAAAA,EACAC,QAAAA,EACAC,KAAAA,EACAC,MAAAA,CAAK,EAQN,CACC,GAAM,CAACC,EAAWC,CAAA,EAAgBb,GAAiBE,EAAA,EAEnDL,GAAU,IAAA,CACRgB,EACE,CACEX,GACAO,IAAY,GAAQ,WAAa,GACjCH,EAAS,SAAW,GACpBI,GAAMI,IAAM,GAAGZ,EAAA,IAAaQ,EAAKI,GAAG,GAAK,EAAA,EAExCC,OAAOC,OAAA,EACPC,KAAK,GAAA,CAAA,CAEZ,EAAG,CAACR,EAASH,EAAQM,EAAWF,EAAKI,GAAG,CAAC,EAEzC,IAAMI,EAAMnB,GAA0B,IAAA,EAEhCoB,EAAkBxB,GAAMyB,WAAWjB,EAAA,EAEzC,GAAIgB,IAAoB,KACtB,MAAM,IAAIE,MAAM,6CAAA,EAGlB,GAAM,CAAEC,aAAAA,CAAY,EAAKH,EAEzBtB,OAAAA,GAAU,IAAA,CACJqB,GAAKK,SAAW,MAClBD,EAAaJ,CAAA,CAEjB,EAAG,CAACA,EAAKI,CAAA,CAAa,EAGpBE,GAAC,SAAA,CACCZ,UAAWA,EACXa,QAASA,IAAA,CACHhB,IAAY,KACdD,EAAOkB,YAAc,IAAIC,IAAI,CAAA,GAAInB,EAAOkB,YAAa,SAAA,CAAU,EAE/DlB,EAAOoB,MAAM,IAAA,CAEXlB,EAAKmB,SAAS,CACZrB,OAAAA,EACAsB,SAAUxB,CACZ,CAAA,CACF,CAAA,EAEJ,EACAyB,YAAcC,GAAA,CAGZA,EAAEC,eAAc,CAClB,EACAf,IAAKA,EACLP,MAAOA,EACPuB,KAAK,kBAEJ3B,GAGP,CAEA,SAAS4B,GAAc,CACrB5B,SAAAA,EACA6B,YAAAA,EACAC,yBAAAA,EACAC,QAAAA,CAAO,EAMR,CACC,GAAM,CAACC,EAAOC,CAAA,EAAYxC,GAAA,EACpB,CAACyC,EAAiBC,CAAA,EACtB1C,GAAA,EAEIsB,EAAe1B,GAClB+C,GAAA,CACCH,EAAUI,GAAUA,GAAQ,KAAO,CAAA,GAAIA,EAAMD,CAAA,EAAW,CAACA,CAAA,CAAQ,CACnE,EACA,CAACH,CAAA,CAAS,EAGNK,EAAiBC,GAAA,CACrB,GAAIP,GAAS,KAAM,OAEnB,GAAM,CAAEzB,IAAAA,CAAG,EAAKgC,EAEZ,CAAC,YAAa,UAAW,SAAU,KAAA,EAAOC,SAASjC,CAAA,GACrDgC,EAAMb,eAAc,EAGlBnB,IAAQ,UAAYA,IAAQ,MAC9BwB,EAAA,EACSxB,IAAQ,UACjB4B,EAAoBE,GAAA,CAClB,GAAIA,GAAQ,KAAM,OAAOL,EAAM,CAAA,EAC/B,IAAMS,EAAQT,EAAMU,QAAQL,CAAA,EAAQ,EACpC,OAAOL,EAAMS,IAAU,GAAKT,EAAMW,OAAS,EAAIF,CAAA,CACjD,CAAA,EACSlC,IAAQ,aACjB4B,EAAoBE,GACdA,GAAQ,KAAaL,EAAM,CAAA,EACxBA,EAAMA,EAAMU,QAAQL,CAAA,EAAQ,CAAA,CACrC,CAEJ,EAEMO,EAAerD,GACnB,KAAO,CACLwB,aAAAA,CACF,GACA,CAACA,CAAA,CAAa,EAGhBzB,OAAAA,GAAU,IAAA,CACJ0C,GAAS,MAAQE,GAAmB,MACtCC,EAAmBH,EAAM,CAAA,CAAE,EAGzBE,GAAmB,MAAQA,GAAiBlB,SAAW,MACzDkB,EAAgBlB,QAAQK,MAAK,CAEjC,EAAG,CAACW,EAAOE,CAAA,CAAgB,EAGzBjB,GAACrB,GAAgBiD,SAAQ,CAACC,MAAOF,WAC/B3B,GAAC,MAAA,CACCZ,WAAYyB,GAA4B,CAAC,+BAAA,GAAkCpB,KAAK,GAAA,EAChFqC,UAAWT,EACX3B,IAAKkB,WAEJ7B,KAIT,CAEO,SAASgD,GAAS,CACvBC,KAAAA,EACAC,gBAAAA,EACAC,gBAAAA,EACAnD,SAAAA,EACAoD,SAAAA,EAAW,GACXtB,yBAAAA,EACAuB,MAAAA,EACAC,qBAAAA,CAAoB,EAUrB,CACC,IAAMzB,EAAcrC,GAAuB,IAAA,EACrC+D,EAAY/D,GAA0B,IAAA,EACtC,CAACgE,EAAcC,CAAA,EAAmBhE,GAAS,EAAA,EAE3CiE,EAAcA,IAAA,CAClBD,EAAgB,EAAA,EACZF,GAAWvC,SAAW,MACxBuC,EAAUvC,QAAQK,MAAK,CAE3B,EAEA/B,GAAU,IAAA,CACR,IAAMqE,EAASJ,EAAUvC,QACnB4C,EAAW/B,EAAYb,QAE7B,GAAIwC,GAAgBG,IAAW,MAAQC,IAAa,KAAM,CACxD,GAAM,CAAEC,KAAAA,EAAMC,IAAAA,CAAG,EAAKH,EAAOI,sBAAqB,EAC5CC,EAAkBC,OAAOC,SAAWC,SAASC,gBAAgBC,UACnET,EAASU,MAAMR,IAAM,GAAGA,EAAME,EAAkBL,EAAOY,aAAe,CAAA,KACtEX,EAASU,MAAMT,KAAO,GAAGW,KAAKC,IAAIZ,EAAO,EAAGI,OAAOS,WAAad,EAASe,YAAc,EAAA,CAAA,IACzF,CACF,EAAG,CAAC9C,EAAa0B,EAAWC,CAAA,CAAa,EAEzClE,GAAU,IAAA,CACR,IAAMqE,EAASJ,EAAUvC,QAEzB,GAAI2C,IAAW,MAAQH,EAAc,CACnC,IAAMoB,EAAUrC,GAAA,CACd,GAAM,CAAEsC,OAAAA,CAAM,EAAKtC,EACfe,GAAwB,MACtBzB,EAAYb,SAAW,MAAQa,EAAYb,QAAQ8D,SAASD,CAAA,GAI7DlB,EAAOmB,SAASD,CAAA,GACnBpB,EAAgB,EAAA,CAEpB,EACAU,gBAASY,iBAAiB,QAASH,CAAA,EAE5B,IAAA,CACLT,SAASa,oBAAoB,QAASJ,CAAA,CACxC,CACF,CACF,EAAG,CAAC/C,EAAa0B,EAAWC,EAAcF,CAAA,CAAqB,EAE/D,IAAM2B,EAASvF,GACbuB,GAACW,GAAA,CACCC,YAAaA,EACbC,yBAA0BA,EAC1BC,QAAS2B,WAER1D,IAEHmE,SAASe,IAAI,EAGf,OACEC,GAAC/F,GAAMgG,SAAQ,WACbD,GAAC,SAAA,CACC,aAAYjC,EACZ7C,UAAW8C,GAAmBK,EAAe,UAAY,IACzDJ,SAAUA,EACVlC,QAAUqB,GAAA,CACRA,EAAMb,eAAc,EACpB+B,EAAgB,CAACD,CAAA,CACnB,EACAhC,YAAcC,GAAA,CAIZA,EAAEC,eAAc,CAClB,EACAf,IAAK4C,EACL5B,KAAK,mBAEJsB,GAAQhC,GAACgC,EAAA,CAAA,CAAA,EACTI,GAASpC,GAAC,OAAA,CAAKZ,UAAU,yCAAiCgD,IAC3DpC,GAAC,IAAA,CAAEZ,UAAU,qCAGdmD,GAAgBvC,GAAC7B,GAAMgG,SAAQ,UAAEH,MAGxC,CD7QA,IAAMI,GAAY,0BAcZC,GAAcC,GAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAAC,CAAAC,OAAAA,EAAAC,WAAAA,EAAAC,OAAAA,EAAAC,QAAAA,EAAAC,KAAAA,CAAA,EAAAP,EAanB,CAAAQ,KAAAA,CAAA,EAAiBC,GAAA,EACjB,CAAAC,MAAAC,CAAA,EAEIC,EAAA,EADK,CAAAC,qBAAAA,CAAA,EAAAF,EAAwB,GAG7BJ,EAAAO,UAAA,CAAA,IAAAC,EAAA,OAAAd,EAAA,CAAA,IAAAM,GAAAN,EAAA,CAAA,IAAAE,GAAAF,EAAA,CAAA,IAAAG,GAAAH,EAAA,CAAA,IAAAI,GAAAJ,EAAA,CAAA,IAAAK,GAEAS,EAAAR,GAAAO,WACEE,GAACT,EAAAO,UAAA,CAAAX,OAAAA,EAAAC,WAAAA,EAAAC,OAAAA,EAAAC,QAAAA,EAAAC,KAAAA,CAAA,EAMMA,EAAAU,GAAQ,EAAAhB,EAAA,CAAA,EAAAM,EAAAN,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAG,EAAAH,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,EAAAc,GAAAA,EAAAd,EAAA,CAAA,EAPjBc,CAOiB,CAMrB,IAAAG,EAAYX,EAAAU,IAAQ,GAChBV,EAAAY,MAAA,CAAA,IAAAJ,EAAAd,EAAA,CAAA,IAAAM,GAAAN,EAAA,CAAA,IAAAO,GAAAP,EAAA,CAAA,IAAAY,GAEAE,EAAA,OAAOR,EAAAY,OAAe,WAAaZ,EAAAY,MAAA,CAAAX,KAAAA,EAAAK,qBAAAA,CAAA,CAAwC,EAAKN,EAAAY,MAAUlB,EAAA,CAAA,EAAAM,EAAAN,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,EAAAY,EAAAZ,EAAA,CAAA,EAAAc,GAAAA,EAAAd,EAAA,CAAA,EAD5FiB,EACEA,CADF,CAIEA,EAAAE,OAAA,KACFF,EAAQA,EAAAG,UAAA,EAAA,EAAmB,EAAM,OAAjC,IAAAN,EAAAd,EAAA,EAAA,IAAAM,GAKGQ,EAAAR,GAAAe,gBAAwBN,GAACT,EAAAe,eAAA,CAAA,CAAmB,EAAArB,EAAA,EAAA,EAAAM,EAAAN,EAAA,EAAA,EAAAc,GAAAA,EAAAd,EAAA,EAAA,EAAA,IAAAsB,EAAA,OAAAtB,EAAA,EAAA,IAAAiB,GAAAjB,EAAA,EAAA,IAAAc,GAAAd,EAAA,EAAA,IAAAE,GAAAF,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAAK,GAAAL,EAAA,EAAA,IAAAM,GAD/CgB,EAAAC,GAAAC,GAAA,CAAAtB,OAAAA,EAAAE,OAAAA,EAAAC,QAAAA,EAAAC,KAAAA,EAAAmB,SAAA,CACGX,EACDC,GAAC,OAAA,CAAAW,UAAe,OAAAD,SAAQR,CAAA,CAAA,CAAA,GAFuDX,EAAAU,GAAQ,EAAAhB,EAAA,EAAA,EAAAiB,EAAAjB,EAAA,EAAA,EAAAc,EAAAd,EAAA,EAAA,EAAAE,EAAAF,EAAA,EAAA,EAAAI,EAAAJ,EAAA,EAAA,EAAAK,EAAAL,EAAA,EAAA,EAAAM,EAAAN,EAAA,EAAA,EAAAsB,GAAAA,EAAAtB,EAAA,EAAA,EAAzFsB,CAAyF,EAOhFK,GAAkB5B,GAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAAC,CAAA2B,KAAAA,EAAAzB,WAAAA,EAAA0B,WAAAA,EAAAzB,OAAAA,EAAA0B,SAAAA,EAAAC,MAAAA,EAAAC,yBAAAA,EAAAd,MAAAA,EAAAe,eAAAA,EAAAC,eAAAA,CAAA,EAAAnC,EA0B/BW,EAAAV,EAAA,CAAA,IAAAmC,OAAAC,IAAA,2BAAA,GACsE1B,EAAA,CAAA,EAAEV,EAAA,CAAA,EAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAvE,GAAA,CAAAqC,EAAAC,CAAA,EAA4CC,GAAAC,SAAyB9B,CAAE,EAAAI,EAAAd,EAAA,CAAA,IAAAmC,OAAAC,IAAA,2BAAA,GACAtB,EAAA,CAAA,EAAEd,EAAA,CAAA,EAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAzE,GAAA,CAAAyC,EAAAC,CAAA,EAA8CH,GAAAC,SAAyB1B,CAAE,EACzE6B,EAA4BhC,EAAA,EAAAW,EAAAtB,EAAA,CAAA,IAAAI,GAAAJ,EAAA,CAAA,IAAA+B,GAAA/B,EAAA,CAAA,IAAAiC,GAAAjC,EAAA,CAAA,IAAA2C,GAAA3C,EAAA,CAAA,IAAAkC,GAEKZ,EAAAA,IAAA,CAC/BlB,EAAAwC,eAAqB,EAAAC,KAAA,IAAA,CACnB,IAAAC,EAAkBC,GAAA,EAElBC,EAAA,CAAA,EACAC,EAAA,CAAA,EACAC,GAAA,CAAA,EAAqC,QAEhC5C,MAAcyB,EACbzB,GAAA6C,WAAkB,CAAClB,GAAkBe,EAAA7B,OAAyBc,IAC/C3B,GAAA6C,SAAA,CAAA/C,OAAAA,EAAAuC,oBAAAA,EAAAG,UAAAA,CAAA,CAAuD,IAEtEE,EAAAI,KAAqB9C,GAAAU,GAAQ,EAC7BiC,EAAAG,KAAkB9C,EAAA,GAGlBA,GAAA+C,UACgB/C,GAAA+C,UAAA,CAAAjD,OAAAA,EAAAuC,oBAAAA,EAAAG,UAAAA,CAAA,CAAwD,GAExEI,GAAAE,KAAsB9C,GAAAU,GAAQ,EAGhCkC,GAAAE,KAAsB9C,GAAAU,GAAQ,EAGlCsB,EAAkBU,CAAA,EAClBN,EAAmBQ,EAAA,EAEfhB,GACFA,EAAA,CAAAoB,YAA8BL,CAAA,CAAa,CAAA,CAE/C,CAAA,EACFjD,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,EAAA+B,EAAA/B,EAAA,CAAA,EAAAiC,EAAAjC,EAAA,CAAA,EAAA2C,EAAA3C,EAAA,CAAA,EAAAkC,EAAAlC,EAAA,CAAA,EAAAsB,GAAAA,EAAAtB,EAAA,CAAA,EAhCA,IAAAuD,EAAqBjC,EAgCkDkC,EAAAC,EAAAzD,EAAA,CAAA,IAAAuD,GAE7DC,EAAAA,IAAA,CACRD,EAAA,CAAA,EACCE,EAAA,CAACF,CAAA,EAAavD,EAAA,CAAA,EAAAuD,EAAAvD,EAAA,CAAA,EAAAwD,EAAAxD,EAAA,EAAA,EAAAyD,IAAAD,EAAAxD,EAAA,CAAA,EAAAyD,EAAAzD,EAAA,EAAA,GAFjB0D,GAAUF,EAEPC,CAAc,EAAA,IAAAE,EAAAC,EAAA5D,EAAA,EAAA,IAAAuD,GAEPI,EAAAA,KACRE,SAAAC,iBAA0B,UAAWP,CAAA,EAAA,IAAA,CAEnCM,SAAAE,oBAA6B,UAAWR,CAAA,CAAA,GAEzCK,EAAA,CAACL,CAAA,EAAavD,EAAA,EAAA,EAAAuD,EAAAvD,EAAA,EAAA,EAAA2D,EAAA3D,EAAA,EAAA,EAAA4D,IAAAD,EAAA3D,EAAA,EAAA,EAAA4D,EAAA5D,EAAA,EAAA,GALjB0D,GAAUC,EAKPC,CAAc,EAAA,IAAAI,EAAAC,EAAAjE,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAAuD,GAEPS,EAAAA,IACDE,GACL9D,EAAA+D,uBAAA,IAAA,CACEZ,EAAA,CAAA,CACF,CAAA,EAEDU,EAAA,CAAC7D,EAAQmD,CAAA,EAAavD,EAAA,EAAA,EAAAI,EAAAJ,EAAA,EAAA,EAAAuD,EAAAvD,EAAA,EAAA,EAAAgE,EAAAhE,EAAA,EAAA,EAAAiE,IAAAD,EAAAhE,EAAA,EAAA,EAAAiE,EAAAjE,EAAA,EAAA,GANzB0D,GAAUM,EAMPC,CAAsB,EAKJ,IAAAG,EAAA,GAAGtC,CAAA,YACSuC,EAAA,GAAAxE,EAAA,IAAgBiC,CAAA,GAAUwC,EAAAtE,EAAA,EAAA,IAAA6B,GAAMyC,EAAAzC,GAAA,CAAA,EAAgB7B,EAAA,EAAA,EAAA6B,EAAA7B,EAAA,EAAA,EAAAsE,GAAAA,EAAAtE,EAAA,EAAA,EAAA,IAAAuE,EAAAvE,EAAA,EAAA,IAAAqE,GAAArE,EAAA,EAAA,IAAAsE,GAA5DC,EAAA,CAAA1E,GAAYwE,EAA0B,GAAMC,CAAgB,EAAAE,OAAAC,OACnE,EAAAzE,EAAA,EAAA,EAAAqE,EAAArE,EAAA,EAAA,EAAAsE,EAAAtE,EAAA,EAAA,EAAAuE,GAAAA,EAAAvE,EAAA,EAAA,EADO,IAAA0E,EAAAH,EACPI,KACF,GAAA,EAAAC,EAAA5E,EAAA,EAAA,IAAAgC,GAC6C4C,EAAA5C,GAAA,CAAA,EAA8BhC,EAAA,EAAA,EAAAgC,EAAAhC,EAAA,EAAA,EAAA4E,GAAAA,EAAA5E,EAAA,EAAA,EAAA,IAAA6E,EAAA,GAAA7E,EAAA,EAAA,IAAA4E,GAAA5E,EAAA,EAAA,IAAA+B,GAAA/B,EAAA,EAAA,IAAAqC,GAAArC,EAAA,EAAA,IAAAG,GAAAH,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAAyC,GAAAzC,EAAA,EAAA,IAAA4B,GAAA5B,EAAA,EAAA,IAAAoE,GAAApE,EAAA,EAAA,IAAA0E,GAAA1E,EAAA,EAAA,IAAAkB,GAAAlB,EAAA,EAAA,IAAA8B,EAAA,CAAA,IAAAgD,EAAA9E,EAAA,EAAA,IAAA+B,GAAA/B,EAAA,EAAA,IAAAqC,GAAArC,EAAA,EAAA,IAAAG,GAAAH,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAAyC,GAIlFqC,EAAA/C,EAAAZ,QACCY,EAAAgD,IAAAC,GAEIjE,GAAAjB,GAAA,CAAAI,OACUmC,EAAA4C,SAAwB3E,EAAAU,GAAQ,EAAAb,WAAAA,EAAAC,OAAAA,EAAAC,QAG/BoC,EAAAwC,SAAyB3E,EAAAU,GAAQ,EAAAV,KACpCA,CAAA,EACDA,EAAAU,GAAQ,CAGnB,EAAAhB,EAAA,EAAA,EAAA+B,EAAA/B,EAAA,EAAA,EAAAqC,EAAArC,EAAA,EAAA,EAAAG,EAAAH,EAAA,EAAA,EAAAI,EAAAJ,EAAA,EAAA,EAAAyC,EAAAzC,EAAA,EAAA,EAAA8E,GAAAA,EAAA9E,EAAA,EAAA,EAtBJ6E,EAAA9D,GAAAmE,GAAA,CAAAtD,KAAAA,EAAAuD,gBAEmBf,EAAsBgB,gBACtBV,EAET1C,yBAAA,CACmB,GAAAnC,EAAA,SAAoB,GAAM+E,CAA8B,EAAA1D,MAAAA,EAAAO,SAIlFqD,CAYC,EAfGhD,CAAA,EAAA9B,EAAA,EAAA,EAAA4E,EAAA5E,EAAA,EAAA,EAAA+B,EAAA/B,EAAA,EAAA,EAAAqC,EAAArC,EAAA,EAAA,EAAAG,EAAAH,EAAA,EAAA,EAAAI,EAAAJ,EAAA,EAAA,EAAAyC,EAAAzC,EAAA,EAAA,EAAA4B,EAAA5B,EAAA,EAAA,EAAAoE,EAAApE,EAAA,EAAA,EAAA0E,EAAA1E,EAAA,EAAA,EAAAkB,EAAAlB,EAAA,EAAA,EAAA8B,EAAA9B,EAAA,EAAA,EAAA6E,CAAA,MAAAA,EAAA7E,EAAA,EAAA,EAAA,OAPP6E,CAOO,EF7IX,SAASQ,GAAgB,CACvBC,WAAAA,EACAC,OAAAA,EACAC,KAAAA,CAAI,EAKL,CACC,OAAIA,EAAKC,UAELD,GAAMC,WACJC,EAACF,EAAKC,UAAS,CAACH,WAAYA,EAAYC,OAAQA,EAAQC,KAAMA,GAAWA,EAAKG,GAAG,EAMrFD,EAACE,GAAA,CAAcL,OAAQA,EAAQC,KAAMA,WAClCA,GAAMK,gBAAkBH,EAACF,EAAKK,eAAc,CAAA,CAAA,GADCL,EAAKG,GAAG,CAI5D,CAEA,SAAAG,GAAAC,EAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAA+B,CAAAX,WAAAA,EAAAC,OAAAA,EAAAW,aAAAA,EAAAC,MAAAA,EAAAC,MAAAA,CAAA,EAAAL,EAa7B,CAAAM,KAAAA,CAAA,EAAiBC,GAAA,EACjB,CAAAC,MAAAC,CAAA,EAEIC,EAAA,EADK,CAAAC,qBAAAA,CAAA,EAAAF,EAET,CAAAG,EAAAC,CAAA,EAA0CC,YAAA,IAA8B,EACxE,CAAAC,EAAAC,CAAA,EAAwCF,YAAA,IAAgC,EAAAG,EAAAC,EAAAjB,EAAA,CAAA,IAAAG,GAExDa,EAAAA,IAAA,CACVb,GAAAe,OAAgB,YAAcf,EAAAgB,MAAAC,QAAsBjB,EAAAN,eACtDkB,EAAA,IAAsBZ,EAAAN,cAAoB,EAE1CkB,EAAA,IAAgB,CAAA,EAEjBE,EAAA,CAACd,CAAA,EAAMH,EAAA,CAAA,EAAAG,EAAAH,EAAA,CAAA,EAAAgB,EAAAhB,EAAA,CAAA,EAAAiB,IAAAD,EAAAhB,EAAA,CAAA,EAAAiB,EAAAjB,EAAA,CAAA,GANVqB,aAAgBL,EAMbC,CAAO,EAAA,IAAAK,EAAAtB,EAAA,CAAA,IAAAG,GAAAH,EAAA,CAAA,IAAAK,GAAAL,EAAA,CAAA,IAAAU,GAEaY,EAAAC,GAAA,CAAC,GAAA,CAAAC,YAAAA,CAAA,EAAAD,EAAoD,GAAA,CACrEC,EAAAJ,OAAA,CACCjB,GAAAe,OAAgB,YAAcf,EAAAgB,MAAAC,QAAsBjB,EAAAN,gBACtDkB,EAAA,IAAsBZ,EAAAN,cAAoB,EAC1Ce,EAAA,IAAiB,IAEjBG,EAAA,IAAgB,EAChBH,EAAA,IAAiB,GAAA,MAAA,CAIrB,IAAApB,EAAagC,EAAW,CAAA,EAExBC,EAAYjC,EAAAG,IACRH,EAAAiC,QACFA,EACEA,OAAOjC,EAAAiC,OAAe,WAAajC,EAAAiC,MAAA,CAAApB,KAAAA,EAAAK,qBAAAA,CAAA,CAAwC,EAAKlB,EAAAiC,OAGhFA,EAAAL,OAAA,KACFK,EAAQA,EAAAC,UAAA,EAAA,EAAmB,EAAM,OAEnCd,EAAiBa,CAAA,EACjBV,EAAA,IAAsBvB,EAAAK,cAAmB,CAAA,EAC3CG,EAAA,CAAA,EAAAG,EAAAH,EAAA,CAAA,EAAAK,EAAAL,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,EAAAsB,GAAAA,EAAAtB,EAAA,CAAA,EAxBA,IAAA2B,EAAuBL,EA2BLC,EAAA,6CAA6CpB,EAAAR,GAAA,GAAWiC,EAAA5B,EAAA,CAAA,IAAAG,EAAAe,MAAAlB,EAAA,CAAA,IAAAG,EAAAgB,OAAAnB,EAAA,CAAA,IAAAG,EAAAR,KAAAK,EAAA,EAAA,IAAAc,GAAAd,EAAA,EAAA,IAAAV,GAAAU,EAAA,EAAA,IAAAT,GAAAS,EAAA,EAAA,IAAAW,GAAAX,EAAA,EAAA,IAAA2B,GACrEC,EAAAzB,EAAAe,OAAe,YACdf,EAAAgB,MAAAC,SACCN,EACCpB,EAAAmC,GAAA,CAAAC,KACQhB,EAAAxB,WAAAA,EAAAC,OAAAA,EAAAwC,SAGI5B,EAAAR,IAAAwB,MACHhB,EAAAgB,MAAAa,yBAAA,CACoB,+BAAA,EAAAP,MACpBd,EAAAsB,eAAA,EAAAN,eAAAA,CAAA,CAAA,EAKTjC,EAAAmC,GAAA,CAAAvC,WAAAA,EAAAC,OAAAA,EAAAwC,SAGY5B,EAAAR,IAAAwB,MACHhB,EAAAgB,MAAAa,yBAAA,CACoB,+BAAA,EAAAP,MACpBd,EAAAsB,eAAA,EAAAN,eAAAA,CAAA,CAAA,GAIX3B,EAAA,CAAA,EAAAG,EAAAe,KAAAlB,EAAA,CAAA,EAAAG,EAAAgB,MAAAnB,EAAA,CAAA,EAAAG,EAAAR,IAAAK,EAAA,EAAA,EAAAc,EAAAd,EAAA,EAAA,EAAAV,EAAAU,EAAA,EAAA,EAAAT,EAAAS,EAAA,EAAA,EAAAW,EAAAX,EAAA,EAAA,EAAA2B,EAAA3B,EAAA,EAAA,EAAA4B,GAAAA,EAAA5B,EAAA,EAAA,EAAA,IAAAkC,EAAAlC,EAAA,EAAA,IAAAG,GAAAH,EAAA,EAAA,IAAAV,GAAAU,EAAA,EAAA,IAAAT,GACD2C,EAAA/B,EAAAe,OAAe,WACdf,EAAAgB,MAAAC,QACAjB,EAAAgB,MAAAgB,IAAAC,GAEI1C,EAAAL,GAAA,CAAAC,WAAAA,EAAAC,OAAAA,EAAAC,KAA+DA,CAAA,EAAWA,EAAAG,GAAQ,CAEtF,EAAAK,EAAA,EAAA,EAAAG,EAAAH,EAAA,EAAA,EAAAV,EAAAU,EAAA,EAAA,EAAAT,EAAAS,EAAA,EAAA,EAAAkC,GAAAA,EAAAlC,EAAA,EAAA,EAAA,IAAAqC,EAAA,OAAArC,EAAA,EAAA,IAAAE,EAAAoC,SAAAC,cAAAvC,EAAA,EAAA,IAAAI,GAAAJ,EAAA,EAAA,IAAA4B,GAAA5B,EAAA,EAAA,IAAAkC,GAAAlC,EAAA,EAAA,IAAAuB,GAAAvB,EAAA,EAAA,IAAAG,EAAAR,KAjCJ0C,EAAAG,GAAC,MAAA,CAAAC,UAAelB,EAAwDmB,SAAA,CACrEd,EA0BAM,EAOA9B,EAAQF,EAAAoC,SAAAC,cAAAI,OAAAvB,OAAA,GAAyD1B,EAAC,MAAA,CAAA+C,UAAc,SAAA,CAAA,CAAA,GAlCJtC,EAAAR,GAAS,EAAAK,EAAA,EAAA,EAAAE,EAAAoC,SAAAC,aAAAvC,EAAA,EAAA,EAAAI,EAAAJ,EAAA,EAAA,EAAA4B,EAAA5B,EAAA,EAAA,EAAAkC,EAAAlC,EAAA,EAAA,EAAAuB,EAAAvB,EAAA,EAAA,EAAAG,EAAAR,IAAAK,EAAA,EAAA,EAAAqC,GAAAA,EAAArC,EAAA,EAAA,EAAxFqC,CAAwF,CAuC5F,SAASO,GAAa,CACpBtD,WAAAA,EACAuD,YAAAA,EACAtD,OAAAA,EACAW,aAAAA,EACA4C,uBAAAA,CAAsB,EAOvB,CACC,IAAMC,EAA0BC,UAAuB,IAAA,EAEjD,CAAEC,EAAAA,CAAC,EAAKC,GAAA,EAGRC,EAAoBC,GAAQ,IAAA,CAChC,GAAI,CAACN,GAA0BD,GAAaQ,+BAC1C,OAAO,KAIT,IAAIC,EADqBR,EAAuBS,mBAAmBC,QACpCC,uBAC/B,KAAOH,GAAS,CACd,GAAIA,EAAQI,UAAUC,SAAS,eAAA,EAC7B,OAAOL,EAETA,EAAUA,EAAQG,sBACpB,CACA,OAAO,IACT,EAAG,CAACZ,GAAaQ,+BAAgCP,CAAA,CAAuB,EAExEc,OAAAA,GACE,IAAA,CACE,GAAI,CAACT,EAEH,OAEF,IAAMU,EAAqBd,EAAkBS,QAC7C,GAAI,CAACK,EACH,OAGF,IAAMC,EAAcD,EAAmBE,sBAAqB,EACtDC,EAAab,EAAkBY,sBAAqB,EAO1D,GAJoB,EAClBD,EAAYG,OAASD,EAAWE,KAAOJ,EAAYI,IAAMF,EAAWC,QAIpElB,EAAkBS,QAAQf,UAAY,2CACtCU,EAAkBV,UAAY,wCACzB,CACL,GAAI,CAACM,EAAkBS,QAAQE,UAAUC,SAAS,4BAAA,EAChD,OAEFZ,EAAkBS,QAAQf,UAAY,gBACtCU,EAAkBV,UAAY,eAChC,CACF,EACA,GACA,CAACM,EAAmBI,EAAmBF,CAAA,CAAE,EAIzCvD,EAAC,MAAA,CACC+C,UAAU,gBACV0B,QAAUC,GAAA,CAGRA,EAAMC,gBAAe,CACvB,EACAC,IAAKvB,WAEJxD,EAAOgF,WAAU,GAChB7E,EAAO8E,YAAQ,UACZtE,GAAcoC,UACbpC,EAAaoC,UAAUC,cAAcI,OAAOR,IAAI,CAAChC,EAAOsE,IAEpD/E,EAACI,GAAA,CACCR,WAAYA,EACZC,OAAQA,EACRW,aAAcA,EACdC,MAAOA,EACPC,MAAOqE,GACFtE,EAAMR,GAAG,CAGpB,KAKZ,CAEA,IAAM+E,GACJC,GAAA,CAEA,GAAIA,EAAoBC,cAAc1E,aAAc,CAClD,GAAIyE,EAAoBC,cAAc1E,aAAa2E,mBAAmBC,IAAI,cAAA,EACxE,OAAOH,EAAoBC,aAE3B,GAAID,EAAoBC,aACtB,OAAOF,GAAgCC,EAAoBC,YAAY,CAG7E,CACA,MAAO,EACT,EAEaG,GAA0EA,CAAC,CACtFzF,WAAAA,EACAuD,YAAAA,CAAW,IACZ,CACC,GAAM,CAACmC,CAAA,EAAiBC,GAAA,EAClBN,EAAsBlE,EAAA,EAEtB,CAAEP,aAAcgF,CAAmB,EAAKP,EAExCpF,EAASsD,EAAYsC,sBACvBR,EAAoBS,eAAe7F,QAAUyF,EAG3C9E,EAAe2C,EAAYsC,sBAC7BR,EAAoBS,eAAelF,cAAgBgF,EAGjDpC,EAAyB4B,GAAgCC,CAAA,EAQ/D,OANI9B,GAAaQ,gCACXP,GAKF,CAAC5C,GAAcoC,UAAUC,cAAcI,QAAQvB,OAC1C,KAIP1B,EAACkD,GAAA,CACCtD,WAAYA,EACZC,OAAQA,EACRW,aAAcA,EACd4C,uBAAwBA,GAG9B,EIzRO,IAAMuC,GAA4BC,EAA8C,CACrFC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,gBACZ,CAAA,CAEJ,CAAA,ECdA,OAAAC,KAAAC,OAAA,4EAGA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,iBAAAA,OAAqB,iBAC9B,OACEC,iBAAAA,GACAC,qBAAAA,GACAC,eAAAA,GACAC,wBAAAA,GACAC,4BAAAA,OACK,UACP,OAASC,eAAAA,GAAaC,aAAAA,GAAWC,UAAAA,GAAQC,YAAAA,OAAgB,QACzD,UAAYC,OAAW,QACvB,OAASC,gBAAAA,OAAoB,YCbtB,SAASC,GAAgBC,EAA4BC,EAAwB,CAClF,IAAMC,EAAWF,EAAgBG,WAAW,CAAA,EAExCC,EAEJ,GAAIJ,EAAgBK,aAAeJ,EAAa,CAC9C,IAAIK,EAAQL,EACZ,KAAOK,EAAMC,mBAAqB,MAChCD,EAAQA,EAAMC,kBAEhBH,EAAOE,EAAME,sBAAqB,CACpC,MACEJ,EAAOF,EAASM,sBAAqB,EAGvC,OAAOJ,CACT,CCTO,SAASK,GAAwBC,EAUvC,CACC,GAAM,CACJC,mBAAAA,EAAqB,GACrBC,WAAAA,EACAC,oBAAAA,EAAsB,EACtBC,aAAAA,EACAC,iBAAAA,EAAmBC,GACnBC,mBAAAA,EAAqB,OACrBC,wBAAAA,EAA0B,GAC1BC,WAAAA,EACAC,YAAAA,EAAcC,EAAY,EACxBX,EAEEY,EAAeV,EAAWW,cAEhC,GAAIJ,IAAe,MAAQG,GAAgB,KAAM,CAC/CR,EAAaU,MAAMC,QAAU,IAC7BX,EAAaU,MAAME,UAAY,gCAC/B,MACF,CAEA,IAAMC,EAAmBb,EAAac,sBAAqB,EACrDC,EAAoBjB,EAAWgB,sBAAqB,EACpDE,EAAqBR,EAAaM,sBAAqB,EAEzDG,EAAMZ,EAAWY,IAAMJ,EAAiBK,OAASZ,EACjDa,EAAOd,EAAWc,KAAOlB,EAEzBE,IAAuB,WAEzBgB,EAAOd,EAAWc,KAAOd,EAAWe,MAAQ,EAAIP,EAAiBO,MAAQ,GAG3E,IAAIC,EAAa,EACjB,MAAI,CAACxB,GAAsBoB,EAAMD,EAAmBC,KAAO,CAACb,IAC1DiB,EAAaR,EAAiBK,OAASb,EAAWa,OAASZ,EAAc,EAEzEW,GAAOI,GAGLlB,IAAuB,SACrBgB,EAAON,EAAiBO,MAAQJ,EAAmBM,MACrDH,EAAOH,EAAmBM,MAAQT,EAAiBO,MAAQnB,EAClDkB,EAAOH,EAAmBG,OACnCA,EAAOH,EAAmBG,KAAOlB,GAG/BkB,EAAON,EAAiBO,MAAQJ,EAAmBM,QACrDH,EAAOH,EAAmBM,MAAQT,EAAiBO,MAAQnB,GAI/DkB,GAAQJ,EAAkBI,KAE1BnB,EAAaU,MAAMC,QAAU,IAEzBP,GAA2BL,IAAwB,GAGrDkB,GAAOF,EAAkBQ,OAASxB,EAAsBc,EAAiBK,OAAS,EAElFlB,EAAaU,MAAME,UAAY,aAAaO,CAAA,OAAWF,CAAA,uBAEvDA,GAAOF,EAAkBE,IAEzBjB,EAAaU,MAAME,UAAY,aAAaO,CAAA,OAAWF,CAAA,OAGlDI,CACT,CF7DA,SAASG,GAAgB,CACvBC,WAAAA,EACAC,OAAAA,EACAC,KAAAA,CAAI,EAKL,CACC,OAAIA,EAAKC,UAELD,GAAMC,WACJC,EAACF,EAAKC,UAAS,CAACH,WAAYA,EAAYC,OAAQA,EAAQC,KAAMA,GAAWA,EAAKG,GAAG,EAMrFD,EAACE,GAAA,CAAcL,OAAQA,EAAQC,KAAMA,WAClCA,GAAMK,gBAAkBH,EAACF,EAAKK,eAAc,CAAA,CAAA,GADCL,EAAKG,GAAG,CAI5D,CAEA,SAAAG,GAAAC,EAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAA+B,CAAAX,WAAAA,EAAAC,OAAAA,EAAAW,MAAAA,EAAAC,MAAAA,CAAA,EAAAJ,EAW7B,CAAAK,aAAAA,CAAA,EAAyBC,EAAA,EAEzB,CAAAC,EAAAC,CAAA,EAAwCC,YAAA,IAAgC,EAAAC,EAAAC,EAAAV,EAAA,CAAA,IAAAE,GAExDO,EAAAA,IAAA,CACVP,GAAAS,OAAgB,YAAcT,EAAAU,MAAAC,QAAsBX,EAAAL,eACtDU,EAAA,IAAsBL,EAAAL,cAAoB,EAE1CU,EAAA,IAAgB,CAAA,EAEjBG,EAAA,CAACR,CAAA,EAAMF,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAS,EAAAT,EAAA,CAAA,EAAAU,IAAAD,EAAAT,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GANVc,aAAgBL,EAMbC,CAAO,EAAA,IAAAK,EAAAf,EAAA,CAAA,IAAAE,GAEaa,EAAAC,GAAA,CAAC,GAAA,CAAAC,YAAAA,CAAA,EAAAD,EAAoD,GAAA,CACrEC,EAAAJ,OAAA,CACCX,GAAAS,OAAgB,YAAcT,EAAAU,MAAAC,QAAsBX,EAAAL,eACtDU,EAAA,IAAsBL,EAAAL,cAAoB,EAE1CU,EAAA,IAAgB,EAAA,MAAA,CAIpB,IAAAf,EAAayB,EAAW,CAAA,EACxBV,EAAA,IAAsBf,EAAAK,cAAmB,CAAA,EAC3CG,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAe,GAAAA,EAAAf,EAAA,CAAA,EAXA,IAAAkB,EAAuBH,EAeRC,EAAA,2DAA2Dd,EAAAP,GAAA,GAAWwB,EAAAnB,EAAA,CAAA,IAAAE,EAAAS,MAAAX,EAAA,CAAA,IAAAE,EAAAU,OAAAZ,EAAA,CAAA,IAAAE,EAAAP,KAAAK,EAAA,CAAA,IAAAM,GAAAN,EAAA,CAAA,IAAAV,GAAAU,EAAA,EAAA,IAAAT,GAAAS,EAAA,EAAA,IAAAkB,GAGhFC,EAAAjB,EAAAS,OAAe,YACdT,EAAAU,MAAAC,SACCP,EACCZ,EAAA0B,GAAA,CAAAC,KACQf,EAAAhB,WAAAA,EAAAC,OAAAA,EAAA+B,SAGIpB,EAAAP,IAAAiB,MACHV,EAAAU,MAAAW,eAAA,EAAAL,eAAAA,CAAA,CAAA,EAKTxB,EAAA0B,GAAA,CAAA9B,WAAAA,EAAAC,OAAAA,EAAA+B,SAGYpB,EAAAP,IAAAiB,MACHV,EAAAU,MAAAW,eAAA,EAAAL,eAAAA,CAAA,CAAA,GAIXlB,EAAA,CAAA,EAAAE,EAAAS,KAAAX,EAAA,CAAA,EAAAE,EAAAU,MAAAZ,EAAA,CAAA,EAAAE,EAAAP,IAAAK,EAAA,CAAA,EAAAM,EAAAN,EAAA,CAAA,EAAAV,EAAAU,EAAA,EAAA,EAAAT,EAAAS,EAAA,EAAA,EAAAkB,EAAAlB,EAAA,EAAA,EAAAmB,GAAAA,EAAAnB,EAAA,EAAA,EAAA,IAAAwB,EAAAxB,EAAA,EAAA,IAAAE,GAAAF,EAAA,EAAA,IAAAV,GAAAU,EAAA,EAAA,IAAAT,GACDiC,EAAAtB,EAAAS,OAAe,WACdT,EAAAU,MAAAC,QACAX,EAAAU,MAAAa,IAAAC,GAEIhC,EAAAL,GAAA,CAAAC,WAAAA,EAAAC,OAAAA,EAAAC,KAA+DA,CAAA,EAAWA,EAAAG,GAAQ,CAEtF,EAAAK,EAAA,EAAA,EAAAE,EAAAF,EAAA,EAAA,EAAAV,EAAAU,EAAA,EAAA,EAAAT,EAAAS,EAAA,EAAA,EAAAwB,GAAAA,EAAAxB,EAAA,EAAA,EAAA,IAAA2B,EAAA,OAAA3B,EAAA,EAAA,IAAAI,EAAAwB,SAAAC,eAAA7B,EAAA,EAAA,IAAAG,GAAAH,EAAA,EAAA,IAAAmB,GAAAnB,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAgB,GAAAhB,EAAA,EAAA,IAAAE,EAAAP,KAhCJgC,EAAAG,GAAC,MAAA,CAAAC,UACYf,EAAsEgB,SAAA,CAGhFb,EAsBAK,EAOArB,EAAQC,EAAAwB,SAAAC,eAAAI,OAAApB,OAAA,GACPnB,EAAC,MAAA,CAAAqC,UAAc,SAAA,CAAA,CAAA,GAhCZ7B,EAAAP,GAAS,EAAAK,EAAA,EAAA,EAAAI,EAAAwB,SAAAC,cAAA7B,EAAA,EAAA,EAAAG,EAAAH,EAAA,EAAA,EAAAmB,EAAAnB,EAAA,EAAA,EAAAwB,EAAAxB,EAAA,EAAA,EAAAgB,EAAAhB,EAAA,EAAA,EAAAE,EAAAP,IAAAK,EAAA,EAAA,EAAA2B,GAAAA,EAAA3B,EAAA,EAAA,EAFhB2B,CAEgB,CAsCpB,SAASO,GAAc,CACrB5C,WAAAA,EACAC,OAAAA,CAAM,EAIP,CACC,IAAM4C,EAAqBC,GAA8B,IAAA,EACnDC,EAAWD,GAA8B,IAAA,EAEzC,CAAEhC,aAAAA,CAAY,EAAKC,EAAA,EAEnBiC,EAAuBC,GAAY,IAAA,CACvC,GAAIJ,GAAoBK,QAAS,CAC/B,IAAMC,EAAgBN,EAAmBK,QAAQE,MAAMC,UAAY,IAC7DC,EAAsBT,EAAmBK,QAAQE,MAAMG,gBAAkB,OAE1EJ,IACHN,EAAmBK,QAAQE,MAAMC,QAAU,KAExCC,IACHT,EAAmBK,QAAQE,MAAMG,cAAgB,OAErD,CACF,EAAG,CAACV,CAAA,CAAmB,EAEjBW,EAAoBP,GACvBQ,GAAA,CACC,GAAIZ,GAAoBK,UAAYO,EAAEC,UAAY,GAAKD,EAAEC,UAAY,GAAI,CACvE,IAAMP,EAAgBN,EAAmBK,QAAQE,MAAMC,UAAY,IAC7DC,EAAsBT,EAAmBK,QAAQE,MAAMG,gBAAkB,OAC/E,GAAI,CAACJ,GAAiB,CAACG,EAAqB,CAE1C,IAAMK,EAAIF,EAAEG,QACNC,EAAIJ,EAAEK,QACNC,EAAoBC,SAASC,iBAAiBN,EAAGE,CAAA,EAClDhB,EAAmBK,QAAQgB,SAASH,CAAA,GAEvCf,EAAA,CAEJ,CACF,CACF,EACA,CAACA,CAAA,CAAqB,EAGlBmB,EAAkBlB,GAAY,IAAA,CAC9BJ,GAAoBK,UAClBL,EAAmBK,QAAQE,MAAMC,UAAY,MAC/CR,EAAmBK,QAAQE,MAAMC,QAAU,KAEzCR,EAAmBK,QAAQE,MAAMG,gBAAkB,SACrDV,EAAmBK,QAAQE,MAAMG,cAAgB,QAGvD,EAAG,CAAA,CAAE,EAEL/B,GAAU,KACRwC,SAASI,iBAAiB,YAAaZ,CAAA,EACvCQ,SAASI,iBAAiB,UAAWD,CAAA,EAE9B,IAAA,CACLH,SAASK,oBAAoB,YAAab,CAAA,EAC1CQ,SAASK,oBAAoB,UAAWF,CAAA,CAC1C,GACC,CAACtB,EAAoBW,EAAmBW,CAAA,CAAgB,EAE3D,IAAMG,EAAmCrB,GAAY,IAAA,CACnD,IAAMsB,EAAYC,GAAA,EAEZC,EAAkBC,OAAOC,aAAY,EAE3C,GAAI9B,EAAmBK,UAAY,KACjC,OAGF,IAAM0B,EAAqB5E,EAAW6E,cAAc,uBAAA,EAC9CC,EACJF,IAAuB,MACvB,UAAWA,GACXA,GAAoBxB,OAAQ,UAAe,IAEvC2B,EAAc9E,EAAO+E,eAAc,EACzC,GACET,IAAc,MACdE,IAAoB,MACpB,CAACA,EAAgBQ,aACjBF,IAAgB,MAChBA,EAAYb,SAASO,EAAgBS,UAAU,EAC/C,CACA,IAAMC,EAAYC,GAAgBX,EAAiBM,CAAA,EAG7CM,EAAkBC,GAAwB,CAC9CC,mBAAoBT,EACpB9E,WAAAA,EACAwF,aAAc3C,EAAmBK,QACjCuC,mBAAoB,SACpBC,WAAYP,CACd,CAAA,EAGIpC,EAASG,SACXoC,GAAwB,CACtBtF,WAAY6C,EAAmBK,QAC/ByC,oBAAqBN,EACrBG,aAAczC,EAASG,QACvB0C,iBAAkB,EAClBH,mBAAoB,SACpBI,wBAAyB,GACzBH,WAAYP,EACZW,YAAa,CACf,CAAA,CAEJ,MACE9C,EAAA,CAEJ,EAAG,CAAC/C,EAAQ+C,EAAsBhD,CAAA,CAAW,EAE7CwB,OAAAA,GAAU,IAAA,CACR,IAAMuE,EAAe/F,EAAWgG,cAE1BC,EAASA,IAAA,CACbhG,EAAOiG,eAAc,EAAGC,KAAK,IAAA,CAC3B7B,EAAA,CACF,CAAA,CACF,EAEAI,cAAON,iBAAiB,SAAU6B,CAAA,EAC9BF,GACFA,EAAa3B,iBAAiB,SAAU6B,CAAA,EAGnC,IAAA,CACLvB,OAAOL,oBAAoB,SAAU4B,CAAA,EACjCF,GACFA,EAAa1B,oBAAoB,SAAU4B,CAAA,CAE/C,CACF,EAAG,CAAChG,EAAQqE,EAAkCtE,CAAA,CAAW,EAEzDwB,GAAU,KACRvB,EAAOiG,eAAc,EAAGC,KAAK,IAAA,CAC3B7B,EAAA,CACF,CAAA,EACO8B,GACLnG,EAAOoG,uBAAuB,CAAC,CAAEC,YAAAA,CAAW,IAAE,CAC5CA,EAAYH,KAAK,IAAA,CACf7B,EAAA,CACF,CAAA,CACF,CAAA,EAEArE,EAAOsG,gBACLC,GACA,KACElC,EAAA,EACO,IAETmC,EAAA,CAAA,GAGH,CAACxG,EAAQqE,CAAA,CAAiC,EAG3C9B,GAAC,MAAA,CAAIC,UAAU,uBAAuBiE,IAAK7D,YACzCzC,EAAC,MAAA,CAAIqC,UAAU,QAAQiE,IAAK3D,IAC3B9C,EAAO0G,WAAU,GAChBvG,EAAOwG,YAAQ,UACZ9F,GAAcwB,UACbxB,EAAawB,UAAUC,eAAeI,OAAOR,IAAI,CAACvB,EAAOiG,IAErDzG,EAACI,GAAA,CACCR,WAAYA,EACZC,OAAQA,EACRW,MAAOA,EACPC,MAAOgG,GACFjG,EAAMP,GAAG,CAGpB,MAKZ,CAEA,SAASyG,GACP7G,EACAD,EAAuB,CAEvB,GAAM,CAAC+G,EAAQC,CAAA,EAAa9F,GAAS,EAAA,EAE/B+F,EAAchE,GAAY,IAAA,CAC9BhD,EAAOiG,eAAc,EAAGC,KAAK,IAAA,CAE3B,GAAIlG,EAAOiH,YAAW,EACpB,OAEF,IAAM3C,EAAYC,GAAA,EACZC,EAAkBC,OAAOC,aAAY,EACrCI,EAAc9E,EAAO+E,eAAc,EAEzC,GACEP,IAAoB,OACnB,CAAC0C,GAAkB5C,CAAA,GAClBQ,IAAgB,MAChB,CAACA,EAAYb,SAASO,EAAgBS,UAAU,GAClD,CACA8B,EAAU,EAAA,EACV,MACF,CAEA,GAAI,CAACG,GAAkB5C,CAAA,EACrB,OAGF,GAAIA,EAAU6C,eAAc,IAAO,GAAI,CACrC,IAAMC,EAAQ9C,EAAU+C,SAAQ,EAC5BC,EAAoB,GACxB,QAAWC,KAAQH,EACjB,GAAII,GAAYD,CAAA,EAAO,CACrBR,EAAU,EAAA,EACVO,EAAoB,GACpB,KACF,CAEGA,GACHP,EAAU,EAAA,CAEd,MACEA,EAAU,EAAA,EAGZ,IAAMU,EAAiBnD,EAAU6C,eAAc,EAAGO,QAAQ,MAAO,EAAA,EACjE,GAAI,CAACpD,EAAUU,YAAW,GAAMyC,IAAmB,GAAI,CACrDV,EAAU,EAAA,EACV,MACF,CACF,CAAA,CACF,EAAG,CAAC/G,CAAA,CAAO,EAwBX,OAtBAuB,GAAU,KACRwC,SAASI,iBAAiB,kBAAmB6C,CAAA,EAC7CjD,SAASI,iBAAiB,UAAW6C,CAAA,EAC9B,IAAA,CACLjD,SAASK,oBAAoB,kBAAmB4C,CAAA,EAChDjD,SAASK,oBAAoB,UAAW4C,CAAA,CAC1C,GACC,CAACA,CAAA,CAAY,EAEhBzF,GAAU,IACD4E,GACLnG,EAAOoG,uBAAuB,IAAA,CAC5BY,EAAA,CACF,CAAA,EACAhH,EAAO2H,qBAAqB,IAAA,CACtB3H,EAAO+E,eAAc,IAAO,MAC9BgC,EAAU,EAAA,CAEd,CAAA,CAAA,EAED,CAAC/G,EAAQgH,CAAA,CAAY,EAEnBF,EAIEc,GAAazH,EAACwC,GAAA,CAAc5C,WAAYA,EAAYC,OAAQA,IAAYD,CAAA,EAHtE,IAIX,CAEO,IAAM8H,GAA4DA,CAAC,CAAE9H,WAAAA,CAAU,IAAE,CACtF,GAAM,CAACC,CAAA,EAAU8H,GAAA,EAEjB,OAAOjB,GAAiB7G,EAAQD,CAAA,CAClC,EG5YO,IAAMgI,GAA6BC,EAAoB,CAC5DC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,oBACZ,CAAA,CAEJ,CAAA,ECVA,OAASC,iBAAAA,GAAeC,aAAAA,GAAWC,gBAAAA,OAAoB,0DCDvD,MAAkB,QAEX,IAAMC,GAAsBA,IAE/BC,GAAC,MAAA,CACCC,UAAU,OACVC,KAAK,OACLC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,sCAENN,GAAC,OAAA,CACCO,SAAS,UACTC,EAAE,khBACFN,KAAK,eACLO,SAAS,iECPjB,OAASC,6BAAAA,OAAiC,wCAC1C,OAASC,sBAAAA,OAA0B,oCACnC,OACEC,oCAAAA,GACAC,iCAAAA,GACAC,mBAAAA,GACAC,oCAAAA,GACAC,yCAAAA,GACAC,uCAAAA,GACAC,sCAAAA,GACAC,oCAAAA,GACAC,iCAAAA,GACAC,oBAAAA,GACAC,mBAAAA,GACAC,qBAAAA,GACAC,gBAAAA,GACAC,yBAAAA,GACAC,iBAAAA,GACAC,oCAAAA,OACK,iBACP,OAASC,iBAAAA,OAAqB,iBAC9B,OACEC,wBAAAA,GACAC,YAAAA,GACAC,iBAAAA,GACAC,kBAAAA,GACAC,oBAAAA,GACAC,qBAAAA,GACAC,eAAAA,OACK,UACP,UAAYC,OAAW,QACvB,OAASC,eAAAA,GAAaC,aAAAA,GAAWC,UAAAA,GAAQC,YAAAA,OAAgB,QACzD,OAASC,gBAAAA,OAAoB,gECzC7B,MAAkB,QAEX,IAAMC,GAA0BA,IACrCC,GAAC,MAAA,CAAIC,KAAK,OAAOC,OAAO,KAAKC,QAAQ,YAAYC,MAAM,KAAKC,MAAM,uCAChEC,GAAC,OAAA,CACCC,EAAE,8GACFN,KAAK,iBAEPK,GAAC,OAAA,CACCC,EAAE,oHACFN,KAAK,iBAEPK,GAAC,OAAA,CACCC,EAAE,uHACFN,KAAK,oBDkCX,SAASO,GAAsBC,EAAyB,CAItD,IAAMC,EAAiBD,EAAUE,SAAQ,EACzC,MAAO,CACLC,QAASF,EAAeG,IAAMH,EAAeI,MAAQ,EACrDC,KAAML,EAAeM,IAAMN,EAAeO,MAAQ,CACpD,CACF,CAIA,SAASC,GAA4BT,EAAyB,CAC5D,IAAMU,EAAQV,EAAUW,SAAQ,EAC1BC,EAA6B,CAAA,EAC/BC,EAAa,KACbC,EAAkB,KAClBC,EAAiB,EACrB,QAASC,EAAI,EAAGA,EAAIN,EAAMO,OAAQD,IAAK,CACrC,IAAME,EAAOR,EAAMM,CAAA,EACnB,GAAIG,GAAiBD,CAAA,EAAO,CAC1B,IAAME,EAAMF,EAAKG,iBAAgB,EACjC,GAAIC,GAAgBF,CAAA,EAClB,MAAM,IAAIG,MAAM,4CAAA,EAElB,GAAIV,IAAeO,EAAK,CACtB,GAAIN,IAAoB,MAAQC,IAAmBD,EACjD,MAAO,GAELD,IAAe,OACjBC,EAAkBC,GAEpBF,EAAaO,EACbL,EAAiB,CACnB,CACA,IAAMS,EAAUN,EAAKO,UACrB,QAASC,EAAI,EAAGA,EAAIF,EAASE,IACvBd,EAAYG,EAAiBW,CAAA,IAAOC,SACtCf,EAAYG,EAAiBW,CAAA,EAAK,GAEpCd,EAAYG,EAAiBW,CAAA,GAAMR,EAAKU,UAE1Cb,GAAkBS,CACpB,CACF,CACA,OACGV,IAAoB,MAAQC,IAAmBD,IAChDF,EAAYiB,MAAOC,GAAMA,IAAMlB,EAAY,CAAA,CAAE,CAEjD,CAEA,SAASmB,IAAA,CACP,IAAM/B,EAAYgC,GAAA,EAClB,GACEC,GAAmBjC,CAAA,GAAc,CAACA,EAAUkC,YAAW,GACtDC,GAAkBnC,CAAA,GAAc,CAACA,EAAUoC,OAAOC,GAAGrC,EAAUsC,KAAK,GACpE,CAACL,GAAkBjC,CAAA,GAAc,CAACmC,GAAkBnC,CAAA,EAErD,MAAO,GAET,GAAM,CAACuC,CAAA,EAAQC,GAAgBxC,EAAUoC,MAAM,EAC/C,OAAOG,EAAKd,UAAY,GAAKc,EAAKX,UAAY,CAChD,CAEA,SAASa,GAA4BF,EAAmB,CACtD,GAAIA,EAAKG,gBAAe,IAAO,EAC7B,MAAO,GAET,IAAMC,EAAaJ,EAAKK,qBAAoB,EAC5C,MAAI,GAACC,GAAiBF,CAAA,GAAe,CAACA,EAAWG,QAAO,EAI1D,CAEA,SAASC,GAAsB7B,EAAiB,CAC9C,IAAM8B,EAAiB9B,EAAK+B,kBAAiB,EACzCC,GAAYF,CAAA,EACdA,EAAeG,OAAM,EACZC,GAAeJ,CAAA,EACxBA,EAAeK,UAAS,EACfL,IAAmB,MAC5BA,EAAeM,WAAU,CAE7B,CAUA,SAASC,GAAgB,CACvBC,UAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,cAAAA,EACAC,cAAeC,CAAc,EACJ,CACzB,GAAM,CAACC,CAAA,EAAUC,GAAA,EACXC,EAAcC,GAA8B,IAAA,EAC5C,CAACL,EAAeM,CAAA,EAAuBC,GAASN,CAAA,EAChD,CAACO,EAAiBC,CAAA,EAAyBF,GAAS,CACxDhE,QAAS,EACTG,KAAM,CACR,CAAA,EACM,CAACgE,EAAeC,CAAA,EAAoBJ,GAAS,EAAA,EAC7C,CAACK,EAAgBC,CAAA,EAAqBN,GAAS,EAAA,EAC/C,CAAEO,EAAAA,CAAC,EAAKC,GAAA,EAEdC,GAAU,IACDd,EAAOe,yBACZC,GACCC,GAAA,CACqBA,EAAcC,IAAIpB,EAAcqB,OAAM,CAAA,IAAQ,WAGhEnB,EAAOoB,eAAc,EAAGC,KAAK,IAAA,CAC3BjB,EAAoBN,EAAcwB,UAAS,CAAA,CAC7C,CAAA,CAEJ,EACA,CAAEC,mBAAoB,EAAK,CAAA,EAE5B,CAACvB,EAAQF,CAAA,CAAc,EAE1BgB,GAAU,IAAA,CACRd,EAAOoB,eAAc,EAAGC,KAAK,IAAA,CAC3B,IAAMnF,EAAYgC,GAAA,EAElB,GAAIG,GAAkBnC,CAAA,EAAY,CAChC,IAAMsF,EAAyBvF,GAAsBC,CAAA,EACrDqE,EAAsBtE,GAAsBC,CAAA,CAAA,EAC5CuE,EACE9D,GAA4BT,CAAA,IACzBsF,EAAuBnF,QAAU,GAAKmF,EAAuBhF,KAAO,EAAA,CAE3E,CAEAmE,EAAkB1C,GAAA,CAAA,CACpB,CAAA,CACF,EAAG,CAAC+B,CAAA,CAAO,EAEXc,GAAU,IAAA,CACR,IAAMW,EAAoB9B,EAAW+B,QAC/BC,EAAkBzB,EAAYwB,QAC9BE,EAAc5B,EAAO6B,eAAc,EAEzC,GAAIJ,GAAqB,MAAQE,GAAmB,MAAQC,GAAe,KAAM,CAC/E,IAAME,EAAcF,EAAYG,sBAAqB,EAC/CC,EAAiBP,EAAkBM,sBAAqB,EAC9DJ,EAAgBM,MAAMC,QAAU,IAChC,IAAMC,EAAsBR,EAAgBI,sBAAqB,EAC3DK,EAAS,EACXC,EAAeL,EAAeM,MAAQF,EAC1C,GACEC,EAAeF,EAAoBI,MAAQC,OAAOC,YAClDJ,EAAeF,EAAoBI,MAAQT,EAAYQ,MACvD,CACA,IAAMI,EAAWV,EAAeW,KAAOR,EAAoBI,MAAQH,EACnEC,GAAgBK,EAAW,EAAIN,EAASM,GAAYF,OAAOI,WAC7D,CACAjB,EAAgBM,MAAMU,KAAO,GAAGN,EAAeG,OAAOI,WAAW,KAEjE,IAAIC,EAAcb,EAAec,IACjC,GAAID,EAAcV,EAAoBY,OAASP,OAAOQ,YAAa,CACjE,IAAMN,EAAWV,EAAeiB,OAASd,EAAoBY,OAC7DF,GAAeH,EAAW,EAAIN,EAASM,GAAYF,OAAOU,WAC5D,CACAvB,EAAgBM,MAAMa,IAAM,GAAGD,CAAA,IACjC,CACF,EAAG,CAAClD,EAAYO,EAAaF,EAAQY,CAAA,CAAE,EAEvCE,GAAU,IAAA,CACR,SAASqC,EAAmBC,EAAiB,CAEzClD,EAAYwB,SAAW,MACvB/B,EAAW+B,SAAW,MACtB,CAACxB,EAAYwB,QAAQ2B,SAASD,EAAME,MAAM,GAC1C,CAAC3D,EAAW+B,QAAQ2B,SAASD,EAAME,MAAM,GAEzCzD,EAAc,EAAA,CAElB,CAEA2C,cAAOe,iBAAiB,QAASJ,CAAA,EAE1B,IAAMX,OAAOgB,oBAAoB,QAASL,CAAA,CACnD,EAAG,CAACtD,EAAeF,CAAA,CAAW,EAE9B,IAAM8D,EAAsBC,GAAY,IAAA,CACtC1D,EAAO2D,OAAO,IAAA,CACZ,GAAI7D,EAAc8D,WAAU,EAAI,CAC9B,IAAMC,EAAYC,GAAoChE,CAAA,EAChDiE,EAAe/D,EAAOgE,gBAC1BH,EAAU1C,OAAM,CAAA,EAGlB,GAAI,CAAC4C,EACH,MAAM,IAAItG,MAAM,sCAAA,EAGlB,IAAMwG,EAAiBC,GAAiCH,CAAA,EACpDE,IAAmB,MACrBA,EAAeE,eAAc,EAG/BN,EAAUO,UAAS,EACnBhE,EAAoBN,EAAcwB,UAAS,CAAA,CAC7C,CAEiB+C,GAAA,EACRC,YAAW,CACtB,CAAA,CACF,EAAG,CAACtE,EAAQF,CAAA,CAAc,EAEpByE,EAA6BA,IAAA,CACjCvE,EAAO2D,OAAO,IAAA,CACZ,IAAMzH,EAAYgC,GAAA,EAClB,GAAIG,GAAkBnC,CAAA,EAAY,CAChC,GAAM,CAAEG,QAAAA,EAASG,KAAAA,CAAI,EAAKP,GAAsBC,CAAA,EAC1CU,EAAQV,EAAUW,SAAQ,EAC5B2H,EAAkC,KACtC,QAAStH,EAAI,EAAGA,EAAIN,EAAMO,OAAQD,IAAK,CACrC,IAAME,EAAOR,EAAMM,CAAA,EACnB,GAAIG,GAAiBD,CAAA,EACnB,GAAIoH,IAAc,KAAM,CACtBpH,EAAKqH,WAAWpI,CAAA,EAASqI,WAAWlI,CAAA,EACpCgI,EAAYpH,EACZ,IAAM4B,EAAUL,GAA4BvB,CAAA,EACxCyB,EACAG,GAAWD,GAAkBF,EAAazB,EAAKuH,cAAa,CAAA,GAC9D9F,EAAW+F,OAAM,CAErB,MAAWvH,GAAiBmH,CAAA,IACV7F,GAA4BvB,CAAA,GAE1CoH,EAAUK,OAAM,GAAIzH,EAAK0H,YAAW,CAAA,EAEtC1H,EAAKwH,OAAM,EAGjB,CACIJ,IAAc,OACZA,EAAU5F,gBAAe,IAAO,GAClC4F,EAAUK,OAAOE,GAAA,CAAA,EAEnB9F,GAAsBuF,CAAA,GAExB5E,EAAA,CACF,CACF,CAAA,CACF,EAEMoF,EAA+BA,IAAA,CACnChF,EAAO2D,OAAO,IAAA,CACZsB,GAAA,CACF,CAAA,CACF,EAEMC,EAA4BxB,GAC/ByB,GAAA,CACCnF,EAAO2D,OAAO,IAAA,CACZyB,GAA8BD,CAAA,EAC9BvF,EAAA,CACF,CAAA,CACF,EACA,CAACI,EAAQJ,CAAA,CAAQ,EAGbyF,EAA+B3B,GAClCyB,GAAA,CACCnF,EAAO2D,OAAO,IAAA,CACZ,QAASzG,EAAI,EAAGA,EAAIoD,EAAgBjE,QAASa,IAC3CoI,GAAiCH,CAAA,EAEnCvF,EAAA,CACF,CAAA,CACF,EACA,CAACI,EAAQJ,EAASU,EAAgBjE,OAAO,CAAC,EAGtCkJ,EAA4B7B,GAAY,IAAA,CAC5C1D,EAAO2D,OAAO,IAAA,CACZ6B,GAAA,EACA5F,EAAA,CACF,CAAA,CACF,EAAG,CAACI,EAAQJ,CAAA,CAAQ,EAEd6F,EAAyB/B,GAAY,IAAA,CACzC1D,EAAO2D,OAAO,IAAA,CACMG,GAAoChE,CAAA,EAC5C8E,OAAM,EAEhBnB,EAAA,EACA7D,EAAA,CACF,CAAA,CACF,EAAG,CAACI,EAAQF,EAAe2D,EAAqB7D,CAAA,CAAQ,EAElD8F,EAA+BhC,GAAY,IAAA,CAC/C1D,EAAO2D,OAAO,IAAA,CACZgC,GAAA,EACA/F,EAAA,CACF,CAAA,CACF,EAAG,CAACI,EAAQJ,CAAA,CAAQ,EAEdgG,EAAyBlC,GAAY,IAAA,CACzC1D,EAAO2D,OAAO,IAAA,CACZ,IAAME,EAAYC,GAAoChE,CAAA,EAEhD+F,EAAgBC,GAAmChG,CAAA,EAEnDiG,EAAYlC,EAAUiB,YAAW,EAEvC,GAAIe,GAAiBE,EAAU5I,QAAU0I,EAAgB,EACvD,MAAM,IAAIpI,MAAM,gDAAA,EAGlB,IAAMuI,EAAWD,EAAUF,CAAA,EAE3B,GAAI,CAACrI,GAAgBwI,CAAA,EACnB,MAAM,IAAIvI,MAAM,oBAAA,EAGlBuI,EAASlB,YAAW,EAAGmB,QAASC,GAAA,CAC9B,GAAI,CAAC7I,GAAiB6I,CAAA,EACpB,MAAM,IAAIzI,MAAM,qBAAA,EAGlByI,EAAUC,kBAAkBC,GAAsBC,GAAG,CACvD,CAAA,EAEA5C,EAAA,EACA7D,EAAA,CACF,CAAA,CACF,EAAG,CAACI,EAAQF,EAAe2D,EAAqB7D,CAAA,CAAQ,EAElD0G,EAA4B5C,GAAY,IAAA,CAC5C1D,EAAO2D,OAAO,IAAA,CACZ,IAAME,EAAYC,GAAoChE,CAAA,EAEhDyG,EAAmBC,GAAsC1G,CAAA,EAEzDiG,EAAYlC,EAAUiB,YAAW,EACjC2B,EAAgBC,KAAKC,IAAG,GAAIZ,EAAUa,IAAKtJ,GAAQA,EAAIwH,YAAW,EAAG3H,MAAM,CAAA,EAEjF,GAAIoJ,GAAoBE,GAAiBF,EAAmB,EAC1D,MAAM,IAAI9I,MAAM,gDAAA,EAGlB,QAASoJ,EAAI,EAAGA,EAAId,EAAU5I,OAAQ0J,IAAK,CACzC,IAAMb,EAAWD,EAAUc,CAAA,EAE3B,GAAI,CAACrJ,GAAgBwI,CAAA,EACnB,MAAM,IAAIvI,MAAM,oBAAA,EAGlB,IAAMqJ,EAAad,EAASlB,YAAW,EACvC,GAAIyB,GAAoBO,EAAW3J,OAEjC,SAGF,IAAM+I,EAAYY,EAAWP,CAAA,EAE7B,GAAI,CAAClJ,GAAiB6I,CAAA,EACpB,MAAM,IAAIzI,MAAM,qBAAA,EAGlByI,EAAUC,kBAAkBC,GAAsBW,MAAM,CAC1D,CAEAtD,EAAA,EACA7D,EAAA,CACF,CAAA,CACF,EAAG,CAACI,EAAQF,EAAe2D,EAAqB7D,CAAA,CAAQ,EAEpDoH,EAAsC,KAC1C,OAAItH,IACEc,EACFwG,EACEC,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,oBACbC,QAASA,IAAM5C,EAAA,EACf6C,KAAK,kBACN,gBAIM1G,IACTsG,EACEC,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,sBACbC,QAASA,IAAMnC,EAAA,EACfoC,KAAK,kBACN,oBAOAC,GAELC,GAAC,MAAA,CACCJ,UAAU,6BACVC,QAAUI,GAAA,CACRA,EAAEC,gBAAe,CACnB,EACAC,IAAKvH,YAEJ8G,EACCM,GAAOI,YAAQ,WACZV,EACDC,EAAC,KAAA,CAAA,CAAA,CAAA,IAED,KAEJA,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,yBACbC,QAASA,IAAMjC,EAA0B,EAAA,EACzCkC,KAAK,kBAELE,GAAC,OAAA,CAAKJ,UAAU,iBAAO,UACb5G,EAAgB9D,OAAS,EAAI,MAAQ,GAAG8D,EAAgB9D,IAAI,QAAQ,QAAA,MAGhFyK,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,yBACbC,QAASA,IAAMjC,EAA0B,EAAA,EACzCkC,KAAK,kBAELE,GAAC,OAAA,CAAKJ,UAAU,iBAAO,UACb5G,EAAgB9D,OAAS,EAAI,MAAQ,GAAG8D,EAAgB9D,IAAI,QAAQ,QAAA,MAGhFyK,EAAC,KAAA,CAAA,CAAA,EACDA,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,6BACbC,QAASA,IAAM9B,EAA6B,EAAA,EAC5C+B,KAAK,kBAELE,GAAC,OAAA,CAAKJ,UAAU,iBAAO,UACb5G,EAAgBjE,UAAY,EAAI,SAAW,GAAGiE,EAAgBjE,OAAO,WAAY,IAAI,MAAA,MAIjG4K,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,4BACbC,QAASA,IAAM9B,EAA6B,EAAA,EAC5C+B,KAAK,kBAELE,GAAC,OAAA,CAAKJ,UAAU,iBAAO,UACb5G,EAAgBjE,UAAY,EAAI,SAAW,GAAGiE,EAAgBjE,OAAO,WAAY,IAAI,OAAA,MAIjG4K,EAAC,KAAA,CAAA,CAAA,EACDA,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,uBACbC,QAASA,IAAMzB,EAAA,EACf0B,KAAK,kBAELH,EAAC,OAAA,CAAKC,UAAU,gBAAO,oBAEzBD,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,oBACbC,QAASA,IAAM5B,EAAA,EACf6B,KAAK,kBAELH,EAAC,OAAA,CAAKC,UAAU,gBAAO,iBAEzBD,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,eACbC,QAASA,IAAM1B,EAAA,EACf2B,KAAK,kBAELH,EAAC,OAAA,CAAKC,UAAU,gBAAO,mBAEzBD,EAAC,KAAA,CAAA,CAAA,EACDA,EAAC,SAAA,CAAOC,UAAU,OAAOC,QAASA,IAAMvB,EAAA,EAA0BwB,KAAK,kBACrEE,GAAC,OAAA,CAAKJ,UAAU,kBACZpH,EAAc6H,cAAgBvB,GAAsBC,OAASD,GAAsBC,IACjF,SACA,MAAO,IAAI,YAAA,MAInBY,EAAC,SAAA,CACCC,UAAU,OACV,eAAa,sBACbC,QAASA,IAAMb,EAAA,EACfc,KAAK,kBAELE,GAAC,OAAA,CAAKJ,UAAU,kBACZpH,EAAc6H,cAAgBvB,GAAsBW,UACtDX,GAAsBW,OAClB,SACA,MAAO,IAAI,eAAA,SAKrBa,SAASC,IAAI,CAEjB,CAEA,SAASC,GAA6B,CACpCC,WAAAA,EACArI,UAAAA,CAAS,EAIV,CACC,GAAM,CAACM,CAAA,EAAUC,GAAA,EAEX+H,EAAgB7H,GAAO,IAAA,EACvB8H,EAAc9H,GAAO,IAAA,EACrB,CAAC+H,EAAYrI,CAAA,EAAiBQ,GAAS,EAAA,EAEvC,CAACP,EAAeqI,CAAA,EAAwB9H,GAA+B,IAAA,EAEvE+H,EAAY1E,GAAY,IAAA,CAC5B,IAAM2E,EAAOL,EAActG,QACrBxF,EAAYgC,GAAA,EACZoK,EAAkB9F,OAAO+F,aAAY,EACrCC,EAAgBZ,SAASY,cAE/B,GAAItM,GAAa,MAAQmM,GAAQ,KAAM,CACrCF,EAAqB,IAAA,EACrB,MACF,CAEA,IAAMvG,EAAc5B,EAAO6B,eAAc,EAEzC,GACE1D,GAAkBjC,CAAA,GAClB0F,IAAgB,MAChB0G,IAAoB,MACpB1G,EAAYyB,SAASiF,EAAgBG,UAAU,EAC/C,CACA,IAAMC,EAA6BC,GACjCzM,EAAUoC,OAAOsK,QAAO,CAAA,EAG1B,GAAIF,GAA8B,KAAM,CACtCP,EAAqB,IAAA,EACrB,MACF,CAIA,GAF+BnI,EAAOgE,gBAAgB0E,EAA2BvH,OAAM,CAAA,GAEzD,KAAM,CAClCgH,EAAqB,IAAA,EACrB,MACF,CAEAA,EAAqBO,CAAA,CACvB,MAAYF,GACVL,EAAqB,IAAA,CAEzB,EAAG,CAACnI,CAAA,CAAO,EAEXc,GAAU,IACDd,EAAO6I,uBAAuB,IAAA,CACnC7I,EAAOoB,eAAc,EAAGC,KAAK,IAAA,CAC3B+G,EAAA,CACF,CAAA,CACF,CAAA,CACF,EAEAtH,GAAU,IAAA,CACR,IAAMgI,EAAgBd,EAActG,QAEpC,GAAIoH,GAAiB,MAAQhJ,GAAiB,KAAM,CAClD,IAAMiJ,EAAmB/I,EAAOgE,gBAAgBlE,EAAcqB,OAAM,CAAA,EAEpE,GAAI4H,GAAoB,KAAM,CAC5B,IAAMC,EAAgBD,EAAiBhH,sBAAqB,EACtDkH,EAAWH,EAAc/G,sBAAqB,EAC9CmH,EAAanB,EAAWhG,sBAAqB,EAE7Ce,EAAMkG,EAAclG,IAAMoG,EAAWpG,IAAM,EAC3CH,EAAOqG,EAAc1G,MAAQ2G,EAAS1G,MAAQ,GAAK2G,EAAWvG,KAEpEmG,EAAc7G,MAAMC,QAAU,IAC9B4G,EAAc7G,MAAMkH,UAAY,aAAaxG,CAAA,OAAWG,CAAA,KAC1D,MACEgG,EAAc7G,MAAMC,QAAU,IAC9B4G,EAAc7G,MAAMkH,UAAY,+BAEpC,CACF,EAAG,CAACnB,EAAelI,EAAeE,EAAQ+H,CAAA,CAAW,EAErD,IAAMqB,EAAmBjJ,GAAOL,CAAA,EAEhCgB,OAAAA,GAAU,IAAA,CACJsI,EAAiB1H,UAAY5B,GAC/BD,EAAc,EAAA,EAGhBuJ,EAAiB1H,QAAU5B,CAC7B,EAAG,CAACsJ,EAAkBtJ,CAAA,CAAc,EAGlCmH,EAAC,MAAA,CAAIC,UAAU,qCAAqCO,IAAKO,WACtDlI,GAAiB,MAChBwH,GAAOI,YAAQ,WACbT,EAAC,SAAA,CACCC,UAAU,2BACVC,QAAUI,GAAA,CACRA,EAAEC,gBAAe,EACjB3H,EAAc,CAACqI,CAAA,CACjB,EACAT,IAAKQ,EACLb,KAAK,kBAELH,EAACoC,GAAA,CAAA,CAAA,IAEFnB,GACCjB,EAACxH,GAAA,CACCC,UAAWA,EACXC,WAAYsI,EACZrI,QAASA,IAAMC,EAAc,EAAA,EAC7BA,cAAeA,EACfC,cAAeA,QAO7B,CAEO,IAAMwJ,GAAmDA,CAAC,CAAEvB,WAAAA,CAAU,IAAE,CAC7E,IAAMwB,EAAaC,GAAA,EACnB,OAAOnC,GACLkC,EACEtC,EAACa,GAAA,CAA6BC,WAAYA,GAAcH,SAASC,KAAMnI,UAAS,KAC9E,KACJqI,GAAcH,SAASC,IAAI,CAE/B,sDEzrBA,OAAS4B,6BAAAA,OAAiC,wCAC1C,OAASC,sBAAAA,OAA0B,oCACnC,OACEC,iCAAAA,GACAC,uCAAAA,GACAC,sCAAAA,GACAC,oBAAAA,GACAC,mBAAAA,GACAC,wBAAAA,OACK,iBACP,OAASC,sBAAAA,OAA0B,iBACnC,OAASC,8BAAAA,OAAkC,UAC3C,UAAYC,OAAW,QACvB,OAASC,eAAAA,GAAaC,aAAAA,GAAWC,WAAAA,GAASC,UAAAA,GAAQC,YAAAA,OAAgB,QAClE,OAASC,gBAAAA,OAAoB,YAa7B,IAAMC,GAAiB,GACjBC,GAAmB,GAEzB,SAASC,GAAiB,CAAEC,OAAAA,CAAM,EAA6B,CAC7D,IAAMC,EAAYC,GAA2B,IAAA,EACvCC,EAAaD,GAA8B,IAAA,EAC3CE,EAAeF,GAA0B,IAAA,EACzCG,EAAeC,EAAA,EAEfC,EAAmBL,GAA6B,IAAA,EAChD,CAACM,EAAiBC,CAAA,EAAyBC,GAA+B,IAAA,EAE1E,CAACC,EAAYC,CAAA,EAAoBF,GAA8B,IAAA,EAC/D,CAACG,EAAaC,CAAA,EAAqBJ,GAAkB,EAAA,EACrD,CAACK,EAAmBC,CAAA,EAA2BN,GAAwC,IAAA,EAEvFO,EAAaC,GAAY,IAAA,CAC7BN,EAAiB,IAAA,EACjBX,EAAUkB,QAAU,KACpBH,EAAwB,IAAA,EACxBT,EAAiBY,QAAU,KAC3Bf,EAAae,QAAU,IACzB,EAAG,CAAA,CAAE,EAECC,EAAsBC,IAClBA,EAAMC,QAAU,KAAO,EAGjCC,GAAU,IAAA,CACR,IAAMC,EAAeH,GAAA,CACnBI,WAAW,IAAA,CACT,IAAMC,EAASL,EAAMK,OAErB,GAAIX,EAAmB,CACrBN,EAAsB,CACpBkB,EAAGN,EAAMO,QACTC,EAAGR,EAAMS,OACX,CAAA,EACA,MACF,CAEA,GADAhB,EAAkBM,EAAmBC,CAAA,CAAA,EACjClB,EAAAA,EAAWgB,SAAWhB,EAAWgB,QAAQY,SAASL,CAAA,IAIlDzB,EAAUkB,UAAYO,EAAQ,CAChCzB,EAAUkB,QAAUO,EACpB,IAAMM,EAAOC,GAAqBP,CAAA,EAE9BM,GAAQrB,IAAeqB,EACzBhC,EAAOkC,OAAO,IAAA,CACZ,IAAMC,EAAgBC,GAA2BJ,EAAKK,IAAI,EAE1D,GAAI,CAACF,EACH,MAAM,IAAIG,MAAM,8CAAA,EAGlB,IAAMC,EAAYC,GAAoCL,CAAA,EAChDM,EAAezC,EAAO0C,gBAAgBH,EAAUI,OAAM,CAAA,EAE5D,GAAI,CAACF,EACH,MAAM,IAAIH,MAAM,4CAAA,EAGlBrC,EAAUkB,QAAUO,EACpBtB,EAAae,QAAUsB,EAAaG,sBAAqB,EACzDhC,EAAiBoB,CAAA,CACnB,CAAA,EACSA,GAAQ,MACjBf,EAAA,CAEJ,CACF,EAAG,CAAA,CACL,EAEM4B,EAAexB,GAAA,CACnBI,WAAW,IAAA,CACTX,EAAkB,EAAA,CACpB,EAAG,CAAA,CACL,EAEMgC,EAAazB,GAAA,CACjBI,WAAW,IAAA,CACTX,EAAkB,EAAA,CACpB,EAAG,CAAA,CACL,EAEMiC,EAAqB/C,EAAOgD,qBAAqB,CAACC,EAAaC,IAAA,CACnED,GAAaE,iBAAiB,YAAa3B,CAAA,EAC3CyB,GAAaE,iBAAiB,YAAaN,CAAA,EAC3CI,GAAaE,iBAAiB,UAAWL,CAAA,EAEzCI,GAAiBE,oBAAoB,YAAa5B,CAAA,EAClD0B,GAAiBE,oBAAoB,YAAaP,CAAA,EAClDK,GAAiBE,oBAAoB,UAAWN,CAAA,CAClD,CAAA,EAEA,MAAO,IAAA,CACLC,EAAA,CACF,CACF,EAAG,CAACpC,EAAYI,EAAmBf,EAAQiB,CAAA,CAAW,EAEtD,IAAMoC,EAAoBC,GACpBA,IAAc,SAMdC,EAAkBrC,GACrBsC,GAAA,CACC,GAAI,CAAC7C,EACH,MAAM,IAAI2B,MAAM,yCAAA,EAGlBtC,EAAOkC,OACL,IAAA,CACE,IAAMC,EAAgBC,GAA2BzB,EAAW0B,IAAI,EAChE,GAAI,CAACoB,GAAiBtB,CAAA,EACpB,MAAM,IAAIG,MAAM,8CAAA,EAGlB,IAAMC,EAAYC,GAAoCL,CAAA,EAEhDuB,EAAgBC,GAAmCxB,CAAA,EAEnDyB,EAAYrB,EAAUsB,YAAW,EAEvC,GAAIH,GAAiBE,EAAUE,QAAUJ,EAAgB,EACvD,MAAM,IAAIpB,MAAM,gDAAA,EAGlB,IAAMyB,EAAWH,EAAUF,CAAA,EAE3B,GAAI,CAACM,GAAgBD,CAAA,EACnB,MAAM,IAAIzB,MAAM,oBAAA,EAGlB,IAAI2B,EAASF,EAASG,UAAS,EAC/B,GAAID,IAAWE,OAAW,CACxB,IAAMC,EAAWL,EAASF,YAAW,EACrCI,EAASI,KAAKC,IAAG,GACZF,EAASG,IAAKvC,GAASwC,EAAkBxC,EAAMhC,CAAA,GAAWyE,GAAA,CAAA,CAEjE,CAEA,IAAMC,EAAYL,KAAKM,IAAIV,EAAST,EAAc3D,EAAA,EAClDkE,EAASa,UAAUF,CAAA,CACrB,EACA,CAAEG,IAAK,uBAAwB,CAAA,CAEnC,EACA,CAAClE,EAAYX,CAAA,CAAO,EAGhB8E,EAAmBA,CACvB9C,EACA+C,IAAA,CAEA,IAAMC,EAAQhD,EAAKiD,SAAQ,EAC3B,GAAID,IAAUb,OACZ,OAAOa,EAGT,IAAME,EAAcH,EAAarC,gBAAgBV,EAAKW,OAAM,CAAA,EAC5D,GAAIuC,GAAe,KACjB,OAEF,IAAMC,EAAgBC,iBAAiBF,CAAA,EACvC,OACEA,EAAYG,YACZC,WAAWH,EAAcI,WAAW,EACpCD,WAAWH,EAAcK,YAAY,CAEzC,EAEMhB,EAAoBA,CACxBxC,EACA+C,IAEoBA,EAAarC,gBAAgBV,EAAKW,OAAM,CAAA,GACxC8C,aAGhBC,EAAqBA,CAACvD,EAA8BwD,IAAA,CACxD,QAASC,EAAM,EAAGA,EAAMD,EAAS7B,OAAQ8B,IACvC,QAASC,EAAS,EAAGA,EAASF,EAASC,CAAA,EAAK9B,OAAQ+B,IAClD,GAAIF,EAASC,CAAA,EAAKC,CAAA,EAAQ7D,OAASG,EACjC,OAAO0D,CAIf,EAEMC,EAAoB5E,GACvB6E,GAAA,CACC,GAAI,CAACpF,EACH,MAAM,IAAI2B,MAAM,yCAAA,EAElBtC,EAAOkC,OACL,IAAA,CACE,IAAMC,EAAgBC,GAA2BzB,EAAW0B,IAAI,EAChE,GAAI,CAACoB,GAAiBtB,CAAA,EACpB,MAAM,IAAIG,MAAM,8CAAA,EAGlB,IAAMC,EAAYC,GAAoCL,CAAA,EAChD,CAACwD,CAAA,EAAYK,GAA8BzD,EAAW,KAAM,IAAA,EAC5D0D,EAAcP,EAAmBvD,EAAewD,CAAA,EACtD,GAAIM,IAAgB9B,OAClB,MAAM,IAAI7B,MAAM,2CAAA,EAGlB,QAASsD,EAAM,EAAGA,EAAMD,EAAS7B,OAAQ8B,IAAO,CAC9C,IAAM5D,EAA0B2D,EAASC,CAAA,EAAKK,CAAA,EAC9C,GACEjE,EAAKkE,WAAaN,IACjBK,IAAgBN,EAASC,CAAA,EAAK9B,OAAS,GACtC6B,EAASC,CAAA,EAAKK,CAAA,EAAajE,OAAS2D,EAASC,CAAA,EAAKK,EAAc,CAAA,EAAGjE,MACrE,CACA,IAAMgD,EAAQF,EAAiB9C,EAAKA,KAAMhC,CAAA,EAC1C,GAAIgF,IAAUb,OACZ,SAEF,IAAMgC,EAAW9B,KAAKM,IAAIK,EAAQe,EAAajG,EAAA,EAC/CkC,EAAKA,KAAKoE,SAASD,CAAA,CACrB,CACF,CACF,EACA,CAAEtB,IAAK,uBAAwB,CAAA,CAEnC,EACA,CAAClE,EAAYX,CAAA,CAAO,EAGhBqG,EAAiBnF,GACpBoC,GAAA,CACC,IAAMgD,EAAWjF,GAAA,CAIf,GAHAA,EAAMkF,eAAc,EACpBlF,EAAMmF,gBAAe,EAEjB,CAAC7F,EACH,MAAM,IAAI2B,MAAM,yCAAA,EAGlB,GAAI/B,EAAiBY,QAAS,CAC5B,GAAM,CAAEQ,EAAAA,EAAGE,EAAAA,CAAC,EAAKtB,EAAiBY,QAElC,GAAIR,IAAe,KACjB,OAEF,IAAM8F,EAAOC,GAAmBrF,EAAMK,MAAM,EAE5C,GAAI2B,EAAiBC,CAAA,EAAY,CAC/B,IAAME,GAAgBnC,EAAMS,QAAUD,GAAK4E,EAC3ClD,EAAgBC,CAAA,CAClB,KAAO,CACL,IAAMuC,GAAe1E,EAAMO,QAAUD,GAAK8E,EAC1CX,EAAkBC,CAAA,CACpB,CAEA9E,EAAA,EACA0F,SAASvD,oBAAoB,UAAWkD,CAAA,CAC1C,CACF,EACA,OAAOA,CACT,EACA,CAAC3F,EAAYM,EAAY6E,EAAmBvC,CAAA,CAAgB,EAGxDqD,EAAe1F,GAClBoC,GACEjC,GAAA,CAIC,GAHAA,EAAMkF,eAAc,EACpBlF,EAAMmF,gBAAe,EAEjB,CAAC7F,EACH,MAAM,IAAI2B,MAAM,yCAAA,EAGlB/B,EAAiBY,QAAU,CACzBQ,EAAGN,EAAMO,QACTC,EAAGR,EAAMS,OACX,EACArB,EAAsBF,EAAiBY,OAAO,EAC9CH,EAAwBsC,CAAA,EAExBqD,SAASxD,iBAAiB,UAAWkD,EAAe/C,CAAA,CAAA,CACtD,EACF,CAAC3C,EAAY0F,CAAA,CAAe,EAwDxBQ,EArDc3F,GAAY,IAAA,CAC9B,GAAIP,EAAY,CACd,GAAM,CAAEsD,OAAAA,EAAQ6C,KAAAA,EAAMC,IAAAA,EAAK/B,MAAAA,CAAK,EAAKrE,EAAW0B,KAAKO,sBAAqB,EACpE6D,EAAOC,GAAmB/F,EAAW0B,IAAI,EACzC2E,EAAY,GACZC,EAAS,CACbC,OAAQ,CACNC,gBAAiB,OACjBC,OAAQ,aACRnD,OAAQ,GAAG+C,CAAA,KACXF,KAAM,GAAGO,OAAOC,YAAcR,CAAA,KAC9BC,IAAK,GAAGM,OAAOE,YAAcR,EAAM9C,EAAS+C,EAAY,CAAA,KACxDhC,MAAO,GAAGA,CAAA,IACZ,EACAwC,MAAO,CACLL,gBAAiB,OACjBC,OAAQ,aACRnD,OAAQ,GAAGA,CAAA,KACX6C,KAAM,GAAGO,OAAOC,YAAcR,EAAO9B,EAAQgC,EAAY,CAAA,KACzDD,IAAK,GAAGM,OAAOE,YAAcR,CAAA,KAC7B/B,MAAO,GAAGgC,CAAA,IACZ,CACF,EAEMS,EAAYrH,EAAae,QAE/B,OAAIJ,GAAqBP,GAAmBiH,IACtCpE,EAAiBtC,CAAA,GACnBkG,EAAOlG,CAAA,EAAmB+F,KAAO,GAAGO,OAAOC,YAAcG,EAAUX,IAAI,KACvEG,EAAOlG,CAAA,EAAmBgG,IAAM,GAAGM,OAAOE,YAAc/G,EAAgBqB,EAAI4E,CAAA,KAC5EQ,EAAOlG,CAAA,EAAmBkD,OAAS,MACnCgD,EAAOlG,CAAA,EAAmBiE,MAAQ,GAAGyC,EAAUzC,KAAK,OAEpDiC,EAAOlG,CAAA,EAAmBgG,IAAM,GAAGM,OAAOE,YAAcE,EAAUV,GAAG,KACrEE,EAAOlG,CAAA,EAAmB+F,KAAO,GAAGO,OAAOC,YAAc9G,EAAgBmB,EAAI8E,CAAA,KAC7EQ,EAAOlG,CAAA,EAAmBiE,MAAQ,MAClCiC,EAAOlG,CAAA,EAAmBkD,OAAS,GAAGwD,EAAUxD,MAAM,MAGxDgD,EAAOlG,CAAA,EAAmBoG,gBAAkB,QAGvCF,CACT,CAEA,MAAO,CACLC,OAAQ,KACRJ,KAAM,KACNU,MAAO,KACPT,IAAK,IACP,CACF,EAAG,CAACpG,EAAYI,EAAmBP,CAAA,CAAgB,EAE7B,EAEtB,OACEkH,GAAC,MAAA,CAAIC,IAAKxH,WACPQ,GAAc,MAAQ,CAACE,GACtB+G,GAAOC,YAAQ,WACbH,GAAC,MAAA,CACCI,UAAW,GAAGzH,EAAaA,aAAa0H,QAAQC,MAAMC,gBAAgB,wBACtEpF,YAAa+D,EAAa,OAAA,EAC1BsB,MAAOrB,EAAcW,OAASrD,SAEhCuD,GAAC,MAAA,CACCI,UAAW,GAAGzH,EAAaA,aAAa0H,QAAQC,MAAMC,gBAAgB,wBACtEpF,YAAa+D,EAAa,QAAA,EAC1BsB,MAAOrB,EAAcK,QAAU/C,aAM3C,CAEO,IAAMgE,GAA0CA,IAAA,CACrD,GAAM,CAACnI,CAAA,EAAUoI,GAAA,EACXC,EAAaC,GAAA,EAEnB,OAAOC,GACL,IAAOF,EAAaG,GAAad,GAAC3H,GAAA,CAAiBC,OAAQA,IAAY2G,SAAS8B,IAAI,EAAI,KACxF,CAACzI,EAAQqI,CAAA,CAAW,CAExB,qEClZA,OAASK,6BAAAA,OAAiC,wCAC1C,OACEC,yCAAAA,GACAC,sCAAAA,GACAC,oCAAAA,GACAC,iCAAAA,GACAC,oBAAAA,GACAC,gBAAAA,GACAC,aAAAA,OACK,iBACP,OAASC,uBAAAA,GAAqBC,iBAAAA,OAAqB,iBACnD,OAASC,8BAAAA,OAAkC,UAC3C,OAASC,aAAAA,GAAWC,UAAAA,GAAQC,YAAAA,OAAgB,QAC5C,MAAuB,QACvB,OAASC,gBAAAA,OAAoB,YCnB7B,OAASC,WAAAA,GAASC,UAAAA,OAAc,QCsDhC,IAAMC,GAAkB,sBAGlBC,GAAYC,KAAKC,IACrBC,GAAYF,KAAKG,IAwDnB,SAASC,GAASC,EAAMC,EAAMC,EAAO,CACnC,IAAIC,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAiB,EACjBC,EAAU,GACVC,EAAS,GACTC,EAAW,GAEb,GAAI,OAAOZ,GAAQ,WACjB,MAAM,IAAIa,UAAUpB,EAAA,EAEtBQ,EAAOA,GAAQ,EACX,OAAOC,GAAY,WACrBQ,EAAU,CAAC,CAACR,EAAQQ,QACpBC,EAAS,YAAaT,EACtBG,EAAUM,EAASjB,GAAUQ,EAAQG,SAAW,EAAGJ,CAAA,EAAQI,EAC3DO,EAAW,aAAcV,EAAU,CAAC,CAACA,EAAQU,SAAWA,GAG1D,SAASE,EAAWC,EAAI,CACtB,IAAMC,EAAOb,EACXc,EAAUb,EAEZD,OAAAA,EAAWC,EAAWc,OACtBT,EAAiBM,EACjBT,EAASN,EAAKmB,MAAMF,EAASD,CAAA,EACtBV,CACT,CAEA,SAASc,EAAYL,EAAI,CAEvBN,OAAAA,EAAiBM,EAEjBR,EAAUc,WAAWC,EAAcrB,CAAA,EAE5BS,EAAUI,EAAWC,CAAA,EAAQT,CACtC,CAEA,SAASiB,EAAcR,EAAI,CACzB,IAAMS,EAAoBT,EAAOP,EAC/BiB,EAAsBV,EAAON,EAC7BiB,EAAczB,EAAOuB,EAEvB,OAAOb,EAASd,GAAU6B,EAAarB,EAAUoB,CAAA,EAAuBC,CAC1E,CAEA,SAASC,EAAaZ,EAAI,CACxB,IAAMS,EAAoBT,EAAOP,EAC/BiB,EAAsBV,EAAON,EAK/B,OACED,IAAiBU,QACjBM,GAAqBvB,GACrBuB,EAAoB,GACnBb,GAAUc,GAAuBpB,CAEtC,CAEA,SAASiB,GAAA,CACP,IAAMP,EAAOa,KAAKC,IAAG,EACrB,GAAIF,EAAaZ,CAAA,EACf,OAAOe,EAAaf,CAAA,EAGtBR,EAAUc,WAAWC,EAAcC,EAAcR,CAAA,CAAA,CACnD,CAEA,SAASe,EAAaf,EAAI,CAKxB,OAJAR,EAAUW,OAINN,GAAYT,EACPW,EAAWC,CAAA,GAEpBZ,EAAWC,EAAWc,OACfZ,EACT,CAEA,SAASyB,GAAA,CACHxB,IAAYW,QACdc,aAAazB,CAAA,EAEfE,EAAiB,EACjBN,EAAWK,EAAeJ,EAAWG,EAAUW,MACjD,CAEA,SAASe,GAAA,CACP,OAAO1B,IAAYW,OAAYZ,EAASwB,EAAaF,KAAKC,IAAG,CAAA,CAC/D,CAEA,SAASK,GAAA,CACP,IAAMnB,EAAOa,KAAKC,IAAG,EACnBM,EAAaR,EAAaZ,CAAA,EAQ5B,GALAZ,EAAWiC,UAEXhC,EAAW,KACXI,EAAeO,EAEXoB,EAAY,CACd,GAAI5B,IAAYW,OACd,OAAOE,EAAYZ,CAAA,EAErB,GAAIG,EAEFqB,oBAAazB,CAAA,EACbA,EAAUc,WAAWC,EAAcrB,CAAA,EAC5Ba,EAAWN,CAAA,CAEtB,CACA,OAAID,IAAYW,SACdX,EAAUc,WAAWC,EAAcrB,CAAA,GAE9BK,CACT,CACA4B,OAAAA,EAAUH,OAASA,EACnBG,EAAUD,MAAQA,EACXC,CACT,CAEA,IAAAG,GAAetC,GD/OR,SAASuC,GACdC,EACAC,EACAC,EAAgB,CAEhB,IAAMC,EAAUC,GAAiB,IAAA,EACjCD,OAAAA,EAAQE,QAAUL,EAEXM,GACL,IACEC,GACE,IAAIC,IAAA,CACEL,EAAQE,SACVF,EAAQE,QAAO,GAAIG,CAAA,CAEvB,EACAP,EACA,CAAEC,QAAAA,CAAQ,CAAA,EAEd,CAACD,EAAIC,CAAA,CAAQ,CAEjB,CDDA,IAAMO,GAAkB,GAExB,SAASC,GAA2B,CAAEC,WAAAA,CAAU,EAA+B,CAC7E,GAAM,CAACC,CAAA,EAAUC,GAAA,EACXC,EAAeC,EAAA,EACf,CAACC,EAAYC,CAAA,EAAeC,GAAkB,EAAA,EAC9C,CAACC,EAAeC,CAAA,EAAkBF,GAAkB,EAAA,EACpD,CAACG,EAAuBC,CAAA,EAA4BJ,GAAkB,EAAA,EACtE,CAACK,EAAUC,CAAA,EAAeN,GAAS,CAAC,CAAA,EACpCO,EAAaC,GAAqB,IAAIC,GAAA,EACtCC,EAAkBF,GAA2B,IAAA,EAE7CG,EAAuBC,GAC1BC,GAAA,CACC,GAAM,CAAEC,UAAAA,EAAWC,aAAAA,CAAY,EAAKC,GAAaH,EAAOjB,EAAaA,cAAcqB,OAAA,EAEnF,GAAIH,EAAW,CACbf,EAAY,EAAA,EACZG,EAAe,EAAA,EACf,MACF,CAEA,GAAI,CAACa,EACH,OAGFL,EAAgBQ,QAAUH,EAE1B,IAAII,EAAuC,KACvCC,EAA0C,KAC1CC,EAAsC,KA+B1C,GA7BA3B,EAAO4B,OAAO,IAAA,CACZ,IAAMC,EAAiBC,GAA2BT,CAAA,EAElD,GAAIU,GAAiBF,CAAA,EAAiB,CACpC,IAAMG,EAAQC,GAAoBJ,EAAiBK,GAASC,GAAaD,CAAA,CAAA,EACzE,GAAI,CAACC,GAAaH,CAAA,EAChB,OAKF,GAFAL,EAAkB3B,EAAOoC,gBAAgBJ,GAAOK,OAAA,CAAA,EAE5CV,EAAiB,CACnB,IAAMW,EAAWN,EAAMO,gBAAe,EAChCC,EAEFR,EAAoBS,gBAAgB,CAAA,GAAqBF,gBAAA,EAEvDG,EAAWC,GAAmCd,CAAA,EAC9Ce,EAAWC,GAAsChB,CAAA,EAEnDa,IAAaJ,EAAW,EAC1Bb,EAAiBI,EACRe,IAAaJ,EAAW,IACjCd,EAAoBG,EAExB,CACF,CACF,CAAA,EAEIF,EAAiB,CACnB,GAAM,CACJmB,OAAQC,EACRC,OAAQC,EACRC,MAAOC,EACPC,MAAOC,EACPC,EAAGC,EACHC,EAAGC,CAAU,EACX9B,EAAsC+B,sBAAqB,EAEzD,CAAEC,KAAMC,EAAgBJ,EAAGK,CAAW,EAAK9D,EAAW2D,sBAAqB,EAE7EjC,GACFjB,EAAe,EAAA,EACfH,EAAY,EAAA,EACZO,EAAY,CACVoC,OAAQnD,GACR8D,KAAMJ,EAAaK,EACnBE,IAAKf,EAAkBc,EAAc,EACrCT,MAAOC,CACT,CAAA,GACS3B,IACTlB,EAAe,EAAA,EACfH,EAAY,EAAA,EACZO,EAAY,CACVoC,OAAQC,EACRU,KAAMR,EAAiBS,EAAiB,EACxCE,IAAKL,EAAaI,EAClBT,MAAOvD,EACT,CAAA,EAEJ,CACF,EACA,GACA,GAAA,EAGFkE,GAAU,IAAA,CACR,GAAKtD,EAILuD,gBAASC,iBAAiB,YAAahD,CAAA,EAEhC,IAAA,CACLZ,EAAY,EAAA,EACZG,EAAe,EAAA,EAEfwD,SAASE,oBAAoB,YAAajD,CAAA,CAC5C,CACF,EAAG,CAACR,EAAuBQ,CAAA,CAAqB,EAEhD8C,GAAU,IACDI,GACLnE,EAAOoE,yBACLC,GACCC,GAAA,CACCtE,EAAOuE,eAAc,EAAGC,KAAK,IAAA,CAC3B,OAAW,CAACC,EAAKC,CAAA,IAASJ,EACxB,OAAQI,EAAA,CACN,IAAK,UACH7D,EAAWW,QAAQmD,IAAIF,CAAA,EACvB/D,EAAyBG,EAAWW,QAAQoD,KAAO,CAAA,EACnD,MAEF,IAAK,YACH/D,EAAWW,QAAQqD,OAAOJ,CAAA,EAC1B/D,EAAyBG,EAAWW,QAAQoD,KAAO,CAAA,EACnD,MAEF,QACE,KACJ,CAEJ,CAAA,CACF,EACA,CAAEE,mBAAoB,EAAM,CAAA,CAAA,EAG/B,CAAC9E,CAAA,CAAO,EAEX,IAAM+E,EAAgBC,GAAA,CACpBhF,EAAO4B,OAAO,IAAA,CACRZ,EAAgBQ,UACKM,GAA2Bd,EAAgBQ,OAAO,GACzDyD,UAAA,EACZD,GACFE,GAAA,EACA7E,EAAY,EAAA,IAEZ8E,GAAA,EACA3E,EAAe,EAAA,GAGrB,CAAA,CACF,EAEA,OACE4E,GAAAC,GAAA,WACGjF,GACCkF,GAAC,SAAA,CACCC,UAAWrF,EAAaA,aAAaqB,QAAQiE,MAAMC,aACnDC,QAASA,IAAMX,EAAa,EAAA,EAC5BY,MAAO,CAAE,GAAGhF,CAAS,IAGxBJ,GACC+E,GAAC,SAAA,CACCC,UAAWrF,EAAaA,aAAaqB,QAAQiE,MAAMI,gBACnDF,QAASA,IAAMX,EAAa,EAAA,EAC5BY,MAAO,CAAE,GAAGhF,CAAS,MAK/B,CAEA,SAASW,GACPH,EACAjB,EAA0B,CAK1B,IAAM2F,EAAS1E,EAAM0E,OAErB,GAAIA,GAAUA,aAAkBC,YAAa,CAC3C,IAAMzE,EAAewE,EAAOE,QAC1B,MAAM7F,EAAasF,MAAMQ,SAAS,QAAQ9F,EAAasF,MAAMQ,SAAS,EAAE,EAU1E,MAAO,CAAE5E,UAPS,EAChBC,GACAwE,EAAOE,QAAqB,UAAU7F,EAAasF,MAAMC,YAAY,EAAE,GACvEI,EAAOE,QAAqB,UAAU7F,EAAasF,MAAMI,eAAe,EAAE,GAC1EC,EAAOE,QAAqB,OAAO7F,EAAasF,MAAMS,gBAAgB,EAAE,GAGtD5E,aAAAA,CAAa,CACnC,KACE,OAAO,CAAED,UAAW,GAAMC,aAAc,IAAK,CAEjD,CAEO,SAAS6E,GAAwB,CACtCnG,WAAAA,EAAaiE,SAASmC,IAAI,EAG3B,CACC,OAAOC,GAAad,GAACxF,GAAA,CAA2BC,WAAYA,IAAgBA,CAAA,CAC9E,CG5OA,OAAAsG,KAAAC,OAAA,6EAYA,OAASC,6BAAAA,OAAiC,wCAC1C,OAASC,eAAeC,OAA+B,oCACvD,OAASC,wBAAAA,GAAsBC,aAAAA,OAAiB,iBAChD,OAASC,iBAAAA,OAAqB,iBAC9B,OAASC,oBAAAA,GAAkBC,gBAAAA,GAAcC,YAAAA,OAAgB,iBACzD,OAASC,iBAAAA,GAAeC,qBAAAA,GAAmBC,2BAAAA,GAAyBC,iBAAAA,OAAqB,UACzF,OAASC,iBAAAA,GAAeC,cAAAA,GAAYC,aAAAA,GAAWC,WAAAA,GAASC,YAAAA,OAAgB,QACxE,UAAYC,OAAW,QAyBhB,IAAMC,GAAgDC,GAC3D,2BAAA,EAGWC,GAAcC,GAAgC,CACzDC,iBAAkB,KAClBC,kBAAmB,KACnBC,IAAKA,IAAA,CACH,CAEJ,CAAA,EAEO,SAASC,GAAa,CAAEC,SAAAA,CAAQ,EAA6B,CAClE,GAAM,CAACC,EAAcC,CAAA,EAAmBC,GAGrC,CACDP,iBAAkB,KAClBC,kBAAmB,IACrB,CAAA,EACA,OACEO,GAACV,GAAYW,SAAQ,CACnBC,MAAOC,GACL,KAAO,CACLX,iBAAkBK,EAAaL,iBAC/BC,kBAAmBI,EAAaJ,kBAChCC,IAAKA,CAACF,EAAkBC,IAAA,CACtBK,EAAgB,CAAEN,iBAAAA,EAAkBC,kBAAAA,CAAkB,CAAA,CACxD,CACF,GACA,CAACI,EAAaL,iBAAkBK,EAAaJ,iBAAiB,CAAC,WAGhEG,GAGP,CAEO,IAAMQ,GAA+BA,IAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAC1C,CAAAC,CAAA,EAAiBC,GAAA,EACjBC,EAAoBC,GAAApB,EAAW,EAC/B,CAAAqB,WAAAA,EAAAC,YAAAA,CAAA,EAAoCC,GAAA,EACpCC,EAAkBC,GAAA,EAClB,CAAAC,KAAAA,CAAA,EAAiBC,EAAA,EAGTC,EAAA,wBAA0BF,EAAAG,EAAAd,EAAA,CAAA,IAAAa,GAAAb,EAAA,CAAA,IAAAS,GADfK,EAAAC,GAAA,CAAAC,KACXH,EAA0BI,MACzBR,CAAA,CACT,EAAAT,EAAA,CAAA,EAAAa,EAAAb,EAAA,CAAA,EAAAS,EAAAT,EAAA,CAAA,EAAAc,GAAAA,EAAAd,EAAA,CAAA,EAHA,IAAAkB,EAAmBJ,EAGnBK,EAAAnB,EAAA,CAAA,IAAAE,GAAAF,EAAA,CAAA,IAAAO,GAAAP,EAAA,CAAA,IAAAkB,GAEUC,EAAAA,IAAA,CAAA,GAAA,CACHjB,EAAAkB,SAAA,CAAAC,EAAA,CAA2B,EAAA,MAAA,IAAAC,MACd,oDAAA,EAAA,OAGXC,GACLrB,EAAAsB,gBAAAzC,GAAA,IAAA,CAGI,IAAA0C,EAAAA,OAAAA,EAAA,KAEAvB,EAAAwB,eAAqB,EAAAC,KAAA,IAAA,CACnB,IAAAC,EAAkBC,GAAA,EACdC,GAAkBF,CAAA,IACpBH,EAAiBG,EAAjB,CAEJ,EAEIH,GACFlB,EAAYW,CAAA,EAAA,EAAA,EAAAa,EAIhB,CAAA,CAAA,EAGN/B,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,EAAAkB,EAAAlB,EAAA,CAAA,EAAAmB,GAAAA,EAAAnB,EAAA,CAAA,EAAA,IAAAgC,EAAAhC,EAAA,CAAA,IAAAI,GAAAJ,EAAA,CAAA,IAAAE,GAAAF,EAAA,CAAA,IAAAO,GAAGyB,EAAA,CAAC5B,EAAaF,EAAQK,CAAA,EAAYP,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAO,EAAAP,EAAA,EAAA,EAAAgC,GAAAA,EAAAhC,EAAA,EAAA,EA1BrCiC,GAAUd,EA0BPa,CAAkC,EAAA,IAAAE,EAAAlC,EAAA,EAAA,IAAAM,GAAAN,EAAA,EAAA,IAAAkB,GAAAlB,EAAA,EAAA,IAAAE,GAQXgC,EAAAA,CAAAC,EAAAC,IAAA,CAClB9B,EAAWY,CAAA,EAEP,GAACkB,EAAAC,SAAA,CAAiBD,EAAAE,OAItBpC,EAAAqC,gBAAAC,GAAA,CAAAH,QACWI,OAAOL,EAAAC,OAAY,EAAAC,KACtBG,OAAOL,EAAAE,IAAS,CAAA,CACxB,CAAA,EACFtC,EAAA,EAAA,EAAAM,EAAAN,EAAA,EAAA,EAAAkB,EAAAlB,EAAA,EAAA,EAAAE,EAAAF,EAAA,EAAA,EAAAkC,GAAAA,EAAAlC,EAAA,EAAA,EAAA,IAAA0C,EAAA,OAAA1C,EAAA,EAAA,IAAAkB,GAAAlB,EAAA,EAAA,IAAAkC,GAhBJQ,EAAAC,GAAAC,YAAA,CAAArD,SAAA,CACEI,GAAAkD,GAAA,CAAA3B,WAAAA,EAAA4B,YAEc,eAAAC,WACD,qBAAAC,mBACSd,EAWpBe,iBACiB,QAAA,CAAA,EAEnBtD,GAAAuD,GAAA,CAAAC,uBAAA,GAAAC,aAAA,EAAA,CAAA,CAAA,qCAnBFV,GR1GG,IAAMW,GAAqBC,EAAoB,CACpDC,MAAO,CAACC,GAAWC,GAAeC,EAAA,EAClCC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,EACA,CACEF,UAAWG,GACXD,SAAU,QACZ,EACA,CACEF,UAAWI,GACXF,SAAU,oBACZ,EACA,CACEF,UAAWK,GACXH,SAAU,oBACZ,CAAA,EAEFI,UAAW,CAACC,EAAA,EACZC,UAAW,CACTC,OAAQ,CACNC,EAA6B,CAC3B,CACEC,KAAMC,GACNC,IAAK,QACLC,SAAU,CAAC,OAAA,EACXC,MAAO,QACPC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA2B,CAAC,CAAA,CACrD,CACF,CAAA,CACD,CAAA,CAEL,EACAC,aAAc,CACZX,OAAQ,CACNY,EAAiC,CAC/B,CACEC,eAAgBV,GAChBC,IAAK,QACLE,MAAO,QACPC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAA2B,CAAC,CAAA,CACrD,CACF,CAAA,CACD,CAAA,CAEL,CACF,CAAA,ESjEA,OAASI,oBAAAA,OAAwB,8DCDjC,MAAkB,QAEX,IAAMC,GAAuBA,IAClCC,GAAC,MAAA,CACC,cAAY,OACZC,UAAU,OACVC,KAAK,OACLC,UAAU,QACVC,OAAO,KACPC,QAAQ,YACRC,MAAM,KACNC,MAAM,uCAENC,GAAC,OAAA,CACCC,EAAE,wKACFC,OAAO,eACPC,cAAc,QACdC,eAAe,UAEjBJ,GAAC,OAAA,CACCC,EAAE,iNACFC,OAAO,eACPC,cAAc,QACdC,eAAe,UAEjBJ,GAAC,OAAA,CACCC,EAAE,mIACFC,OAAO,eACPC,cAAc,QACdC,eAAe,aC9BrB,OAAAC,KAAAC,OAAA,kEAGA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,4BAAAA,GAA0BC,iBAAAA,OAAqB,iBACxD,OAASC,aAAAA,OAAiB,iBAC1B,OACEC,yBAAAA,GACAC,iBAAAA,GACAC,oBAAAA,GACAC,qBAAAA,GACAC,2BAAAA,GACAC,iBAAAA,OACK,UACP,OAAgBC,aAAAA,OAAiB,QCdjC,OAAAC,KAAAC,OAAA,kEAGA,OAASC,6BAAAA,OAAiC,2CAC1C,OAASC,iBAAAA,OAAqB,iBAC9B,OAASC,iBAAAA,GAAeC,2BAAAA,OAA+B,UACvD,OAA6BC,aAAAA,GAAWC,YAAAA,OAAgB,QAOxD,IAAMC,GAAeA,CAAC,CACpBC,OAAAA,EACAC,WAAAA,EACAC,eAAAA,EACAC,MAAAA,CAAK,IAMN,CACMD,EAOHF,EAAOI,OAAO,IAAA,CACZ,IAAMC,EAAOC,GAAcJ,CAAA,EACvBG,GACFA,EAAKE,QACHC,GAAkB,CAChBC,KAAM,CACJC,OAAQ,KACRT,WAAAA,EACAE,MAAAA,CACF,CACF,CAAA,CAAA,CAGN,CAAA,EAnBAH,EAAOW,gBAAgBC,GAAuB,CAC5CF,OAAQ,KACRT,WAAAA,EACAE,MAAAA,CACF,CAAA,CAiBJ,EAMMU,GAAyCC,GAAA,CAAA,IAAAC,EAAAC,GAAA,EAAA,EAAC,CAAAC,uBAAAA,CAAA,EAAAH,EAC9C,CAAAd,CAAA,EAAiBkB,GAAA,EAEjB,CAAAhB,EAAAiB,CAAA,EAA4CC,GAAA,IAAwB,EAAAC,EAAAN,EAAA,CAAA,IAAAE,GAEeI,EAAA,CAAAC,gBAChEL,EAAAM,QAAA,EAAA,EAEnBR,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAM,GAAAA,EAAAN,EAAA,CAAA,EAHA,GAAA,CAAAS,EAAAC,EAAAC,CAAA,EAAqEC,GAAcN,CAGnF,EAHsC,CAAAO,YAAAA,EAAAC,WAAAA,CAAA,EAAAH,EAA2BI,EAAAC,EAAAhB,EAAA,CAAA,IAAAf,GAAAe,EAAA,CAAA,IAAAc,GAKvDC,EAAAA,IACD9B,EAAAgC,gBAAAC,GAAAC,IAKHf,EAAkBe,GAAA3B,QAAmB2B,GAAA3B,QAAA4B,QAAA,IAA2B,EAChEN,EAAA,EAAA,IAAAO,EAGF,EAEDL,EAAA,CAAC/B,EAAQ6B,CAAA,EAAWd,EAAA,CAAA,EAAAf,EAAAe,EAAA,CAAA,EAAAc,EAAAd,EAAA,CAAA,EAAAe,EAAAf,EAAA,CAAA,EAAAgB,IAAAD,EAAAf,EAAA,CAAA,EAAAgB,EAAAhB,EAAA,CAAA,GAZvBsB,GAAUP,EAYPC,CAAoB,EAAA,IAAAO,EAAAvB,EAAA,CAAA,IAAAf,GAAAe,EAAA,CAAA,IAAAb,GAAAa,EAAA,CAAA,IAAAa,GAGrBU,EAAAC,GAAA,CAAC,GAAA,CAAAC,eAAAA,EAAAC,MAAAA,CAAA,EAAAF,EACCxC,GAAA,CAAAC,OAAAA,EAAAC,WAEcuC,EAAAtC,eAAAA,EAAAC,MAELsC,CAAA,CACT,EACAb,EAAA,CAAA,EACFb,EAAA,CAAA,EAAAf,EAAAe,EAAA,CAAA,EAAAb,EAAAa,EAAA,CAAA,EAAAa,EAAAb,EAAA,CAAA,EAAAuB,GAAAA,EAAAvB,EAAA,CAAA,EATF,IAAA2B,EAAiBJ,EAUsBC,EAAA,OAAAxB,EAAA,EAAA,IAAA2B,GAAA3B,EAAA,EAAA,IAAAS,GAGhCe,EAAAI,GAACnB,EAAA,CAAAkB,SAAAA,CAAA,CAAA,mCAADH,GAGIK,GAAgBC,GAEzBF,GAACG,GAAA,CAA+B,GAAGD,EAAOtB,QAAO,YAC/CoB,GAAC9B,GAAA,CAAuB,GAAGgC,MDtE1B,IAAME,GACXC,GAAc,uBAAA,EAEHC,GAAoEC,GAAA,CAAA,IAAAC,EAAAC,GAAA,CAAA,EAG/E,CAAAC,CAAA,EAAiBC,GAAA,EACjB,CAAAC,OAAAC,CAAA,EAEIC,GAAA,EADM,CAAAC,YAAAA,CAAA,EAAAF,EAAeG,EAAAC,EAAAT,EAAA,CAAA,IAAAE,GAGfM,EAAAA,IAAA,CAAA,GAAA,CACHN,EAAAQ,SAAA,CAAAC,EAAA,CAA4B,EAAA,MAAA,IAAAC,MACf,mDAAA,EAAA,OAGXC,GACLX,EAAAY,gBAAAlB,GAAAmB,IAGIb,EAAAc,OAAA,IAAA,CACE,IAAAC,EAAkBC,GAAA,GAAmBC,GAAA,EAAA,GAEjCC,GAAkBH,CAAA,EAAA,CACpB,IAAAI,EAAmBC,GAAA,CAAAC,KAAA,CAAAC,GAEXT,EAAAS,GAAAC,OACIV,EAAAU,OAAAC,WACIX,EAAAW,WAAAC,MACLZ,EAAAY,KAAA,CAAA,CAEX,EAEAC,GAAyBP,CAAA,EAEzB,GAAA,CAAAQ,MAAAA,CAAA,EAAkBZ,EAClBa,EAAkBD,EAAAE,QAAa,EAK7BC,GAAiBF,CAAA,GACjBA,EAAAG,mBAA4B,IAAA,GAC5BH,EAAAI,UACY,EAAAC,YACE,EAAAC,OAAAC,GACML,GAAiBK,CAAA,CAAA,EAAAC,OAAA,GAErCR,EAAAS,OAAgB,CAAA,CAAA,CAGtB,EAAA,IAAAC,EAIF,CAAA,CAAA,EAGH/B,EAAA,CAACP,CAAA,EAAOF,EAAA,CAAA,EAAAE,EAAAF,EAAA,CAAA,EAAAQ,EAAAR,EAAA,CAAA,EAAAS,IAAAD,EAAAR,EAAA,CAAA,EAAAS,EAAAT,EAAA,CAAA,GA/CXyC,GAAUjC,EA+CPC,CAAQ,EAAA,IAAAiC,EAAA,OAAA1C,EAAA,CAAA,IAAAO,GAEJmC,EAAAC,GAAAC,GAAA,CAAAC,uBAAsCtC,EAAAuC,IAAAC,EAA8B,CAAA,CAAA,wBAApEL,GAzDwE,SAAAK,GAAAhD,EAAA,CAyDjB,GAAA,CAAAiD,KAAAA,CAAA,EAAAjD,EAAQ,OAAKiD,CAAA,CFjEtE,IAAMC,GAAsBC,EAA8C,CAC/EC,MAAO,CAACC,EAAA,EACRC,QAAS,CACP,CACEC,UAAWC,GACXC,SAAU,QACZ,CAAA,EAEFC,UAAW,CACTC,OAAQ,CACNC,EAA6B,CAC3B,CACEC,KAAMC,GACNC,IAAK,SACLC,SAAU,CAAC,SAAU,QAAS,OAAQ,MAAO,UAAW,QAAS,OAAA,EACjEC,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,sBAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAmC,CACxDC,QAAS,EACX,CAAA,CACF,CACF,CAAA,CACD,CAAA,CAEL,EACAC,aAAc,CACZd,OAAQ,CACNe,EAAiC,CAC/B,CACEC,eAAgBb,GAChBc,SAAUA,CAAC,CAAEC,UAAAA,CAAS,IAAE,CACtB,GAAI,CAACC,GAAiBD,CAAA,GAAc,CAACA,EAAUE,SAAQ,EAAGC,OACxD,MAAO,GAGT,IAAMC,EAAYJ,EAAUE,SAAQ,EAAG,CAAA,EACvC,OAAOG,GAAcD,CAAA,CACvB,EACAlB,IAAK,SACLE,MAAOA,CAAC,CAAEC,KAAAA,CAAI,IACLA,EAAKC,EAAE,sBAAA,EAEhBC,SAAUA,CAAC,CAAEC,OAAAA,CAAM,IAAE,CACnBA,EAAOC,gBAAgBC,GAAmC,CACxDC,QAAS,EACX,CAAA,CACF,CACF,CAAA,CACD,CAAA,CAEL,CACF,CAAA,sDIvEA,OAASW,iBAAAA,GAAeC,sBAAAA,GAAoBC,iBAAAA,OAAqB,iBACjE,OAAOC,IAASC,YAAAA,GAAUC,QAAAA,GAAMC,aAAAA,GAAWC,YAAAA,OAAgB,QAU3D,IAAMC,GAAiBC,GAAK,IAC1B,OAAO,qBAAA,EAAcC,KAAMC,IAAY,CAAEC,QAASD,EAAOE,QAAS,EAAA,CAAA,EAGvDC,GAAsDC,GAAA,CACjE,GAAM,CACJC,MAAAA,EAAQ,CAAC,EACTC,MAAO,CAAEC,qBAAAA,CAAoB,EAC7BC,oBAAAA,CAAmB,EACjBJ,EACE,CAAEK,WAAAA,CAAU,EAAKC,GAAA,EACjBC,EAAkBC,GAAA,EAClB,CAACC,EAAmBC,CAAA,EAAwBC,GAAS,EAAA,EAErD,CAACC,EAAkBC,CAAA,EAAuBF,GAE9C,CAAA,CAAE,EAEE,CAACG,EAA4BC,CAAA,EACjCJ,GAAsC,IAAA,EAEpCK,EAAiEb,EAAqBc,IACxF,UAAA,EAGFD,EAA4BA,EAA0BE,KAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAQD,EAAEC,KAAK,EAEtF,IAAIC,EAAsC,EAC1C,QAAWC,KAAmBP,EAA2B,CACvD,IAAMQ,EAAuBC,MAAMC,KAAKvB,EAAqBwB,KAAI,CAAA,EAAIC,OAAQC,GAC3EA,EAAIC,WACF,4BAA4BP,EAAgBM,GAAG,+BAA+B,CAAA,EAIlFP,GAAuC,EACvCA,GAAuCE,EAAqBO,MAC9D,CAuDA,OArDAC,GAAU,IAAA,CACR,GAAI,CAACvB,EAAmB,CACtB,IAAMwB,EAAmE,CAAA,EACrEC,EAAsC,EAY1C,GAVAC,OAAOC,QAAQ7B,CAAA,EAAiB8B,QAAQ,CAAC,CAACR,EAAKS,CAAA,IAAO,CAChDT,EAAIC,WAAW,kBAAkBzB,CAAA,GAAa,IAC3CwB,EAAIU,SAAS,+BAAA,GAChBN,EAAsBO,KAAKF,CAAA,EAG7BJ,IAEJ,CAAA,EAEIA,IAAwCZ,EAAqC,CAC/ET,EAAoBoB,CAAA,EACpBvB,EAAqB,EAAA,EAMrB,IAAM+B,EAAyBC,GAAmB,CAChDnC,gBAAAA,EACAF,WAAAA,EACAsC,wBAAyB,CACvBC,SAAUX,EACVY,QAASzC,CACX,CACF,CAAA,EAEAW,EACE+B,GACE1C,GAA4C2C,GAC5CN,EACAxC,CAAA,CAAA,CAGN,CACF,CACF,EAAG,CACDA,EACAQ,EACAF,EACAF,EACAW,EAA0Be,OAC1BnB,EACAE,EACAV,EACAkB,CAAA,CACD,EAEIb,EA+BHuC,GAACC,GAAA,CAASC,SAAUF,GAACG,GAAA,CAAcC,OAAO,kBACvCtC,GACCkC,GAACvD,GAAA,CAAgB,GAAGO,EAAOqD,aAAcvC,MA/B3CkC,GAACM,GAAMC,SAAQ,UACZ9B,MAAM+B,QAAQxC,CAAA,GACbA,EAA0ByC,IAAKlC,GAAA,CAO7B,IAAMmC,EALuBjC,MAAMC,KAAKvB,EAAqBwB,KAAI,CAAA,EAAIC,OAAQC,GAC3EA,EAAIC,WACF,4BAA4BP,EAAgBM,GAAG,+BAA+B,CAAA,EAGhB4B,IAAK5B,GAC9D1B,EAAqBc,IAAIY,CAAA,CAClC,EAEA,OACE8B,GAACL,GAAMC,SAAQ,WACZG,GAAmB3B,OAChB2B,EAAkBD,IAAKG,GACdA,CACT,EACA,KACHrC,EAAgBsC,aAAa,GANXtC,EAAgBM,GAAG,CAS5C,CAAA,GAYV,EC7IO,SAASiC,MAAeC,EAAgD,CAC7E,OAAOA,EAAKC,OAAOC,OAAA,EAASC,KAAK,GAAA,CACnC,CCOA,IAAMC,GAAW,IAAIC,QAErB,SAASC,GAAUC,EAAa,CAC9B,IAAMC,EAAQD,EAAEE,eAAe,CAAA,EAC/B,OAAID,IAAUE,OACL,KAEF,CAACF,EAAMG,QAASH,EAAMI,OAAO,CACtC,CAEA,SAASC,GAAYC,EAAsBC,EAAY,CACrD,IAAIC,EAAgBZ,GAASa,IAAIH,CAAA,EACjC,GAAIE,IAAkBN,OAAW,CAC/B,IAAMQ,EAAY,IAAIC,IAChBC,EAAoBb,GAAA,CACpBS,IAAkBN,SACpBM,EAAcK,MAAQf,GAAUC,CAAA,EAEpC,EACMe,EAAkBf,GAAA,CACtB,GAAIS,IAAkBN,OACpB,OAEF,GAAM,CAAEW,MAAAA,CAAK,EAAKL,EAClB,GAAIK,IAAU,KACZ,OAEF,IAAME,EAAMjB,GAAUC,CAAA,EACtB,QAAWiB,KAAYN,EACjBK,IAAQ,MACVC,EAAS,CAACD,EAAI,CAAA,EAAKF,EAAM,CAAA,EAAIE,EAAI,CAAA,EAAKF,EAAM,CAAA,CAAE,EAAGd,CAAA,CAGvD,EACAO,EAAQW,iBAAiB,aAAcL,CAAA,EACvCN,EAAQW,iBAAiB,WAAYH,CAAA,EAErCN,EAAgB,CACdM,eAAAA,EACAF,iBAAAA,EACAF,UAAAA,EACAG,MAAO,IACT,EACAjB,GAASsB,IAAIZ,EAASE,CAAA,CACxB,CACAA,OAAAA,EAAcE,UAAUS,IAAIZ,CAAA,EACrB,IAAA,CACLa,GAAed,EAASC,CAAA,CAC1B,CACF,CAEA,SAASa,GAAed,EAAsBC,EAAY,CACxD,IAAMC,EAAgBZ,GAASa,IAAIH,CAAA,EACnC,GAAIE,IAAkBN,OACpB,OAEF,GAAM,CAAEQ,UAAAA,CAAS,EAAKF,EACtBE,EAAUW,OAAOd,CAAA,EACbG,EAAUY,OAAS,IACrB1B,GAASyB,OAAOf,CAAA,EAChBA,EAAQiB,oBAAoB,aAAcf,EAAcI,gBAAgB,EACxEN,EAAQiB,oBAAoB,WAAYf,EAAcM,cAAc,EAExE,CAEO,SAASU,GACdlB,EACAC,EAA2C,CAE3C,OAAOF,GAAYC,EAAS,CAACmB,EAAO1B,IAAA,CAClC,GAAM,CAAC2B,EAAGC,CAAA,EAAKF,EACXC,EAAI,GAAK,CAACA,EAAIE,KAAKC,IAAIF,CAAA,GACzBpB,EAAGmB,EAAG3B,CAAA,CAEV,CAAA,CACF,CAEO,SAAS+B,GACdxB,EACAC,EAA2C,CAE3C,OAAOF,GAAYC,EAAS,CAACmB,EAAO1B,IAAA,CAClC,GAAM,CAAC2B,EAAGC,CAAA,EAAKF,EACXC,EAAI,GAAKA,EAAIE,KAAKC,IAAIF,CAAA,GACxBpB,EAAGmB,EAAG3B,CAAA,CAEV,CAAA,CACF,CAEO,SAASgC,GACdzB,EACAC,EAA2C,CAE3C,OAAOF,GAAYC,EAAS,CAACmB,EAAO1B,IAAA,CAClC,GAAM,CAAC2B,EAAGC,CAAA,EAAKF,EACXE,EAAI,GAAK,CAACA,EAAIC,KAAKC,IAAIH,CAAA,GACzBnB,EAAGmB,EAAG3B,CAAA,CAEV,CAAA,CACF,CAEO,SAASiC,GACd1B,EACAC,EAA2C,CAE3C,OAAOF,GAAYC,EAAS,CAACmB,EAAO1B,IAAA,CAClC,GAAM,CAAC2B,EAAGC,CAAA,EAAKF,EACXE,EAAI,GAAKA,EAAIC,KAAKC,IAAIH,CAAA,GACxBnB,EAAGmB,EAAG3B,CAAA,CAEV,CAAA,CACF,CC/GO,IAAMkC,EAAa,CACxBC,iBAAkB,EAClBC,cAAe,EAEfC,eAAgB,EAChBC,gBAAiB,EACjBC,eAAgB,EAEhBC,UAAW,EACXC,SAAU,EACVC,aAAc,EACdC,SAAU,EAEVC,QAAS,EACTC,UAAW,EACXC,iBAAkB,EAClBC,aAAc,EACdC,QAAS,GACTC,aAAc,GACdC,eAAgB,GAChBC,aAAc,IAEdC,iBAAkB,EAClBC,eAAgB,EAEhBC,cAAe,EACfC,gBAAiB,EACjBC,eAAgB,EAChBC,iBAAkB,EAClBC,eAAgB,EAChBC,aAAc,CAChB,EAEaC,GACX1B,EAAWU,QACXV,EAAWW,UACXX,EAAWY,iBACXZ,EAAWa,aACXb,EAAWc,QACXd,EAAWe,aACXf,EAAWgB,eACXhB,EAAWiB,aAGAU,GAAqB,OAErBC,GAAoB;;EAK3BC,GAAM,0CACNC,GACJ,6GAKWC,GAAY,IAAIC,OAAO,MAAQF,GAAM,MAAQD,GAAM,GAAA,EAEnDI,GAAY,IAAID,OAAO,MAAQH,GAAM,MAAQC,GAAM,GAAA,EAEnDI,GAA+D,CAC1EC,KAAMnC,EAAWU,QACjB0B,KAAMpC,EAAWc,QACjBuB,UAAWrC,EAAWiB,aACtBqB,OAAQtC,EAAWW,UACnB4B,cAAevC,EAAWY,iBAC1B4B,UAAWxC,EAAWe,aACtB0B,YAAazC,EAAWgB,eACxB0B,UAAW1C,EAAWa,YACxB,EAEa8B,GAAiE,CAC5EC,cAAe5C,EAAWkB,iBAC1B2B,YAAa7C,EAAWmB,cAC1B,EAEa2B,GAAyE,CACpFC,OAAQ/C,EAAWqB,gBACnB2B,IAAKhD,EAAWyB,aAChBwB,QAASjD,EAAWuB,iBACpB2B,KAAMlD,EAAWoB,cACjB+B,MAAOnD,EAAWsB,eAClB8B,MAAOpD,EAAWwB,cACpB,EAEa6B,GAA4D,CACvE,CAACrD,EAAWqB,eAAe,EAAG,SAC9B,CAACrB,EAAWyB,YAAY,EAAG,MAC3B,CAACzB,EAAWuB,gBAAgB,EAAG,UAC/B,CAACvB,EAAWoB,aAAa,EAAG,OAC5B,CAACpB,EAAWsB,cAAc,EAAG,QAC7B,CAACtB,EAAWwB,cAAc,EAAG,OAC/B,EAEa8B,GAAqD,CAChEC,OAAQvD,EAAWM,UACnBkD,UAAWxD,EAAWQ,aACtBiD,MAAOzD,EAAWO,QACpB,EAEamD,GAAkD,CAC7D,CAAC1D,EAAWM,SAAS,EAAG,SACxB,CAACN,EAAWQ,YAAY,EAAG,YAC3B,CAACR,EAAWO,QAAQ,EAAG,OACzB",
6
+ "names": ["slashMenuBasicGroupWithItems", "items", "key", "label", "i18n", "t", "createHeadlessEditor", "useClientFunctions", "useTableCell", "$getRoot", "React", "useEffect", "useState", "LexicalEditorTheme", "block", "blockCursor", "characterLimit", "code", "codeHighlight", "atrule", "attr", "boolean", "builtin", "cdata", "char", "class", "comment", "constant", "deleted", "doctype", "entity", "function", "important", "inserted", "keyword", "namespace", "number", "operator", "prolog", "property", "punctuation", "regex", "selector", "string", "symbol", "tag", "url", "variable", "embedBlock", "base", "focus", "hashtag", "heading", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "indent", "inlineImage", "link", "list", "checklist", "listitem", "listitemChecked", "listitemUnchecked", "nested", "olDepth", "ul", "ltr", "mark", "markOverlap", "paragraph", "quote", "relationship", "rtl", "table", "tableAddColumns", "tableAddRows", "tableCell", "tableCellActionButton", "tableCellActionButtonContainer", "tableCellEditing", "tableCellHeader", "tableCellPrimarySelected", "tableCellResizer", "tableCellSelected", "tableCellSortedIndicator", "tableResizeRuler", "tableSelected", "text", "bold", "italic", "strikethrough", "subscript", "superscript", "underline", "underlineStrikethrough", "upload", "defaultEditorLexicalConfig", "namespace", "theme", "LexicalEditorTheme", "loadClientFeatures", "clientFunctions", "schemaPath", "unSanitizedEditorConfig", "featureProvider", "features", "clientFeatureProps", "featureKey", "order", "undefined", "Error", "sort", "a", "b", "featureProviderMap", "Map", "map", "f", "resolvedFeatures", "loaded", "relevantClientFunctions", "Object", "entries", "forEach", "key", "plugin", "startsWith", "featureComponentKey", "split", "feature", "set", "sanitizeClientFeatures", "features", "sanitized", "enabledFeatures", "hooks", "load", "save", "markdownTransformers", "nodes", "plugins", "providers", "slashMenu", "dynamicGroups", "groups", "toolbarFixed", "toolbarInline", "size", "forEach", "feature", "length", "concat", "plugin", "i", "push", "Component", "clientProps", "sanitizedClientFeatureProps", "key", "position", "group", "foundGroup", "find", "sanitizedGroup", "filter", "items", "optionGroup", "sort", "a", "b", "order", "sanitizeClientEditorConfig", "lexical", "resolvedClientFeatureMap", "admin", "resolvedFeatureMap", "RichTextCell", "props", "admin", "field", "_schemaPath", "richTextComponentMap", "lexicalEditorConfig", "preview", "setPreview", "React", "useState", "cellData", "useTableCell", "clientFunctions", "useClientFunctions", "hasLoadedFeatures", "setHasLoadedFeatures", "featureProviders", "setFeatureProviders", "finalSanitizedEditorConfig", "setFinalSanitizedEditorConfig", "featureProviderComponents", "get", "sort", "a", "b", "order", "featureProvidersAndComponentsToLoad", "featureProvider", "featureComponentKeys", "Array", "from", "keys", "filter", "key", "startsWith", "length", "useEffect", "featureProvidersLocal", "featureProvidersAndComponentsLoaded", "Object", "entries", "forEach", "plugin", "includes", "push", "resolvedClientFeatures", "loadClientFeatures", "schemaPath", "unSanitizedEditorConfig", "features", "lexical", "sanitizeClientEditorConfig", "defaultEditorLexicalConfig", "dataToUse", "hooks", "load", "hook", "incomingEditorState", "isArray", "headlessEditor", "createHeadlessEditor", "namespace", "nodes", "getEnabledNodes", "editorConfig", "theme", "setEditorState", "parseEditorState", "textContent", "getEditorState", "read", "$getRoot", "getTextContent", "_jsx", "Fragment", "map", "featureComponents", "_jsxs", "FeatureComponent", "ClientFeature", "$isElementNode", "$isRangeSelection", "FORMAT_ELEMENT_COMMAND", "AlignCenterIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "AlignJustifyIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "AlignLeftIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "AlignRightIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "useAddClientFunction", "useFieldProps", "useTableCell", "useLexicalFeature", "featureKey", "feature", "schemaPath", "schemaPathFromFieldProps", "cellProps", "field", "_schemaPath", "createClientComponent", "clientFeature", "props", "useLexicalFeature", "featureKey", "createClientFeature", "feature", "createClientComponent", "props", "featureProviderClient", "clientFeatureProps", "clientFunctions", "featureProviderMap", "resolvedFeatures", "unSanitizedEditorConfig", "toReturn", "sanitizedClientFeatureProps", "newFeature", "toolbarAlignGroupWithItems", "items", "type", "ChildComponent", "AlignLeftIcon", "key", "order", "toolbarGroups", "toolbarAlignGroupWithItems", "ChildComponent", "AlignLeftIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isElementNode", "getFormatType", "parent", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "FORMAT_ELEMENT_COMMAND", "order", "AlignCenterIcon", "AlignRightIcon", "AlignJustifyIcon", "AlignFeatureClient", "createClientFeature", "toolbarFixed", "groups", "toolbarInline", "$createQuoteNode", "$isQuoteNode", "QuoteNode", "$setBlocksType", "$getSelection", "$isRangeSelection", "BlockquoteIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "TextIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarTextDropdownGroupWithItems", "items", "type", "ChildComponent", "TextIcon", "key", "order", "$createQuoteNode", "$isQuoteNode", "QuoteNode", "$createLineBreakNode", "MarkdownTransformer", "type", "dependencies", "export", "node", "exportChildren", "lines", "split", "output", "line", "push", "join", "regExp", "replace", "parentNode", "children", "_match", "isImport", "previousNode", "getPreviousSibling", "splice", "getChildrenSize", "select", "remove", "append", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "BlockquoteIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isQuoteNode", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "update", "$getSelection", "$setBlocksType", "$createQuoteNode", "order", "BlockquoteFeatureClient", "createClientFeature", "markdownTransformers", "MarkdownTransformer", "nodes", "QuoteNode", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "getTranslation", "BlockIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "rx", "stroke", "x", "y", "InlineBlocksIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "clipRule", "d", "fillRule", "ObjectID", "React", "DecoratorBlockNode", "ObjectID", "deepCopyObjectSimple", "ServerBlockNode", "__fields", "constructor", "fields", "format", "key", "clone", "node", "__format", "__key", "getType", "importDOM", "importJSON", "serializedNode", "version", "data", "$createServerBlockNode", "setFormat", "isInline", "decorate", "editor", "config", "exportDOM", "element", "document", "createElement", "text", "createTextNode", "getTextContent", "append", "exportJSON", "type", "getFields", "getLatest", "setFields", "fieldsCopy", "writable", "getWritable", "id", "default", "toHexString", "BlockComponent", "React", "lazy", "then", "module", "default", "BlockNode", "ServerBlockNode", "clone", "node", "getType", "importJSON", "serializedNode", "version", "fields", "data", "$createBlockNode", "setFormat", "format", "decorate", "editor", "config", "_jsx", "formData", "getFields", "nodeKey", "getKey", "exportJSON", "id", "ObjectID", "toHexString", "$isBlockNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "$wrapNodeInElement", "mergeRegister", "getTranslation", "formatDrawerSlug", "useEditDepth", "useFieldProps", "useModal", "useTranslation", "$createParagraphNode", "$getNodeByKey", "$getPreviousSelection", "$getSelection", "$insertNodes", "$isParagraphNode", "$isRangeSelection", "$isRootOrShadowRoot", "COMMAND_PRIORITY_EDITOR", "useEffect", "useState", "BlocksPlugin", "$", "_c", "editor", "useLexicalComposerContext", "closeModal", "toggleModal", "useModal", "blockFields", "setBlockFields", "useState", "blockType", "setBlockType", "targetNodeKey", "setTargetNodeKey", "i18n", "t", "useTranslation", "schemaPath", "useFieldProps", "uuid", "useEditorConfigContext", "editDepth", "useEditDepth", "t0", "t1", "formatDrawerSlug", "slug", "depth", "drawerSlug", "field", "t2", "richTextComponentMap", "t3", "t4", "hasNodes", "BlockNode", "Error", "mergeRegister", "registerCommand", "INSERT_BLOCK_COMMAND", "payload", "update", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "blockNode", "$createBlockNode", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "$isParagraphNode", "getTextContentSize", "getParent", "getChildren", "filter", "node", "length", "remove", "COMMAND_PRIORITY_EDITOR", "INSERT_INLINE_BLOCK_COMMAND", "fields", "node_0", "$getNodeByKey", "setFields", "inlineBlockNode", "$createInlineBlockNode", "$insertNodes", "$isRootOrShadowRoot", "getParentOrThrow", "$wrapNodeInElement", "$createParagraphNode", "selectEnd", "OPEN_INLINE_BLOCK_DRAWER_COMMAND", "t5", "fields_0", "nodeKey", "rangeSelection", "getEditorState", "read", "selection_0", "useEffect", "schemaFieldsPath", "componentMapRenderedBlockPath", "t6", "Symbol", "for", "bb0", "blocksField", "has", "get", "clientBlock", "blocks", "find", "block", "blockDisplayName", "labels", "singular", "getTranslation", "t7", "_fields", "data", "dispatchCommand", "_jsx", "FieldsDrawer", "drawerTitle", "id", "label", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPathSuffix", "BlocksFeatureClient", "createClientFeature", "props", "nodes", "BlockNode", "InlineBlockNode", "plugins", "Component", "BlocksPlugin", "position", "sanitizedClientFeatureProps", "slashMenu", "groups", "clientBlockSlugs", "length", "items", "map", "blockSlug", "Icon", "BlockIcon", "key", "keywords", "label", "i18n", "richTextComponentMap", "clientBlock", "get", "blocks", "find", "_block", "slug", "labels", "singular", "getTranslation", "onSelect", "editor", "dispatchCommand", "INSERT_BLOCK_COMMAND", "id", "blockName", "blockType", "t", "clientInlineBlockSlugs", "inlineBlockSlug", "InlineBlocksIcon", "OPEN_INLINE_BLOCK_DRAWER_COMMAND", "fields", "filter", "Boolean", "toolbarFixed", "type", "ChildComponent", "index", "isActive", "undefined", "order", "useLexicalComposerContext", "$createParagraphNode", "$createTextNode", "$getRoot", "React", "useCallback", "useEffect", "useLayoutEffect", "useRef", "useState", "CAN_USE_DOM", "window", "document", "createElement", "documentMode", "CAN_USE_DOM", "document", "IS_APPLE", "test", "navigator", "platform", "IS_FIREFOX", "userAgent", "CAN_USE_BEFORE_INPUT", "window", "InputEvent", "IS_SAFARI", "IS_IOS", "MSStream", "IS_ANDROID", "IS_WINDOWS", "IS_CHROME", "IS_APPLE_WEBKIT", "copy", "text", "textArea", "document", "createElement", "value", "style", "position", "opacity", "body", "appendChild", "focus", "select", "result", "execCommand", "console", "log", "error", "removeChild", "download", "filename", "a", "setAttribute", "encodeURIComponent", "display", "click", "formatStep", "step", "formattedStep", "formatOneStep", "name", "x", "y", "anchorPath", "toString", "anchorOffset", "focusPath", "focusOffset", "count", "join", "isSelectAll", "event", "key", "toLowerCase", "IS_APPLE", "metaKey", "ctrlKey", "sanitizeSelection", "selection", "anchorNode", "focusNode", "getPathFromNodeToEditor", "node", "rootElement", "currentNode", "path", "unshift", "Array", "from", "parentNode", "childNodes", "indexOf", "keyPresses", "Set", "useTestRecorder", "editor", "steps", "setSteps", "useState", "isRecording", "setIsRecording", "setCurrentInnerHTML", "templatedTest", "setTemplatedTest", "previousSelectionRef", "useRef", "skipNextSelectionChangeRef", "preRef", "getCurrentEditor", "useCallback", "generateTestContent", "getRootElement", "browserSelection", "window", "getSelection", "contains", "map", "pushStep", "currentSteps", "currentIndex", "length", "lastStep", "slice", "useLayoutEffect", "onKeyDown", "has", "onKeyUp", "registerRootListener", "prevRootElement", "removeEventListener", "addEventListener", "current", "scrollTo", "scrollHeight", "useEffect", "testContent", "registerUpdateListener", "dirtyElements", "dirtyLeaves", "editorState", "currentSelection", "_selection", "previousSelection", "skipNextSelectionChange", "size", "innerHTML", "toggleEditorSelection", "currentEditor", "update", "root", "$getRoot", "clear", "$createTextNode", "append", "$createParagraphNode", "currentIsRecording", "onSnapshotClick", "onCopyClick", "onDownloadClick", "_jsx", "className", "id", "onClick", "e", "preventDefault", "title", "type", "_jsxs", "ref", "TestRecorderPlugin", "useLexicalComposerContext", "testRecorderButton", "testRecorderOutput", "Fragment", "TestRecorderFeatureClient", "createClientFeature", "plugins", "Component", "TestRecorderPlugin", "position", "c", "_c", "useLexicalComposerContext", "TreeView", "TreeViewPlugin", "$", "editor", "t0", "_jsx", "timeTravelButtonClassName", "timeTravelPanelButtonClassName", "timeTravelPanelClassName", "timeTravelPanelSliderClassName", "treeTypeButtonClassName", "viewClassName", "TreeViewFeatureClient", "createClientFeature", "plugins", "Component", "TreeViewPlugin", "position", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "BoldIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarFormatGroupWithItems", "items", "type", "key", "order", "BOLD_ITALIC_STAR", "type", "format", "tag", "BOLD_ITALIC_UNDERSCORE", "intraword", "BOLD_STAR", "BOLD_UNDERSCORE", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "BoldIcon", "isActive", "selection", "$isRangeSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "BoldFeatureClient", "createClientFeature", "featureProviderMap", "markdownTransformers", "BOLD_STAR", "BOLD_UNDERSCORE", "get", "push", "BOLD_ITALIC_UNDERSCORE", "BOLD_ITALIC_STAR", "toolbarFixed", "groups", "toolbarInline", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "CodeIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "INLINE_CODE", "type", "format", "tag", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "CodeIcon", "isActive", "selection", "$isRangeSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "InlineCodeFeatureClient", "createClientFeature", "markdownTransformers", "INLINE_CODE", "toolbarFixed", "groups", "toolbarInline", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "ItalicIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "ITALIC_STAR", "type", "format", "tag", "ITALIC_UNDERSCORE", "intraword", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "ItalicIcon", "isActive", "selection", "$isRangeSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "ItalicFeatureClient", "createClientFeature", "markdownTransformers", "ITALIC_STAR", "ITALIC_UNDERSCORE", "toolbarFixed", "groups", "toolbarInline", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "StrikethroughIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "STRIKETHROUGH", "type", "format", "tag", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "StrikethroughIcon", "isActive", "selection", "$isRangeSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "StrikethroughFeatureClient", "createClientFeature", "markdownTransformers", "STRIKETHROUGH", "toolbarFixed", "groups", "toolbarInline", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "SubscriptIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "SubscriptIcon", "isActive", "selection", "$isRangeSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "SubscriptFeatureClient", "createClientFeature", "toolbarFixed", "groups", "toolbarInline", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "SuperscriptIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "SuperscriptIcon", "isActive", "selection", "$isRangeSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "SuperscriptFeatureClient", "createClientFeature", "toolbarFixed", "groups", "toolbarInline", "$isRangeSelection", "FORMAT_TEXT_COMMAND", "UnderlineIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "toolbarGroups", "toolbarFormatGroupWithItems", "ChildComponent", "UnderlineIcon", "isActive", "selection", "$isRangeSelection", "hasFormat", "key", "onSelect", "editor", "dispatchCommand", "FORMAT_TEXT_COMMAND", "order", "UnderlineFeatureClient", "createClientFeature", "toolbarFixed", "groups", "toolbarInline", "$createHeadingNode", "$isHeadingNode", "HeadingNode", "$setBlocksType", "$getSelection", "$isRangeSelection", "H1Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H2Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H3Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H4Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H5Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "H6Icon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "d", "$createHeadingNode", "$isHeadingNode", "HeadingNode", "createBlockNode", "createNode", "parentNode", "children", "match", "node", "append", "replace", "select", "MarkdownTransformer", "enabledHeadingSizes", "pattern", "map", "tag", "Number", "slice", "size", "join", "regExp", "RegExp", "type", "dependencies", "HeadingNode", "export", "node", "exportChildren", "$isHeadingNode", "level", "getTag", "repeat", "replace", "createBlockNode", "match", "length", "$createHeadingNode", "$setHeading", "headingSize", "selection", "$getSelection", "$setBlocksType", "$createHeadingNode", "iconImports", "h1", "H1Icon", "h2", "H2Icon", "h3", "H3Icon", "h4", "H4Icon", "h5", "H5Icon", "h6", "H6Icon", "HeadingFeatureClient", "createClientFeature", "props", "enabledHeadingSizes", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "map", "i", "ChildComponent", "isActive", "$isRangeSelection", "node", "getNodes", "$isHeadingNode", "getTag", "parent", "getParent", "key", "label", "i18n", "t", "headingLevel", "charAt", "onSelect", "editor", "update", "order", "markdownTransformers", "MarkdownTransformer", "nodes", "HeadingNode", "sanitizedClientFeatureProps", "slashMenu", "groups", "length", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$isNodeSelection", "HorizontalRuleIcon", "_jsx", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "x", "y", "AddIcon", "_jsxs", "fill", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "toolbarAddDropdownGroupWithItems", "items", "type", "ChildComponent", "AddIcon", "key", "order", "MarkdownTransformer", "type", "dependencies", "HorizontalRuleNode", "export", "node", "exportChildren", "$isHorizontalRuleNode", "regExp", "replace", "parentNode", "$createHorizontalRuleNode", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "$getSelection", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "useEffect", "HorizontalRulePlugin", "$", "_c", "editor", "useLexicalComposerContext", "t0", "t1", "registerCommand", "INSERT_HORIZONTAL_RULE_COMMAND", "type", "selection", "$getSelection", "$isRangeSelection", "focus", "getNode", "horizontalRuleNode", "$createHorizontalRuleNode", "$insertNodeToNearestRoot", "COMMAND_PRIORITY_EDITOR", "useEffect", "HorizontalRuleFeatureClient", "createClientFeature", "markdownTransformers", "MarkdownTransformer", "nodes", "HorizontalRuleNode", "plugins", "Component", "HorizontalRulePlugin", "position", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "HorizontalRuleIcon", "key", "keywords", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_HORIZONTAL_RULE_COMMAND", "undefined", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "isActive", "selection", "$isNodeSelection", "getNodes", "length", "firstNode", "$isHorizontalRuleNode", "INDENT_CONTENT_COMMAND", "OUTDENT_CONTENT_COMMAND", "IndentDecreaseIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "IndentIncreaseIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "toolbarIndentGroupWithItems", "items", "type", "key", "order", "toolbarGroups", "toolbarIndentGroupWithItems", "ChildComponent", "IndentDecreaseIcon", "isActive", "isEnabled", "selection", "getNodes", "length", "node", "__indent", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "OUTDENT_CONTENT_COMMAND", "undefined", "order", "IndentIncreaseIcon", "INDENT_CONTENT_COMMAND", "IndentFeatureClient", "createClientFeature", "toolbarFixed", "groups", "toolbarInline", "$findMatchingParent", "$getSelection", "$isRangeSelection", "LinkIcon", "_jsx", "className", "fill", "height", "viewBox", "width", "xmlns", "d", "stroke", "strokeLinecap", "strokeLinejoin", "$isAtNodeEnd", "getSelectedNode", "selection", "anchor", "focus", "anchorNode", "getNode", "focusNode", "isBackward", "toolbarFeatureButtonsGroupWithItems", "items", "type", "key", "order", "$createTextNode", "$isTextNode", "addClassNamesToElement", "isHTMLAnchorElement", "ObjectID", "$applyNodeReplacement", "$createTextNode", "$getSelection", "$isElementNode", "$isRangeSelection", "ElementNode", "createCommand", "SUPPORTED_URL_PROTOCOLS", "Set", "LinkNode", "__fields", "__id", "constructor", "id", "fields", "doc", "linkType", "newTab", "url", "undefined", "key", "clone", "node", "__key", "getType", "importDOM", "a", "conversion", "$convertAnchorElement", "priority", "importJSON", "serializedNode", "version", "value", "default", "toHexString", "$createLinkNode", "setFormat", "format", "setIndent", "indent", "setDirection", "direction", "canBeEmpty", "canInsertTextAfter", "canInsertTextBefore", "createDOM", "config", "element", "document", "createElement", "href", "sanitizeUrl", "target", "rel", "manageRel", "theme", "link", "exportJSON", "returnObject", "type", "getFields", "getID", "extractWithChild", "child", "selection", "destination", "anchorNode", "anchor", "getNode", "focusNode", "focus", "isParentOf", "getTextContent", "length", "getLatest", "insertNewAfter", "restoreSelection", "getParentOrThrow", "linkNode", "append", "isInline", "parsedUrl", "URL", "has", "protocol", "setFields", "writable", "getWritable", "updateDOM", "prevNode", "removeAttribute", "domNode", "content", "textContent", "getAttribute", "$isLinkNode", "TOGGLE_LINK_COMMAND", "$toggleLink", "payload", "selectedNodes", "nodes", "extract", "forEach", "parent", "getParent", "children", "getChildren", "i", "insertBefore", "remove", "firstNode", "$getLinkAncestor", "text", "getLastChild", "prevParent", "is", "getPreviousSibling", "insertAfter", "$getAncestor", "ancestor", "predicate", "input", "action", "result", "mutableInput", "includes", "re", "RegExp", "replace", "trim", "LinkMarkdownTransformer", "type", "dependencies", "LinkNode", "export", "_node", "exportChildren", "exportFormat", "$isLinkNode", "node", "url", "getFields", "linkContent", "getTextContent", "firstChild", "getFirstChild", "getChildrenSize", "$isTextNode", "importRegExp", "regExp", "replace", "textNode", "match", "linkText", "linkUrl", "linkNode", "$createLinkNode", "fields", "doc", "linkType", "newTab", "linkTextNode", "$createTextNode", "setFormat", "getFormat", "append", "trigger", "$applyNodeReplacement", "$isElementNode", "AutoLinkNode", "LinkNode", "clone", "node", "id", "undefined", "fields", "__fields", "key", "__key", "getType", "importDOM", "importJSON", "serializedNode", "version", "doc", "value", "$createAutoLinkNode", "setFormat", "format", "setIndent", "indent", "setDirection", "direction", "exportJSON", "serialized", "type", "children", "insertNewAfter", "selection", "restoreSelection", "element", "getParentOrThrow", "$isElementNode", "linkNode", "append", "$applyNodeReplacement", "$isAutoLinkNode", "c", "_c", "useLexicalComposerContext", "mergeRegister", "$createTextNode", "$getSelection", "$isElementNode", "$isLineBreakNode", "$isNodeSelection", "$isRangeSelection", "$isTextNode", "TextNode", "TextNodeValue", "useEffect", "createLinkMatcherWithRegExp", "regExp", "urlTransformer", "text", "match", "exec", "index", "length", "url", "findFirstMatch", "matchers", "i", "PUNCTUATION_OR_SPACE", "isSeparator", "char", "test", "endsWithSeparator", "textContent", "startsWithSeparator", "startsWithTLD", "isEmail", "isPreviousNodeValid", "node", "previousNode", "getPreviousSibling", "$isElementNode", "getLastDescendant", "$isLineBreakNode", "$isTextNode", "getTextContent", "isNextNodeValid", "nextNode", "getNextSibling", "getFirstDescendant", "isContentAroundIsValid", "matchStart", "matchEnd", "nodes", "extractMatchingNodes", "startIndex", "endIndex", "unmodifiedBeforeNodes", "matchingNodes", "unmodifiedAfterNodes", "matchingOffset", "currentOffset", "currentNodes", "currentNode", "currentNodeLength", "currentNodeStart", "push", "shift", "$createAutoLinkNode_", "fields", "linkType", "linkNode", "$createAutoLinkNode", "remainingTextNode", "linkTextNode", "splitText", "textNode", "$createTextNode", "setFormat", "getFormat", "setDetail", "getDetail", "setStyle", "getStyle", "append", "replace", "firstTextNode", "offset", "firstLinkTextNode", "linkNodes", "currentNodeEnd", "endNode", "selection", "$getSelection", "selectedTextNode", "getNodes", "find", "undefined", "$isRangeSelection", "select", "anchor", "focus", "$isNodeSelection", "$handleLinkCreation", "onChange", "initialText", "map", "join", "invalidMatchEnd", "matchLength", "actualMatchStart", "actualMatchEnd", "substring", "handleLinkEdit", "children", "getChildren", "childrenLength", "child", "isSimpleText", "replaceWithChildren", "getFields", "flds", "setFields", "handleBadNeighbors", "previousSibling", "nextSibling", "$isAutoLinkNode", "isEmailURI", "startsWith", "j", "insertAfter", "remove", "getLatest", "getTextNodesToMatch", "textNodesToMatch", "useAutoLink", "editor", "$", "_c", "t0", "t1", "hasNodes", "AutoLinkNode", "Error", "onChangeWrapped", "prevUrl", "mergeRegister", "registerNodeTransform", "TextNodeValue", "parent", "getParentOrThrow", "previous", "$isLinkNode", "useEffect", "URL_REGEX", "EMAIL_REGEX", "MATCHERS", "AutoLinkPlugin", "useLexicalComposerContext", "ClickableLinkPlugin", "LexicalClickableLinkPlugin", "_jsx", "createCommand", "TOGGLE_LINK_WITH_MODAL_COMMAND", "createPortal", "useLexicalComposerContext", "$findMatchingParent", "mergeRegister", "getTranslation", "CloseMenuIcon", "EditIcon", "formatDrawerSlug", "useConfig", "useEditDepth", "useModal", "useTranslation", "$getSelection", "$isLineBreakNode", "$isRangeSelection", "COMMAND_PRIORITY_HIGH", "COMMAND_PRIORITY_LOW", "KEY_ESCAPE_COMMAND", "SELECTION_CHANGE_COMMAND", "React", "useCallback", "useEffect", "useRef", "useState", "setFloatingElemPositionForLinkEditor", "targetRect", "floatingElem", "anchorElem", "verticalGap", "VERTICAL_GAP", "horizontalOffset", "HORIZONTAL_OFFSET", "scrollerElem", "parentElement", "style", "opacity", "transform", "floatingElemRect", "getBoundingClientRect", "anchorElementRect", "editorScrollerRect", "top", "left", "height", "width", "right", "LinkEditor", "anchorElem", "editor", "useLexicalComposerContext", "editorRef", "useRef", "linkUrl", "setLinkUrl", "useState", "linkLabel", "setLinkLabel", "uuid", "useEditorConfigContext", "config", "useConfig", "i18n", "t", "useTranslation", "stateData", "setStateData", "closeModal", "toggleModal", "useModal", "editDepth", "useEditDepth", "isLink", "setIsLink", "selectedNodes", "setSelectedNodes", "isAutoLink", "setIsAutoLink", "drawerSlug", "formatDrawerSlug", "slug", "depth", "setNotLink", "useCallback", "current", "style", "opacity", "transform", "$updateLinkEditor", "selection", "$getSelection", "selectedNodeDomRect", "$isRangeSelection", "focusNode", "getSelectedNode", "getElementByKey", "getKey", "getBoundingClientRect", "focusLinkParent", "$findMatchingParent", "$isLinkNode", "badNode", "getNodes", "filter", "node", "$isLineBreakNode", "find", "linkNode", "is", "data", "doc", "undefined", "linkType", "newTab", "url", "getFields", "id", "getID", "text", "getTextContent", "relationTo", "value", "relatedField", "collections", "coll", "label", "String", "getTranslation", "labels", "singular", "replace", "$isAutoLinkNode", "editorElem", "nativeSelection", "window", "getSelection", "activeElement", "document", "rootElement", "getRootElement", "contains", "anchorNode", "getRangeAt", "y", "setFloatingElemPositionForLinkEditor", "className", "useEffect", "mergeRegister", "registerCommand", "TOGGLE_LINK_WITH_MODAL_COMMAND", "payload", "dispatchCommand", "TOGGLE_LINK_COMMAND", "COMMAND_PRIORITY_LOW", "scrollerElem", "parentElement", "update", "getEditorState", "read", "addEventListener", "removeEventListener", "registerUpdateListener", "editorState", "SELECTION_CHANGE_COMMAND", "KEY_ESCAPE_COMMAND", "COMMAND_PRIORITY_HIGH", "_jsxs", "React", "Fragment", "_jsx", "ref", "length", "href", "rel", "target", "isEditable", "onClick", "onMouseDown", "event", "preventDefault", "tabIndex", "type", "EditIcon", "CloseMenuIcon", "FieldsDrawer", "drawerTitle", "featureKey", "handleDrawerSubmit", "fields", "newLinkPayload", "bareLinkFields", "linkParent", "getParent", "$createLinkNode", "schemaPathSuffix", "FloatingLinkEditorPlugin", "props", "anchorElem", "document", "body", "createPortal", "_jsx", "LinkEditor", "c", "_c", "useLexicalComposerContext", "mergeRegister", "$getSelection", "$isElementNode", "$isRangeSelection", "COMMAND_PRIORITY_LOW", "PASTE_COMMAND", "useEffect", "absoluteRegExp", "relativeOrAnchorRegExp", "validateUrl", "url", "test", "URL", "LinkPlugin", "$", "_c", "editor", "useLexicalComposerContext", "t0", "t1", "hasNodes", "LinkNode", "Error", "mergeRegister", "registerCommand", "TOGGLE_LINK_COMMAND", "payload", "$toggleLink", "COMMAND_PRIORITY_LOW", "PASTE_COMMAND", "event", "selection", "$getSelection", "$isRangeSelection", "isCollapsed", "ClipboardEvent", "clipboardData", "clipboardText", "getData", "validateUrl", "getNodes", "some", "node", "$isElementNode", "linkFields", "doc", "linkType", "newTab", "url", "dispatchCommand", "fields", "text", "preventDefault", "useEffect", "toolbarGroups", "toolbarFeatureButtonsGroupWithItems", "ChildComponent", "LinkIcon", "isActive", "selection", "$isRangeSelection", "selectedNode", "getSelectedNode", "$findMatchingParent", "$isLinkNode", "isEnabled", "$getSelection", "getTextContent", "length", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "TOGGLE_LINK_COMMAND", "selectedText", "selectedNodes", "getEditorState", "read", "getNodes", "linkFields", "doc", "linkType", "newTab", "url", "TOGGLE_LINK_WITH_MODAL_COMMAND", "fields", "text", "order", "LinkFeatureClient", "createClientFeature", "markdownTransformers", "LinkMarkdownTransformer", "nodes", "LinkNode", "AutoLinkNode", "plugins", "Component", "LinkPlugin", "position", "AutoLinkPlugin", "ClickableLinkPlugin", "FloatingLinkEditorPlugin", "toolbarFixed", "groups", "toolbarInline", "$isListNode", "INSERT_CHECK_LIST_COMMAND", "ListItemNode", "ListNode", "$isRangeSelection", "ChecklistIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "rx", "stroke", "x", "y", "d", "strokeWidth", "ListPlugin", "LexicalListPlugin", "_jsx", "slashMenuListGroupWithItems", "items", "key", "label", "i18n", "t", "$isListNode", "ListItemNode", "ListNode", "$createListItemNode", "$createListNode", "$isListItemNode", "$isListNode", "LIST_INDENT_SIZE", "listReplace", "listType", "parentNode", "children", "match", "previousNode", "getPreviousSibling", "nextNode", "getNextSibling", "listItem", "undefined", "getListType", "firstChild", "getFirstChild", "insertBefore", "append", "remove", "list", "Number", "replace", "select", "indent", "Math", "floor", "length", "setIndent", "listExport", "listNode", "exportChildren", "depth", "output", "getChildren", "index", "listItemNode", "getChildrenSize", "push", "repeat", "prefix", "getStart", "getChecked", "join", "CHECK_LIST", "type", "dependencies", "ListNode", "ListItemNode", "export", "node", "exportChildren", "$isListNode", "listExport", "regExp", "replace", "listReplace", "CheckListPlugin", "LexicalCheckListPlugin", "_jsx", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "ChecklistIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isListNode", "getListType", "parent", "getParent", "parentParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_CHECK_LIST_COMMAND", "undefined", "order", "ChecklistFeatureClient", "createClientFeature", "featureProviderMap", "plugins", "Component", "LexicalCheckListPlugin", "position", "has", "push", "LexicalListPlugin", "markdownTransformers", "CHECK_LIST", "nodes", "ListNode", "ListItemNode", "slashMenu", "groups", "slashMenuListGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$isListNode", "INSERT_ORDERED_LIST_COMMAND", "ListItemNode", "ListNode", "$isRangeSelection", "OrderedListIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeWidth", "$isListNode", "ListItemNode", "ListNode", "ORDERED_LIST", "type", "dependencies", "ListNode", "ListItemNode", "export", "node", "exportChildren", "$isListNode", "listExport", "regExp", "replace", "listReplace", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "OrderedListIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isListNode", "getListType", "parent", "getParent", "parentParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_ORDERED_LIST_COMMAND", "undefined", "order", "OrderedListFeatureClient", "createClientFeature", "featureProviderMap", "markdownTransformers", "ORDERED_LIST", "nodes", "has", "ListNode", "ListItemNode", "plugins", "Component", "LexicalListPlugin", "position", "slashMenu", "groups", "slashMenuListGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$isListNode", "INSERT_UNORDERED_LIST_COMMAND", "ListItemNode", "ListNode", "$isRangeSelection", "UnorderedListIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "cx", "cy", "r", "stroke", "strokeWidth", "d", "$isListNode", "ListItemNode", "ListNode", "UNORDERED_LIST", "type", "dependencies", "ListNode", "ListItemNode", "export", "node", "exportChildren", "$isListNode", "listExport", "regExp", "replace", "listReplace", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "UnorderedListIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isListNode", "getListType", "parent", "getParent", "parentParent", "key", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_UNORDERED_LIST_COMMAND", "undefined", "order", "UnorderedListFeatureClient", "createClientFeature", "markdownTransformers", "UNORDERED_LIST", "nodes", "ListNode", "ListItemNode", "plugins", "Component", "LexicalListPlugin", "position", "slashMenu", "groups", "slashMenuListGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "addClassNamesToElement", "DecoratorNode", "React", "Component", "lazy", "then", "module", "default", "UnknownConvertedNodeComponent", "UnknownConvertedNode", "__data", "constructor", "data", "key", "clone", "node", "__key", "getType", "importJSON", "serializedNode", "$createUnknownConvertedNode", "canInsertTextAfter", "canInsertTextBefore", "createDOM", "config", "element", "document", "createElement", "decorate", "_jsx", "exportJSON", "type", "version", "isInline", "updateDOM", "prevNode", "dom", "LexicalPluginToLexicalFeatureClient", "createClientFeature", "nodes", "UnknownConvertedNode", "addClassNamesToElement", "DecoratorNode", "React", "Component", "lazy", "then", "module", "default", "UnknownConvertedNodeComponent", "UnknownConvertedNode", "__data", "constructor", "data", "key", "clone", "node", "__key", "getType", "importJSON", "serializedNode", "$createUnknownConvertedNode", "canInsertTextAfter", "canInsertTextBefore", "createDOM", "config", "element", "document", "createElement", "decorate", "_jsx", "exportJSON", "type", "version", "isInline", "updateDOM", "prevNode", "dom", "SlateToLexicalFeatureClient", "createClientFeature", "clientFunctions", "nodes", "UnknownConvertedNode", "$setBlocksType", "$createParagraphNode", "$getSelection", "$isParagraphNode", "$isRangeSelection", "toolbarGroups", "toolbarTextDropdownGroupWithItems", "ChildComponent", "TextIcon", "isActive", "selection", "$isRangeSelection", "node", "getNodes", "$isParagraphNode", "getParent", "key", "label", "i18n", "t", "onSelect", "editor", "update", "$getSelection", "$setBlocksType", "$createParagraphNode", "order", "ParagraphFeatureClient", "createClientFeature", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "keywords", "toolbarFixed", "toolbarInline", "$isNodeSelection", "RelationshipIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "clipPath", "d", "stroke", "strokeLinecap", "strokeLinejoin", "id", "transform", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "useConfig", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "useEffect", "c", "_c", "useLexicalComposerContext", "useListDrawer", "$getNodeByKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "useState", "insertRelationship", "editor", "relationTo", "replaceNodeKey", "value", "update", "node", "$getNodeByKey", "replace", "$createRelationshipNode", "dispatchCommand", "INSERT_RELATIONSHIP_COMMAND", "RelationshipDrawerComponent", "t0", "$", "_c", "enabledCollectionSlugs", "useLexicalComposerContext", "t1", "selectedCollectionSlug", "setSelectedCollectionSlug", "useState", "setReplaceNodeKey", "t2", "collectionSlugs", "selectedCollection", "ListDrawer", "ListDrawerToggler", "t3", "useListDrawer", "closeDrawer", "isDrawerOpen", "openDrawer", "t4", "t5", "registerCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "payload", "nodeKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "t6", "t7", "collectionSlug", "docID", "onSelect", "t8", "t9", "_jsx", "RelationshipDrawer", "props", "length", "EnabledRelationshipsCondition", "INSERT_RELATIONSHIP_COMMAND", "createCommand", "RelationshipPlugin", "t0", "$", "_c", "clientProps", "editor", "useLexicalComposerContext", "config", "t1", "useConfig", "collections", "enabledRelations", "enabledCollections", "disabledCollections", "t2", "t3", "t4", "slug", "includes", "filter", "map", "_temp", "hasNodes", "RelationshipNode", "Error", "registerCommand", "payload", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "relationshipNode", "$createRelationshipNode", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "$isParagraphNode", "getTextContentSize", "getParent", "getChildren", "node", "length", "remove", "COMMAND_PRIORITY_EDITOR", "useEffect", "_jsx", "RelationshipDrawer", "enabledCollectionSlugs", "slug_0", "RelationshipFeatureClient", "createClientFeature", "nodes", "RelationshipNode", "plugins", "Component", "RelationshipPlugin", "position", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "RelationshipIcon", "key", "keywords", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "replace", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "isActive", "selection", "$isNodeSelection", "getNodes", "length", "firstNode", "$isRelationshipNode", "c", "_c", "useLexicalComposerContext", "useScrollInfo", "useThrottledEffect", "useTranslation", "React", "useMemo", "mergeRegister", "$getSelection", "useCallback", "useEffect", "useState", "baseClass", "ToolbarButton", "children", "editor", "item", "enabled", "setEnabled", "useState", "active", "setActive", "className", "setClassName", "editorConfigContext", "useEditorConfigContext", "updateStates", "useCallback", "getEditorState", "read", "selection", "$getSelection", "isActive", "isEnabled", "useEffect", "document", "addEventListener", "removeEventListener", "mergeRegister", "registerUpdateListener", "key", "filter", "Boolean", "join", "_jsx", "onClick", "_updateTags", "Set", "focus", "onSelect", "onMouseDown", "e", "preventDefault", "type", "c", "_c", "React", "useEffect", "mergeRegister", "useTranslation", "$getSelection", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "createPortal", "baseClass", "DropDownContext", "createContext", "DropDownItem", "active", "children", "editor", "enabled", "item", "title", "className", "setClassName", "key", "filter", "Boolean", "join", "ref", "dropDownContext", "useContext", "Error", "registerItem", "current", "_jsx", "onClick", "_updateTags", "Set", "focus", "onSelect", "isActive", "onMouseDown", "e", "preventDefault", "type", "DropDownItems", "dropDownRef", "itemsContainerClassNames", "onClose", "items", "setItems", "highlightedItem", "setHighlightedItem", "itemRef", "prev", "handleKeyDown", "event", "includes", "index", "indexOf", "length", "contextValue", "Provider", "value", "onKeyDown", "DropDown", "Icon", "buttonAriaLabel", "buttonClassName", "disabled", "label", "stopCloseOnClickSelf", "buttonRef", "showDropDown", "setShowDropDown", "handleClose", "button", "dropDown", "left", "top", "getBoundingClientRect", "scrollTopOffset", "window", "scrollY", "document", "documentElement", "scrollTop", "style", "offsetHeight", "Math", "min", "innerWidth", "offsetWidth", "handle", "target", "contains", "addEventListener", "removeEventListener", "portal", "body", "_jsxs", "Fragment", "baseClass", "ToolbarItem", "t0", "$", "_c", "active", "anchorElem", "editor", "enabled", "item", "i18n", "useTranslation", "field", "t1", "useEditorConfigContext", "richTextComponentMap", "Component", "t2", "_jsx", "key", "title", "label", "length", "substring", "ChildComponent", "t3", "_jsxs", "DropDownItem", "children", "className", "ToolbarDropdown", "Icon", "classNames", "groupKey", "items", "itemsContainerClassNames", "maxActiveItems", "onActiveChange", "Symbol", "for", "activeItemKeys", "setActiveItemKeys", "React", "useState", "enabledItemKeys", "setEnabledItemKeys", "editorConfigContext", "getEditorState", "read", "selection", "$getSelection", "_activeItemKeys", "_activeItems", "_enabledItemKeys", "isActive", "push", "isEnabled", "activeItems", "updateStates", "t4", "t5", "useEffect", "t6", "t7", "document", "addEventListener", "removeEventListener", "t8", "t9", "mergeRegister", "registerUpdateListener", "t10", "t11", "t12", "t13", "filter", "Boolean", "t14", "join", "t15", "t16", "t17", "map", "item_0", "includes", "DropDown", "buttonAriaLabel", "buttonClassName", "ButtonGroupItem", "anchorElem", "editor", "item", "Component", "_jsx", "key", "ToolbarButton", "ChildComponent", "ToolbarGroupComponent", "t0", "$", "_c", "editorConfig", "group", "index", "i18n", "useTranslation", "field", "t1", "useEditorConfigContext", "richTextComponentMap", "dropdownLabel", "setDropdownLabel", "useState", "DropdownIcon", "setDropdownIcon", "t2", "t3", "type", "items", "length", "useEffect", "t4", "t5", "activeItems", "label", "substring", "onActiveChange", "t6", "ToolbarDropdown", "Icon", "groupKey", "itemsContainerClassNames", "maxActiveItems", "t7", "map", "item_0", "t8", "features", "toolbarFixed", "_jsxs", "className", "children", "groups", "FixedToolbar", "clientProps", "parentWithFixedToolbar", "currentToolbarRef", "useRef", "y", "useScrollInfo", "parentToolbarElem", "useMemo", "disableIfParentHasFixedToolbar", "sibling", "editorContainerRef", "current", "previousElementSibling", "classList", "contains", "useThrottledEffect", "currentToolbarElem", "currentRect", "getBoundingClientRect", "parentRect", "bottom", "top", "onFocus", "event", "stopPropagation", "ref", "isEditable", "Fragment", "i", "getParentEditorWithFixedToolbar", "editorConfigContext", "parentEditor", "resolvedFeatureMap", "has", "FixedToolbarPlugin", "currentEditor", "useLexicalComposerContext", "currentEditorConfig", "applyToFocusedEditor", "focusedEditor", "FixedToolbarFeatureClient", "createClientFeature", "plugins", "Component", "FixedToolbarPlugin", "position", "c", "_c", "useLexicalComposerContext", "mergeRegister", "$getSelection", "$isRangeSelection", "$isTextNode", "COMMAND_PRIORITY_LOW", "SELECTION_CHANGE_COMMAND", "useCallback", "useEffect", "useRef", "useState", "React", "createPortal", "getDOMRangeRect", "nativeSelection", "rootElement", "domRange", "getRangeAt", "rect", "anchorNode", "inner", "firstElementChild", "getBoundingClientRect", "setFloatingElemPosition", "args", "alwaysDisplayOnTop", "anchorElem", "anchorFlippedOffset", "floatingElem", "horizontalOffset", "HORIZONTAL_OFFSET", "horizontalPosition", "specialHandlingForCaret", "targetRect", "verticalGap", "VERTICAL_GAP", "scrollerElem", "parentElement", "style", "opacity", "transform", "floatingElemRect", "getBoundingClientRect", "anchorElementRect", "editorScrollerRect", "top", "height", "left", "width", "addedToTop", "right", "bottom", "ButtonGroupItem", "anchorElem", "editor", "item", "Component", "_jsx", "key", "ToolbarButton", "ChildComponent", "ToolbarGroupComponent", "t0", "$", "_c", "group", "index", "editorConfig", "useEditorConfigContext", "DropdownIcon", "setDropdownIcon", "useState", "t1", "t2", "type", "items", "length", "useEffect", "t3", "t4", "activeItems", "onActiveChange", "t5", "ToolbarDropdown", "Icon", "groupKey", "maxActiveItems", "t6", "map", "item_0", "t7", "features", "toolbarInline", "_jsxs", "className", "children", "groups", "InlineToolbar", "floatingToolbarRef", "useRef", "caretRef", "closeFloatingToolbar", "useCallback", "current", "isOpacityZero", "style", "opacity", "isPointerEventsNone", "pointerEvents", "mouseMoveListener", "e", "buttons", "x", "clientX", "y", "clientY", "elementUnderMouse", "document", "elementFromPoint", "contains", "mouseUpListener", "addEventListener", "removeEventListener", "$updateTextFormatFloatingToolbar", "selection", "$getSelection", "nativeSelection", "window", "getSelection", "possibleLinkEditor", "querySelector", "isLinkEditorVisible", "rootElement", "getRootElement", "isCollapsed", "anchorNode", "rangeRect", "getDOMRangeRect", "offsetIfFlipped", "setFloatingElemPosition", "alwaysDisplayOnTop", "floatingElem", "horizontalPosition", "targetRect", "anchorFlippedOffset", "horizontalOffset", "specialHandlingForCaret", "verticalGap", "scrollerElem", "parentElement", "update", "getEditorState", "read", "mergeRegister", "registerUpdateListener", "editorState", "registerCommand", "SELECTION_CHANGE_COMMAND", "COMMAND_PRIORITY_LOW", "ref", "isEditable", "Fragment", "i", "useInlineToolbar", "isText", "setIsText", "updatePopup", "isComposing", "$isRangeSelection", "getTextContent", "nodes", "getNodes", "foundNodeWithText", "node", "$isTextNode", "rawTextContent", "replace", "registerRootListener", "createPortal", "InlineToolbarPlugin", "useLexicalComposerContext", "InlineToolbarFeatureClient", "createClientFeature", "plugins", "Component", "InlineToolbarPlugin", "position", "TableCellNode", "TableNode", "TableRowNode", "TableIcon", "_jsx", "className", "fill", "height", "viewBox", "width", "xmlns", "clipRule", "d", "fillRule", "useLexicalComposerContext", "useLexicalEditable", "$deleteTableColumn__EXPERIMENTAL", "$deleteTableRow__EXPERIMENTAL", "$getNodeTriplet", "$getTableCellNodeFromLexicalNode", "$getTableColumnIndexFromTableCellNode", "$getTableNodeFromLexicalNodeOrThrow", "$getTableRowIndexFromTableCellNode", "$insertTableColumn__EXPERIMENTAL", "$insertTableRow__EXPERIMENTAL", "$isTableCellNode", "$isTableRowNode", "$isTableSelection", "$unmergeCell", "TableCellHeaderStates", "TableCellNode", "getTableObserverFromTableElement", "useScrollInfo", "$createParagraphNode", "$getRoot", "$getSelection", "$isElementNode", "$isParagraphNode", "$isRangeSelection", "$isTextNode", "React", "useCallback", "useEffect", "useRef", "useState", "createPortal", "MeatballsIcon", "_jsxs", "fill", "height", "viewBox", "width", "xmlns", "_jsx", "d", "computeSelectionCount", "selection", "selectionShape", "getShape", "columns", "toX", "fromX", "rows", "toY", "fromY", "isTableSelectionRectangular", "nodes", "getNodes", "currentRows", "currentRow", "expectedColumns", "currentColumns", "i", "length", "node", "$isTableCellNode", "row", "getParentOrThrow", "$isTableRowNode", "Error", "colSpan", "__colSpan", "j", "undefined", "__rowSpan", "every", "v", "$canUnmerge", "$getSelection", "$isRangeSelection", "isCollapsed", "$isTableSelection", "anchor", "is", "focus", "cell", "$getNodeTriplet", "$cellContainsEmptyParagraph", "getChildrenSize", "firstChild", "getFirstChildOrThrow", "$isParagraphNode", "isEmpty", "$selectLastDescendant", "lastDescendant", "getLastDescendant", "$isTextNode", "select", "$isElementNode", "selectEnd", "selectNext", "TableActionMenu", "cellMerge", "contextRef", "onClose", "setIsMenuOpen", "tableCellNode", "_tableCellNode", "editor", "useLexicalComposerContext", "dropDownRef", "useRef", "updateTableCellNode", "useState", "selectionCounts", "updateSelectionCounts", "canMergeCells", "setCanMergeCells", "canUnmergeCell", "setCanUnmergeCell", "y", "useScrollInfo", "useEffect", "registerMutationListener", "TableCellNode", "nodeMutations", "get", "getKey", "getEditorState", "read", "getLatest", "skipInitialization", "currentSelectionCounts", "menuButtonElement", "current", "dropDownElement", "rootElement", "getRootElement", "rootEleRect", "getBoundingClientRect", "menuButtonRect", "style", "opacity", "dropDownElementRect", "margin", "leftPosition", "right", "width", "window", "innerWidth", "position", "left", "pageXOffset", "topPosition", "top", "height", "innerHeight", "bottom", "pageYOffset", "handleClickOutside", "event", "contains", "target", "addEventListener", "removeEventListener", "clearTableSelection", "useCallback", "update", "isAttached", "tableNode", "$getTableNodeFromLexicalNodeOrThrow", "tableElement", "getElementByKey", "tableSelection", "getTableObserverFromTableElement", "clearHighlight", "markDirty", "$getRoot", "selectStart", "mergeTableCellsAtSelection", "firstCell", "setColSpan", "setRowSpan", "getFirstChild", "remove", "append", "getChildren", "$createParagraphNode", "unmergeTableCellsAtSelection", "$unmergeCell", "insertTableRowAtSelection", "shouldInsertAfter", "$insertTableRow__EXPERIMENTAL", "insertTableColumnAtSelection", "$insertTableColumn__EXPERIMENTAL", "deleteTableRowAtSelection", "$deleteTableRow__EXPERIMENTAL", "deleteTableAtSelection", "deleteTableColumnAtSelection", "$deleteTableColumn__EXPERIMENTAL", "toggleTableRowIsHeader", "tableRowIndex", "$getTableRowIndexFromTableCellNode", "tableRows", "tableRow", "forEach", "tableCell", "toggleHeaderStyle", "TableCellHeaderStates", "ROW", "toggleTableColumnIsHeader", "tableColumnIndex", "$getTableColumnIndexFromTableCellNode", "maxRowsLength", "Math", "max", "map", "r", "tableCells", "COLUMN", "mergeCellButton", "_jsx", "className", "onClick", "type", "createPortal", "_jsxs", "e", "stopPropagation", "ref", "Fragment", "__headerState", "document", "body", "TableCellActionMenuContainer", "anchorElem", "menuButtonRef", "menuRootRef", "isMenuOpen", "setTableMenuCellNode", "$moveMenu", "menu", "nativeSelection", "getSelection", "activeElement", "anchorNode", "tableCellNodeFromSelection", "$getTableCellNodeFromLexicalNode", "getNode", "registerUpdateListener", "menuButtonDOM", "tableCellNodeDOM", "tableCellRect", "menuRect", "anchorRect", "transform", "prevTableCellDOM", "MeatballsIcon", "TableActionMenuPlugin", "isEditable", "useLexicalEditable", "useLexicalComposerContext", "useLexicalEditable", "$computeTableMapSkipCellCheck", "$getTableNodeFromLexicalNodeOrThrow", "$getTableRowIndexFromTableCellNode", "$isTableCellNode", "$isTableRowNode", "getDOMCellFromTarget", "calculateZoomLevel", "$getNearestNodeFromDOMNode", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "createPortal", "MIN_ROW_HEIGHT", "MIN_COLUMN_WIDTH", "TableCellResizer", "editor", "targetRef", "useRef", "resizerRef", "tableRectRef", "editorConfig", "useEditorConfigContext", "mouseStartPosRef", "mouseCurrentPos", "updateMouseCurrentPos", "useState", "activeCell", "updateActiveCell", "isMouseDown", "updateIsMouseDown", "draggingDirection", "updateDraggingDirection", "resetState", "useCallback", "current", "isMouseDownOnEvent", "event", "buttons", "useEffect", "onMouseMove", "setTimeout", "target", "x", "clientX", "y", "clientY", "contains", "cell", "getDOMCellFromTarget", "update", "tableCellNode", "$getNearestNodeFromDOMNode", "elem", "Error", "tableNode", "$getTableNodeFromLexicalNodeOrThrow", "tableElement", "getElementByKey", "getKey", "getBoundingClientRect", "onMouseDown", "onMouseUp", "removeRootListener", "registerRootListener", "rootElement", "prevRootElement", "addEventListener", "removeEventListener", "isHeightChanging", "direction", "updateRowHeight", "heightChange", "$isTableCellNode", "tableRowIndex", "$getTableRowIndexFromTableCellNode", "tableRows", "getChildren", "length", "tableRow", "$isTableRowNode", "height", "getHeight", "undefined", "rowCells", "Math", "min", "map", "getCellNodeHeight", "Infinity", "newHeight", "max", "setHeight", "tag", "getCellNodeWidth", "activeEditor", "width", "getWidth", "domCellNode", "computedStyle", "getComputedStyle", "clientWidth", "parseFloat", "paddingLeft", "paddingRight", "clientHeight", "getCellColumnIndex", "tableMap", "row", "column", "updateColumnWidth", "widthChange", "$computeTableMapSkipCellCheck", "columnIndex", "startRow", "newWidth", "setWidth", "mouseUpHandler", "handler", "preventDefault", "stopPropagation", "zoom", "calculateZoomLevel", "document", "toggleResize", "resizerStyles", "left", "top", "zoneWidth", "styles", "bottom", "backgroundColor", "cursor", "window", "pageXOffset", "pageYOffset", "right", "tableRect", "_jsx", "ref", "_jsxs", "Fragment", "className", "lexical", "theme", "tableCellResizer", "style", "TableCellResizerPlugin", "useLexicalComposerContext", "isEditable", "useLexicalEditable", "useMemo", "createPortal", "body", "useLexicalComposerContext", "$getTableColumnIndexFromTableCellNode", "$getTableRowIndexFromTableCellNode", "$insertTableColumn__EXPERIMENTAL", "$insertTableRow__EXPERIMENTAL", "$isTableCellNode", "$isTableNode", "TableNode", "$findMatchingParent", "mergeRegister", "$getNearestNodeFromDOMNode", "useEffect", "useRef", "useState", "createPortal", "useMemo", "useRef", "FUNC_ERROR_TEXT", "nativeMax", "Math", "max", "nativeMin", "min", "debounce", "func", "wait", "options", "lastArgs", "lastThis", "maxWait", "result", "timerId", "lastCallTime", "lastInvokeTime", "leading", "maxing", "trailing", "TypeError", "invokeFunc", "time", "args", "thisArg", "undefined", "apply", "leadingEdge", "setTimeout", "timerExpired", "remainingWait", "timeSinceLastCall", "timeSinceLastInvoke", "timeWaiting", "shouldInvoke", "Date", "now", "trailingEdge", "cancel", "clearTimeout", "flush", "debounced", "isInvoking", "arguments", "debounce_default", "useDebounce", "fn", "ms", "maxWait", "funcRef", "useRef", "current", "useMemo", "debounce", "args", "BUTTON_WIDTH_PX", "TableHoverActionsContainer", "anchorElem", "editor", "useLexicalComposerContext", "editorConfig", "useEditorConfigContext", "isShownRow", "setShownRow", "useState", "isShownColumn", "setShownColumn", "shouldListenMouseMove", "setShouldListenMouseMove", "position", "setPosition", "codeSetRef", "useRef", "Set", "tableDOMNodeRef", "debouncedOnMouseMove", "useDebounce", "event", "isOutside", "tableDOMNode", "getMouseInfo", "lexical", "current", "hoveredRowNode", "hoveredColumnNode", "tableDOMElement", "update", "maybeTableCell", "$getNearestNodeFromDOMNode", "$isTableCellNode", "table", "$findMatchingParent", "node", "$isTableNode", "getElementByKey", "getKey", "rowCount", "getChildrenSize", "colCount", "getChildAtIndex", "rowIndex", "$getTableRowIndexFromTableCellNode", "colIndex", "$getTableColumnIndexFromTableCellNode", "bottom", "tableElemBottom", "height", "tableElemHeight", "right", "tableElemRight", "width", "tableElemWidth", "x", "tableElemX", "y", "tableElemY", "getBoundingClientRect", "left", "editorElemLeft", "editorElemY", "top", "useEffect", "document", "addEventListener", "removeEventListener", "mergeRegister", "registerMutationListener", "TableNode", "mutations", "getEditorState", "read", "key", "type", "add", "size", "delete", "skipInitialization", "insertAction", "insertRow", "selectEnd", "$insertTableRow__EXPERIMENTAL", "$insertTableColumn__EXPERIMENTAL", "_jsxs", "_Fragment", "_jsx", "className", "theme", "tableAddRows", "onClick", "style", "tableAddColumns", "target", "HTMLElement", "closest", "tableCell", "tableCellResizer", "TableHoverActionsPlugin", "body", "createPortal", "c", "_c", "useLexicalComposerContext", "TablePlugin", "LexicalReactTablePlugin", "INSERT_TABLE_COMMAND", "TableNode", "mergeRegister", "formatDrawerSlug", "useEditDepth", "useModal", "$getSelection", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "createContext", "useContext", "useEffect", "useMemo", "useState", "React", "OPEN_TABLE_DRAWER_COMMAND", "createCommand", "CellContext", "createContext", "cellEditorConfig", "cellEditorPlugins", "set", "TableContext", "children", "contextValue", "setContextValue", "useState", "_jsx", "Provider", "value", "useMemo", "TablePlugin", "$", "_c", "editor", "useLexicalComposerContext", "cellContext", "useContext", "closeModal", "toggleModal", "useModal", "editDepth", "useEditDepth", "uuid", "useEditorConfigContext", "t0", "t1", "formatDrawerSlug", "slug", "depth", "drawerSlug", "t2", "hasNodes", "TableNode", "Error", "mergeRegister", "registerCommand", "rangeSelection", "getEditorState", "read", "selection", "$getSelection", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "t3", "useEffect", "t4", "_fields", "data", "columns", "rows", "dispatchCommand", "INSERT_TABLE_COMMAND", "String", "t5", "_jsxs", "Fragment", "FieldsDrawer", "drawerTitle", "featureKey", "handleDrawerSubmit", "schemaPathSuffix", "LexicalReactTablePlugin", "hasCellBackgroundColor", "hasCellMerge", "TableFeatureClient", "createClientFeature", "nodes", "TableNode", "TableCellNode", "TableRowNode", "plugins", "Component", "TablePlugin", "position", "TableCellResizerPlugin", "TableActionMenuPlugin", "TableHoverActionsPlugin", "providers", "TableContext", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "TableIcon", "key", "keywords", "label", "onSelect", "editor", "dispatchCommand", "OPEN_TABLE_DRAWER_COMMAND", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "$isNodeSelection", "UploadIcon", "_jsxs", "className", "fill", "focusable", "height", "viewBox", "width", "xmlns", "_jsx", "d", "stroke", "strokeLinecap", "strokeLinejoin", "c", "_c", "useLexicalComposerContext", "$insertNodeToNearestRoot", "mergeRegister", "useConfig", "$getPreviousSelection", "$getSelection", "$isParagraphNode", "$isRangeSelection", "COMMAND_PRIORITY_EDITOR", "createCommand", "useEffect", "c", "_c", "useLexicalComposerContext", "useListDrawer", "$getNodeByKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "useState", "insertUpload", "editor", "relationTo", "replaceNodeKey", "value", "update", "node", "$getNodeByKey", "replace", "$createUploadNode", "data", "fields", "dispatchCommand", "INSERT_UPLOAD_COMMAND", "UploadDrawerComponent", "t0", "$", "_c", "enabledCollectionSlugs", "useLexicalComposerContext", "setReplaceNodeKey", "useState", "t1", "collectionSlugs", "uploads", "ListDrawer", "ListDrawerToggler", "t2", "useListDrawer", "closeDrawer", "openDrawer", "t3", "t4", "registerCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "payload", "nodeKey", "COMMAND_PRIORITY_EDITOR", "useEffect", "t5", "t6", "collectionSlug", "docID", "onSelect", "_jsx", "UploadDrawer", "props", "EnabledRelationshipsCondition", "INSERT_UPLOAD_COMMAND", "createCommand", "UploadPlugin", "t0", "$", "_c", "editor", "useLexicalComposerContext", "config", "t1", "useConfig", "collections", "t2", "t3", "hasNodes", "UploadNode", "Error", "mergeRegister", "registerCommand", "payload", "update", "selection", "$getSelection", "$getPreviousSelection", "$isRangeSelection", "uploadNode", "$createUploadNode", "data", "id", "fields", "relationTo", "value", "$insertNodeToNearestRoot", "focus", "focusNode", "getNode", "$isParagraphNode", "getTextContentSize", "getParent", "getChildren", "filter", "node", "length", "remove", "COMMAND_PRIORITY_EDITOR", "useEffect", "t4", "_jsx", "UploadDrawer", "enabledCollectionSlugs", "map", "_temp", "slug", "UploadFeatureClient", "createClientFeature", "nodes", "UploadNode", "plugins", "Component", "UploadPlugin", "position", "slashMenu", "groups", "slashMenuBasicGroupWithItems", "Icon", "UploadIcon", "key", "keywords", "label", "i18n", "t", "onSelect", "editor", "dispatchCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "replace", "toolbarFixed", "toolbarAddDropdownGroupWithItems", "ChildComponent", "isActive", "selection", "$isNodeSelection", "getNodes", "length", "firstNode", "$isUploadNode", "ShimmerEffect", "useClientFunctions", "useFieldProps", "React", "Suspense", "lazy", "useEffect", "useState", "RichTextEditor", "lazy", "then", "module", "default", "RichText", "RichTextField", "props", "admin", "field", "richTextComponentMap", "lexicalEditorConfig", "schemaPath", "useFieldProps", "clientFunctions", "useClientFunctions", "hasLoadedFeatures", "setHasLoadedFeatures", "useState", "featureProviders", "setFeatureProviders", "finalSanitizedEditorConfig", "setFinalSanitizedEditorConfig", "featureProviderComponents", "get", "sort", "a", "b", "order", "featureProvidersAndComponentsToLoad", "featureProvider", "featureComponentKeys", "Array", "from", "keys", "filter", "key", "startsWith", "length", "useEffect", "featureProvidersLocal", "featureProvidersAndComponentsLoaded", "Object", "entries", "forEach", "plugin", "includes", "push", "resolvedClientFeatures", "loadClientFeatures", "unSanitizedEditorConfig", "features", "lexical", "sanitizeClientEditorConfig", "defaultEditorLexicalConfig", "_jsx", "Suspense", "fallback", "ShimmerEffect", "height", "editorConfig", "React", "Fragment", "isArray", "map", "featureComponents", "_jsxs", "FeatureComponent", "ClientFeature", "joinClasses", "args", "filter", "Boolean", "join", "elements", "WeakMap", "readTouch", "e", "touch", "changedTouches", "undefined", "clientX", "clientY", "addListener", "element", "cb", "elementValues", "get", "listeners", "Set", "handleTouchstart", "start", "handleTouchend", "end", "listener", "addEventListener", "set", "add", "deleteListener", "delete", "size", "removeEventListener", "addSwipeLeftListener", "force", "x", "y", "Math", "abs", "addSwipeRightListener", "addSwipeUpListener", "addSwipeDownListener", "NodeFormat", "DOM_ELEMENT_TYPE", "DOM_TEXT_TYPE", "NO_DIRTY_NODES", "HAS_DIRTY_NODES", "FULL_RECONCILE", "IS_NORMAL", "IS_TOKEN", "IS_SEGMENTED", "IS_INERT", "IS_BOLD", "IS_ITALIC", "IS_STRIKETHROUGH", "IS_UNDERLINE", "IS_CODE", "IS_SUBSCRIPT", "IS_SUPERSCRIPT", "IS_HIGHLIGHT", "IS_DIRECTIONLESS", "IS_UNMERGEABLE", "IS_ALIGN_LEFT", "IS_ALIGN_CENTER", "IS_ALIGN_RIGHT", "IS_ALIGN_JUSTIFY", "IS_ALIGN_START", "IS_ALIGN_END", "IS_ALL_FORMATTING", "NON_BREAKING_SPACE", "DOUBLE_LINE_BREAK", "RTL", "LTR", "RTL_REGEX", "RegExp", "LTR_REGEX", "TEXT_TYPE_TO_FORMAT", "bold", "code", "highlight", "italic", "strikethrough", "subscript", "superscript", "underline", "DETAIL_TYPE_TO_DETAIL", "directionless", "unmergeable", "ELEMENT_TYPE_TO_FORMAT", "center", "end", "justify", "left", "right", "start", "ELEMENT_FORMAT_TO_TYPE", "TEXT_MODE_TO_TYPE", "normal", "segmented", "token", "TEXT_TYPE_TO_MODE"]
7
+ }