flujo-ai 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-build-manifest.json +592 -0
  3. package/.next/app-path-routes-manifest.json +63 -0
  4. package/.next/build-manifest.json +33 -0
  5. package/.next/diagnostics/build-diagnostics.json +6 -0
  6. package/.next/diagnostics/framework.json +1 -0
  7. package/.next/export-marker.json +6 -0
  8. package/.next/images-manifest.json +58 -0
  9. package/.next/next-minimal-server.js.nft.json +1 -0
  10. package/.next/next-server.js.nft.json +1 -0
  11. package/.next/package.json +1 -0
  12. package/.next/prerender-manifest.json +205 -0
  13. package/.next/react-loadable-manifest.json +83 -0
  14. package/.next/required-server-files.json +328 -0
  15. package/.next/routes-manifest.json +305 -0
  16. package/.next/server/app/_not-found/page.js +4 -0
  17. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/_not-found.html +1 -0
  20. package/.next/server/app/_not-found.meta +8 -0
  21. package/.next/server/app/_not-found.rsc +16 -0
  22. package/.next/server/app/api/backup/route.js +2 -0
  23. package/.next/server/app/api/backup/route.js.nft.json +1 -0
  24. package/.next/server/app/api/backup/route_client-reference-manifest.js +1 -0
  25. package/.next/server/app/api/browse/route.js +2 -0
  26. package/.next/server/app/api/browse/route.js.nft.json +1 -0
  27. package/.next/server/app/api/browse/route_client-reference-manifest.js +1 -0
  28. package/.next/server/app/api/cwd/route.js +2 -0
  29. package/.next/server/app/api/cwd/route.js.nft.json +1 -0
  30. package/.next/server/app/api/cwd/route_client-reference-manifest.js +1 -0
  31. package/.next/server/app/api/encryption/secure/route.js +1 -0
  32. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -0
  33. package/.next/server/app/api/encryption/secure/route_client-reference-manifest.js +1 -0
  34. package/.next/server/app/api/env/route.js +2 -0
  35. package/.next/server/app/api/env/route.js.nft.json +1 -0
  36. package/.next/server/app/api/env/route_client-reference-manifest.js +1 -0
  37. package/.next/server/app/api/flow/[id]/route.js +1 -0
  38. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -0
  39. package/.next/server/app/api/flow/[id]/route_client-reference-manifest.js +1 -0
  40. package/.next/server/app/api/flow/prompt-renderer/route.js +2 -0
  41. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -0
  42. package/.next/server/app/api/flow/prompt-renderer/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/flow/route.js +1 -0
  44. package/.next/server/app/api/flow/route.js.nft.json +1 -0
  45. package/.next/server/app/api/flow/route_client-reference-manifest.js +1 -0
  46. package/.next/server/app/api/git/route.js +3 -0
  47. package/.next/server/app/api/git/route.js.nft.json +1 -0
  48. package/.next/server/app/api/git/route_client-reference-manifest.js +1 -0
  49. package/.next/server/app/api/init/route.js +1 -0
  50. package/.next/server/app/api/init/route.js.nft.json +1 -0
  51. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -0
  52. package/.next/server/app/api/mcp/cancel/route.js +2 -0
  53. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -0
  54. package/.next/server/app/api/mcp/cancel/route_client-reference-manifest.js +1 -0
  55. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -0
  56. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -0
  57. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route_client-reference-manifest.js +1 -0
  58. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -0
  59. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -0
  60. package/.next/server/app/api/mcp/servers/[name]/prompts/route_client-reference-manifest.js +1 -0
  61. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -0
  62. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -0
  63. package/.next/server/app/api/mcp/servers/[name]/resources/read/route_client-reference-manifest.js +1 -0
  64. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -0
  65. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -0
  66. package/.next/server/app/api/mcp/servers/[name]/resources/route_client-reference-manifest.js +1 -0
  67. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -0
  68. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -0
  69. package/.next/server/app/api/mcp/servers/[name]/route_client-reference-manifest.js +1 -0
  70. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -0
  71. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -0
  72. package/.next/server/app/api/mcp/servers/[name]/status/route_client-reference-manifest.js +1 -0
  73. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -0
  74. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -0
  75. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route_client-reference-manifest.js +1 -0
  76. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -0
  77. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -0
  78. package/.next/server/app/api/mcp/servers/[name]/tools/route_client-reference-manifest.js +1 -0
  79. package/.next/server/app/api/mcp/servers/route.js +1 -0
  80. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -0
  81. package/.next/server/app/api/mcp/servers/route_client-reference-manifest.js +1 -0
  82. package/.next/server/app/api/mcp/test-connection/route.js +1 -0
  83. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -0
  84. package/.next/server/app/api/mcp/test-connection/route_client-reference-manifest.js +1 -0
  85. package/.next/server/app/api/mcp-registry/route.js +2 -0
  86. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -0
  87. package/.next/server/app/api/mcp-registry/route_client-reference-manifest.js +1 -0
  88. package/.next/server/app/api/mcp-registry/spotlight/route.js +2 -0
  89. package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -0
  90. package/.next/server/app/api/mcp-registry/spotlight/route_client-reference-manifest.js +1 -0
  91. package/.next/server/app/api/model/[id]/route.js +1 -0
  92. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -0
  93. package/.next/server/app/api/model/[id]/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/model/provider/route.js +2 -0
  95. package/.next/server/app/api/model/provider/route.js.nft.json +1 -0
  96. package/.next/server/app/api/model/provider/route_client-reference-manifest.js +1 -0
  97. package/.next/server/app/api/model/route.js +1 -0
  98. package/.next/server/app/api/model/route.js.nft.json +1 -0
  99. package/.next/server/app/api/model/route_client-reference-manifest.js +1 -0
  100. package/.next/server/app/api/model/test/route.js +2 -0
  101. package/.next/server/app/api/model/test/route.js.nft.json +1 -0
  102. package/.next/server/app/api/model/test/route_client-reference-manifest.js +1 -0
  103. package/.next/server/app/api/oauth/callback/route.js +2 -0
  104. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -0
  105. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -0
  106. package/.next/server/app/api/oauth/initiate/route.js +2 -0
  107. package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -0
  108. package/.next/server/app/api/oauth/initiate/route_client-reference-manifest.js +1 -0
  109. package/.next/server/app/api/oauth/reset/route.js +2 -0
  110. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -0
  111. package/.next/server/app/api/oauth/reset/route_client-reference-manifest.js +1 -0
  112. package/.next/server/app/api/planned-executions/[id]/route.js +1 -0
  113. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -0
  114. package/.next/server/app/api/planned-executions/[id]/route_client-reference-manifest.js +1 -0
  115. package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -0
  116. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -0
  117. package/.next/server/app/api/planned-executions/[id]/run/route_client-reference-manifest.js +1 -0
  118. package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -0
  119. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -0
  120. package/.next/server/app/api/planned-executions/[id]/runs/route_client-reference-manifest.js +1 -0
  121. package/.next/server/app/api/planned-executions/preview-schedule/route.js +2 -0
  122. package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -0
  123. package/.next/server/app/api/planned-executions/preview-schedule/route_client-reference-manifest.js +1 -0
  124. package/.next/server/app/api/planned-executions/route.js +1 -0
  125. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -0
  126. package/.next/server/app/api/planned-executions/route_client-reference-manifest.js +1 -0
  127. package/.next/server/app/api/restore/route.js +2 -0
  128. package/.next/server/app/api/restore/route.js.nft.json +1 -0
  129. package/.next/server/app/api/restore/route_client-reference-manifest.js +1 -0
  130. package/.next/server/app/api/storage/route.js +2 -0
  131. package/.next/server/app/api/storage/route.js.nft.json +1 -0
  132. package/.next/server/app/api/storage/route_client-reference-manifest.js +1 -0
  133. package/.next/server/app/api/update/route.js +2 -0
  134. package/.next/server/app/api/update/route.js.nft.json +1 -0
  135. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/webhooks/[id]/route.js +1 -0
  137. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -0
  138. package/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/chat/page.js +10 -0
  140. package/.next/server/app/chat/page.js.nft.json +1 -0
  141. package/.next/server/app/chat/page_client-reference-manifest.js +1 -0
  142. package/.next/server/app/chat.html +1 -0
  143. package/.next/server/app/chat.meta +7 -0
  144. package/.next/server/app/chat.rsc +20 -0
  145. package/.next/server/app/docs/page.js +2 -0
  146. package/.next/server/app/docs/page.js.nft.json +1 -0
  147. package/.next/server/app/docs/page_client-reference-manifest.js +1 -0
  148. package/.next/server/app/docs.html +1 -0
  149. package/.next/server/app/docs.meta +7 -0
  150. package/.next/server/app/docs.rsc +20 -0
  151. package/.next/server/app/executions/page.js +5 -0
  152. package/.next/server/app/executions/page.js.nft.json +1 -0
  153. package/.next/server/app/executions/page_client-reference-manifest.js +1 -0
  154. package/.next/server/app/executions.html +1 -0
  155. package/.next/server/app/executions.meta +7 -0
  156. package/.next/server/app/executions.rsc +20 -0
  157. package/.next/server/app/flows/page.js +40 -0
  158. package/.next/server/app/flows/page.js.nft.json +1 -0
  159. package/.next/server/app/flows/page_client-reference-manifest.js +1 -0
  160. package/.next/server/app/flows.html +1 -0
  161. package/.next/server/app/flows.meta +7 -0
  162. package/.next/server/app/flows.rsc +21 -0
  163. package/.next/server/app/index.html +1 -0
  164. package/.next/server/app/index.meta +7 -0
  165. package/.next/server/app/index.rsc +20 -0
  166. package/.next/server/app/mcp/page.js +50 -0
  167. package/.next/server/app/mcp/page.js.nft.json +1 -0
  168. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -0
  169. package/.next/server/app/mcp-flows/route.js +1 -0
  170. package/.next/server/app/mcp-flows/route.js.nft.json +1 -0
  171. package/.next/server/app/mcp-flows/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/mcp-proxy/[server]/route.js +1 -0
  173. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -0
  174. package/.next/server/app/mcp-proxy/[server]/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/mcp.html +1 -0
  176. package/.next/server/app/mcp.meta +7 -0
  177. package/.next/server/app/mcp.rsc +20 -0
  178. package/.next/server/app/models/page.js +3 -0
  179. package/.next/server/app/models/page.js.nft.json +1 -0
  180. package/.next/server/app/models/page_client-reference-manifest.js +1 -0
  181. package/.next/server/app/page.js +2 -0
  182. package/.next/server/app/page.js.nft.json +1 -0
  183. package/.next/server/app/page_client-reference-manifest.js +1 -0
  184. package/.next/server/app/settings/page.js +46 -0
  185. package/.next/server/app/settings/page.js.nft.json +1 -0
  186. package/.next/server/app/settings/page_client-reference-manifest.js +1 -0
  187. package/.next/server/app/settings.html +1 -0
  188. package/.next/server/app/settings.meta +7 -0
  189. package/.next/server/app/settings.rsc +20 -0
  190. package/.next/server/app/v1/chat/completions/route.js +2 -0
  191. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -0
  192. package/.next/server/app/v1/chat/completions/route_client-reference-manifest.js +1 -0
  193. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -0
  194. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -0
  195. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route_client-reference-manifest.js +1 -0
  196. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +2 -0
  197. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -0
  198. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route_client-reference-manifest.js +1 -0
  199. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -0
  200. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -0
  201. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route_client-reference-manifest.js +1 -0
  202. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -0
  203. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -0
  204. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route_client-reference-manifest.js +1 -0
  205. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -0
  206. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -0
  207. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route_client-reference-manifest.js +1 -0
  208. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +11 -0
  209. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -0
  210. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route_client-reference-manifest.js +1 -0
  211. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -0
  212. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -0
  213. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route_client-reference-manifest.js +1 -0
  214. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +2 -0
  215. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -0
  216. package/.next/server/app/v1/chat/conversations/[conversationId]/route_client-reference-manifest.js +1 -0
  217. package/.next/server/app/v1/chat/conversations/route.js +2 -0
  218. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -0
  219. package/.next/server/app/v1/chat/conversations/route_client-reference-manifest.js +1 -0
  220. package/.next/server/app/v1/models/route.js +2 -0
  221. package/.next/server/app/v1/models/route.js.nft.json +1 -0
  222. package/.next/server/app/v1/models/route_client-reference-manifest.js +1 -0
  223. package/.next/server/app-paths-manifest.json +63 -0
  224. package/.next/server/chunks/120.js +15 -0
  225. package/.next/server/chunks/1223.js +1 -0
  226. package/.next/server/chunks/1373.js +1 -0
  227. package/.next/server/chunks/1381.js +1 -0
  228. package/.next/server/chunks/1403.js +6 -0
  229. package/.next/server/chunks/1555.js +1 -0
  230. package/.next/server/chunks/1692.js +1 -0
  231. package/.next/server/chunks/1870.js +1 -0
  232. package/.next/server/chunks/1905.js +2 -0
  233. package/.next/server/chunks/1986.js +1 -0
  234. package/.next/server/chunks/2181.js +17 -0
  235. package/.next/server/chunks/22.js +4 -0
  236. package/.next/server/chunks/2253.js +1 -0
  237. package/.next/server/chunks/232.js +1 -0
  238. package/.next/server/chunks/2471.js +1 -0
  239. package/.next/server/chunks/2666.js +1 -0
  240. package/.next/server/chunks/2695.js +95 -0
  241. package/.next/server/chunks/2776.js +3 -0
  242. package/.next/server/chunks/3736.js +1 -0
  243. package/.next/server/chunks/3984.js +9 -0
  244. package/.next/server/chunks/4239.js +1 -0
  245. package/.next/server/chunks/4322.js +1 -0
  246. package/.next/server/chunks/4706.js +1 -0
  247. package/.next/server/chunks/4729.js +6 -0
  248. package/.next/server/chunks/473.js +2 -0
  249. package/.next/server/chunks/4753.js +8 -0
  250. package/.next/server/chunks/4989.js +1 -0
  251. package/.next/server/chunks/5389.js +154 -0
  252. package/.next/server/chunks/5443.js +1 -0
  253. package/.next/server/chunks/5486.js +1 -0
  254. package/.next/server/chunks/5547.js +2 -0
  255. package/.next/server/chunks/558.js +1 -0
  256. package/.next/server/chunks/5611.js +6 -0
  257. package/.next/server/chunks/5734.js +60 -0
  258. package/.next/server/chunks/5838.js +1 -0
  259. package/.next/server/chunks/5873.js +22 -0
  260. package/.next/server/chunks/598.js +1 -0
  261. package/.next/server/chunks/6064.js +1 -0
  262. package/.next/server/chunks/62.js +1 -0
  263. package/.next/server/chunks/6283.js +2 -0
  264. package/.next/server/chunks/6390.js +28 -0
  265. package/.next/server/chunks/6542.js +1 -0
  266. package/.next/server/chunks/6637.js +2 -0
  267. package/.next/server/chunks/6760.js +1 -0
  268. package/.next/server/chunks/6936.js +35 -0
  269. package/.next/server/chunks/6996.js +62 -0
  270. package/.next/server/chunks/701.js +10 -0
  271. package/.next/server/chunks/7214.js +6 -0
  272. package/.next/server/chunks/724.js +27 -0
  273. package/.next/server/chunks/7412.js +5 -0
  274. package/.next/server/chunks/7506.js +10 -0
  275. package/.next/server/chunks/7531.js +52 -0
  276. package/.next/server/chunks/805.js +2 -0
  277. package/.next/server/chunks/812.js +2 -0
  278. package/.next/server/chunks/8298.js +1 -0
  279. package/.next/server/chunks/8312.js +5 -0
  280. package/.next/server/chunks/8445.js +82 -0
  281. package/.next/server/chunks/8460.js +1 -0
  282. package/.next/server/chunks/8693.js +1 -0
  283. package/.next/server/chunks/8739.js +2 -0
  284. package/.next/server/chunks/8938.js +8 -0
  285. package/.next/server/chunks/9042.js +1 -0
  286. package/.next/server/chunks/9188.js +1 -0
  287. package/.next/server/chunks/9273.js +4 -0
  288. package/.next/server/chunks/9314.js +12 -0
  289. package/.next/server/chunks/9343.js +5 -0
  290. package/.next/server/chunks/9406.js +95 -0
  291. package/.next/server/chunks/9938.js +1 -0
  292. package/.next/server/chunks/9989.js +1 -0
  293. package/.next/server/functions-config-manifest.json +10 -0
  294. package/.next/server/instrumentation.js +1 -0
  295. package/.next/server/instrumentation.js.nft.json +1 -0
  296. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  297. package/.next/server/middleware-build-manifest.js +1 -0
  298. package/.next/server/middleware-manifest.json +6 -0
  299. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  300. package/.next/server/next-font-manifest.js +1 -0
  301. package/.next/server/next-font-manifest.json +1 -0
  302. package/.next/server/pages/404.html +1 -0
  303. package/.next/server/pages/500.html +1 -0
  304. package/.next/server/pages/_app.js +1 -0
  305. package/.next/server/pages/_app.js.nft.json +1 -0
  306. package/.next/server/pages/_document.js +1 -0
  307. package/.next/server/pages/_document.js.nft.json +1 -0
  308. package/.next/server/pages/_error.js +19 -0
  309. package/.next/server/pages/_error.js.nft.json +1 -0
  310. package/.next/server/pages-manifest.json +6 -0
  311. package/.next/server/server-reference-manifest.js +1 -0
  312. package/.next/server/server-reference-manifest.json +1 -0
  313. package/.next/server/webpack-runtime.js +1 -0
  314. package/.next/static/GbXXL_8DLT2oVwT-JdpbM/_buildManifest.js +1 -0
  315. package/.next/static/GbXXL_8DLT2oVwT-JdpbM/_ssgManifest.js +1 -0
  316. package/.next/static/chunks/1255-13d973e0759ea6d6.js +1 -0
  317. package/.next/static/chunks/1374-e084b3c40554288a.js +1 -0
  318. package/.next/static/chunks/1424-01898260211a09d0.js +1 -0
  319. package/.next/static/chunks/1646.a93085a0445ba909.js +1 -0
  320. package/.next/static/chunks/1a258343-bcffff1604e3797c.js +1 -0
  321. package/.next/static/chunks/2003-7710c23acaef11c9.js +1 -0
  322. package/.next/static/chunks/2005-f9d38c39f10c321f.js +1 -0
  323. package/.next/static/chunks/2160-4d9f132965bc2a89.js +1 -0
  324. package/.next/static/chunks/2380-2a7acfa037ec8e80.js +1 -0
  325. package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
  326. package/.next/static/chunks/2624-b985ab3eac1139c3.js +1 -0
  327. package/.next/static/chunks/2678-c88052addfb0478a.js +1 -0
  328. package/.next/static/chunks/2720-2a926505ec98a6de.js +1 -0
  329. package/.next/static/chunks/3077-565833c67440a7fa.js +1 -0
  330. package/.next/static/chunks/3217.79ca74c918fc772c.js +1 -0
  331. package/.next/static/chunks/3235-dfcb73b8d483f8cd.js +1 -0
  332. package/.next/static/chunks/3272-fd8d59523f61da96.js +1 -0
  333. package/.next/static/chunks/3403-7c5037145e384171.js +1 -0
  334. package/.next/static/chunks/3545.c3fbe14528517a75.js +1 -0
  335. package/.next/static/chunks/3750-38474d67566af4c3.js +1 -0
  336. package/.next/static/chunks/3810-cee95063d5535307.js +1 -0
  337. package/.next/static/chunks/39-1732a0b689c7b641.js +1 -0
  338. package/.next/static/chunks/4754-5c62bb61142f82d1.js +1 -0
  339. package/.next/static/chunks/488-623d07c3fbc21e28.js +1 -0
  340. package/.next/static/chunks/4bd1b696-182b6b13bdad92e3.js +1 -0
  341. package/.next/static/chunks/5139.e4ff9cc3669129ed.js +1 -0
  342. package/.next/static/chunks/5648-2c6caf3d55f95e11.js +1 -0
  343. package/.next/static/chunks/5961-828f4f7efc3e1381.js +1 -0
  344. package/.next/static/chunks/6134-758747aabd77289d.js +8 -0
  345. package/.next/static/chunks/690-391bc0f482a9f67c.js +1 -0
  346. package/.next/static/chunks/7126-2bafddf1b09cacac.js +1 -0
  347. package/.next/static/chunks/7329-78f54f68ea2d37e2.js +1 -0
  348. package/.next/static/chunks/7396-807a034f58b57712.js +1 -0
  349. package/.next/static/chunks/7488-b58bc701d0deda00.js +1 -0
  350. package/.next/static/chunks/7539.41f0448cf9783388.js +1 -0
  351. package/.next/static/chunks/7583.8a518353bd072db9.js +1 -0
  352. package/.next/static/chunks/8187.5d6523f30e705998.js +1 -0
  353. package/.next/static/chunks/8198.cd0d3f8429c02862.js +1 -0
  354. package/.next/static/chunks/8345.76f420453fc0dee7.js +1 -0
  355. package/.next/static/chunks/8548-8e4a95334064e8b2.js +1 -0
  356. package/.next/static/chunks/8598-1b627b3d682b364a.js +1 -0
  357. package/.next/static/chunks/8862-1314a13b011c4817.js +1 -0
  358. package/.next/static/chunks/9164-81ca1a1bccdc5ed2.js +1 -0
  359. package/.next/static/chunks/9195.01a57af6d6cdf1a5.js +1 -0
  360. package/.next/static/chunks/9244-3281f7fd02003a2c.js +1 -0
  361. package/.next/static/chunks/9562-93cc45aef3630781.js +1 -0
  362. package/.next/static/chunks/9718-12d33c1a26bb002d.js +1 -0
  363. package/.next/static/chunks/app/_not-found/page-81dc485d60f94046.js +1 -0
  364. package/.next/static/chunks/app/api/backup/route-acd5b6e731d45f1a.js +1 -0
  365. package/.next/static/chunks/app/api/browse/route-acd5b6e731d45f1a.js +1 -0
  366. package/.next/static/chunks/app/api/cwd/route-acd5b6e731d45f1a.js +1 -0
  367. package/.next/static/chunks/app/api/encryption/secure/route-acd5b6e731d45f1a.js +1 -0
  368. package/.next/static/chunks/app/api/env/route-acd5b6e731d45f1a.js +1 -0
  369. package/.next/static/chunks/app/api/flow/[id]/route-acd5b6e731d45f1a.js +1 -0
  370. package/.next/static/chunks/app/api/flow/prompt-renderer/route-acd5b6e731d45f1a.js +1 -0
  371. package/.next/static/chunks/app/api/flow/route-acd5b6e731d45f1a.js +1 -0
  372. package/.next/static/chunks/app/api/git/route-acd5b6e731d45f1a.js +1 -0
  373. package/.next/static/chunks/app/api/init/route-acd5b6e731d45f1a.js +1 -0
  374. package/.next/static/chunks/app/api/mcp/cancel/route-acd5b6e731d45f1a.js +1 -0
  375. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/get/route-acd5b6e731d45f1a.js +1 -0
  376. package/.next/static/chunks/app/api/mcp/servers/[name]/prompts/route-acd5b6e731d45f1a.js +1 -0
  377. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/read/route-acd5b6e731d45f1a.js +1 -0
  378. package/.next/static/chunks/app/api/mcp/servers/[name]/resources/route-acd5b6e731d45f1a.js +1 -0
  379. package/.next/static/chunks/app/api/mcp/servers/[name]/route-acd5b6e731d45f1a.js +1 -0
  380. package/.next/static/chunks/app/api/mcp/servers/[name]/status/route-acd5b6e731d45f1a.js +1 -0
  381. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/[toolName]/route-acd5b6e731d45f1a.js +1 -0
  382. package/.next/static/chunks/app/api/mcp/servers/[name]/tools/route-acd5b6e731d45f1a.js +1 -0
  383. package/.next/static/chunks/app/api/mcp/servers/route-acd5b6e731d45f1a.js +1 -0
  384. package/.next/static/chunks/app/api/mcp/test-connection/route-acd5b6e731d45f1a.js +1 -0
  385. package/.next/static/chunks/app/api/mcp-registry/route-acd5b6e731d45f1a.js +1 -0
  386. package/.next/static/chunks/app/api/mcp-registry/spotlight/route-acd5b6e731d45f1a.js +1 -0
  387. package/.next/static/chunks/app/api/model/[id]/route-acd5b6e731d45f1a.js +1 -0
  388. package/.next/static/chunks/app/api/model/provider/route-acd5b6e731d45f1a.js +1 -0
  389. package/.next/static/chunks/app/api/model/route-acd5b6e731d45f1a.js +1 -0
  390. package/.next/static/chunks/app/api/model/test/route-acd5b6e731d45f1a.js +1 -0
  391. package/.next/static/chunks/app/api/oauth/callback/route-acd5b6e731d45f1a.js +1 -0
  392. package/.next/static/chunks/app/api/oauth/initiate/route-acd5b6e731d45f1a.js +1 -0
  393. package/.next/static/chunks/app/api/oauth/reset/route-acd5b6e731d45f1a.js +1 -0
  394. package/.next/static/chunks/app/api/planned-executions/[id]/route-acd5b6e731d45f1a.js +1 -0
  395. package/.next/static/chunks/app/api/planned-executions/[id]/run/route-acd5b6e731d45f1a.js +1 -0
  396. package/.next/static/chunks/app/api/planned-executions/[id]/runs/route-acd5b6e731d45f1a.js +1 -0
  397. package/.next/static/chunks/app/api/planned-executions/preview-schedule/route-acd5b6e731d45f1a.js +1 -0
  398. package/.next/static/chunks/app/api/planned-executions/route-acd5b6e731d45f1a.js +1 -0
  399. package/.next/static/chunks/app/api/restore/route-acd5b6e731d45f1a.js +1 -0
  400. package/.next/static/chunks/app/api/storage/route-acd5b6e731d45f1a.js +1 -0
  401. package/.next/static/chunks/app/api/update/route-acd5b6e731d45f1a.js +1 -0
  402. package/.next/static/chunks/app/api/webhooks/[id]/route-acd5b6e731d45f1a.js +1 -0
  403. package/.next/static/chunks/app/chat/page-019d2b836f34f40d.js +1 -0
  404. package/.next/static/chunks/app/docs/page-2a4cff7c40706a48.js +1 -0
  405. package/.next/static/chunks/app/executions/page-b46744c507a6e810.js +1 -0
  406. package/.next/static/chunks/app/flows/page-7b5c0e06951398ac.js +1 -0
  407. package/.next/static/chunks/app/layout-2878f13d7e253503.js +1 -0
  408. package/.next/static/chunks/app/mcp/page-1ca55f88a3045b5d.js +1 -0
  409. package/.next/static/chunks/app/mcp-flows/route-acd5b6e731d45f1a.js +1 -0
  410. package/.next/static/chunks/app/mcp-proxy/[server]/route-acd5b6e731d45f1a.js +1 -0
  411. package/.next/static/chunks/app/models/error-2b00c98abf1e02cf.js +1 -0
  412. package/.next/static/chunks/app/models/loading-57d1c02d0817fc47.js +1 -0
  413. package/.next/static/chunks/app/models/page-a20e6c4e1a5a0c9a.js +1 -0
  414. package/.next/static/chunks/app/page-471879d3918aeeb6.js +1 -0
  415. package/.next/static/chunks/app/settings/page-88f7e1b65a6681ec.js +1 -0
  416. package/.next/static/chunks/app/v1/chat/completions/route-acd5b6e731d45f1a.js +1 -0
  417. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/breakpoints/route-acd5b6e731d45f1a.js +1 -0
  418. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/cancel/route-acd5b6e731d45f1a.js +1 -0
  419. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/continue/route-acd5b6e731d45f1a.js +1 -0
  420. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/debug/step/route-acd5b6e731d45f1a.js +1 -0
  421. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/edit-state/route-acd5b6e731d45f1a.js +1 -0
  422. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/events/route-acd5b6e731d45f1a.js +1 -0
  423. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/respond/route-acd5b6e731d45f1a.js +1 -0
  424. package/.next/static/chunks/app/v1/chat/conversations/[conversationId]/route-acd5b6e731d45f1a.js +1 -0
  425. package/.next/static/chunks/app/v1/chat/conversations/route-acd5b6e731d45f1a.js +1 -0
  426. package/.next/static/chunks/app/v1/models/route-acd5b6e731d45f1a.js +1 -0
  427. package/.next/static/chunks/ccd63cfe-4a75b90fa4cb53ad.js +1 -0
  428. package/.next/static/chunks/framework-1548034a53843b9f.js +1 -0
  429. package/.next/static/chunks/main-app-faff38c77cb00119.js +1 -0
  430. package/.next/static/chunks/main-be8e823624954fab.js +1 -0
  431. package/.next/static/chunks/pages/_app-e8b861c87f6f033c.js +1 -0
  432. package/.next/static/chunks/pages/_error-c8f84f7bd11d43d4.js +1 -0
  433. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  434. package/.next/static/chunks/webpack-6f17a022ac16e8bd.js +1 -0
  435. package/.next/static/css/64cb1f185b52a623.css +1 -0
  436. package/.next/static/css/d1484588c616b291.css +31 -0
  437. package/.next/static/media/013b72fa676f92e0-s.woff2 +0 -0
  438. package/.next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
  439. package/.next/static/media/2b5b02fc7e511755-s.woff2 +0 -0
  440. package/.next/static/media/65f03d54ccadf4a8-s.woff2 +0 -0
  441. package/.next/static/media/7d4881bb7e1bf84d-s.p.woff2 +0 -0
  442. package/.next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
  443. package/.next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
  444. package/.next/static/media/b66cf8e69499582a-s.woff2 +0 -0
  445. package/.next/static/media/b9408752a0c24fb9-s.woff2 +0 -0
  446. package/.next/static/media/e038a29029a234f2-s.woff2 +0 -0
  447. package/.next/static/media/f639721981034f88-s.woff2 +0 -0
  448. package/.next/trace +7 -0
  449. package/.next/types/app/api/backup/route.ts +347 -0
  450. package/.next/types/app/api/browse/route.ts +347 -0
  451. package/.next/types/app/api/cwd/route.ts +347 -0
  452. package/.next/types/app/api/encryption/secure/route.ts +347 -0
  453. package/.next/types/app/api/env/route.ts +347 -0
  454. package/.next/types/app/api/flow/[id]/route.ts +347 -0
  455. package/.next/types/app/api/flow/prompt-renderer/route.ts +347 -0
  456. package/.next/types/app/api/flow/route.ts +347 -0
  457. package/.next/types/app/api/git/route.ts +347 -0
  458. package/.next/types/app/api/init/route.ts +347 -0
  459. package/.next/types/app/api/mcp/cancel/route.ts +347 -0
  460. package/.next/types/app/api/mcp/servers/[name]/prompts/get/route.ts +347 -0
  461. package/.next/types/app/api/mcp/servers/[name]/prompts/route.ts +347 -0
  462. package/.next/types/app/api/mcp/servers/[name]/resources/read/route.ts +347 -0
  463. package/.next/types/app/api/mcp/servers/[name]/resources/route.ts +347 -0
  464. package/.next/types/app/api/mcp/servers/[name]/route.ts +347 -0
  465. package/.next/types/app/api/mcp/servers/[name]/status/route.ts +347 -0
  466. package/.next/types/app/api/mcp/servers/[name]/tools/[toolName]/route.ts +347 -0
  467. package/.next/types/app/api/mcp/servers/[name]/tools/route.ts +347 -0
  468. package/.next/types/app/api/mcp/servers/route.ts +347 -0
  469. package/.next/types/app/api/mcp/test-connection/route.ts +347 -0
  470. package/.next/types/app/api/mcp-registry/route.ts +347 -0
  471. package/.next/types/app/api/mcp-registry/spotlight/route.ts +347 -0
  472. package/.next/types/app/api/model/[id]/route.ts +347 -0
  473. package/.next/types/app/api/model/provider/route.ts +347 -0
  474. package/.next/types/app/api/model/route.ts +347 -0
  475. package/.next/types/app/api/model/test/route.ts +347 -0
  476. package/.next/types/app/api/oauth/callback/route.ts +347 -0
  477. package/.next/types/app/api/oauth/initiate/route.ts +347 -0
  478. package/.next/types/app/api/oauth/reset/route.ts +347 -0
  479. package/.next/types/app/api/planned-executions/[id]/route.ts +347 -0
  480. package/.next/types/app/api/planned-executions/[id]/run/route.ts +347 -0
  481. package/.next/types/app/api/planned-executions/[id]/runs/route.ts +347 -0
  482. package/.next/types/app/api/planned-executions/preview-schedule/route.ts +347 -0
  483. package/.next/types/app/api/planned-executions/route.ts +347 -0
  484. package/.next/types/app/api/restore/route.ts +347 -0
  485. package/.next/types/app/api/storage/route.ts +347 -0
  486. package/.next/types/app/api/update/route.ts +347 -0
  487. package/.next/types/app/api/webhooks/[id]/route.ts +347 -0
  488. package/.next/types/app/chat/page.ts +84 -0
  489. package/.next/types/app/docs/page.ts +84 -0
  490. package/.next/types/app/executions/page.ts +84 -0
  491. package/.next/types/app/flows/page.ts +84 -0
  492. package/.next/types/app/layout.ts +84 -0
  493. package/.next/types/app/mcp/page.ts +84 -0
  494. package/.next/types/app/mcp-flows/route.ts +347 -0
  495. package/.next/types/app/mcp-proxy/[server]/route.ts +347 -0
  496. package/.next/types/app/models/page.ts +84 -0
  497. package/.next/types/app/page.ts +84 -0
  498. package/.next/types/app/settings/page.ts +84 -0
  499. package/.next/types/app/v1/chat/completions/route.ts +347 -0
  500. package/.next/types/app/v1/chat/conversations/[conversationId]/breakpoints/route.ts +347 -0
  501. package/.next/types/app/v1/chat/conversations/[conversationId]/cancel/route.ts +347 -0
  502. package/.next/types/app/v1/chat/conversations/[conversationId]/debug/continue/route.ts +347 -0
  503. package/.next/types/app/v1/chat/conversations/[conversationId]/debug/step/route.ts +347 -0
  504. package/.next/types/app/v1/chat/conversations/[conversationId]/edit-state/route.ts +347 -0
  505. package/.next/types/app/v1/chat/conversations/[conversationId]/events/route.ts +347 -0
  506. package/.next/types/app/v1/chat/conversations/[conversationId]/respond/route.ts +347 -0
  507. package/.next/types/app/v1/chat/conversations/[conversationId]/route.ts +347 -0
  508. package/.next/types/app/v1/chat/conversations/route.ts +347 -0
  509. package/.next/types/app/v1/models/route.ts +347 -0
  510. package/.next/types/cache-life.d.ts +141 -0
  511. package/.next/types/package.json +1 -0
  512. package/.next/types/routes.d.ts +131 -0
  513. package/.next/types/validator.ts +601 -0
  514. package/LICENSE +21 -0
  515. package/README.md +372 -0
  516. package/bin/flujo.mjs +120 -0
  517. package/next.config.ts +99 -0
  518. package/package.json +91 -0
  519. package/public/favicon.ico +0 -0
  520. package/public/file.svg +1 -0
  521. package/public/globe.svg +1 -0
  522. package/public/next.svg +1 -0
  523. package/public/vercel.svg +1 -0
  524. package/public/window.svg +1 -0
  525. package/scripts/launch-next.mjs +98 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8329],{13975:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>en});var l=r(95155),n=r(12115),a=r(20063),i=r(2300),s=r(94049),o=r(9562),d=r(56422),c=r(70690),u=r(22003),p=r(86946),h=r(51611),m=r(74879),x=r(4474),f=r(33077),v=r(29767),b=r(84578),g=r(25635),y=r(78470),j=r(1702),A=r(41983),w=r(14915),k=r(4484),S=r(90426),C=r(89623),N=r(43076),U=r(87021),T=r(28548),I=r(2778),P=r(52363),M=r(65036),K=r(21067),L=r(75912),B=r(36741),D=r(48563);let W=e=>{var t,r,n,a,i,o,d,c,u;let{title:p,attempt:h}=e;return(0,l.jsxs)(s.default,{sx:{mb:2},children:[(0,l.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[h.ok?(0,l.jsx)(B.A,{color:"success",fontSize:"small"}):(0,l.jsx)(D.A,{color:"error",fontSize:"small"}),(0,l.jsx)(g.default,{variant:"subtitle2",children:p}),"number"==typeof h.status&&(0,l.jsx)(T.A,{size:"small",label:"HTTP ".concat(h.status)}),(0,l.jsx)(T.A,{size:"small",variant:"outlined",label:"".concat(h.durationMs," ms")})]}),h.ok?(0,l.jsxs)(g.default,{variant:"body2",color:"text.secondary",sx:{pl:3},children:["Response: ",h.content?'"'.concat(h.content,'"'):"(empty)"]}):(0,l.jsxs)(s.default,{sx:{pl:3},children:[(0,l.jsx)(g.default,{variant:"body2",color:"error.main",children:null==(t=h.error)?void 0:t.message}),((null==(r=h.error)?void 0:r.code)||(null==(n=h.error)?void 0:n.type))&&(0,l.jsxs)(g.default,{variant:"caption",color:"text.secondary",display:"block",children:[(null==(a=h.error)?void 0:a.type)?"type: ".concat(h.error.type):"",(null==(i=h.error)?void 0:i.type)&&(null==(o=h.error)?void 0:o.code)?" \xb7 ":"",(null==(d=h.error)?void 0:d.code)?"code: ".concat(h.error.code):""]}),(null==(c=h.error)?void 0:c.retryAfter)&&(0,l.jsxs)(g.default,{variant:"caption",color:"text.secondary",display:"block",children:["retry-after: ",h.error.retryAfter,"s"]}),(null==(u=h.error)?void 0:u.body)!==void 0&&(0,l.jsx)(s.default,{component:"pre",sx:{mt:.5,p:1,bgcolor:"action.hover",borderRadius:1,fontSize:"0.7rem",overflowX:"auto",maxHeight:160},children:JSON.stringify(h.error.body,null,2)})]})]})},O=e=>{let{open:t,modelLabel:r,loading:n,result:a,error:i,onClose:o,onRetry:d}=e;return(0,l.jsxs)(I.A,{open:t,onClose:o,maxWidth:"sm",fullWidth:!0,children:[(0,l.jsxs)(P.A,{children:["Test model: ",r]}),(0,l.jsx)(M.A,{dividers:!0,children:n?(0,l.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:2,py:3},children:[(0,l.jsx)(x.default,{size:24}),(0,l.jsx)(g.default,{variant:"body2",children:"Sending a direct test request (SDK + axios)…"})]}):i?(0,l.jsx)(u.A,{severity:"error",children:i}):a?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.A,{severity:a.ok?"success":"warning",sx:{mb:2},children:a.diagnosis}),(0,l.jsxs)(g.default,{variant:"caption",color:"text.secondary",display:"block",sx:{mb:2},children:["model: ",a.model,a.baseUrl?" \xb7 ".concat(a.baseUrl):"",a.provider?" \xb7 ".concat(a.provider):""]}),(0,l.jsx)(K.A,{sx:{mb:2}}),(0,l.jsx)(W,{title:"OpenAI SDK (used by flows)",attempt:a.sdk}),(0,l.jsx)(W,{title:"axios (independent cross-check)",attempt:a.axios})]}):null}),(0,l.jsxs)(L.A,{children:[(0,l.jsx)(c.A,{onClick:d,disabled:n,children:"Run again"}),(0,l.jsx)(c.A,{onClick:o,variant:"contained",children:"Close"})]})]})},E=(0,U.h)("frontend/components/models/list/ModelCard"),_=e=>{let{model:t,onEdit:r,onDelete:a}=e,[i,o]=(0,n.useState)(!1),[d,c]=(0,n.useState)(!1),[u,p]=(0,n.useState)(null),[h,m]=(0,n.useState)(null),x=async()=>{c(!0),m(null),p(null);try{let e=await (0,N.X)().testModel({modelId:t.id});p(e)}catch(e){E.error("Model test failed",{modelId:t.id,error:e}),m(e instanceof Error?e.message:"Failed to run test")}finally{c(!1)}};return(0,l.jsxs)(v.A,{elevation:2,sx:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,l.jsxs)(b.A,{sx:{flexGrow:1},children:[(0,l.jsx)(g.default,{variant:"h6",gutterBottom:!0,children:t.displayName||t.name}),(0,l.jsx)(g.default,{variant:"body2",color:"text.secondary",sx:{mb:2},style:{display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis"},children:t.description}),(0,l.jsxs)(s.default,{sx:{mb:1,display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(S.A,{fontSize:"small",color:"action"}),(0,l.jsx)(g.default,{variant:"body2",color:"text.secondary",children:"API Key: ••••••••"})]}),t.baseUrl&&(0,l.jsx)(y.A,{title:t.baseUrl,arrow:!0,placement:"top",children:(0,l.jsxs)(g.default,{variant:"body2",color:"text.secondary",noWrap:!0,children:["Base URL: ",t.baseUrl]})})]}),(0,l.jsxs)(j.A,{disableSpacing:!0,children:[(0,l.jsx)(y.A,{title:"Test model (direct SDK call, no flow)",arrow:!0,children:(0,l.jsx)(A.A,{"aria-label":"test",onClick:()=>{o(!0),x()},children:(0,l.jsx)(C.A,{})})}),(0,l.jsx)(A.A,{"aria-label":"edit",onClick:r,children:(0,l.jsx)(w.A,{})}),(0,l.jsx)(A.A,{"aria-label":"delete",onClick:a,children:(0,l.jsx)(k.A,{})})]}),(0,l.jsx)(O,{open:i,modelLabel:t.displayName||t.name,loading:d,result:u,error:h,onClose:()=>o(!1),onRetry:x})]})},F=(0,U.h)("frontend/components/models/list/ModelList"),R=e=>{let{models:t,isLoading:r,onAdd:n,onUpdate:a,onDelete:i}=e;if(r)return(0,l.jsx)(s.default,{display:"flex",justifyContent:"center",py:4,children:(0,l.jsx)(x.default,{})});let o=async e=>{let t=await a(e);t.success||F.error("Failed to update model in ModelList",t.error)};return(0,l.jsx)(f.Ay,{container:!0,spacing:2,children:t&&0!==t.length?t.map(e=>(0,l.jsx)(f.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,l.jsx)(_,{model:e,onEdit:()=>o(e),onDelete:()=>i(e.id)})},e.id)):(0,l.jsx)(f.Ay,{item:!0,xs:12,children:(0,l.jsx)(s.default,{textAlign:"center",py:4,children:"No models found"})})})};var z=r(52641),$=r(51221),G=r(55606),X=r(86973),q=r(63109),H=r(12857),J=r(48363),V=r(9164),Y=r(95480);let Z=[{id:"openai",label:"OpenAI",provider:"openai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0},{id:"openrouter",label:"OpenRouter",provider:"openrouter",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://openrouter.ai/api/v1",showBaseUrl:!0},{id:"xai",label:"X.ai",provider:"xai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.x.ai/v1",showBaseUrl:!0},{id:"ollama",label:"Ollama",provider:"ollama",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"http://localhost:11434/v1",showBaseUrl:!0},{id:"gemini-openai",label:"Gemini (OpenAI Format)",provider:"gemini",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",showBaseUrl:!0},{id:"gemini-native",label:"Gemini (Native)",provider:"gemini",adapter:"gemini",sdkLabel:"GenAI SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.0-flash"]},{id:"anthropic-openai",label:"Anthropic (OpenAI Format)",provider:"anthropic",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.anthropic.com/v1/",showBaseUrl:!0},{id:"anthropic-native",label:"Anthropic (Native)",provider:"anthropic",adapter:"anthropic",sdkLabel:"Anthropic SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["claude-opus-4-8","claude-sonnet-4-6","claude-haiku-4-5-20251001","claude-fable-5"]},{id:"claude-subscription",label:"Claude Subscription",provider:"claude-subscription",adapter:"claude-cli",sdkLabel:"Claude CLI",baseUrl:"",showBaseUrl:!1,defaultModels:["opus","sonnet","haiku","fable"]}];var Q=r(52397);let ee=(0,U.h)("frontend/components/models/modal"),et=e=>{var t,r,i;let{open:d,model:p,onSave:h,onClose:m}=e,v=(0,a.useRouter)(),{globalEnvVars:b}=(0,V.useStorage)(),[y,j]=(0,n.useState)({}),[w,k]=(0,n.useState)({}),[S,C]=(0,n.useState)(null),[U,T]=(0,n.useState)(!1),[K,B]=(0,n.useState)(null),[D,W]=(0,n.useState)(!1),[O,E]=(0,n.useState)([]),[_,F]=(0,n.useState)(!1),R=(0,n.useRef)(null),et=(0,n.useRef)(null);(0,n.useEffect)(()=>{d&&E([])},[d]),(0,n.useEffect)(()=>{y.baseUrl&&(ee.debug("Base URL or API Key changed",{baseUrl:y.baseUrl}),E([]))},[y.baseUrl,y.ApiKey]),(0,n.useEffect)(()=>(et.current&&clearTimeout(et.current),y.baseUrl&&(et.current=setTimeout(()=>{ee.debug("Debounced fetchModels triggered",{name:y.name,baseUrl:y.baseUrl,searchTerm:y.name?'"'.concat(y.name,'"'):"none"}),er(y.baseUrl,y.name)},100)),()=>{et.current&&clearTimeout(et.current)}),[y.name,y.baseUrl]),(0,n.useEffect)(()=>()=>{et.current&&clearTimeout(et.current)},[]);let er=async(e,t)=>{ee.debug("fetchModels called",{baseUrl:e,searchTerm:t?'"'.concat(t,'"'):"none",apiKey:y.ApiKey?"present":"not present",isApiKeyBound:U}),F(!0),k({});try{let r=U&&K?"${global:".concat(K,"}"):y.ApiKey&&y.ApiKey!==Q.RJ?y.ApiKey:void 0,l=await N.N.fetchProviderModels(e,p.id,t,r);ee.debug("Models fetched successfully",{count:null==l?void 0:l.length,searchTerm:t?'"'.concat(t,'"'):"none"}),Array.isArray(l)?(E(l),ee.info("Models set in state",{count:l.length,searchTerm:t?'"'.concat(t,'"'):"none"})):(ee.warn("Unexpected API response format",{models:l}),E([]))}catch(r){ee.warn("Error fetching models",{baseUrl:e,searchTerm:t,error:r}),E([])}finally{F(!1)}};(0,n.useEffect)(()=>{if(d){j({...p,displayName:p.displayName||p.name});let e=(p.ApiKey||"").match(/\$\{global:([^}]+)\}/);e?(T(!0),B(e[1])):(T(!1),B(null),j(e=>({...e,ApiKey:p.name?Q.RJ:""})))}else j({name:"",displayName:"",description:"",ApiKey:"",baseUrl:"https://api.openai.com/v1",provider:"openai",adapter:"openai",promptTemplate:"",temperature:"0.0"}),T(!1),B(null);k({}),C(null)},[d,p]);let el=function(e,t){let r=e||"openai",l=t||"openai";return Z.find(e=>e.provider===r&&e.adapter===l)||Z.find(e=>e.provider===r)||Z[0]}(y.provider,y.adapter),en=(e,t)=>{j(r=>({...r,[e]:t})),k(t=>({...t,[e]:""}))},ea=async e=>{var t,r,l;e.preventDefault();let n={};if((null==(t=y.name)?void 0:t.trim())||(n.name="Name is required"),(null==(r=y.displayName)?void 0:r.trim())||(n.displayName="Display Name is required"),U||(null==(l=y.ApiKey)?void 0:l.trim())||(n.ApiKey="API key is required"),Object.keys(n).length>0)return void k(n);try{let e=await h({id:p.id,name:y.name,displayName:y.displayName,description:y.description,ApiKey:y.ApiKey,baseUrl:y.baseUrl,provider:y.provider,adapter:y.adapter||"openai",promptTemplate:y.promptTemplate,temperature:y.temperature,contextWindow:y.contextWindow,maxTurns:y.maxTurns});e.success?v.refresh():k({submit:e.error||"Failed to save model"})}catch(e){ee.error("Failed to save model",{error:e}),k({submit:(null==e?void 0:e.message)||"Failed to save model"})}};return(0,l.jsx)(I.A,{open:d,onClose:m,maxWidth:"xl",fullWidth:!0,PaperProps:{sx:{width:"95vw",height:"90vh",maxWidth:"95vw",maxHeight:"90vh"}},children:(0,l.jsxs)("form",{onSubmit:ea,children:[(0,l.jsx)(P.A,{children:p?"Edit Model":"Add Model"}),(0,l.jsxs)(M.A,{sx:{display:"flex",flexDirection:"column",height:"calc(90vh - 130px)"},children:[w.submit&&(0,l.jsx)(u.A,{severity:"error",sx:{mb:2},children:w.submit}),S&&(0,l.jsx)(u.A,{severity:"info",sx:{mb:2},children:S}),(0,l.jsxs)(f.Ay,{container:!0,spacing:2,sx:{flexGrow:1},children:[(0,l.jsx)(f.Ay,{item:!0,xs:6,sx:{height:"100%"},children:(0,l.jsxs)(s.default,{sx:{display:"flex",flexDirection:"column",height:"100%",pr:2},children:[(0,l.jsx)(g.default,{variant:"h6",gutterBottom:!0,children:"Model Configuration"}),(0,l.jsx)(o.A,{autoFocus:!0,margin:"dense",label:"Display Name",fullWidth:!0,required:!0,value:y.displayName||"",onChange:e=>en("displayName",e.target.value),error:!!w.displayName,helperText:w.displayName||"The name shown in the UI"}),(0,l.jsxs)(z.A,{fullWidth:!0,margin:"dense",children:[(0,l.jsx)($.A,{id:"provider-profile-label",children:"Provider"}),(0,l.jsx)(G.A,{labelId:"provider-profile-label",label:"Provider",value:el.id,onChange:e=>(e=>{let t=Z.find(t=>t.id===e);t&&(j(e=>({...e,provider:t.provider,adapter:t.adapter,baseUrl:t.baseUrl})),k(e=>({...e,baseUrl:""})))})(e.target.value),children:Z.map(e=>(0,l.jsx)(X.A,{value:e.id,children:e.label},e.id))})]}),(0,l.jsxs)(g.default,{variant:"caption",color:"text.secondary",sx:{mt:.5,mb:1,display:"block"},children:["Uses the ",(0,l.jsx)("strong",{children:el.sdkLabel}),"claude-cli"===el.adapter?". Paste an OAuth token from `claude setup-token` into the API Key field.":""]}),el.showBaseUrl&&(0,l.jsx)(o.A,{margin:"dense",label:"Base URL",fullWidth:!0,value:y.baseUrl||"",onChange:e=>en("baseUrl",e.target.value),helperText:"Endpoint for the OpenAI-compatible API."}),(0,l.jsx)(s.default,{sx:{position:"relative",mt:1,mb:1},children:(0,l.jsx)(o.A,{margin:"dense",label:"API Key",fullWidth:!0,required:!U,type:U?"text":"password",value:y.ApiKey||"",onChange:e=>en("ApiKey",e.target.value),error:!!w.ApiKey,helperText:w.ApiKey||"API key is required for this provider",InputProps:{readOnly:U,endAdornment:(0,l.jsx)(s.default,{sx:{display:"flex",alignItems:"center"},children:U?(0,l.jsx)(A.A,{onClick:()=>{T(!1),B(null),j(e=>({...e,ApiKey:""}))},size:"small",title:"Unbind from global variable",children:(0,l.jsx)(H.A,{})}):(0,l.jsx)(A.A,{onClick:()=>{W(!0)},size:"small",title:"Bind to global variable",children:(0,l.jsx)(J.A,{})})})}})}),(0,l.jsx)(q.A,{freeSolo:!0,loading:_,options:el.showBaseUrl?O.map(e=>e.id):null!=(t=el.defaultModels)?t:[],value:y.name||"",onChange:(e,t)=>{en("name",t||"")},onInputChange:(e,t)=>{en("name",t)},filterOptions:(e,t)=>{let r=t.inputValue.toLowerCase();return r?e.filter(e=>{let t=e.toLowerCase();if(t.includes(r))return!0;let l=0,n=0;for(;l<t.length&&n<r.length;)t[l]===r[n]&&n++,l++;return n===r.length}):e},ListboxProps:{style:{maxHeight:"300px",overflow:"auto"}},renderInput:e=>(0,l.jsx)(o.A,{...e,margin:"dense",label:"Technical Name",required:!0,error:!!w.name,helperText:w.name||"Used for API calls to the LLM. Type to search available models.",InputProps:{...e.InputProps,endAdornment:(0,l.jsxs)(l.Fragment,{children:[_?(0,l.jsx)(x.default,{color:"inherit",size:20}):null,e.InputProps.endAdornment]})}}),renderOption:(e,t)=>{let r=O.find(e=>e.id===t),{key:n,...a}=e;return(0,l.jsx)("li",{...a,style:{borderBottom:"1px solid rgba(0,0,0,0.1)",padding:"8px 16px"},children:(0,l.jsxs)(s.default,{children:[(0,l.jsx)(g.default,{variant:"body1",fontWeight:"bold",children:t}),(null==r?void 0:r.description)&&(0,l.jsx)(g.default,{variant:"body2",color:"text.secondary",sx:{fontSize:"0.75rem"},children:r.description})]})},n)},noOptionsText:"No matching models found",loadingText:"Loading models..."}),(0,l.jsx)(o.A,{margin:"dense",label:"Description",fullWidth:!0,multiline:!0,rows:3,value:y.description||"",onChange:e=>en("description",e.target.value)}),(0,l.jsx)(o.A,{margin:"dense",label:"Context Window (tokens)",fullWidth:!0,type:"number",value:null!=(r=y.contextWindow)?r:"",onChange:e=>{let t=e.target.value,r=""===t?void 0:Number(t);j(e=>({...e,contextWindow:void 0!==r&&Number.isFinite(r)&&r>0?Math.floor(r):void 0}))},helperText:"Optional. Enables the context-usage meter in chat (e.g. 200000 for Claude, 128000 for GPT-4o)."}),(0,l.jsx)(o.A,{margin:"dense",label:"Max Turns",fullWidth:!0,type:"number",value:null!=(i=y.maxTurns)?i:"",onChange:e=>{let t=e.target.value,r=""===t?void 0:Number(t);j(e=>({...e,maxTurns:void 0!==r&&Number.isFinite(r)&&r>0?Math.floor(r):void 0}))},inputProps:{min:1},helperText:"Max agentic turns before a run stops (default 50). Process nodes can override this per-node."})]})}),(0,l.jsx)(f.Ay,{item:!0,xs:6,sx:{height:"100%"},children:(0,l.jsxs)(s.default,{sx:{display:"flex",flexDirection:"column",height:"100%",pl:2},children:[(0,l.jsx)(g.default,{variant:"h6",gutterBottom:!0,children:"Prompt Template"}),(0,l.jsx)(s.default,{sx:{flexGrow:1,display:"flex",flexDirection:"column",height:"calc(100% - 32px)"},children:(0,l.jsx)(Y.A,{ref:R,value:y.promptTemplate||"",onChange:e=>en("promptTemplate",e),label:"",height:"100%"})})]})})]}),D&&(0,l.jsxs)(s.default,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:400,bgcolor:"background.paper",boxShadow:24,p:4,borderRadius:1,zIndex:9999},children:[(0,l.jsx)(g.default,{variant:"h6",component:"h2",sx:{mb:2},children:"Bind to Global Variable"}),0===Object.keys(b).length?(0,l.jsx)(g.default,{sx:{mb:2},children:"No global variables available. Add some in Settings first."}):(0,l.jsx)(s.default,{sx:{maxHeight:300,overflow:"auto",mb:2},children:Object.entries(b).map(e=>{let[t,r]=e;return(0,l.jsx)(c.A,{onClick:()=>(e=>{T(!0),B(e),j(t=>({...t,ApiKey:"${global:".concat(e,"}")})),W(!1)})(t),fullWidth:!0,sx:{justifyContent:"flex-start",textAlign:"left",mb:1,p:1,"&:hover":{bgcolor:"action.hover"}},children:(0,l.jsxs)(s.default,{sx:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,l.jsx)(g.default,{children:t}),(0,l.jsx)(g.default,{variant:"body2",color:"text.secondary",children:t.toLowerCase().includes("key")||t.toLowerCase().includes("secret")||t.toLowerCase().includes("token")||t.toLowerCase().includes("password")?"********":"object"==typeof r&&null!==r&&"value"in r?r.value:r})]})},t)})}),(0,l.jsx)(s.default,{sx:{display:"flex",justifyContent:"flex-end"},children:(0,l.jsx)(c.A,{onClick:()=>W(!1),children:"Cancel"})})]})]}),(0,l.jsxs)(L.A,{children:[(0,l.jsx)(c.A,{onClick:m,children:"Cancel"}),(0,l.jsx)(c.A,{type:"submit",variant:"contained",color:"primary",children:"Save"})]})]})})};var er=r(94929);let el=(0,U.h)("app/models/ModelClient");function en(e){var t;let{initialModels:r}=e,x=(0,a.useRouter)(),f=(0,a.useSearchParams)(),[v,b]=(0,n.useState)(r),[g,y]=(0,n.useState)(""),[j,A]=(0,n.useState)(null),[w,k]=(0,n.useState)(!1),[S,C]=(0,n.useState)(!1),[U,T]=(0,n.useState)(null),I="1"===f.get("add");if((0,n.useEffect)(()=>{I?T(e=>null!=e?e:{id:(0,m.A)(),name:"",displayName:"",description:"",ApiKey:"",baseUrl:"",provider:"openai",promptTemplate:"",temperature:"0.0"}):T(null)},[I]),(0,n.useEffect)(()=>{try{let e=(0,N.X)();e&&"function"==typeof e.loadModels&&(C(!0),el.debug("Model service is ready"))}catch(t){el.warn("Model service not ready, retrying...",t);let e=setTimeout(()=>{try{let e=(0,N.X)();e&&"function"==typeof e.loadModels&&(C(!0),el.debug("Model service is now ready"))}catch(e){el.warn("Model service still not ready",e)}},100);return()=>clearTimeout(e)}},[]),!S)return el.debug("Waiting for model service to be ready..."),(0,l.jsx)(er.default,{});let P=f.get("edit"),M=I?U:P&&null!=(t=v.find(e=>e.id===P))?t:null,K=I?!!U:!!P,L=async e=>{el.info("Saving model",{modelId:e.id,modelName:e.name,mode:I?"add":"update"}),k(!0);try{let t=(0,N.X)(),r=I?await t.addModel(e):await t.updateModel(e);if(!r.success)return A(r.error||"Failed to save model."),{success:!1,error:r.error};{let e=await t.loadModels();return b(e),T(null),x.push("/models"),{success:!0,model:r.model}}}catch(e){return el.error("Failed to save model",e),A((null==e?void 0:e.message)||"Failed to save model. Please try again."),{success:!1,error:(null==e?void 0:e.message)||"Failed to save model"}}finally{k(!1)}},B=async e=>(el.info("Editing model",{modelId:e.id,modelName:e.name}),x.push("/models?edit=".concat(e.id)),{success:!0}),D=async()=>{el.info("Opening add-model modal"),x.push("/models?add=1")},W=async e=>{el.info("Deleting model",{modelId:e}),k(!0);try{let t=(0,N.X)();await t.deleteModel(e);let r=await t.loadModels();b(r)}catch(e){el.error("Failed to delete model",e),A("Failed to delete model. Please try again.")}finally{k(!1)}},O=async()=>{T(null),x.push("/models")},E=g.trim()?v.filter(e=>{let t=g.toLowerCase();return(e.displayName||"").toLowerCase().includes(t)||(e.name||"").toLowerCase().includes(t)}):v;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.A,{elevation:1,sx:{mb:2,p:1},children:(0,l.jsxs)(s.default,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:1,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,l.jsx)(o.A,{placeholder:"Search models...",variant:"outlined",size:"small",value:g,onChange:e=>y(e.target.value),InputProps:{startAdornment:(0,l.jsx)(d.A,{position:"start",children:(0,l.jsx)(h.A,{fontSize:"small"})})},sx:{maxWidth:{sm:300},width:"100%"}}),(0,l.jsx)(c.A,{variant:"contained",color:"primary",startIcon:(0,l.jsx)(p.A,{}),onClick:D,"data-tour":"add-model",children:"Add Model"})]})}),j&&(0,l.jsx)(s.default,{sx:{mb:2},children:(0,l.jsx)(u.A,{severity:"error",onClose:()=>A(null),children:j})}),(0,l.jsx)(R,{models:E,isLoading:w,onAdd:D,onUpdate:B,onDelete:W}),K&&M?(0,l.jsx)(et,{open:K,model:M,onSave:L,onClose:O}):null]})}},32098:()=>{},52397:(e,t,r)=>{"use strict";r.d(t,{RJ:()=>n,gF:()=>l});let l="masked:********",n="********"},61033:(e,t,r)=>{"use strict";r.d(t,{A$:()=>c,X8:()=>s,YP:()=>u,js:()=>d});let l="_-_-_",n=/^(tool|resource):(.+)$/,a=/\$\{((?:tool|resource):[^}]+|_-_-_[^}]+)\}/g;function i(e,t){return"".concat(e,"__").concat(t)}function s(e,t,r){return"${".concat(e,":").concat(i(t,r),"}")}function o(e){let t=n.exec(e);if(t){let e=t[1],r=function(e){let t=e.indexOf("__");if(t<=0)return null;let r=e.slice(t+2);return r?{server:e.slice(0,t),name:r}:null}(t[2]);return r?{kind:e,server:r.server,name:r.name}:null}if(e.startsWith(l)){let t=e.split(l);if(3===t.length&&t[1]&&t[2])return{kind:"tool",server:t[1],name:t[2]}}return null}function d(e){return e.startsWith("${")&&e.endsWith("}")?o(e.slice(2,-1)):null}function c(e){let t,r=[];for(a.lastIndex=0;null!==(t=a.exec(e));){let e=o(t[1]);e&&r.push({...e,fullMatch:t[0],index:t.index})}return r}function u(e){return"tool"===e.kind&&"handoff"===e.server?"handoff:".concat(e.name):"".concat(e.kind,":").concat(i(e.server,e.name))}},67034:(e,t,r)=>{Promise.resolve().then(r.bind(r,94049)),Promise.resolve().then(r.bind(r,25635)),Promise.resolve().then(r.bind(r,24437)),Promise.resolve().then(r.bind(r,36552)),Promise.resolve().then(r.bind(r,13975)),Promise.resolve().then(r.bind(r,94929))},94929:(e,t,r)=>{"use strict";r.d(t,{default:()=>i});var l=r(95155);r(12115);var n=r(94049),a=r(4474);let i=e=>{let{size:t="medium",color:r="primary",className:i="",sx:s={}}=e,o="white"===r?{color:"#fff",...s}:s;return(0,l.jsxs)(n.default,{component:"span",sx:{display:"inline-block",lineHeight:0,...o},className:i,role:"status",children:[(0,l.jsx)(a.default,{size:{small:16,medium:24,large:36}[t],color:"white"===r?"inherit":r,"aria-hidden":"true"}),(0,l.jsx)(n.default,{component:"span",sx:{position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:0},children:"Loading..."})]})}},95480:(e,t,r)=>{"use strict";r.d(t,{A:()=>U});var l=r(95155),n=r(12115),a=r(87021),i=r(63941),s=r(29985),o=r(80372),d=r(94049),c=r(25635),u=r(3139),p=r(57883),h=r(2300),m=r(89218),x=r(42063),f=r(17897);r(32098);var v=r(61033);let b=(0,a.h)("frontend/components/shared/PromptBuilder"),g=e=>{b.debug("Deserializing markdown to Slate value");let t=e.split("\n").map(e=>({type:"paragraph",children:(e=>{let t=(0,v.A$)(e);if(0===t.length)return[{text:e}];let r=[],l=0;for(let n of t)n.index>l&&r.push({text:e.slice(l,n.index)}),r.push({type:"binding-reference",kind:n.kind,server:n.server,name:n.name,children:[{text:""}]}),l=n.index+n.fullMatch.length;return l<e.length&&r.push({text:e.slice(l)}),r})(e)}));return t.length>0?t:[{type:"paragraph",children:[{text:""}]}]},y=e=>{b.debug("Serializing Slate value to markdown");let t=0,r=e.map(e=>e.children?e.children.map(e=>i.EY.isText(e)?e.text:"binding-reference"===e.type?(t++,(0,v.X8)(e.kind,e.server,e.name)):"").join(""):"").join("\n");return t>0&&b.debug("Serialized ".concat(t," binding references")),r},j=e=>{let{attributes:t,children:r,element:n}=e;return"binding-reference"===n.type?(0,l.jsxs)("span",{...t,className:"tool-reference-wrapper",children:[(0,l.jsx)(()=>{let e=(0,s.Zi)(),t=(e=>"tool"===e.kind&&"handoff"===e.server)(n),r="resource"===n.kind?"resource":t?"handoff":"",a=()=>{let t=s.rL.findPath(e,n);b.debug("Removing binding reference: ".concat(n.kind,":").concat(n.server,":").concat(n.name)),i.gB.removeNodes(e,{at:t})};return(0,l.jsxs)("span",{contentEditable:!1,className:"tool-reference-container ".concat(r),children:[(0,l.jsx)("span",{className:"tool-reference ".concat(r),children:(0,v.YP)(n)}),(0,l.jsx)("span",{className:"tool-reference-delete ".concat(r),role:"button",tabIndex:0,onClick:e=>{e.preventDefault(),e.stopPropagation(),a()},onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),e.stopPropagation(),a())},children:"\xd7"})]})},{}),r," "]}):(0,l.jsx)("p",{...t,children:r})},A=e=>{let{attributes:t,children:r,leaf:n}=e,a=r;return n.bold&&(a=(0,l.jsx)("strong",{children:a})),n.italic&&(a=(0,l.jsx)("em",{children:a})),n.code&&(a=(0,l.jsx)("code",{children:a})),(0,l.jsx)("span",{...t,children:a})},w=e=>{let{server:t,name:r}=e,a="handoff"===t,[i,s]=(0,n.useState)(null),[o,d]=(0,n.useState)(!0);return((0,n.useEffect)(()=>{let e=!1;return(async()=>{try{var l;d(!0);let n=null==(l=(await f.S.listServerTools(t)).tools)?void 0:l.find(e=>e.name===r);e||s(n||null)}catch(e){b.error("Failed to fetch tool info for ".concat(t,":").concat(r),e)}finally{e||d(!1)}})(),()=>{e=!0}},[t,r]),o)?(0,l.jsx)("span",{className:"tool-reference-preview loading ".concat(a?"handoff":""),children:"tool:".concat(t,"__").concat(r)}):i?(0,l.jsxs)("span",{className:"tool-reference-preview ".concat(a?"handoff":""),children:["[The user is referencing a ",a?"handoff":"tool"," `tool:",t,"__",r,"` (",i.description||"No description",")]"]}):(0,l.jsx)("span",{className:"tool-reference-preview not-found ".concat(a?"handoff":""),children:"tool:".concat(t,"__").concat(r," (Tool not found)")})},k=e=>{let{server:t,name:r}=e,[a,i]=(0,n.useState)(null),[s,o]=(0,n.useState)(!0);return((0,n.useEffect)(()=>{let e=!1;return(async()=>{try{o(!0);let l=await f.S.listServerResources(t),n=[...l.resources||[],...l.resourceTemplates||[]].find(e=>e.uri===r||e.uriTemplate===r);e||i((null==n?void 0:n.description)||(null==n?void 0:n.name)||null)}catch(e){b.error("Failed to fetch resource info for ".concat(t,":").concat(r),e)}finally{e||o(!1)}})(),()=>{e=!0}},[t,r]),s)?(0,l.jsx)("span",{className:"tool-reference-preview loading resource",children:"resource:".concat(t,"__").concat(r)}):(0,l.jsxs)("span",{className:"tool-reference-preview resource",children:["[The contents of resource `",r,"` from `",t,"`",a?" (".concat(a,")"):""," will be inserted here]"]})},S=e=>{let{binding:t}=e;return"resource"===t.kind?(0,l.jsx)(k,{server:t.server,name:t.name}):(0,l.jsx)(w,{server:t.server,name:t.name})},C=e=>{let{value:t}=e;b.debug("Rendering preview");let r=[],n=0;for(let e of(0,v.A$)(t))e.index>n&&r.push({type:"text",value:t.slice(n,e.index)}),r.push({type:"binding",binding:e,key:e.index}),n=e.index+e.fullMatch.length;n<t.length&&r.push({type:"text",value:t.slice(n)});let a=[],i=[],s=()=>{a.push((0,l.jsx)("p",{children:i},"p-".concat(a.length))),i=[]};for(let e of r)if("text"===e.type){let t=e.value.split("\n");for(let e=0;e<t.length;e++)i.push(t[e]),e<t.length-1&&s()}else i.push((0,l.jsx)(S,{binding:e.binding},"binding-".concat(e.key)));return i.length>0&&s(),(0,l.jsx)("div",{className:"preview-content",children:a})},N=(0,n.forwardRef)((e,t)=>{let{value:r,onChange:a,label:f="Prompt Builder",height:w=300,onModeChange:k,customPreviewRenderer:S}=e;b.info("PromptBuilder initialized");let N=(0,n.useMemo)(()=>{let e=(0,o.$k)((0,s.o$)((0,i.ie)())),{isInline:t,isVoid:r}=e;return e.isInline=e=>"binding-reference"===e.type||t(e),e.isVoid=e=>"binding-reference"===e.type||r(e),e},[]),[U,T]=(0,n.useState)("raw"),[I,P]=(0,n.useState)(()=>g(r||"")),M=(0,n.useRef)(!1),[,K]=(0,n.useState)(0);(0,n.useImperativeHandle)(t,()=>({insertText:e=>{b.info("insertText called with text length: ".concat(e.length));let t=(0,v.js)(e);if(t){b.info("Inserting ".concat(t.kind," reference: ").concat(t.server,":").concat(t.name));let e={type:"binding-reference",kind:t.kind,server:t.server,name:t.name,children:[{text:""}]};N.selection||i.gB.select(N,i.KE.end(N,[])),i.gB.insertNodes(N,e),i.gB.move(N),K(e=>e+1),P([...N.children])}else N.selection||i.gB.select(N,i.KE.end(N,[])),i.gB.insertText(N,e);a(y(N.children)),b.info("insertText completed successfully")},getMode:()=>U})),(0,n.useEffect)(()=>{y(I)!==y(g(r||""))&&(b.debug("External value change detected"),M.current=!0,P(g(r||"")))},[r,I]);let L=(0,n.useCallback)(e=>{if(M.current){M.current=!1;return}P(e),a(y(e))},[a]);return(0,l.jsxs)(d.default,{sx:{width:"100%",height:"100%",display:"flex",flexDirection:"column"},children:[f&&(0,l.jsx)(c.default,{variant:"subtitle1",gutterBottom:!0,sx:{fontWeight:"medium",mb:1},children:f}),(0,l.jsx)(d.default,{sx:{mb:1},children:(0,l.jsxs)(u.A,{value:U,exclusive:!0,onChange:(e,t)=>{null!==t&&(b.info("Mode changed from ".concat(U," to ").concat(t)),T(t),k&&k(t))},size:"small",children:[(0,l.jsxs)(p.A,{value:"raw",children:[(0,l.jsx)(m.A,{fontSize:"small",sx:{mr:.5}}),"Raw"]}),(0,l.jsxs)(p.A,{value:"preview",children:[(0,l.jsx)(x.A,{fontSize:"small",sx:{mr:.5}}),"Preview"]})]})}),(0,l.jsx)(h.A,{elevation:0,sx:{border:"1px solid rgba(0, 0, 0, 0.12)",borderRadius:1,overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column"},children:"raw"===U?(0,l.jsx)(d.default,{className:"slate-editor-container",sx:{height:"number"==typeof w?w:"100%",overflow:"auto",p:2},children:(0,l.jsx)(s.A,{editor:N,initialValue:I,onChange:L,children:(0,l.jsx)(s.Fo,{className:"slate-editor",renderElement:j,renderLeaf:A,placeholder:"Write your prompt here..."})})}):S?(0,l.jsx)(d.default,{className:"custom-preview-container",sx:{height:"number"==typeof w?w:"100%",overflow:"auto"},children:S()}):(0,l.jsx)(d.default,{className:"preview-container",sx:{height:"number"==typeof w?w:"100%",overflow:"auto",p:2},children:(0,l.jsx)(C,{value:r})})})]})});N.displayName="PromptBuilder";let U=N}},e=>{e.O(0,[1137,7926,2678,4754,9244,8548,690,9562,2003,488,3272,5648,3077,2624,9718,9164,2380,8441,1255,7358],()=>e(e.s=67034)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974,9195],{55090:(e,t,n)=>{Promise.resolve().then(n.bind(n,89547))},69195:(e,t,n)=>{"use strict";n.r(t),n.d(t,{TourProvider:()=>d,useTour:()=>l});var a=n(95155),o=n(12115),i=n(9164),r=n(77326);let s=(0,n(87021).h)("frontend/contexts/TourContext"),c=(0,o.createContext)({isActive:!1,stepIndex:0,startTour:()=>{},next:()=>{},back:()=>{},endTour:()=>{}}),l=()=>(0,o.useContext)(c),d=e=>{var t;let{children:n}=e,{settings:l,updateSettings:d,isLoading:u}=(0,i.useStorage)(),[h,p]=(0,o.useState)(!1),[f,g]=(0,o.useState)(0),m=(0,o.useRef)(!1),y=(0,o.useCallback)(()=>{var e;d({...l,onboarding:{...null!=(e=l.onboarding)?e:{},completed:!0}}).catch(e=>s.warn("Failed to persist onboarding completion",e))},[l,d]),b=(0,o.useCallback)(()=>{s.info("Starting guided tour"),g(0),p(!0)},[]),v=(0,o.useCallback)(()=>{s.info("Ending guided tour"),p(!1),y()},[y]),w=(0,o.useCallback)(()=>{g(e=>e>=r.$.length-1?(p(!1),y(),e):e+1)},[y]),k=(0,o.useCallback)(()=>{g(e=>Math.max(0,e-1))},[]);return(0,o.useEffect)(()=>{var e;u||m.current||(m.current=!0,(null==(e=l.onboarding)?void 0:e.completed)!==!0&&(s.info("First run detected — auto-starting guided tour"),b()))},[u,null==(t=l.onboarding)?void 0:t.completed,b]),(0,a.jsx)(c.Provider,{value:{isActive:h,stepIndex:f,startTour:b,next:w,back:k,endTour:v},children:n})}},77326:(e,t,n)=>{"use strict";n.d(t,{$:()=>a});let a=[{id:"welcome",path:"/",placement:"center",title:"Welcome to FLUJO \uD83D\uDC4B",body:"This quick tour walks you through going from zero to a running AI flow.\n\nYou'll add a model, connect a tool server, build a flow, and run it in chat. It takes about a minute — you can skip any time."},{id:"add-model",path:"/models",target:'[data-tour="add-model"]',placement:"bottom",title:"1. Add a model",body:'FLUJO needs at least one AI model to think with. Click "Add Model" to configure one.\n\nTip: an OpenRouter API key gives you access to several free models — paste the key, name the model, pick a free one, and add a custom instruction.'},{id:"add-mcp-server",path:"/mcp",target:'[data-tour="add-mcp-server"]',placement:"bottom",title:"2. Connect a tool server (MCP)",body:'MCP servers give your model real tools — file access, image generation, web search, and more.\n\nClick "Add Server" and install the "Everything" reference server to try the full range of capabilities while you learn.'},{id:"new-flow",path:"/flows",target:'[data-tour="new-flow"]',placement:"bottom",title:"3. Build a flow",body:'A flow wires everything together. Click "New Flow" to open the builder.\n\nConnect Start → Process → Finish, attach your model to the Process node, and bind the Everything MCP server so the model can use its tools.'},{id:"chat-input",path:"/chat",target:'[data-tour="chat-input"]',placement:"top",title:"4. Run it in chat",body:"Pick your flow from the selector, then send a message here.\n\nTry asking it to generate an image with the MCP server and tell you a joke — you'll see the flow execute live, step by step."},{id:"docs",path:"/chat",target:'[data-tour="nav-docs"]',placement:"bottom",title:"Need the API?",body:"FLUJO exposes an OpenAI-compatible API and a full REST surface. The Docs page lists every endpoint with its method, parameters, and response shape.\n\nYou can re-run this tour any time from Settings → Onboarding."},{id:"finish",path:"/chat",placement:"center",title:"You're all set \uD83C\uDF89",body:"That's the whole loop: models, tools, flows, and chat.\n\nExplore at your own pace — and remember the Docs page and Settings are there when you need them."}]},87021:(e,t,n)=>{"use strict";n.d(t,{h:()=>c});let a={LOG_LEVEL:3},o={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},i="number"==typeof a.LOG_LEVEL?a.LOG_LEVEL:o.ERROR;function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>6)return String(e);if(!(e instanceof Error))return e;let n={name:e.name,message:e.message};for(let a of Object.getOwnPropertyNames(e)){if("name"===a||"message"===a)continue;let o=e[a];"function"!=typeof o&&("stack"===a?n.stack=o:"cause"===a?n.cause=r(o,t+1):"errors"===a&&Array.isArray(o)?n.errors=o.map(e=>r(e,t+1)):n[a]=o)}return n}function s(e,t,n,a,s){if(e>=("number"==typeof s?s:i)){if("function"==typeof a)try{a=a()}catch(e){a="[lazy log data threw]"}let i=new Date().toISOString(),s="[".concat(i,"] [").concat(t,"]"),c="".concat(s," ").concat(n);if(void 0!==a)if(a instanceof Error||"object"==typeof a)try{let e=a instanceof Error?r(a):a,t=JSON.stringify(e,(e,t)=>t instanceof Error?r(t):t,2);c+=":\n".concat(t)}catch(e){c+=": [Object cannot be stringified]"}else c+=": ".concat(a);switch(e){case o.VERBOSE:console.debug("[VERBOSE] ".concat(c));break;case o.DEBUG:console.debug(c);break;case o.INFO:console.info(c);break;case o.WARN:console.warn(c);break;case o.ERROR:console.error(c);break;default:console.log(c)}}}function c(e,t){let n,a=((n=e.replace(/^src\//,"")).startsWith("/")&&(n=n.substring(1)),n);return{verbose:(e,n)=>{s(o.VERBOSE,a,e,n,t)},debug:(e,n)=>{s(o.DEBUG,a,e,n,t)},info:(e,n)=>{s(o.INFO,a,e,n,t)},warn:(e,n)=>{s(o.WARN,a,e,n,t)},error:(e,n)=>{s(o.ERROR,a,e,n,t)}}}},89547:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>k});var a=n(95155),o=n(97322),i=n(22003),r=n(70690),s=n(4474),c=n(94049),l=n(25635),d=n(33077),u=n(2300),h=n(52619),p=n.n(h),f=n(15239),g=n(12115),m=n(87021),y=n(9164),b=n(69195);let v=(0,m.h)("app/page"),w=[{title:"Model Management",description:"Securely store and manage your AI model configurations and API keys.",icon:"/file.svg",link:"/models"},{title:"MCP Integration",description:"Connect and manage MCP servers with environment variables and tool testing.",icon:"/globe.svg",link:"/mcp"},{title:"Flow Builder",description:"Create and manage visual flows for your AI applications.",icon:"/window.svg",link:"/flows"}];function k(){var e;v.debug("Rendering HomePage");let{settings:t}=(0,y.useStorage)(),{startTour:n}=(0,b.useTour)(),[h,m]=(0,g.useState)(!0),[k,x]=(0,g.useState)(!1),[E,O]=(0,g.useState)(null),[A,S]=(0,g.useState)(!1),[j,C]=(0,g.useState)(null),R=(0,g.useRef)(!1);(0,g.useEffect)(()=>{var e;(null==t||null==(e=t.update)?void 0:e.checkOnStartup)&&!R.current&&(R.current=!0,(async()=>{try{v.info("Checking for FLUJO updates");let e=await fetch("/api/update");if(!e.ok)return;let t=await e.json();t.updateAvailable&&O({behindBy:t.behindBy,branch:t.branch})}catch(e){v.warn("Update check failed",e)}})())},[null==t||null==(e=t.update)?void 0:e.checkOnStartup]);let P=async()=>{S(!0),C(null);try{let e=await fetch("/api/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"apply"})}),t=await e.json();if(!e.ok||!1===t.success){C(t.error||"Update failed."),S(!1);return}if(t.restarting){let e=!1,t=async()=>{try{if((await fetch("/api/cwd",{cache:"no-store"})).ok&&e)return void window.location.reload()}catch(t){e=!0}setTimeout(t,3e3)};setTimeout(t,5e3)}else S(!1),O(null)}catch(e){v.error("Update failed",e),C("Update failed."),S(!1)}};return(0,g.useEffect)(()=>{v.info("Checking encryption status"),(async()=>{try{v.debug("Fetching encryption initialization status");let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_initialized"})});if(e.ok){let t=await e.json();if(v.debug("Encryption initialization status received",{initialized:t.initialized}),m(!0===t.initialized),!0===t.initialized){v.debug("Checking if user encryption is enabled");let e=await fetch("/api/encryption/secure",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check_user_encryption"})});if(e.ok){let t=await e.json();v.debug("User encryption status received",{userEncryption:t.userEncryption}),x(!0===t.userEncryption)}}}else v.error("Failed to check encryption status"),m(!1)}catch(e){v.error("Error checking encryption status",e),m(!1)}})()},[]),(0,a.jsxs)(o.A,{maxWidth:"lg",sx:{py:8},children:[E&&(0,a.jsx)(i.A,{severity:"info",sx:{mb:4},action:(0,a.jsx)(r.A,{color:"inherit",size:"small",onClick:P,disabled:A,startIcon:A?(0,a.jsx)(s.default,{size:16,color:"inherit"}):void 0,children:A?"Updating…":"Update now"}),children:A?"Updating FLUJO and restarting — the page will reload automatically.":"A FLUJO update is available (".concat(E.behindBy," new commit").concat(1===E.behindBy?"":"s"," on ").concat(E.branch,").")}),j&&(0,a.jsx)(i.A,{severity:"error",sx:{mb:4},onClose:()=>C(null),children:j}),h?k?null:(0,a.jsxs)(i.A,{severity:"info",sx:{mb:4},children:["Your data is protected with default encryption. For enhanced security, set a custom encryption password in the ",(0,a.jsx)(p(),{href:"/settings",children:"settings"}),"."]}):(0,a.jsxs)(i.A,{severity:"warning",sx:{mb:4},children:["Warning: Encryption is not initialized. Sensitive data may not be properly protected. Please visit the ",(0,a.jsx)(p(),{href:"/settings",children:"settings"})," page."]}),(0,a.jsxs)(c.default,{sx:{textAlign:"center",mb:8},children:[(0,a.jsx)(l.default,{variant:"h2",component:"h1",gutterBottom:!0,children:"FLUJO"}),(0,a.jsx)(l.default,{variant:"h5",color:"text.secondary",sx:{mb:4},children:"A browser-based application for managing models, MCP servers, flows and chat interactions"}),(0,a.jsx)(r.A,{variant:"contained",size:"large",sx:{mr:2},onClick:n,children:"Get Started"})]}),(0,a.jsx)(d.Ay,{container:!0,spacing:4,children:w.map(e=>(0,a.jsx)(d.Ay,{item:!0,xs:12,md:4,children:(0,a.jsxs)(u.A,{component:p(),href:e.link,sx:{p:4,height:"100%",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",textDecoration:"none",color:"text.primary",transition:"transform 0.2s","&:hover":{transform:"translateY(-4px)"}},children:[(0,a.jsx)(c.default,{sx:{mb:2,width:48,height:48,position:"relative"},children:(0,a.jsx)(f.default,{src:e.icon,alt:e.title,fill:!0,style:{objectFit:"contain"}})}),(0,a.jsx)(l.default,{variant:"h5",component:"h2",gutterBottom:!0,children:e.title}),(0,a.jsx)(l.default,{color:"text.secondary",children:e.description})]})},e.title))})]})}}},e=>{e.O(0,[2678,4754,9244,8548,690,2003,3077,2619,2720,9164,8441,1255,7358],()=>e(e.s=55090)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4662,9195],{8209:(e,t,r)=>{Promise.resolve().then(r.bind(r,46487))},9352:(e,t,r)=>{"use strict";r.d(t,{Ic:()=>s,kY:()=>o});var n=r(26796);let a=(0,r(87021).h)("frontend/utils/theme"),o={light:{background:"#FFFFFF",foreground:"#2C3E50",paperBackground:"#F5F6FA",textSecondary:"#7F8C8D",border:"#e5e7eb",heading:"#111",text:"#333",secondaryText:"#666",error:{background:"#fef2f2",border:"#fecaca",text:"#dc2626"}},dark:{background:"#1a1a1a",foreground:"#f0f0f0",paperBackground:"#2a2a2a",textSecondary:"#aaaaaa",border:"#3a3a3a",heading:"#f8f8f8",text:"#f0f0f0",secondaryText:"#aaa",error:{background:"#3a2222",border:"#5a3333",text:"#f87171"}}};function s(){let{isDarkMode:e}=(0,n.useTheme)();return a.debug("useThemeUtils called with isDarkMode: ".concat(e)),{getThemeValue:(t,r)=>e?r:t,getThemeColor:t=>{let r=t.split("."),n=o[e?"dark":"light"];for(let e of r)if(!n||"object"!=typeof n||!(e in n))return a.warn("Theme color path not found: ".concat(t)),"";else n=n[e];return n},colors:e?o.dark:o.light,isDarkMode:e}}},26796:(e,t,r)=>{"use strict";r.r(t),r.d(t,{ThemeProvider:()=>p,useTheme:()=>x});var n=r(95155),a=r(12115),o=r(87021),s=r(7160),i=r(29197),l=r(9352),d=r(84563),c=r(29692);let u=(0,o.h)("frontend/contexts/ThemeContext"),h=(0,a.createContext)(void 0),p=e=>{let{children:t}=e,[r,o]=(0,a.useState)(!1),[p,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{u.debug("Loading theme preference from storage");let e=await (0,c.YM)(c.Zg.THEME,"light");u.info("Theme loaded from storage: ".concat(e));let t="dark"===e;x(t),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),o(!0)})()},[]);let m=(0,a.useMemo)(()=>(function(e){let t="dark"===e?l.kY.dark:l.kY.light;return(0,i.A)({palette:{mode:e,primary:{main:"#007bff"},secondary:{main:"#6c757d"},error:{main:"dark"===e?"#f87171":"#dc2626",light:"dark"===e?"#5a3333":"#fecaca",dark:"dark"===e?"#3a2222":"#b91c1c"},warning:{main:"#f59e0b"},info:{main:"#3b82f6"},success:{main:"dark"===e?"#4ade80":"#16a34a"},background:{default:t.background,paper:t.paperBackground},text:{primary:t.foreground,secondary:t.textSecondary}},typography:{fontFamily:"var(--font-geist-sans), Arial, sans-serif",h1:{fontWeight:700},h2:{fontWeight:700},h3:{fontWeight:600},h4:{fontWeight:600},h5:{fontWeight:600},h6:{fontWeight:600}},components:{MuiButton:{styleOverrides:{root:{textTransform:"none",borderRadius:"0.375rem"}}},MuiPaper:{styleOverrides:{root:{borderRadius:"0.5rem"}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:"0.375rem"}}}},MuiCard:{styleOverrides:{root:{borderRadius:"0.5rem",boxShadow:"dark"===e?"0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -1px rgba(0, 0, 0, 0.1)":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"}}}}})})(p?"dark":"light"),[p]);return u.debug("Rendering ThemeProvider with isDarkMode: ".concat(p)),(0,n.jsx)(h.Provider,{value:{toggleTheme:()=>{x(e=>{let t=!e,r=t?"dark":"light";return u.info("Toggling theme to: ".concat(r)),t?document.documentElement.classList.add("dark-theme"):document.documentElement.classList.remove("dark-theme"),(0,c.VH)(c.Zg.THEME,r),t})},isDarkMode:p},children:(0,n.jsxs)(s.A,{theme:m,children:[(0,n.jsx)(d.Ay,{}),t]})})},x=()=>{let e=(0,a.useContext)(h);if(!e)throw u.error("useTheme hook used outside of ThemeProvider"),Error("useTheme must be used within a ThemeProvider");return u.debug("useTheme hook accessed"),e}},46487:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>er});var n=r(95155),a=r(94049),o=r(12115),s=r(25635),i=r(98267),l=r(20537),d=r(37960),c=r(63186),u=r(22003),h=r(28548),p=r(2300),x=r(9562),m=r(56422),b=r(41983),f=r(70690),g=r(21422),y=r(87830),v=r(68212),j=r(42063),k=r(9164);function w(){let{setKey:e,changeKey:t,verifyKey:r,isEncryptionInitialized:i,isUserEncryptionEnabled:l}=(0,k.useStorage)(),[d,c]=(0,o.useState)(""),[w,A]=(0,o.useState)(""),[S,C]=(0,o.useState)(!1),[E,R]=(0,o.useState)(""),[T,O]=(0,o.useState)(""),[F,P]=(0,o.useState)(!1),[I,B]=(0,o.useState)(!1),[W,M]=(0,o.useState)(null),[L,D]=(0,o.useState)(!1),[U,V]=(0,o.useState)(!1),[z,N]=(0,o.useState)(!1);(0,o.useEffect)(()=>{(async()=>{let e=await i(),t=await l();D(e),V(t)})()},[i,l]);let G=async t=>{t.preventDefault(),N(!0),M(null);try{if(d.length<12){M({type:"error",text:"Encryption password must be at least 12 characters long for security"}),N(!1);return}if(d!==w){M({type:"error",text:"Passwords do not match"}),N(!1);return}await e(d),M({type:"success",text:"Encryption password set successfully"}),c(""),A(""),D(!0)}catch(e){M({type:"error",text:"Failed to set encryption password"})}finally{N(!1)}},Y=async e=>{e.preventDefault(),N(!0),M(null);try{if(T.length<12){M({type:"error",text:"New password must be at least 12 characters long for security"}),N(!1);return}if(!await r(E)){M({type:"error",text:"Current password is incorrect"}),N(!1);return}await t(E,T)?(M({type:"success",text:"Encryption password changed successfully"}),R(""),O("")):M({type:"error",text:"Failed to change encryption password"})}catch(e){M({type:"error",text:"An error occurred while changing the password"})}finally{N(!1)}};return(0,n.jsxs)(a.default,{sx:{width:"100%"},children:[(0,n.jsx)(s.default,{variant:"h6",gutterBottom:!0,children:"Encryption Settings"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"Set an encryption password to secure sensitive data like API keys and credentials. This password is used to encrypt your data and is never stored directly."}),W&&(0,n.jsx)(u.A,{severity:W.type,sx:{mb:3},children:W.text}),(0,n.jsxs)(a.default,{sx:{display:"flex",alignItems:"center",mb:3},children:[(0,n.jsx)(s.default,{variant:"body1",sx:{mr:2},children:"Current encryption status:"}),L?U?(0,n.jsx)(h.A,{icon:(0,n.jsx)(g.A,{}),label:"Custom Password Protection",color:"success",variant:"outlined"}):(0,n.jsx)(h.A,{icon:(0,n.jsx)(y.A,{}),label:"Default Encryption",color:"primary",variant:"outlined"}):(0,n.jsx)(h.A,{label:"No Encryption",color:"error",variant:"outlined"})]}),L&&U?U?(0,n.jsxs)(p.A,{elevation:2,sx:{p:3},children:[(0,n.jsx)(s.default,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:"Change Encryption Password"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"You can change your custom encryption password here. This will re-encrypt your data with the new password. Your data will remain intact."}),(0,n.jsxs)(a.default,{component:"form",onSubmit:Y,children:[(0,n.jsx)(x.A,{fullWidth:!0,label:"Current Password",variant:"outlined",value:E,onChange:e=>R(e.target.value),type:F?"text":"password",InputProps:{endAdornment:(0,n.jsx)(m.A,{position:"end",children:(0,n.jsx)(b.A,{"aria-label":"toggle current password visibility",onClick:()=>P(!F),edge:"end",children:F?(0,n.jsx)(v.A,{}):(0,n.jsx)(j.A,{})})})},sx:{mb:2}}),(0,n.jsx)(x.A,{fullWidth:!0,label:"New Password",variant:"outlined",value:T,onChange:e=>O(e.target.value),type:I?"text":"password",InputProps:{endAdornment:(0,n.jsx)(m.A,{position:"end",children:(0,n.jsx)(b.A,{"aria-label":"toggle new password visibility",onClick:()=>B(!I),edge:"end",children:I?(0,n.jsx)(v.A,{}):(0,n.jsx)(j.A,{})})})},sx:{mb:3}}),(0,n.jsx)(f.A,{type:"submit",variant:"contained",color:"primary",disabled:!E||!T||z,children:"Change Password"})]})]}):null:(0,n.jsxs)(p.A,{elevation:2,sx:{p:3,mb:4},children:[(0,n.jsx)(s.default,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:"Set Custom Encryption Password"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:L?"Your data is currently protected with default encryption. Set a custom password for enhanced security.":"Create a strong password to protect your sensitive data. Make sure to remember this password as it cannot be recovered if lost."}),(0,n.jsxs)(a.default,{component:"form",onSubmit:G,children:[(0,n.jsx)(x.A,{fullWidth:!0,label:"New Password",variant:"outlined",value:d,onChange:e=>c(e.target.value),type:S?"text":"password",InputProps:{endAdornment:(0,n.jsx)(m.A,{position:"end",children:(0,n.jsx)(b.A,{"aria-label":"toggle password visibility",onClick:()=>C(!S),edge:"end",children:S?(0,n.jsx)(v.A,{}):(0,n.jsx)(j.A,{})})})},sx:{mb:2}}),(0,n.jsx)(x.A,{fullWidth:!0,label:"Confirm Password",variant:"outlined",value:w,onChange:e=>A(e.target.value),type:S?"text":"password",sx:{mb:3}}),(0,n.jsx)(f.A,{type:"submit",variant:"contained",color:"primary",disabled:!d||!w||z,children:L?"Upgrade to Custom Password":"Set Encryption Password"})]})]}),(0,n.jsx)(a.default,{sx:{mt:4},children:(0,n.jsxs)(u.A,{severity:U?"warning":"info",children:[(0,n.jsx)(s.default,{variant:"subtitle2",fontWeight:"bold",children:U?"Important Security Information":"About Default Encryption"}),U?(0,n.jsxs)(s.default,{variant:"body2",children:["• Your custom encryption password is never stored directly on the server",(0,n.jsx)("br",{}),"• If you forget your password, you will not be able to access your encrypted data",(0,n.jsx)("br",{}),"• Consider using a password manager to securely store this password"]}):(0,n.jsxs)(s.default,{variant:"body2",children:["• Your data is currently encrypted with a built-in default key",(0,n.jsx)("br",{}),"• This provides basic protection without requiring password setup",(0,n.jsx)("br",{}),"• For maximum security, set a custom password using the form above"]})]})})]})}var A=r(99944),S=r(9957),C=r(21067),E=r(26796),R=r(87021);let T=(0,R.h)("frontend/components/Settings/ThemeSettings");function O(){let{isDarkMode:e,toggleTheme:t}=(0,E.useTheme)();return T.debug("Rendering ThemeSettings with isDarkMode: ".concat(e)),(0,n.jsxs)(a.default,{sx:{maxWidth:600},children:[(0,n.jsx)(s.default,{variant:"h6",gutterBottom:!0,children:"Theme Settings"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Customize the application appearance"}),(0,n.jsx)(A.A,{control:(0,n.jsx)(S.A,{checked:e,onChange:t,name:"darkMode"}),label:"Dark Mode"}),(0,n.jsx)(C.A,{sx:{my:3}}),(0,n.jsx)(s.default,{variant:"subtitle1",gutterBottom:!0,children:"Theme CSS Variables"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"The following CSS variables are available for custom styling:"}),(0,n.jsx)(p.A,{sx:{p:2,mb:3},children:(0,n.jsx)(s.default,{variant:"body2",component:"pre",sx:{fontFamily:"var(--font-geist-mono)"},children:"/* Access in CSS */\n:root {\n /* Light theme variables (default) */\n --background: #FFFFFF;\n --foreground: #2C3E50;\n --paper-background: #F5F6FA;\n --text-secondary: #7F8C8D;\n}\n\n:root.dark-theme {\n /* Dark theme variables */\n --background: #1a1a1a;\n --foreground: #f0f0f0;\n --paper-background: #2a2a2a;\n --text-secondary: #aaaaaa;\n}\n\n/* Access in inline styles */\ncolor: var(--foreground);\nbackground: var(--background);"})}),(0,n.jsx)(s.default,{variant:"subtitle1",gutterBottom:!0,children:"Usage in Components"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Import the theme utilities to use theme-aware styling in your components:"}),(0,n.jsx)(p.A,{sx:{p:2},children:(0,n.jsx)(s.default,{variant:"body2",component:"pre",sx:{fontFamily:"var(--font-geist-mono)"},children:"// Using the useTheme hook\nimport { useTheme } from '@/frontend/contexts/ThemeContext';\n\nfunction MyComponent() {\n const { isDarkMode } = useTheme();\n \n return (\n <div>\n {isDarkMode ? 'Dark Mode' : 'Light Mode'}\n </div>\n );\n}\n\n// Using CSS variables in inline styles\nimport { getCssVar } from '@/frontend/utils';\n\nfunction StyledComponent() {\n return (\n <div style={{ \n color: getCssVar('foreground'),\n background: getCssVar('background')\n }}>\n Themed content\n </div>\n );\n}"})})]})}var F=r(71892),P=r(52397);function I(){let{globalEnvVars:e,setGlobalEnvVars:t,deleteGlobalEnvVar:r}=(0,k.useStorage)(),[i,l]=(0,o.useState)(null),d=async e=>{try{let r=Object.fromEntries(Object.entries(e).filter(e=>{let[t,r]=e;return"string"==typeof r||!r.metadata.isSecret||r.value!==P.gF}));await t(r),l({type:"success",text:"Global environment variables updated successfully"}),setTimeout(()=>{l(null)},3e3)}catch(e){l({type:"error",text:"Failed to update global environment variables"})}};return(0,n.jsxs)(a.default,{sx:{width:"100%"},children:[(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Define global environment variables that can be bound to MCP servers. This allows you to manage API keys and other sensitive information in one place."}),i&&(0,n.jsx)(u.A,{severity:i.type,sx:{mb:2},children:i.text}),(0,n.jsx)(F.A,{serverName:"Global",initialEnv:e,onSave:d,onDelete:r})]})}var B=r(17325),W=r(22822),M=r(4474),L=r(2778),D=r(52363),U=r(65036),V=r(50001),z=r(75912),N=r(27156);let G=(0,R.h)("frontend/components/Settings/BackupSettings"),Y=[{key:"models",label:"Models",description:"AI model configurations",storageKey:N.Z.MODELS},{key:"mcpServers",label:"MCP Servers Configuration",description:"MCP server settings",storageKey:N.Z.MCP_SERVERS},{key:"mcpServersFolder",label:"MCP Servers Folder",description:"MCP server code and files",isFolder:!0},{key:"flows",label:"Flows",description:"Flow configurations",storageKey:N.Z.FLOWS},{key:"chatHistory",label:"Chat History",description:"Conversation history",storageKey:N.Z.CHAT_HISTORY},{key:"settings",label:"Settings",description:"Application settings",storageKey:N.Z.THEME},{key:"globalEnvVars",label:"Global Environment Variables",description:"Global environment variables",storageKey:N.Z.GLOBAL_ENV_VARS},{key:"encryptionKey",label:"Encryption Key",description:"Data encryption key",storageKey:N.Z.ENCRYPTION_KEY}];function _(){let[e,t]=(0,o.useState)(Y.reduce((e,t)=>({...e,[t.key]:!0}),{})),[r,i]=(0,o.useState)(Y.reduce((e,t)=>({...e,[t.key]:!0}),{})),[l,d]=(0,o.useState)(null),c=(0,o.useRef)(null),[h,x]=(0,o.useState)(null),[m,b]=(0,o.useState)(!1),[g,y]=(0,o.useState)(!1),v=r=>{t({...e,[r.target.name]:r.target.checked})},j=e=>{i({...r,[e.target.name]:e.target.checked})},k=async()=>{G.debug("Creating backup with selections:",e),b(!0),x(null);try{let t=Object.entries(e).filter(e=>{let[t,r]=e;return r}).map(e=>{let[t]=e;return t});if(0===t.length){x({type:"error",text:"Please select at least one item to backup"}),b(!1);return}let r=await fetch("/api/backup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({selections:t})});if(!r.ok)throw Error("Failed to create backup");let n=await r.blob(),a=window.URL.createObjectURL(n),o=document.createElement("a");o.style.display="none",o.href=a;let s=new Date().toISOString().replace(/[:.]/g,"-").substring(0,19);o.download="flujo-backup-".concat(s,".zip"),document.body.appendChild(o),o.click(),window.URL.revokeObjectURL(a),document.body.removeChild(o),x({type:"success",text:"Backup created successfully"})}catch(e){G.error("Error creating backup:",e),x({type:"error",text:e instanceof Error?e.message:"Failed to create backup"})}finally{b(!1)}},w=async()=>{G.debug("Restoring from backup with selections:",r),b(!0),x(null),y(!1);try{let e=Object.entries(r).filter(e=>{let[t,r]=e;return r}).map(e=>{let[t]=e;return t}),t=new FormData;t.append("file",l),t.append("selections",JSON.stringify(e));let n=await fetch("/api/restore",{method:"POST",body:t});if(!n.ok){let e=await n.json();throw Error(e.error||"Failed to restore from backup")}x({type:"success",text:"Restore completed successfully. You may need to refresh the page to see the changes."}),c.current&&(c.current.value=""),d(null)}catch(e){G.error("Error restoring from backup:",e),x({type:"error",text:e instanceof Error?e.message:"Failed to restore from backup"})}finally{b(!1)}},S=r=>{let n={...e};Y.forEach(e=>{n[e.key]=r}),t(n)},E=e=>{let t={...r};Y.forEach(r=>{t[r.key]=e}),i(t)};return(0,n.jsxs)(a.default,{sx:{width:"100%"},children:[(0,n.jsx)(s.default,{variant:"h6",gutterBottom:!0,children:"Backup and Restore"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Create backups of your application data or restore from a previous backup."}),h&&(0,n.jsx)(u.A,{severity:h.type,sx:{mb:2},children:h.text}),(0,n.jsxs)(p.A,{sx:{p:3,mb:3},children:[(0,n.jsx)(s.default,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:"Create Backup"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Select the components you want to include in the backup."}),(0,n.jsxs)(a.default,{sx:{mb:2},children:[(0,n.jsx)(f.A,{size:"small",onClick:()=>S(!0),sx:{mr:1},children:"Select All"}),(0,n.jsx)(f.A,{size:"small",onClick:()=>S(!1),children:"Deselect All"})]}),(0,n.jsx)(B.A,{sx:{mb:3},children:Y.map(t=>(0,n.jsx)(A.A,{control:(0,n.jsx)(W.A,{checked:e[t.key],onChange:v,name:t.key}),label:(0,n.jsxs)(a.default,{children:[(0,n.jsx)(s.default,{variant:"body1",children:t.label}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",children:t.description})]})},t.key))}),(0,n.jsx)(f.A,{variant:"contained",onClick:k,disabled:m||Object.values(e).every(e=>!e),startIcon:m?(0,n.jsx)(M.default,{size:20}):null,children:m?"Creating Backup...":"Create Backup"})]}),(0,n.jsxs)(p.A,{sx:{p:3},children:[(0,n.jsx)(s.default,{variant:"subtitle1",gutterBottom:!0,fontWeight:"bold",children:"Restore from Backup"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Select a backup file and choose which components to restore."}),(0,n.jsxs)(a.default,{sx:{mb:3},children:[(0,n.jsxs)(f.A,{variant:"outlined",component:"label",sx:{mb:2},children:["Select Backup File",(0,n.jsx)("input",{type:"file",hidden:!0,accept:".zip",onChange:e=>{let t=e.target.files;t&&t.length>0&&(d(t[0]),x(null))},ref:c})]}),l&&(0,n.jsxs)(s.default,{variant:"body2",sx:{ml:1},children:["Selected file: ",l.name]})]}),(0,n.jsx)(C.A,{sx:{mb:2}}),(0,n.jsx)(s.default,{variant:"subtitle2",gutterBottom:!0,children:"Restore Options"}),(0,n.jsxs)(a.default,{sx:{mb:2},children:[(0,n.jsx)(f.A,{size:"small",onClick:()=>E(!0),sx:{mr:1},children:"Select All"}),(0,n.jsx)(f.A,{size:"small",onClick:()=>E(!1),children:"Deselect All"})]}),(0,n.jsx)(B.A,{sx:{mb:3},children:Y.map(e=>(0,n.jsx)(A.A,{control:(0,n.jsx)(W.A,{checked:r[e.key],onChange:j,name:e.key}),label:(0,n.jsxs)(a.default,{children:[(0,n.jsx)(s.default,{variant:"body1",children:e.label}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",children:e.description})]})},e.key))}),(0,n.jsx)(f.A,{variant:"contained",color:"warning",onClick:()=>l?0===Object.entries(r).filter(e=>{let[t,r]=e;return r}).map(e=>{let[t]=e;return t}).length?void x({type:"error",text:"Please select at least one item to restore"}):void y(!0):void x({type:"error",text:"Please select a backup file"}),disabled:m||!l||Object.values(r).every(e=>!e),startIcon:m?(0,n.jsx)(M.default,{size:20}):null,children:m?"Restoring...":"Restore from Backup"})]}),(0,n.jsxs)(L.A,{open:g,onClose:()=>y(!1),children:[(0,n.jsx)(D.A,{children:"Confirm Restore"}),(0,n.jsx)(U.A,{children:(0,n.jsx)(V.A,{children:"This will overwrite your existing data with the contents of the backup file. This action cannot be undone. Are you sure you want to continue?"})}),(0,n.jsxs)(z.A,{children:[(0,n.jsx)(f.A,{onClick:()=>y(!1),children:"Cancel"}),(0,n.jsx)(f.A,{onClick:w,color:"warning",variant:"contained",children:"Restore"})]})]})]})}var K=r(52641),J=r(84869);function H(){let{settings:e,updateSettings:t}=(0,k.useStorage)(),r=(0,J.G)(),o=(null==e?void 0:e.speech)||{enabled:!0};return(0,n.jsxs)(a.default,{sx:{p:2},children:[!r.supported&&(0,n.jsx)(u.A,{severity:"warning",sx:{mb:3},children:"Speech recognition is not supported in your browser. Please use Chrome, Edge, or Safari for the best experience."}),(0,n.jsxs)(K.A,{fullWidth:!0,sx:{mb:3},children:[(0,n.jsx)(A.A,{control:(0,n.jsx)(S.A,{checked:o.enabled,onChange:r=>{t({...e,speech:{...o,enabled:r.target.checked}})},name:"enabled",disabled:!r.supported}),label:"Enable speech recognition"}),(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"When enabled, audio recordings will be transcribed using your browser's built-in offfline speech recognition capabilities."})]}),(0,n.jsxs)(p.A,{variant:"outlined",sx:{p:2,mb:3},children:[(0,n.jsx)(s.default,{variant:"subtitle2",gutterBottom:!0,children:"Speech Recognition Information"}),(0,n.jsxs)(a.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,n.jsx)(s.default,{variant:"body2",children:"Technology:"}),(0,n.jsx)(s.default,{variant:"body2",children:"Web Speech API"})]}),(0,n.jsxs)(a.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,n.jsx)(s.default,{variant:"body2",children:"Processing:"}),(0,n.jsx)(s.default,{variant:"body2",children:"Browser-based"})]}),(0,n.jsxs)(a.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,n.jsx)(s.default,{variant:"body2",children:"Language:"}),(0,n.jsx)(s.default,{variant:"body2",children:"Automatically uses browser language"})]}),(0,n.jsxs)(a.default,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,n.jsx)(s.default,{variant:"body2",children:"Privacy:"}),(0,n.jsx)(s.default,{variant:"body2",children:"Depends on browser implementation"})]})]}),(0,n.jsx)(u.A,{severity:"info",sx:{mt:3},children:(0,n.jsx)(s.default,{variant:"body2",children:"Speech recognition quality may vary based on your browser, microphone quality, and background noise. For best results, speak clearly and use a good quality microphone."})})]})}(0,R.h)("frontend/components/Settings/SpeechRecognitionSettings");let Z=(0,R.h)("frontend/components/Settings/UpdateSettings");function $(){let{settings:e,updateSettings:t}=(0,k.useStorage)(),r=(null==e?void 0:e.update)||{checkOnStartup:!1},[i,l]=(0,o.useState)(!1),[d,c]=(0,o.useState)(!1),[h,p]=(0,o.useState)(null),[x,m]=(0,o.useState)(null),b=null===x||"git"===x,g=async()=>{l(!0),p(null);try{let e=await fetch("/api/update"),t=await e.json();"string"==typeof t.updateMode&&m(t.updateMode),e.ok&&!1!==t.success?!1===t.isGitRepo?p({severity:"info",message:t.message}):t.updateAvailable?p({severity:"warning",message:"An update is available (".concat(t.behindBy," new commit").concat(1===t.behindBy?"":"s"," on ").concat(t.branch,").")}):p({severity:"success",message:"FLUJO is up to date (v".concat(t.currentVersion,").")}):p({severity:"error",message:t.error||"Failed to check for updates."})}catch(e){Z.error("Update check failed",e),p({severity:"error",message:"Failed to check for updates."})}finally{l(!1)}},y=async()=>{c(!0),p({severity:"info",message:"Updating FLUJO - this may take a few minutes..."});try{let e=await fetch("/api/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"apply"})}),t=await e.json();if(!e.ok||!1===t.success){p({severity:"error",message:t.error||"Update failed."}),c(!1);return}if(p({severity:"success",message:t.message}),t.restarting){let e=!1,t=async()=>{try{if((await fetch("/api/cwd",{cache:"no-store"})).ok&&e)return void window.location.reload()}catch(t){e=!0}setTimeout(t,3e3)};setTimeout(t,5e3)}else c(!1)}catch(e){Z.error("Update failed",e),p({severity:"error",message:"Update failed."}),c(!1)}};return(0,n.jsxs)(a.default,{sx:{p:2},children:[(0,n.jsxs)(K.A,{fullWidth:!0,sx:{mb:2},children:[(0,n.jsx)(A.A,{control:(0,n.jsx)(S.A,{checked:r.checkOnStartup,onChange:n=>{t({...e,update:{...r,checkOnStartup:n.target.checked}})},name:"checkOnStartup"}),label:"Check for updates on startup"}),(0,n.jsxs)(s.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["When enabled, FLUJO checks GitHub for a newer version when the home page loads and shows a one-click update banner if one is available. Updates run ",(0,n.jsx)("code",{children:"git pull"})," + rebuild in your install folder; your data is preserved."]}),!b&&(0,n.jsxs)(s.default,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["This install can't update itself in place","container"===x?" (running in Docker) — pull a newer image instead.":"npm"===x?" (installed via npm) — rerun with the latest version instead.":" — it is not running from a git clone."]})]}),(0,n.jsxs)(a.default,{sx:{display:"flex",gap:2,mb:2},children:[(0,n.jsxs)(f.A,{variant:"outlined",onClick:g,disabled:i||d,children:[i?(0,n.jsx)(M.default,{size:20,sx:{mr:1}}):null,"Check now"]}),(0,n.jsxs)(f.A,{variant:"contained",onClick:y,disabled:d||!b,children:[d?(0,n.jsx)(M.default,{size:20,sx:{mr:1}}):null,"Update now"]})]}),h&&(0,n.jsx)(u.A,{severity:h.severity,sx:{mt:1},children:h.message})]})}var q=r(8907),Q=r(69195);function X(){let{startTour:e}=(0,Q.useTour)();return(0,n.jsxs)(a.default,{sx:{p:2},children:[(0,n.jsx)(s.default,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"The guided tour walks you through the full first-run path — adding a model, connecting an MCP tool server, building a flow, and running it in chat. It launches automatically the first time you open FLUJO; replay it any time below."}),(0,n.jsx)(f.A,{variant:"outlined",startIcon:(0,n.jsx)(q.A,{}),onClick:e,children:"Replay guided tour"})]})}function ee(){let[e,t]=(0,o.useState)("globalEnv"),r=e=>(r,n)=>{t(!!n&&e)};return(0,n.jsxs)(a.default,{sx:{p:3},children:[(0,n.jsx)(s.default,{variant:"h5",gutterBottom:!0,children:"Settings"}),(0,n.jsxs)(a.default,{sx:{mt:2},children:[(0,n.jsxs)(i.A,{expanded:"globalEnv"===e,onChange:r("globalEnv"),children:[(0,n.jsx)(l.A,{expandIcon:(0,n.jsx)(c.A,{}),"aria-controls":"globalEnv-content",id:"globalEnv-header",children:(0,n.jsx)(s.default,{variant:"h6",children:"Global Environment Variables"})}),(0,n.jsx)(d.A,{children:(0,n.jsx)(I,{})})]}),(0,n.jsxs)(i.A,{expanded:"encryption"===e,onChange:r("encryption"),children:[(0,n.jsx)(l.A,{expandIcon:(0,n.jsx)(c.A,{}),"aria-controls":"encryption-content",id:"encryption-header",children:(0,n.jsx)(s.default,{variant:"h6",children:"Encryption"})}),(0,n.jsx)(d.A,{children:(0,n.jsx)(w,{})})]}),(0,n.jsxs)(i.A,{expanded:"theme"===e,onChange:r("theme"),children:[(0,n.jsx)(l.A,{expandIcon:(0,n.jsx)(c.A,{}),"aria-controls":"theme-content",id:"theme-header",children:(0,n.jsx)(s.default,{variant:"h6",children:"Theme"})}),(0,n.jsx)(d.A,{children:(0,n.jsx)(O,{})})]}),(0,n.jsxs)(i.A,{expanded:"backup"===e,onChange:r("backup"),children:[(0,n.jsx)(l.A,{expandIcon:(0,n.jsx)(c.A,{}),"aria-controls":"backup-content",id:"backup-header",children:(0,n.jsx)(s.default,{variant:"h6",children:"Backup & Restore"})}),(0,n.jsx)(d.A,{children:(0,n.jsx)(_,{})})]}),(0,n.jsxs)(i.A,{expanded:"speech"===e,onChange:r("speech"),children:[(0,n.jsx)(l.A,{expandIcon:(0,n.jsx)(c.A,{}),"aria-controls":"speech-content",id:"speech-header",children:(0,n.jsx)(s.default,{variant:"h6",children:"Speech Recognition"})}),(0,n.jsx)(d.A,{children:(0,n.jsx)(H,{})})]}),(0,n.jsxs)(i.A,{expanded:"updates"===e,onChange:r("updates"),children:[(0,n.jsx)(l.A,{expandIcon:(0,n.jsx)(c.A,{}),"aria-controls":"updates-content",id:"updates-header",children:(0,n.jsx)(s.default,{variant:"h6",children:"Updates"})}),(0,n.jsx)(d.A,{children:(0,n.jsx)($,{})})]}),(0,n.jsxs)(i.A,{expanded:"onboarding"===e,onChange:r("onboarding"),children:[(0,n.jsx)(l.A,{expandIcon:(0,n.jsx)(c.A,{}),"aria-controls":"onboarding-content",id:"onboarding-header",children:(0,n.jsx)(s.default,{variant:"h6",children:"Onboarding"})}),(0,n.jsx)(d.A,{children:(0,n.jsx)(X,{})})]})]})]})}let et=(0,R.h)("app/settings/page");function er(){return et.debug("Rendering SettingsPage"),(0,n.jsx)(a.default,{component:"main",sx:{minHeight:"100vh"},children:(0,n.jsx)(ee,{})})}},52397:(e,t,r)=>{"use strict";r.d(t,{RJ:()=>a,gF:()=>n});let n="masked:********",a="********"},69195:(e,t,r)=>{"use strict";r.r(t),r.d(t,{TourProvider:()=>c,useTour:()=>d});var n=r(95155),a=r(12115),o=r(9164),s=r(77326);let i=(0,r(87021).h)("frontend/contexts/TourContext"),l=(0,a.createContext)({isActive:!1,stepIndex:0,startTour:()=>{},next:()=>{},back:()=>{},endTour:()=>{}}),d=()=>(0,a.useContext)(l),c=e=>{var t;let{children:r}=e,{settings:d,updateSettings:c,isLoading:u}=(0,o.useStorage)(),[h,p]=(0,a.useState)(!1),[x,m]=(0,a.useState)(0),b=(0,a.useRef)(!1),f=(0,a.useCallback)(()=>{var e;c({...d,onboarding:{...null!=(e=d.onboarding)?e:{},completed:!0}}).catch(e=>i.warn("Failed to persist onboarding completion",e))},[d,c]),g=(0,a.useCallback)(()=>{i.info("Starting guided tour"),m(0),p(!0)},[]),y=(0,a.useCallback)(()=>{i.info("Ending guided tour"),p(!1),f()},[f]),v=(0,a.useCallback)(()=>{m(e=>e>=s.$.length-1?(p(!1),f(),e):e+1)},[f]),j=(0,a.useCallback)(()=>{m(e=>Math.max(0,e-1))},[]);return(0,a.useEffect)(()=>{var e;u||b.current||(b.current=!0,(null==(e=d.onboarding)?void 0:e.completed)!==!0&&(i.info("First run detected — auto-starting guided tour"),g()))},[u,null==(t=d.onboarding)?void 0:t.completed,g]),(0,n.jsx)(l.Provider,{value:{isActive:h,stepIndex:x,startTour:g,next:v,back:j,endTour:y},children:r})}},71892:(e,t,r)=>{"use strict";r.d(t,{A:()=>R});var n=r(95155),a=r(12115),o=r(2300),s=r(94049),i=r(25635),l=r(70690),d=r(80777),c=r(33077),u=r(9562),h=r(56422),p=r(28548),x=r(99944),m=r(22822),b=r(41983),f=r(56682),g=r(87021),y=r(9164),v=r(86946),j=r(21422),k=r(12857),w=r(48363),A=r(4484),S=r(1877),C=r(52397);let E=(0,g.h)("frontend/components/mcp/MCPEnvManager/EnvEditor"),R=e=>{let{serverName:t,initialEnv:r,onSave:g,onDelete:R,onServerRestart:T}=e,{globalEnvVars:O}=(0,y.useStorage)(),[F,P]=(0,a.useState)([]),[I,B]=(0,a.useState)(!1),[W,M]=(0,a.useState)(!1),[L,D]=(0,a.useState)(!1),[U,V]=(0,a.useState)(null);(0,a.useEffect)(()=>{E.debug("Initializing environment variables for server: ".concat(t),{variableCount:Object.keys(r).length}),P(Object.entries(r).map(e=>{let[t,r]=e,n="object"==typeof r&&null!==r&&"value"in r?r.value:r,a="object"==typeof r&&null!==r&&"metadata"in r?r.metadata:{isSecret:(0,S.xc)(t)},o=n.match(/\$\{global:([^}]+)\}/);if(o){let e=o[1];return{key:t,value:n,isSecret:a.isSecret,isBound:!0,boundTo:e}}let s="string"==typeof n&&(n.startsWith("encrypted:")||n.startsWith("encrypted_failed:"));return{key:t,value:s?C.gF:n,isSecret:a.isSecret,isEncrypted:s}}))},[r]);let z=async e=>{E.debug("Removing environment variable at index: ".concat(e));let r=F[e];if("Global"===t&&R&&r.key)try{await R(r.key),P(F.filter((t,r)=>r!==e))}catch(e){E.error("Failed to delete environment variable: ".concat(r.key),e)}else P(F.filter((t,r)=>r!==e)),B(!0)},N=(e,t,r)=>{let n=[...F];if("isSecret"===t){let t=n[e];t.isSecret&&!r?n[e]={...t,isSecret:r,value:"",isEncrypted:!1,showWarning:!0}:n[e]={...t,isSecret:r}}else{let a={...n[e],[t]:r,isSecret:"key"===t?(0,S.xc)(r):n[e].isSecret};"key"===t&&(a.isValidKey=""===r||/^[a-zA-Z0-9_]+$/.test(r)),"value"===t&&(n[e].isEncrypted&&(a.isEncrypted=!1),n[e].showWarning&&r&&(a.showWarning=!1)),n[e]=a}P(n),B(!0)},G=async()=>{if(F.some(e=>""!==e.key&&!1===e.isValidKey))return void E.error("Cannot save: Some variable names contain invalid characters");E.debug("Saving environment variables for server: ".concat(t),{variableCount:F.length}),M(!0);try{let e=F.reduce((e,t)=>{let{key:r,value:n,isBound:a,boundTo:o,isSecret:s,isEncrypted:i}=t;return r&&(a&&o?e[r]={value:"${global:".concat(o,"}"),metadata:{isSecret:s}}:s&&n===C.gF||(e[r]={value:n,metadata:{isSecret:s}})),e},{});await g(e),B(!1),T&&"Global"!==t&&(E.debug("Restarting server after env variable changes: ".concat(t)),await T(t))}catch(e){E.error("Failed to save environment variables:",e)}M(!1)};return(0,n.jsxs)(o.A,{sx:{p:3,borderRadius:2,border:1,borderColor:e=>"dark"===e.palette.mode?"#3a3a3a":"#e5e7eb"},children:[(0,n.jsxs)(s.default,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[(0,n.jsxs)(i.default,{variant:"h6",sx:{fontWeight:"semibold"},children:["Environment Variables - ",t]}),(0,n.jsx)(l.A,{variant:"contained",color:"primary",size:"small",startIcon:(0,n.jsx)(v.A,{}),onClick:()=>{E.debug("Adding new environment variable"),P([...F,{key:"",value:"",isSecret:!1}]),B(!0)},children:"Add Variable"})]}),(0,n.jsx)(d.A,{spacing:3,children:F.map((e,t)=>(0,n.jsxs)(c.Ay,{container:!0,spacing:2,alignItems:"flex-start",children:[(0,n.jsx)(c.Ay,{item:!0,xs:12,sm:5,children:(0,n.jsx)(u.A,{fullWidth:!0,placeholder:"Variable name",value:e.key,onChange:e=>N(t,"key",e.target.value),error:!1===e.isValidKey,helperText:!1===e.isValidKey?"Only alphanumeric characters and underscores allowed":"",size:"small"})}),(0,n.jsx)(c.Ay,{item:!0,xs:12,sm:5,children:(0,n.jsx)(u.A,{fullWidth:!0,type:e.isSecret?"password":"text",placeholder:e.showWarning?"Re-enter value":"Value",value:e.value,onChange:e=>N(t,"value",e.target.value),InputProps:{readOnly:e.isBound,startAdornment:e.isEncrypted?(0,n.jsx)(h.A,{position:"start",children:(0,n.jsx)(j.A,{fontSize:"small",titleAccess:"This value is stored encrypted"})}):null,endAdornment:e.isBound?(0,n.jsx)(h.A,{position:"end",children:(0,n.jsx)(p.A,{size:"small",label:"Bound to global: ".concat(e.boundTo),color:"primary",variant:"outlined",onDelete:()=>(e=>{E.debug("Unbinding variable at index: ".concat(e));let t=[...F];t[e]={...t[e],isBound:!1,boundTo:void 0},P(t),B(!0)})(t),deleteIcon:(0,n.jsx)(k.A,{fontSize:"small"})})}):null},error:e.showWarning,helperText:e.showWarning?"You must re-enter the value after switching from secret to normal mode":"",size:"small",sx:{bgcolor:t=>e.isBound?"dark"===t.palette.mode?"#1a1a1a":"#f9fafb":t.palette.background.paper}})}),(0,n.jsx)(c.Ay,{item:!0,xs:12,sm:2,children:(0,n.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",mt:.5},children:[(0,n.jsx)(x.A,{control:(0,n.jsx)(m.A,{checked:e.isSecret,onChange:e=>N(t,"isSecret",e.target.checked),size:"small"}),label:"Secret",sx:{mr:1}}),!e.isBound&&(0,n.jsx)(b.A,{size:"small",color:"primary",onClick:()=>(e=>{E.debug("Opening bind modal for variable at index: ".concat(e)),V(e),D(!0)})(t),title:"Bind to global variable",sx:{mr:1},children:(0,n.jsx)(w.A,{fontSize:"small"})}),(0,n.jsx)(b.A,{size:"small",color:"error",onClick:()=>z(t),title:"Remove variable",children:(0,n.jsx)(A.A,{fontSize:"small"})})]})})]},t))}),(0,n.jsx)(f.A,{open:L,onClose:()=>{D(!1),V(null)},children:(0,n.jsxs)(s.default,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:400,maxWidth:"90%",bgcolor:"background.paper",boxShadow:24,p:4,borderRadius:2},children:[(0,n.jsx)(i.default,{variant:"h6",sx:{mb:2},children:"Bind to Global Variable"}),0===Object.keys(O).length?(0,n.jsx)(i.default,{color:"text.secondary",sx:{mb:2},children:"No global variables available. Add some in Settings first."}):(0,n.jsx)(s.default,{sx:{maxHeight:300,overflow:"auto",mb:2},children:Object.entries(O).map(e=>{let[t,r]=e;return(0,n.jsxs)(l.A,{fullWidth:!0,variant:"text",onClick:()=>(e=>{if(null!==U){E.debug("Binding variable at index ".concat(U," to global variable: ").concat(e));let t=[...F];t[U]={...t[U],isBound:!0,boundTo:e,value:"${global:".concat(e,"}")},P(t),D(!1),V(null),B(!0)}})(t),sx:{justifyContent:"space-between",textAlign:"left",mb:1,p:1,borderRadius:1},children:[(0,n.jsx)(i.default,{variant:"body2",children:t}),(0,n.jsx)(i.default,{variant:"caption",color:"text.secondary",children:r&&"object"==typeof r&&r.metadata&&r.metadata.isSecret?C.gF:r&&"object"==typeof r?r.value:r})]},t)})}),(0,n.jsx)(s.default,{sx:{display:"flex",justifyContent:"flex-end"},children:(0,n.jsx)(l.A,{variant:"outlined",onClick:()=>{D(!1),V(null)},children:"Cancel"})})]})}),I&&(0,n.jsx)(s.default,{sx:{display:"flex",justifyContent:"flex-end",mt:3},children:(0,n.jsx)(l.A,{variant:"contained",color:"success",onClick:G,disabled:W||F.some(e=>""!==e.key&&!1===e.isValidKey),children:W?"Saving...":"Save Changes"})})]})}},77326:(e,t,r)=>{"use strict";r.d(t,{$:()=>n});let n=[{id:"welcome",path:"/",placement:"center",title:"Welcome to FLUJO \uD83D\uDC4B",body:"This quick tour walks you through going from zero to a running AI flow.\n\nYou'll add a model, connect a tool server, build a flow, and run it in chat. It takes about a minute — you can skip any time."},{id:"add-model",path:"/models",target:'[data-tour="add-model"]',placement:"bottom",title:"1. Add a model",body:'FLUJO needs at least one AI model to think with. Click "Add Model" to configure one.\n\nTip: an OpenRouter API key gives you access to several free models — paste the key, name the model, pick a free one, and add a custom instruction.'},{id:"add-mcp-server",path:"/mcp",target:'[data-tour="add-mcp-server"]',placement:"bottom",title:"2. Connect a tool server (MCP)",body:'MCP servers give your model real tools — file access, image generation, web search, and more.\n\nClick "Add Server" and install the "Everything" reference server to try the full range of capabilities while you learn.'},{id:"new-flow",path:"/flows",target:'[data-tour="new-flow"]',placement:"bottom",title:"3. Build a flow",body:'A flow wires everything together. Click "New Flow" to open the builder.\n\nConnect Start → Process → Finish, attach your model to the Process node, and bind the Everything MCP server so the model can use its tools.'},{id:"chat-input",path:"/chat",target:'[data-tour="chat-input"]',placement:"top",title:"4. Run it in chat",body:"Pick your flow from the selector, then send a message here.\n\nTry asking it to generate an image with the MCP server and tell you a joke — you'll see the flow execute live, step by step."},{id:"docs",path:"/chat",target:'[data-tour="nav-docs"]',placement:"bottom",title:"Need the API?",body:"FLUJO exposes an OpenAI-compatible API and a full REST surface. The Docs page lists every endpoint with its method, parameters, and response shape.\n\nYou can re-run this tour any time from Settings → Onboarding."},{id:"finish",path:"/chat",placement:"center",title:"You're all set \uD83C\uDF89",body:"That's the whole loop: models, tools, flows, and chat.\n\nExplore at your own pace — and remember the Docs page and Settings are there when you need them."}]},84869:(e,t,r)=>{"use strict";r.d(t,{G:()=>s,S:()=>o});let n=(0,r(87021).h)("frontend/services/transcription/webSpeech"),a=()=>"webkitSpeechRecognition"in window||"SpeechRecognition"in window;async function o(e,t){if(!a())throw Error("Web Speech API is not supported in this browser");n.debug("Starting Web Speech API transcription");try{let r=URL.createObjectURL(e),a=new Audio(r),o=new(window.SpeechRecognition||window.webkitSpeechRecognition);return o.continuous=!0,o.interimResults=!0,(null==t?void 0:t.language)&&(o.lang=t.language),new Promise((e,r)=>{let s="";o.onresult=e=>{let r="";for(let t=e.resultIndex;t<e.results.length;t++){let n=e.results[t][0].transcript;e.results[t].isFinal?s+=n+" ":r+=n}(null==t?void 0:t.onInterimResult)&&t.onInterimResult(s+r),n.debug("Recognition interim result",{finalLength:s.length,interimLength:r.length})},o.onend=()=>{n.debug("Recognition ended",{transcriptLength:s.length}),e(s.trim())},o.onerror=e=>{n.error("Recognition error",{error:e.error}),r(Error("Speech recognition error: ".concat(e.error)))},a.onplay=()=>{o.start(),n.debug("Recognition started")},a.onended=()=>{o.stop(),n.debug("Audio playback ended")},a.onerror=e=>{n.error("Audio playback error",{error:e}),o.stop(),r(Error("Error playing audio"))},a.play().catch(e=>{n.error("Error starting audio playback",{error:e}),r(e)})})}catch(e){throw n.error("Error in Web Speech API transcription",{error:e}),e}}function s(){return{supported:a(),message:a()?"Web Speech API is supported":"Web Speech API is not supported in this browser"}}},87021:(e,t,r)=>{"use strict";r.d(t,{h:()=>l});let n={LOG_LEVEL:3},a={VERBOSE:-1,DEBUG:0,INFO:1,WARN:2,ERROR:3},o="number"==typeof n.LOG_LEVEL?n.LOG_LEVEL:a.ERROR;function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>6)return String(e);if(!(e instanceof Error))return e;let r={name:e.name,message:e.message};for(let n of Object.getOwnPropertyNames(e)){if("name"===n||"message"===n)continue;let a=e[n];"function"!=typeof a&&("stack"===n?r.stack=a:"cause"===n?r.cause=s(a,t+1):"errors"===n&&Array.isArray(a)?r.errors=a.map(e=>s(e,t+1)):r[n]=a)}return r}function i(e,t,r,n,i){if(e>=("number"==typeof i?i:o)){if("function"==typeof n)try{n=n()}catch(e){n="[lazy log data threw]"}let o=new Date().toISOString(),i="[".concat(o,"] [").concat(t,"]"),l="".concat(i," ").concat(r);if(void 0!==n)if(n instanceof Error||"object"==typeof n)try{let e=n instanceof Error?s(n):n,t=JSON.stringify(e,(e,t)=>t instanceof Error?s(t):t,2);l+=":\n".concat(t)}catch(e){l+=": [Object cannot be stringified]"}else l+=": ".concat(n);switch(e){case a.VERBOSE:console.debug("[VERBOSE] ".concat(l));break;case a.DEBUG:console.debug(l);break;case a.INFO:console.info(l);break;case a.WARN:console.warn(l);break;case a.ERROR:console.error(l);break;default:console.log(l)}}}function l(e,t){let r,n=((r=e.replace(/^src\//,"")).startsWith("/")&&(r=r.substring(1)),r);return{verbose:(e,r)=>{i(a.VERBOSE,n,e,r,t)},debug:(e,r)=>{i(a.DEBUG,n,e,r,t)},info:(e,r)=>{i(a.INFO,n,e,r,t)},warn:(e,r)=>{i(a.WARN,n,e,r,t)},error:(e,r)=>{i(a.ERROR,n,e,r,t)}}}}},e=>{e.O(0,[2678,4754,9244,8548,690,9562,2003,488,3272,7396,3077,8598,7329,3403,9164,8441,1255,7358],()=>e(e.s=8209)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77,397,405,624,761,846,1144,1189,1288,1337,1426,2047,2348,2437,2483,3292,3371,3587,3623,3691,4063,4216,4233,4267,4524,4825,5617,5618,5817,6078,6744,7002,7221,7591,7822,7824,8046,8068,8140,8350,8467,8479,8510,8563,9128,9217,9247,9487,9604,9726,9942,9959],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7926],{63941:(u,e,r)=>{r.d(e,{EY:()=>Z,Hg:()=>w,I:()=>S,KE:()=>_,Q6:()=>b,bP:()=>k,bR:()=>V,gB:()=>uy,h6:()=>L,ie:()=>ep,wA:()=>A});var t,n=r(86799),o=r(60013),a={transform(u,e){var{current:r,affinity:t}=u;if(null!=r){var n=A.transform(r,e,{affinity:t});u.current=n,null==n&&u.unref()}}},i={transform(u,e){var{current:r,affinity:t}=u;if(null!=r){var n=V.transform(r,e,{affinity:t});u.current=n,null==n&&u.unref()}}},D={transform(u,e){var{current:r,affinity:t}=u;if(null!=r){var n=b.transform(r,e,{affinity:t});u.current=n,null==n&&u.unref()}}},s=new WeakMap,l=new WeakMap,C=new WeakMap,f=new WeakMap,c=new WeakMap,B=new WeakMap,h=new WeakMap,A={ancestors(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:r=!1}=e,t=A.levels(u,e);return r?t.slice(1):t.slice(0,-1)},common(u,e){for(var r=[],t=0;t<u.length&&t<e.length;t++){var n=u[t];if(n!==e[t])break;r.push(n)}return r},compare(u,e){for(var r=Math.min(u.length,e.length),t=0;t<r;t++){if(u[t]<e[t])return -1;if(u[t]>e[t])return 1}return 0},endsAfter(u,e){var r=u.length-1,t=u.slice(0,r),n=e.slice(0,r),o=u[r],a=e[r];return A.equals(t,n)&&o>a},endsAt(u,e){var r=u.length,t=u.slice(0,r),n=e.slice(0,r);return A.equals(t,n)},endsBefore(u,e){var r=u.length-1,t=u.slice(0,r),n=e.slice(0,r),o=u[r],a=e[r];return A.equals(t,n)&&o<a},equals:(u,e)=>u.length===e.length&&u.every((u,r)=>u===e[r]),hasPrevious:u=>u[u.length-1]>0,isAfter:(u,e)=>1===A.compare(u,e),isAncestor:(u,e)=>u.length<e.length&&0===A.compare(u,e),isBefore:(u,e)=>-1===A.compare(u,e),isChild:(u,e)=>u.length===e.length+1&&0===A.compare(u,e),isCommon:(u,e)=>u.length<=e.length&&0===A.compare(u,e),isDescendant:(u,e)=>u.length>e.length&&0===A.compare(u,e),isParent:(u,e)=>u.length+1===e.length&&0===A.compare(u,e),isPath:u=>Array.isArray(u)&&(0===u.length||"number"==typeof u[0]),isSibling(u,e){if(u.length!==e.length)return!1;var r=u.slice(0,-1),t=e.slice(0,-1);return u[u.length-1]!==e[e.length-1]&&A.equals(r,t)},levels(u){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:r=!1}=e,t=[],n=0;n<=u.length;n++)t.push(u.slice(0,n));return r&&t.reverse(),t},next(u){if(0===u.length)throw Error("Cannot get the next path of a root path [".concat(u,"], because it has no next index."));var e=u[u.length-1];return u.slice(0,-1).concat(e+1)},operationCanTransformPath(u){switch(u.type){case"insert_node":case"remove_node":case"merge_node":case"split_node":case"move_node":return!0;default:return!1}},parent(u){if(0===u.length)throw Error("Cannot get the parent path of the root path [".concat(u,"]."));return u.slice(0,-1)},previous(u){if(0===u.length)throw Error("Cannot get the previous path of a root path [".concat(u,"], because it has no previous index."));var e=u[u.length-1];if(e<=0)throw Error("Cannot get the previous path of a first child path [".concat(u,"] because it would result in a negative index."));return u.slice(0,-1).concat(e-1)},relative(u,e){if(!A.isAncestor(e,u)&&!A.equals(u,e))throw Error("Cannot get the relative path of [".concat(u,"] inside ancestor [").concat(e,"], because it is not above or equal to the path."));return u.slice(e.length)},transform(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!u)return null;var t=[...u],{affinity:n="forward"}=r;if(0===u.length)return t;switch(e.type){case"insert_node":var{path:o}=e;(A.equals(o,t)||A.endsBefore(o,t)||A.isAncestor(o,t))&&(t[o.length-1]+=1);break;case"remove_node":var{path:a}=e;if(A.equals(a,t)||A.isAncestor(a,t))return null;A.endsBefore(a,t)&&(t[a.length-1]-=1);break;case"merge_node":var{path:i,position:D}=e;A.equals(i,t)||A.endsBefore(i,t)?t[i.length-1]-=1:A.isAncestor(i,t)&&(t[i.length-1]-=1,t[i.length]+=D);break;case"split_node":var{path:s,position:l}=e;if(A.equals(s,t)){if("forward"===n)t[t.length-1]+=1;else if("backward"!==n)return null}else A.endsBefore(s,t)?t[s.length-1]+=1:A.isAncestor(s,t)&&u[s.length]>=l&&(t[s.length-1]+=1,t[s.length]-=l);break;case"move_node":var{path:C,newPath:f}=e;if(A.equals(C,f))break;if(A.isAncestor(C,t)||A.equals(C,t)){var c=f.slice();return A.endsBefore(C,f)&&C.length<f.length&&(c[C.length-1]-=1),c.concat(t.slice(C.length))}A.isSibling(C,f)&&(A.isAncestor(f,t)||A.equals(f,t))?A.endsBefore(C,t)?t[C.length-1]-=1:t[C.length-1]+=1:A.endsBefore(f,t)||A.equals(f,t)||A.isAncestor(f,t)?(A.endsBefore(C,t)&&(t[C.length-1]-=1),t[f.length-1]+=1):A.endsBefore(C,t)&&(A.equals(f,t)&&(t[f.length-1]+=1),t[C.length-1]-=1)}return t}};function v(u){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(u){return typeof u}:function(u){return u&&"function"==typeof Symbol&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u})(u)}function p(u,e,r){var t;return t=function(u,e){if("object"!==v(u)||null===u)return u;var r=u[Symbol.toPrimitive];if(void 0!==r){var t=r.call(u,e||"default");if("object"!==v(t))return t;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(u)}(e,"string"),(e="symbol"===v(t)?t:String(t))in u?Object.defineProperty(u,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):u[e]=r,u}function F(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function d(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?F(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):F(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var E=(u,e)=>{for(var r in u){var t=u[r],o=e[r];if((0,n.Q)(t)&&(0,n.Q)(o)){if(!E(t,o))return!1}else if(Array.isArray(t)&&Array.isArray(o)){if(t.length!==o.length)return!1;for(var a=0;a<t.length;a++)if(t[a]!==o[a])return!1}else if(t!==o)return!1}for(var i in e)if(void 0===u[i]&&void 0!==e[i])return!1;return!0};function g(u,e){if(null==u)return{};var r,t,n=function(u,e){if(null==u)return{};var r,t,n={},o=Object.keys(u);for(t=0;t<o.length;t++)r=o[t],e.indexOf(r)>=0||(n[r]=u[r]);return n}(u,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(u);for(t=0;t<o.length;t++)r=o[t],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(u,r)&&(n[r]=u[r])}return n}var y=["anchor","focus"];function m(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}var b={edges(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{reverse:r=!1}=e,{anchor:t,focus:n}=u;return b.isBackward(u)===r?[t,n]:[n,t]},end(u){var[,e]=b.edges(u);return e},equals:(u,e)=>V.equals(u.anchor,e.anchor)&&V.equals(u.focus,e.focus),surrounds(u,e){var r=b.intersection(u,e);return!!r&&b.equals(r,e)},includes(u,e){if(b.isRange(e)){if(b.includes(u,e.anchor)||b.includes(u,e.focus))return!0;var[r,t]=b.edges(u),[n,o]=b.edges(e);return V.isBefore(r,n)&&V.isAfter(t,o)}var[a,i]=b.edges(u),D=!1,s=!1;return V.isPoint(e)?(D=V.compare(e,a)>=0,s=0>=V.compare(e,i)):(D=A.compare(e,a.path)>=0,s=0>=A.compare(e,i.path)),D&&s},intersection(u,e){var r=g(u,y),[t,n]=b.edges(u),[o,a]=b.edges(e),i=V.isBefore(t,o)?o:t,D=V.isBefore(n,a)?n:a;return V.isBefore(D,i)?null:function(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?m(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}({anchor:i,focus:D},r)},isBackward(u){var{anchor:e,focus:r}=u;return V.isAfter(e,r)},isCollapsed(u){var{anchor:e,focus:r}=u;return V.equals(e,r)},isExpanded:u=>!b.isCollapsed(u),isForward:u=>!b.isBackward(u),isRange:u=>(0,n.Q)(u)&&V.isPoint(u.anchor)&&V.isPoint(u.focus),*points(u){yield[u.anchor,"anchor"],yield[u.focus,"focus"]},start(u){var[e]=b.edges(u);return e},transform(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,o.jM)(u,u=>{if(null===u)return null;var t,n,{affinity:o="inward"}=r;if("inward"===o){var a=b.isCollapsed(u);b.isForward(u)?(t="forward",n=a?t:"backward"):(t="backward",n=a?t:"forward")}else"outward"===o?b.isForward(u)?(t="backward",n="forward"):(t="forward",n="backward"):(t=o,n=o);var i=V.transform(u.anchor,e,{affinity:t}),D=V.transform(u.focus,e,{affinity:n});if(!i||!D)return null;u.anchor=i,u.focus=D})}},O=u=>(0,n.Q)(u)&&k.isNodeList(u.children)&&!_.isEditor(u),w={isAncestor:u=>(0,n.Q)(u)&&k.isNodeList(u.children),isElement:O,isElementList:u=>Array.isArray(u)&&u.every(u=>w.isElement(u)),isElementProps:u=>void 0!==u.children,isElementType:function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"type";return O(u)&&u[r]===e},matches(u,e){for(var r in e)if("children"!==r&&u[r]!==e[r])return!1;return!0}},P=["children"],x=["text"],j=new WeakMap,k={ancestor(u,e){var r=k.get(u,e);if(Z.isText(r))throw Error("Cannot get the ancestor node at path [".concat(e,"] because it refers to a text node instead: ").concat(L.stringify(r)));return r},ancestors(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var t of A.ancestors(e,r)){var n=[k.ancestor(u,t),t];yield n}}()},child(u,e){if(Z.isText(u))throw Error("Cannot get the child of a text node: ".concat(L.stringify(u)));var r=u.children[e];if(null==r)throw Error("Cannot get child at index `".concat(e,"` in node: ").concat(L.stringify(u)));return r},children(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var{reverse:t=!1}=r,n=k.ancestor(u,e),{children:o}=n,a=t?o.length-1:0;t?a>=0:a<o.length;){var i=k.child(n,a),D=e.concat(a);yield[i,D],a=t?a-1:a+1}}()},common(u,e,r){var t=A.common(e,r);return[k.get(u,t),t]},descendant(u,e){var r=k.get(u,e);if(_.isEditor(r))throw Error("Cannot get the descendant node at path [".concat(e,"] because it refers to the root editor node instead: ").concat(L.stringify(r)));return r},descendants(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[r,t]of k.nodes(u,e))0!==t.length&&(yield[r,t])}()},elements(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[r,t]of k.nodes(u,e))w.isElement(r)&&(yield[r,t])}()},extractProps(u){if(w.isAncestor(u)){var e=g(u,P);return e}var e=g(u,x);return e},first(u,e){for(var r=e.slice(),t=k.get(u,r);t;)if(Z.isText(t)||0===t.children.length)break;else t=t.children[0],r.push(0);return[t,r]},fragment(u,e){if(Z.isText(u))throw Error("Cannot get a fragment starting from a root text node: ".concat(L.stringify(u)));return(0,o.jM)({children:u.children},u=>{var[r,t]=b.edges(e);for(var[,n]of k.nodes(u,{reverse:!0,pass:u=>{var[,r]=u;return!b.includes(e,r)}})){if(!b.includes(e,n)){var o=k.parent(u,n),a=n[n.length-1];o.children.splice(a,1)}if(A.equals(n,t.path)){var i=k.leaf(u,n);i.text=i.text.slice(0,t.offset)}if(A.equals(n,r.path)){var D=k.leaf(u,n);D.text=D.text.slice(r.offset)}}_.isEditor(u)&&(u.selection=null)}).children},get(u,e){var r=k.getIf(u,e);if(void 0===r)throw Error("Cannot find a descendant at path [".concat(e,"] in node: ").concat(L.stringify(u)));return r},getIf(u,e){for(var r=u,t=0;t<e.length;t++){var n=e[t];if(Z.isText(r)||!r.children[n])return;r=r.children[n]}return r},has(u,e){for(var r=u,t=0;t<e.length;t++){var n=e[t];if(Z.isText(r)||!r.children[n])return!1;r=r.children[n]}return!0},isNode:u=>Z.isText(u)||w.isElement(u)||_.isEditor(u),isNodeList(u){if(!Array.isArray(u))return!1;var e=j.get(u);if(void 0!==e)return e;var r=u.every(u=>k.isNode(u));return j.set(u,r),r},last(u,e){for(var r=e.slice(),t=k.get(u,r);t;)if(Z.isText(t)||0===t.children.length)break;else{var n=t.children.length-1;t=t.children[n],r.push(n)}return[t,r]},leaf(u,e){var r=k.get(u,e);if(!Z.isText(r))throw Error("Cannot get the leaf node at path [".concat(e,"] because it refers to a non-leaf node: ").concat(L.stringify(r)));return r},levels(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){for(var t of A.levels(e,r)){var n=k.get(u,t);yield[n,t]}}()},matches:(u,e)=>w.isElement(u)&&w.isElementProps(e)&&w.matches(u,e)||Z.isText(u)&&Z.isTextProps(e)&&Z.matches(u,e),nodes(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var{pass:r,reverse:t=!1}=e,{from:n=[],to:o}=e,a=new Set,i=[],D=u;!(o&&(t?A.isBefore(i,o):A.isAfter(i,o)));){if(a.has(D)||(yield[D,i]),!a.has(D)&&!Z.isText(D)&&0!==D.children.length&&(null==r||!1===r([D,i]))){a.add(D);var s=t?D.children.length-1:0;A.isAncestor(i,n)&&(s=n[i.length]),i=i.concat(s),D=k.get(u,i);continue}if(0===i.length)break;if(!t){var l=A.next(i);if(k.has(u,l)){i=l,D=k.get(u,i);continue}}if(t&&0!==i[i.length-1]){i=A.previous(i),D=k.get(u,i);continue}i=A.parent(i),D=k.get(u,i),a.add(D)}}()},parent(u,e){var r=A.parent(e),t=k.get(u,r);if(Z.isText(t))throw Error("Cannot get the parent of path [".concat(e,"] because it does not exist in the root."));return t},string:u=>Z.isText(u)?u.text:u.children.map(k.string).join(""),texts(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){for(var[r,t]of k.nodes(u,e))Z.isText(r)&&(yield[r,t])}()}};function N(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function R(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?N(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):N(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var S={isNodeOperation:u=>S.isOperation(u)&&u.type.endsWith("_node"),isOperation(u){if(!(0,n.Q)(u))return!1;switch(u.type){case"insert_node":case"remove_node":return A.isPath(u.path)&&k.isNode(u.node);case"insert_text":case"remove_text":return"number"==typeof u.offset&&"string"==typeof u.text&&A.isPath(u.path);case"merge_node":return"number"==typeof u.position&&A.isPath(u.path)&&(0,n.Q)(u.properties);case"move_node":return A.isPath(u.path)&&A.isPath(u.newPath);case"set_node":return A.isPath(u.path)&&(0,n.Q)(u.properties)&&(0,n.Q)(u.newProperties);case"set_selection":return null===u.properties&&b.isRange(u.newProperties)||null===u.newProperties&&b.isRange(u.properties)||(0,n.Q)(u.properties)&&(0,n.Q)(u.newProperties);case"split_node":return A.isPath(u.path)&&"number"==typeof u.position&&(0,n.Q)(u.properties);default:return!1}},isOperationList:u=>Array.isArray(u)&&u.every(u=>S.isOperation(u)),isSelectionOperation:u=>S.isOperation(u)&&u.type.endsWith("_selection"),isTextOperation:u=>S.isOperation(u)&&u.type.endsWith("_text"),inverse(u){switch(u.type){case"insert_node":return R(R({},u),{},{type:"remove_node"});case"insert_text":return R(R({},u),{},{type:"remove_text"});case"merge_node":return R(R({},u),{},{type:"split_node",path:A.previous(u.path)});case"move_node":var{newPath:e,path:r}=u;if(A.equals(e,r))return u;if(A.isSibling(r,e))return R(R({},u),{},{path:e,newPath:r});var t=A.transform(r,u),n=A.transform(A.next(r),u);return R(R({},u),{},{path:t,newPath:n});case"remove_node":return R(R({},u),{},{type:"insert_node"});case"remove_text":return R(R({},u),{},{type:"insert_text"});case"set_node":var{properties:o,newProperties:a}=u;return R(R({},u),{},{properties:a,newProperties:o});case"set_selection":var{properties:i,newProperties:D}=u;if(null==i)return R(R({},u),{},{properties:D,newProperties:null});if(null==D)return R(R({},u),{},{properties:null,newProperties:i});return R(R({},u),{},{properties:D,newProperties:i});case"split_node":return R(R({},u),{},{type:"merge_node",path:A.next(u.path)})}}},T=new WeakMap,_={above:(u,e)=>u.above(e),addMark(u,e,r){u.addMark(e,r)},after:(u,e,r)=>u.after(e,r),before:(u,e,r)=>u.before(e,r),deleteBackward(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:r="character"}=e;u.deleteBackward(r)},deleteForward(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{unit:r="character"}=e;u.deleteForward(r)},deleteFragment(u,e){u.deleteFragment(e)},edges:(u,e)=>u.edges(e),elementReadOnly(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return u.elementReadOnly(e)},end:(u,e)=>u.end(e),first:(u,e)=>u.first(e),fragment:(u,e)=>u.fragment(e),hasBlocks:(u,e)=>u.hasBlocks(e),hasInlines:(u,e)=>u.hasInlines(e),hasPath:(u,e)=>u.hasPath(e),hasTexts:(u,e)=>u.hasTexts(e),insertBreak(u){u.insertBreak()},insertFragment(u,e,r){u.insertFragment(e,r)},insertNode(u,e){u.insertNode(e)},insertSoftBreak(u){u.insertSoftBreak()},insertText(u,e){u.insertText(e)},isBlock:(u,e)=>u.isBlock(e),isEdge:(u,e,r)=>u.isEdge(e,r),isEditor:u=>(u=>{var e=T.get(u);if(void 0!==e)return e;if(!(0,n.Q)(u))return!1;var r="function"==typeof u.addMark&&"function"==typeof u.apply&&"function"==typeof u.deleteFragment&&"function"==typeof u.insertBreak&&"function"==typeof u.insertSoftBreak&&"function"==typeof u.insertFragment&&"function"==typeof u.insertNode&&"function"==typeof u.insertText&&"function"==typeof u.isElementReadOnly&&"function"==typeof u.isInline&&"function"==typeof u.isSelectable&&"function"==typeof u.isVoid&&"function"==typeof u.normalizeNode&&"function"==typeof u.onChange&&"function"==typeof u.removeMark&&"function"==typeof u.getDirtyPaths&&(null===u.marks||(0,n.Q)(u.marks))&&(null===u.selection||b.isRange(u.selection))&&k.isNodeList(u.children)&&S.isOperationList(u.operations);return T.set(u,r),r})(u),isElementReadOnly:(u,e)=>u.isElementReadOnly(e),isEmpty:(u,e)=>u.isEmpty(e),isEnd:(u,e,r)=>u.isEnd(e,r),isInline:(u,e)=>u.isInline(e),isNormalizing:u=>u.isNormalizing(),isSelectable:(u,e)=>u.isSelectable(e),isStart:(u,e,r)=>u.isStart(e,r),isVoid:(u,e)=>u.isVoid(e),last:(u,e)=>u.last(e),leaf:(u,e,r)=>u.leaf(e,r),levels:(u,e)=>u.levels(e),marks:u=>u.getMarks(),next:(u,e)=>u.next(e),node:(u,e,r)=>u.node(e,r),nodes:(u,e)=>u.nodes(e),normalize(u,e){u.normalize(e)},parent:(u,e,r)=>u.parent(e,r),path:(u,e,r)=>u.path(e,r),pathRef:(u,e,r)=>u.pathRef(e,r),pathRefs:u=>u.pathRefs(),point:(u,e,r)=>u.point(e,r),pointRef:(u,e,r)=>u.pointRef(e,r),pointRefs:u=>u.pointRefs(),positions:(u,e)=>u.positions(e),previous:(u,e)=>u.previous(e),range:(u,e,r)=>u.range(e,r),rangeRef:(u,e,r)=>u.rangeRef(e,r),rangeRefs:u=>u.rangeRefs(),removeMark(u,e){u.removeMark(e)},setNormalizing(u,e){u.setNormalizing(e)},start:(u,e)=>u.start(e),string:(u,e,r)=>u.string(e,r),unhangRange:(u,e,r)=>u.unhangRange(e,r),void:(u,e)=>u.void(e),withoutNormalizing(u,e){u.withoutNormalizing(e)},shouldMergeNodesRemovePrevNode:(u,e,r)=>u.shouldMergeNodesRemovePrevNode(e,r)},q={isSpan:u=>Array.isArray(u)&&2===u.length&&u.every(A.isPath)};function I(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function z(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?I(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var V={compare(u,e){var r=A.compare(u.path,e.path);return 0===r?u.offset<e.offset?-1:+(u.offset>e.offset):r},isAfter:(u,e)=>1===V.compare(u,e),isBefore:(u,e)=>-1===V.compare(u,e),equals:(u,e)=>u.offset===e.offset&&A.equals(u.path,e.path),isPoint:u=>(0,n.Q)(u)&&"number"==typeof u.offset&&A.isPath(u.path),transform(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,o.jM)(u,u=>{if(null===u)return null;var{affinity:t="forward"}=r,{path:n,offset:o}=u;switch(e.type){case"insert_node":case"move_node":u.path=A.transform(n,e,r);break;case"insert_text":A.equals(e.path,n)&&(e.offset<o||e.offset===o&&"forward"===t)&&(u.offset+=e.text.length);break;case"merge_node":A.equals(e.path,n)&&(u.offset+=e.position),u.path=A.transform(n,e,r);break;case"remove_text":A.equals(e.path,n)&&e.offset<=o&&(u.offset-=Math.min(o-e.offset,e.text.length));break;case"remove_node":if(A.equals(e.path,n)||A.isAncestor(e.path,n))return null;u.path=A.transform(n,e,r);break;case"split_node":if(A.equals(e.path,n))if(e.position===o&&null==t)return null;else(e.position<o||e.position===o&&"forward"===t)&&(u.offset-=e.position,u.path=A.transform(n,e,z(z({},r),{},{affinity:"forward"})));else u.path=A.transform(n,e,r)}})}},M=void 0,L={setScrubber(u){M=u},stringify:u=>JSON.stringify(u,M)},W=["text"],Q=["anchor","focus","merge"];function $(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function J(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?$(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var Z={equals(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{loose:t=!1}=r;return E(t?g(u,W):u,t?g(e,W):e)},isText:u=>(0,n.Q)(u)&&"string"==typeof u.text,isTextList:u=>Array.isArray(u)&&u.every(u=>Z.isText(u)),isTextProps:u=>void 0!==u.text,matches(u,e){for(var r in e)if("text"!==r&&(!u.hasOwnProperty(r)||u[r]!==e[r]))return!1;return!0},decorations(u,e){var r=[J({},u)];for(var t of e){var{anchor:n,focus:o,merge:a}=t,i=g(t,Q),[D,s]=b.edges(t),l=[],C=0,f=D.offset,c=s.offset,B=null!=a?a:Object.assign;for(var h of r){var{length:A}=h.text,v=C;if(C+=A,f<=v&&C<=c){B(h,i),l.push(h);continue}if(f!==c&&(f===C||c===v)||f>C||c<v||c===v&&0!==v){l.push(h);continue}var p=h,F=void 0,d=void 0;if(c<C){var E=c-v;d=J(J({},p),{},{text:p.text.slice(E)}),p=J(J({},p),{},{text:p.text.slice(0,E)})}if(f>v){var y=f-v;F=J(J({},p),{},{text:p.text.slice(0,y)}),p=J(J({},p),{},{text:p.text.slice(y)})}B(p,i),F&&l.push(F),l.push(p),d&&l.push(d)}r=l}return r}},H=u=>u.selection?u.selection:u.children.length>0?_.end(u,[]):[0],K=(u,e)=>{var[r]=_.node(u,e);return u=>u===r},Y=function(u){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=!e,n=e?ut(u):u,o=t.None,a=t.None,i=0,D=null;for(var s of n){var l=s.codePointAt(0);if(!l)break;var C=uh(s,l);if([o,a]=r?[a,C]:[C,o],(o&t.ZWJ)!=0&&(a&t.ExtPict)!=0&&!(r?up(u.substring(0,i)):up(u.substring(0,u.length-i))))break;if((o&t.RI)!=0&&(a&t.RI)!=0&&!(D=null!==D?!D:!!r||ud(u.substring(0,u.length-i)))||o!==t.None&&a!==t.None&&function(u,e){return -1===uA.findIndex(r=>(u&r[0])!=0&&(e&r[1])!=0)}(o,a))break;i+=s.length}return i||1},G=/\s/,U=/[\u002B\u0021-\u0023\u0025-\u002A\u002C-\u002F\u003A\u003B\u003F\u0040\u005B-\u005D\u005F\u007B\u007D\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,X=/['\u2018\u2019]/,uu=function(u){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=0,t=!1;u.length>0;){var n=Y(u,e),[o,a]=ue(u,n,e);if(ur(o,a,e))t=!0,r+=n;else if(t)break;else r+=n;u=a}return r},ue=(u,e,r)=>{if(r){var t=u.length-e;return[u.slice(t,u.length),u.slice(0,t)]}return[u.slice(0,e),u.slice(e)]},ur=function u(e,r){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(G.test(e))return!1;if(X.test(e)){var n=Y(r,t),[o,a]=ue(r,n,t);if(u(o,a,t))return!0}return!U.test(e)},ut=function*(u){for(var e=u.length-1,r=0;r<u.length;r++){var t=u.charAt(e-r);if(uo(t.charCodeAt(0))){var n=u.charAt(e-r-1);if(un(n.charCodeAt(0))){yield n+t,r++;continue}}yield t}},un=u=>u>=55296&&u<=56319,uo=u=>u>=56320&&u<=57343;!function(u){u[u.None=0]="None",u[u.Extend=1]="Extend",u[u.ZWJ=2]="ZWJ",u[u.RI=4]="RI",u[u.Prepend=8]="Prepend",u[u.SpacingMark=16]="SpacingMark",u[u.L=32]="L",u[u.V=64]="V",u[u.T=128]="T",u[u.LV=256]="LV",u[u.LVT=512]="LVT",u[u.ExtPict=1024]="ExtPict",u[u.Any=2048]="Any"}(t||(t={}));var ua=/^(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])$/,ui=/^(?:[\u0600-\u0605\u06DD\u070F\u0890\u0891\u08E2\u0D4E]|\uD804[\uDCBD\uDCCD\uDDC2\uDDC3]|\uD806[\uDD3F\uDD41\uDE3A\uDE84-\uDE89]|\uD807\uDD46)$/,uD=/^(?:[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0D02\u0D03\u0D3F\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D82\u0D83\u0DD0\u0DD1\u0DD8-\u0DDE\u0DF2\u0DF3\u0E33\u0EB3\u0F3E\u0F3F\u0F7F\u1031\u103B\u103C\u1056\u1057\u1084\u1715\u1734\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A6D-\u1A72\u1B04\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC]|\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB1\uDCB2\uDCB9\uDCBB\uDCBC\uDCBE\uDCC1\uDDB0\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD31-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD66\uDD6D])$/,us=/^[\u1100-\u115F\uA960-\uA97C]$/,ul=/^[\u1160-\u11A7\uD7B0-\uD7C6]$/,uC=/^[\u11A8-\u11FF\uD7CB-\uD7FB]$/,uf=/^[\uAC00\uAC1C\uAC38\uAC54\uAC70\uAC8C\uACA8\uACC4\uACE0\uACFC\uAD18\uAD34\uAD50\uAD6C\uAD88\uADA4\uADC0\uADDC\uADF8\uAE14\uAE30\uAE4C\uAE68\uAE84\uAEA0\uAEBC\uAED8\uAEF4\uAF10\uAF2C\uAF48\uAF64\uAF80\uAF9C\uAFB8\uAFD4\uAFF0\uB00C\uB028\uB044\uB060\uB07C\uB098\uB0B4\uB0D0\uB0EC\uB108\uB124\uB140\uB15C\uB178\uB194\uB1B0\uB1CC\uB1E8\uB204\uB220\uB23C\uB258\uB274\uB290\uB2AC\uB2C8\uB2E4\uB300\uB31C\uB338\uB354\uB370\uB38C\uB3A8\uB3C4\uB3E0\uB3FC\uB418\uB434\uB450\uB46C\uB488\uB4A4\uB4C0\uB4DC\uB4F8\uB514\uB530\uB54C\uB568\uB584\uB5A0\uB5BC\uB5D8\uB5F4\uB610\uB62C\uB648\uB664\uB680\uB69C\uB6B8\uB6D4\uB6F0\uB70C\uB728\uB744\uB760\uB77C\uB798\uB7B4\uB7D0\uB7EC\uB808\uB824\uB840\uB85C\uB878\uB894\uB8B0\uB8CC\uB8E8\uB904\uB920\uB93C\uB958\uB974\uB990\uB9AC\uB9C8\uB9E4\uBA00\uBA1C\uBA38\uBA54\uBA70\uBA8C\uBAA8\uBAC4\uBAE0\uBAFC\uBB18\uBB34\uBB50\uBB6C\uBB88\uBBA4\uBBC0\uBBDC\uBBF8\uBC14\uBC30\uBC4C\uBC68\uBC84\uBCA0\uBCBC\uBCD8\uBCF4\uBD10\uBD2C\uBD48\uBD64\uBD80\uBD9C\uBDB8\uBDD4\uBDF0\uBE0C\uBE28\uBE44\uBE60\uBE7C\uBE98\uBEB4\uBED0\uBEEC\uBF08\uBF24\uBF40\uBF5C\uBF78\uBF94\uBFB0\uBFCC\uBFE8\uC004\uC020\uC03C\uC058\uC074\uC090\uC0AC\uC0C8\uC0E4\uC100\uC11C\uC138\uC154\uC170\uC18C\uC1A8\uC1C4\uC1E0\uC1FC\uC218\uC234\uC250\uC26C\uC288\uC2A4\uC2C0\uC2DC\uC2F8\uC314\uC330\uC34C\uC368\uC384\uC3A0\uC3BC\uC3D8\uC3F4\uC410\uC42C\uC448\uC464\uC480\uC49C\uC4B8\uC4D4\uC4F0\uC50C\uC528\uC544\uC560\uC57C\uC598\uC5B4\uC5D0\uC5EC\uC608\uC624\uC640\uC65C\uC678\uC694\uC6B0\uC6CC\uC6E8\uC704\uC720\uC73C\uC758\uC774\uC790\uC7AC\uC7C8\uC7E4\uC800\uC81C\uC838\uC854\uC870\uC88C\uC8A8\uC8C4\uC8E0\uC8FC\uC918\uC934\uC950\uC96C\uC988\uC9A4\uC9C0\uC9DC\uC9F8\uCA14\uCA30\uCA4C\uCA68\uCA84\uCAA0\uCABC\uCAD8\uCAF4\uCB10\uCB2C\uCB48\uCB64\uCB80\uCB9C\uCBB8\uCBD4\uCBF0\uCC0C\uCC28\uCC44\uCC60\uCC7C\uCC98\uCCB4\uCCD0\uCCEC\uCD08\uCD24\uCD40\uCD5C\uCD78\uCD94\uCDB0\uCDCC\uCDE8\uCE04\uCE20\uCE3C\uCE58\uCE74\uCE90\uCEAC\uCEC8\uCEE4\uCF00\uCF1C\uCF38\uCF54\uCF70\uCF8C\uCFA8\uCFC4\uCFE0\uCFFC\uD018\uD034\uD050\uD06C\uD088\uD0A4\uD0C0\uD0DC\uD0F8\uD114\uD130\uD14C\uD168\uD184\uD1A0\uD1BC\uD1D8\uD1F4\uD210\uD22C\uD248\uD264\uD280\uD29C\uD2B8\uD2D4\uD2F0\uD30C\uD328\uD344\uD360\uD37C\uD398\uD3B4\uD3D0\uD3EC\uD408\uD424\uD440\uD45C\uD478\uD494\uD4B0\uD4CC\uD4E8\uD504\uD520\uD53C\uD558\uD574\uD590\uD5AC\uD5C8\uD5E4\uD600\uD61C\uD638\uD654\uD670\uD68C\uD6A8\uD6C4\uD6E0\uD6FC\uD718\uD734\uD750\uD76C\uD788]$/,uc=/^[\uAC01-\uAC1B\uAC1D-\uAC37\uAC39-\uAC53\uAC55-\uAC6F\uAC71-\uAC8B\uAC8D-\uACA7\uACA9-\uACC3\uACC5-\uACDF\uACE1-\uACFB\uACFD-\uAD17\uAD19-\uAD33\uAD35-\uAD4F\uAD51-\uAD6B\uAD6D-\uAD87\uAD89-\uADA3\uADA5-\uADBF\uADC1-\uADDB\uADDD-\uADF7\uADF9-\uAE13\uAE15-\uAE2F\uAE31-\uAE4B\uAE4D-\uAE67\uAE69-\uAE83\uAE85-\uAE9F\uAEA1-\uAEBB\uAEBD-\uAED7\uAED9-\uAEF3\uAEF5-\uAF0F\uAF11-\uAF2B\uAF2D-\uAF47\uAF49-\uAF63\uAF65-\uAF7F\uAF81-\uAF9B\uAF9D-\uAFB7\uAFB9-\uAFD3\uAFD5-\uAFEF\uAFF1-\uB00B\uB00D-\uB027\uB029-\uB043\uB045-\uB05F\uB061-\uB07B\uB07D-\uB097\uB099-\uB0B3\uB0B5-\uB0CF\uB0D1-\uB0EB\uB0ED-\uB107\uB109-\uB123\uB125-\uB13F\uB141-\uB15B\uB15D-\uB177\uB179-\uB193\uB195-\uB1AF\uB1B1-\uB1CB\uB1CD-\uB1E7\uB1E9-\uB203\uB205-\uB21F\uB221-\uB23B\uB23D-\uB257\uB259-\uB273\uB275-\uB28F\uB291-\uB2AB\uB2AD-\uB2C7\uB2C9-\uB2E3\uB2E5-\uB2FF\uB301-\uB31B\uB31D-\uB337\uB339-\uB353\uB355-\uB36F\uB371-\uB38B\uB38D-\uB3A7\uB3A9-\uB3C3\uB3C5-\uB3DF\uB3E1-\uB3FB\uB3FD-\uB417\uB419-\uB433\uB435-\uB44F\uB451-\uB46B\uB46D-\uB487\uB489-\uB4A3\uB4A5-\uB4BF\uB4C1-\uB4DB\uB4DD-\uB4F7\uB4F9-\uB513\uB515-\uB52F\uB531-\uB54B\uB54D-\uB567\uB569-\uB583\uB585-\uB59F\uB5A1-\uB5BB\uB5BD-\uB5D7\uB5D9-\uB5F3\uB5F5-\uB60F\uB611-\uB62B\uB62D-\uB647\uB649-\uB663\uB665-\uB67F\uB681-\uB69B\uB69D-\uB6B7\uB6B9-\uB6D3\uB6D5-\uB6EF\uB6F1-\uB70B\uB70D-\uB727\uB729-\uB743\uB745-\uB75F\uB761-\uB77B\uB77D-\uB797\uB799-\uB7B3\uB7B5-\uB7CF\uB7D1-\uB7EB\uB7ED-\uB807\uB809-\uB823\uB825-\uB83F\uB841-\uB85B\uB85D-\uB877\uB879-\uB893\uB895-\uB8AF\uB8B1-\uB8CB\uB8CD-\uB8E7\uB8E9-\uB903\uB905-\uB91F\uB921-\uB93B\uB93D-\uB957\uB959-\uB973\uB975-\uB98F\uB991-\uB9AB\uB9AD-\uB9C7\uB9C9-\uB9E3\uB9E5-\uB9FF\uBA01-\uBA1B\uBA1D-\uBA37\uBA39-\uBA53\uBA55-\uBA6F\uBA71-\uBA8B\uBA8D-\uBAA7\uBAA9-\uBAC3\uBAC5-\uBADF\uBAE1-\uBAFB\uBAFD-\uBB17\uBB19-\uBB33\uBB35-\uBB4F\uBB51-\uBB6B\uBB6D-\uBB87\uBB89-\uBBA3\uBBA5-\uBBBF\uBBC1-\uBBDB\uBBDD-\uBBF7\uBBF9-\uBC13\uBC15-\uBC2F\uBC31-\uBC4B\uBC4D-\uBC67\uBC69-\uBC83\uBC85-\uBC9F\uBCA1-\uBCBB\uBCBD-\uBCD7\uBCD9-\uBCF3\uBCF5-\uBD0F\uBD11-\uBD2B\uBD2D-\uBD47\uBD49-\uBD63\uBD65-\uBD7F\uBD81-\uBD9B\uBD9D-\uBDB7\uBDB9-\uBDD3\uBDD5-\uBDEF\uBDF1-\uBE0B\uBE0D-\uBE27\uBE29-\uBE43\uBE45-\uBE5F\uBE61-\uBE7B\uBE7D-\uBE97\uBE99-\uBEB3\uBEB5-\uBECF\uBED1-\uBEEB\uBEED-\uBF07\uBF09-\uBF23\uBF25-\uBF3F\uBF41-\uBF5B\uBF5D-\uBF77\uBF79-\uBF93\uBF95-\uBFAF\uBFB1-\uBFCB\uBFCD-\uBFE7\uBFE9-\uC003\uC005-\uC01F\uC021-\uC03B\uC03D-\uC057\uC059-\uC073\uC075-\uC08F\uC091-\uC0AB\uC0AD-\uC0C7\uC0C9-\uC0E3\uC0E5-\uC0FF\uC101-\uC11B\uC11D-\uC137\uC139-\uC153\uC155-\uC16F\uC171-\uC18B\uC18D-\uC1A7\uC1A9-\uC1C3\uC1C5-\uC1DF\uC1E1-\uC1FB\uC1FD-\uC217\uC219-\uC233\uC235-\uC24F\uC251-\uC26B\uC26D-\uC287\uC289-\uC2A3\uC2A5-\uC2BF\uC2C1-\uC2DB\uC2DD-\uC2F7\uC2F9-\uC313\uC315-\uC32F\uC331-\uC34B\uC34D-\uC367\uC369-\uC383\uC385-\uC39F\uC3A1-\uC3BB\uC3BD-\uC3D7\uC3D9-\uC3F3\uC3F5-\uC40F\uC411-\uC42B\uC42D-\uC447\uC449-\uC463\uC465-\uC47F\uC481-\uC49B\uC49D-\uC4B7\uC4B9-\uC4D3\uC4D5-\uC4EF\uC4F1-\uC50B\uC50D-\uC527\uC529-\uC543\uC545-\uC55F\uC561-\uC57B\uC57D-\uC597\uC599-\uC5B3\uC5B5-\uC5CF\uC5D1-\uC5EB\uC5ED-\uC607\uC609-\uC623\uC625-\uC63F\uC641-\uC65B\uC65D-\uC677\uC679-\uC693\uC695-\uC6AF\uC6B1-\uC6CB\uC6CD-\uC6E7\uC6E9-\uC703\uC705-\uC71F\uC721-\uC73B\uC73D-\uC757\uC759-\uC773\uC775-\uC78F\uC791-\uC7AB\uC7AD-\uC7C7\uC7C9-\uC7E3\uC7E5-\uC7FF\uC801-\uC81B\uC81D-\uC837\uC839-\uC853\uC855-\uC86F\uC871-\uC88B\uC88D-\uC8A7\uC8A9-\uC8C3\uC8C5-\uC8DF\uC8E1-\uC8FB\uC8FD-\uC917\uC919-\uC933\uC935-\uC94F\uC951-\uC96B\uC96D-\uC987\uC989-\uC9A3\uC9A5-\uC9BF\uC9C1-\uC9DB\uC9DD-\uC9F7\uC9F9-\uCA13\uCA15-\uCA2F\uCA31-\uCA4B\uCA4D-\uCA67\uCA69-\uCA83\uCA85-\uCA9F\uCAA1-\uCABB\uCABD-\uCAD7\uCAD9-\uCAF3\uCAF5-\uCB0F\uCB11-\uCB2B\uCB2D-\uCB47\uCB49-\uCB63\uCB65-\uCB7F\uCB81-\uCB9B\uCB9D-\uCBB7\uCBB9-\uCBD3\uCBD5-\uCBEF\uCBF1-\uCC0B\uCC0D-\uCC27\uCC29-\uCC43\uCC45-\uCC5F\uCC61-\uCC7B\uCC7D-\uCC97\uCC99-\uCCB3\uCCB5-\uCCCF\uCCD1-\uCCEB\uCCED-\uCD07\uCD09-\uCD23\uCD25-\uCD3F\uCD41-\uCD5B\uCD5D-\uCD77\uCD79-\uCD93\uCD95-\uCDAF\uCDB1-\uCDCB\uCDCD-\uCDE7\uCDE9-\uCE03\uCE05-\uCE1F\uCE21-\uCE3B\uCE3D-\uCE57\uCE59-\uCE73\uCE75-\uCE8F\uCE91-\uCEAB\uCEAD-\uCEC7\uCEC9-\uCEE3\uCEE5-\uCEFF\uCF01-\uCF1B\uCF1D-\uCF37\uCF39-\uCF53\uCF55-\uCF6F\uCF71-\uCF8B\uCF8D-\uCFA7\uCFA9-\uCFC3\uCFC5-\uCFDF\uCFE1-\uCFFB\uCFFD-\uD017\uD019-\uD033\uD035-\uD04F\uD051-\uD06B\uD06D-\uD087\uD089-\uD0A3\uD0A5-\uD0BF\uD0C1-\uD0DB\uD0DD-\uD0F7\uD0F9-\uD113\uD115-\uD12F\uD131-\uD14B\uD14D-\uD167\uD169-\uD183\uD185-\uD19F\uD1A1-\uD1BB\uD1BD-\uD1D7\uD1D9-\uD1F3\uD1F5-\uD20F\uD211-\uD22B\uD22D-\uD247\uD249-\uD263\uD265-\uD27F\uD281-\uD29B\uD29D-\uD2B7\uD2B9-\uD2D3\uD2D5-\uD2EF\uD2F1-\uD30B\uD30D-\uD327\uD329-\uD343\uD345-\uD35F\uD361-\uD37B\uD37D-\uD397\uD399-\uD3B3\uD3B5-\uD3CF\uD3D1-\uD3EB\uD3ED-\uD407\uD409-\uD423\uD425-\uD43F\uD441-\uD45B\uD45D-\uD477\uD479-\uD493\uD495-\uD4AF\uD4B1-\uD4CB\uD4CD-\uD4E7\uD4E9-\uD503\uD505-\uD51F\uD521-\uD53B\uD53D-\uD557\uD559-\uD573\uD575-\uD58F\uD591-\uD5AB\uD5AD-\uD5C7\uD5C9-\uD5E3\uD5E5-\uD5FF\uD601-\uD61B\uD61D-\uD637\uD639-\uD653\uD655-\uD66F\uD671-\uD68B\uD68D-\uD6A7\uD6A9-\uD6C3\uD6C5-\uD6DF\uD6E1-\uD6FB\uD6FD-\uD717\uD719-\uD733\uD735-\uD74F\uD751-\uD76B\uD76D-\uD787\uD789-\uD7A3]$/,uB=/^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])$/,uh=(u,e)=>{var r=t.Any;return -1!==u.search(ua)&&(r|=t.Extend),8205===e&&(r|=t.ZWJ),e>=127462&&e<=127487&&(r|=t.RI),-1!==u.search(ui)&&(r|=t.Prepend),-1!==u.search(uD)&&(r|=t.SpacingMark),-1!==u.search(us)&&(r|=t.L),-1!==u.search(ul)&&(r|=t.V),-1!==u.search(uC)&&(r|=t.T),-1!==u.search(uf)&&(r|=t.LV),-1!==u.search(uc)&&(r|=t.LVT),-1!==u.search(uB)&&(r|=t.ExtPict),r},uA=[[t.L,t.L|t.V|t.LV|t.LVT],[t.LV|t.V,t.V|t.T],[t.LVT|t.T,t.T],[t.Any,t.Extend|t.ZWJ],[t.Any,t.SpacingMark],[t.Prepend,t.Any],[t.ZWJ,t.ExtPict],[t.RI,t.RI]],uv=/(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2605\u2607-\u2612\u2614-\u2685\u2690-\u2705\u2708-\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763-\u2767\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDD0F\uDD2F\uDD6C-\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAD-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDFFA]|\uD83D[\uDC00-\uDD3D\uDD46-\uDE4F\uDE80-\uDEFF\uDF74-\uDF7F\uDFD5-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDEFF]|\uD83F[\uDC00-\uDFFD])(?:[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE\u09C1-\u09C4\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3E\u0B3F\u0B41-\u0B44\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BCD\u0BD7\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC2\u0CC6\u0CCC\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D3E\u0D41-\u0D44\u0D4D\u0D57\u0D62\u0D63\u0D81\u0DCA\u0DCF\u0DD2-\u0DD4\u0DD6\u0DDF\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B03\u1B34-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDE41\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF3E\uDF40\uDF57\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB0\uDCB3-\uDCB8\uDCBA\uDCBD\uDCBF\uDCC0\uDCC2\uDCC3\uDDAF\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD30\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4\uDF00\uDF01\uDF36-\uDF3A\uDF40\uDF42]|\uD80D[\uDC40\uDC47-\uDC55]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65\uDD67-\uDD69\uDD6E-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF])*\u200D$/,up=u=>-1!==u.search(uv),uF=/(?:\uD83C[\uDDE6-\uDDFF])+$/g,ud=u=>{var e=u.match(uF);return null!==e&&e[0].length/2%2==1};function uE(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function ug(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?uE(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):uE(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var uy=ug(ug(ug(ug({},{transform(u,e){u.children=(0,o.mq)(u.children);var r=u.selection&&(0,o.mq)(u.selection);try{r=((u,e,r)=>{switch(r.type){case"insert_node":var{path:t,node:n}=r,o=k.parent(u,t),a=t[t.length-1];if(a>o.children.length)throw Error('Cannot apply an "insert_node" operation at path ['.concat(t,"] because the destination is past the end of the node."));if(o.children.splice(a,0,n),e)for(var[i,D]of b.points(e))e[D]=V.transform(i,r);break;case"insert_text":var{path:s,offset:l,text:C}=r;if(0===C.length)break;var f=k.leaf(u,s),c=f.text.slice(0,l),B=f.text.slice(l);if(f.text=c+C+B,e)for(var[h,v]of b.points(e))e[v]=V.transform(h,r);break;case"merge_node":var{path:p}=r,F=k.get(u,p),E=A.previous(p),g=k.get(u,E),y=k.parent(u,p),m=p[p.length-1];if(Z.isText(F)&&Z.isText(g))g.text+=F.text;else if(Z.isText(F)||Z.isText(g))throw Error('Cannot apply a "merge_node" operation at path ['.concat(p,"] to nodes of different interfaces: ").concat(L.stringify(F)," ").concat(L.stringify(g)));else g.children.push(...F.children);if(y.children.splice(m,1),e)for(var[O,w]of b.points(e))e[w]=V.transform(O,r);break;case"move_node":var{path:P,newPath:x}=r;if(A.isAncestor(P,x))throw Error("Cannot move a path [".concat(P,"] to new path [").concat(x,"] because the destination is inside itself."));var j=k.get(u,P),N=k.parent(u,P),R=P[P.length-1];N.children.splice(R,1);var S=A.transform(P,r),T=k.get(u,A.parent(S)),_=S[S.length-1];if(T.children.splice(_,0,j),e)for(var[q,I]of b.points(e))e[I]=V.transform(q,r);break;case"remove_node":var{path:z}=r,M=z[z.length-1];if(k.parent(u,z).children.splice(M,1),e)for(var[W,Q]of b.points(e)){var $=V.transform(W,r);if(null!=e&&null!=$)e[Q]=$;else{var J=void 0,H=void 0;for(var[K,Y]of k.texts(u))if(-1===A.compare(Y,z))J=[K,Y];else{H=[K,Y];break}var G=!1;J&&H&&(G=A.equals(H[1],z)?!A.hasPrevious(H[1]):A.common(J[1],z).length<A.common(H[1],z).length),J&&!G?(W.path=J[1],W.offset=J[0].text.length):H?(W.path=H[1],W.offset=0):e=null}}break;case"remove_text":var{path:U,offset:X,text:uu}=r;if(0===uu.length)break;var ue=k.leaf(u,U),ur=ue.text.slice(0,X),ut=ue.text.slice(X+uu.length);if(ue.text=ur+ut,e)for(var[un,uo]of b.points(e))e[uo]=V.transform(un,r);break;case"set_node":var{path:ua,properties:ui,newProperties:uD}=r;if(0===ua.length)throw Error("Cannot set properties on the root node!");var us=k.get(u,ua);for(var ul in uD){if("children"===ul||"text"===ul)throw Error('Cannot set the "'.concat(ul,'" property of nodes!'));var uC=uD[ul];null==uC?delete us[ul]:us[ul]=uC}for(var uf in ui)uD.hasOwnProperty(uf)||delete us[uf];break;case"set_selection":var{newProperties:uc}=r;if(null==uc)e=uc;else{if(null==e){if(!b.isRange(uc))throw Error('Cannot apply an incomplete "set_selection" operation properties '.concat(L.stringify(uc)," when there is no current selection."));e=d({},uc)}for(var uB in uc){var uh=uc[uB];if(null==uh){if("anchor"===uB||"focus"===uB)throw Error('Cannot remove the "'.concat(uB,'" selection property'));delete e[uB]}else e[uB]=uh}}break;case"split_node":var uA,{path:uv,position:up,properties:uF}=r;if(0===uv.length)throw Error('Cannot apply a "split_node" operation at path ['.concat(uv,"] because the root node cannot be split."));var ud=k.get(u,uv),uE=k.parent(u,uv),ug=uv[uv.length-1];if(Z.isText(ud)){var uy=ud.text.slice(0,up),um=ud.text.slice(up);ud.text=uy,uA=d(d({},uF),{},{text:um})}else{var ub=ud.children.slice(0,up),uO=ud.children.slice(up);ud.children=ub,uA=d(d({},uF),{},{children:uO})}if(uE.children.splice(ug+1,0,uA),e)for(var[uw,uP]of b.points(e))e[uP]=V.transform(uw,r)}return e})(u,r,e)}finally{u.children=(0,o.vD)(u.children),r?u.selection=(0,o.Qx)(r)?(0,o.vD)(r):r:u.selection=null}}}),{insertNodes(u,e,r){u.insertNodes(e,r)},liftNodes(u,e){u.liftNodes(e)},mergeNodes(u,e){u.mergeNodes(e)},moveNodes(u,e){u.moveNodes(e)},removeNodes(u,e){u.removeNodes(e)},setNodes(u,e,r){u.setNodes(e,r)},splitNodes(u,e){u.splitNodes(e)},unsetNodes(u,e,r){u.unsetNodes(e,r)},unwrapNodes(u,e){u.unwrapNodes(e)},wrapNodes(u,e,r){u.wrapNodes(e,r)}}),{collapse(u,e){u.collapse(e)},deselect(u){u.deselect()},move(u,e){u.move(e)},select(u,e){u.select(e)},setPoint(u,e,r){u.setPoint(e,r)},setSelection(u,e){u.setSelection(e)}}),{delete(u,e){u.delete(e)},insertFragment(u,e,r){u.insertFragment(e,r)},insertText(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_.withoutNormalizing(u,()=>{var{voids:t=!1}=r,{at:n=H(u)}=r;if(A.isPath(n)&&(n=_.range(u,n)),b.isRange(n))if(b.isCollapsed(n))n=n.anchor;else{var o=b.end(n);if(!t&&_.void(u,{at:o}))return;var a=b.start(n),i=_.pointRef(u,a),D=_.pointRef(u,o);uy.delete(u,{at:n,voids:t});var s=i.unref(),l=D.unref();n=s||l,uy.setSelection(u,{anchor:n,focus:n})}if(!(!t&&_.void(u,{at:n})||_.elementReadOnly(u,{at:n}))){var{path:C,offset:f}=n;e.length>0&&u.apply({type:"insert_text",path:C,offset:f,text:e})}})}}),um=new WeakMap;function ub(u,e,r){var t,n,o=s.get(u)||[],a=l.get(u)||new Set,i=u=>{if(u){var e=u.join(",");n.has(e)||(n.add(e),t.push(u))}};if(r)for(var D of(t=[],n=new Set,o))i(r(D));else t=o,n=a;for(var C of e)i(C);s.set(u,t),l.set(u,n)}var uO=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{voids:r=!1,mode:t="lowest",at:n=u.selection,match:o}=e;if(n){var a=_.path(u,n);for(var[i,D]of _.levels(u,{at:a,voids:r,match:o,reverse:"lowest"===t}))if(!Z.isText(i)){if(b.isRange(n)){if(A.isAncestor(D,n.anchor.path)&&A.isAncestor(D,n.focus.path))return[i,D]}else if(!A.equals(a,D))return[i,D]}}};function uw(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function uP(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?uw(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):uw(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}function ux(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function uj(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ux(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):ux(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var uk=function(u,e){var r,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=_.point(u,e,{edge:"end"}),o=_.end(u,[]),{distance:a=1}=t,i=0;for(var D of _.positions(u,uj(uj({},t),{},{at:{anchor:n,focus:o}}))){if(i>a)break;0!==i&&(r=D),i++}return r};function uN(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function uR(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?uN(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):uN(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var uS=function(u,e){var r,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=_.start(u,[]),o=_.point(u,e,{edge:"start"}),{distance:a=1}=t,i=0;for(var D of _.positions(u,uR(uR({},t),{},{at:{anchor:n,focus:o},reverse:!0}))){if(i>a)break;0!==i&&(r=D),i++}return r},uT=function(u){var{direction:e="forward"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:r}=u;r&&b.isExpanded(r)&&uy.delete(u,{reverse:"backward"===e})};function u_(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function uq(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?u_(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):u_(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var uI=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _.above(u,uq(uq({},e),{},{match:e=>w.isElement(e)&&_.isElementReadOnly(u,e)}))};function uz(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function uV(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?uz(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):uz(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var uM=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _.above(u,uV(uV({},e),{},{match:e=>w.isElement(e)&&_.isVoid(u,e)}))};function uL(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}var uW=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:t,marks:n}=u;if(t){if(n){var o=function(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?uL(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):uL(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}({text:e},n);uy.insertNodes(u,o,{at:r.at,voids:r.voids})}else uy.insertText(u,e,r);u.marks=null}},uQ=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t=_.path(u,e,r);return[k.leaf(u,t),t]},u$=["text"],uJ=["text"],uZ=function(u){var{marks:e,selection:r}=u;if(!r)return null;var{anchor:t,focus:n}=r;if(e)return e;if(b.isExpanded(r)){if(b.isBackward(r)&&([n,t]=[t,n]),_.isEnd(u,t,t.path)){var o=_.after(u,t);o&&(t=o)}var[a]=_.nodes(u,{match:Z.isText,at:{anchor:t,focus:n}});if(!a)return{};var[i]=a;return g(i,u$)}var{path:D}=t,[s]=_.leaf(u,D);if(0===t.offset){var l=_.previous(u,{at:D,match:Z.isText});if(!_.above(u,{match:e=>w.isElement(e)&&_.isVoid(u,e)&&u.markableVoid(e)})){var C=_.above(u,{match:e=>w.isElement(e)&&_.isBlock(u,e)});if(l&&C){var[f,c]=l,[,B]=C;A.isAncestor(B,c)&&(s=f)}}}return g(s,uJ)},uH=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:r="lowest",voids:t=!1}=e,{match:n,at:o=u.selection}=e;if(o){var a=_.after(u,o,{voids:t});if(a){var[,i]=_.last(u,[]),D=[a.path,i];if(A.isPath(o)&&0===o.length)throw Error("Cannot get the next node from the root node!");if(null==n)if(A.isPath(o)){var[s]=_.parent(u,o);n=u=>s.children.includes(u)}else n=()=>!0;var[l]=_.nodes(u,{at:D,match:n,mode:r,voids:t});return l}}},uK=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t=_.path(u,e,r);return[k.get(u,t),t]},uY=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{force:r=!1,operation:t}=e,n=u=>s.get(u)||[],o=u=>{var e=n(u).pop(),r=e.join(",");return(l.get(u)||new Set).delete(r),e};if(_.isNormalizing(u)){if(r){var a=Array.from(k.nodes(u),u=>{var[,e]=u;return e}),i=new Set(a.map(u=>u.join(",")));s.set(u,a),l.set(u,i)}0!==n(u).length&&_.withoutNormalizing(u,()=>{for(var e of n(u))if(k.has(u,e)){var r=_.node(u,e),[a,i]=r;w.isElement(a)&&0===a.children.length&&u.normalizeNode(r,{operation:t})}for(var D=n(u),s=D.length,l=0;0!==D.length;){if(!u.shouldNormalize({dirtyPaths:D,iteration:l,initialDirtyPathsLength:s,operation:t}))return;var C=o(u);if(k.has(u,C)){var f=_.node(u,C);u.normalizeNode(f,{operation:t})}l++,D=n(u)}})}},uG=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t=_.path(u,e,r),n=A.parent(t);return _.node(u,n)},uU=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:t="forward"}=r,n={current:e,affinity:t,unref(){var{current:e}=n;return _.pathRefs(u).delete(n),n.current=null,e}};return _.pathRefs(u).add(n),n},uX=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{depth:t,edge:n}=r;if(A.isPath(e)){if("start"===n){var[,o]=k.first(u,e);e=o}else if("end"===n){var[,a]=k.last(u,e);e=a}}return b.isRange(e)&&(e="start"===n?b.start(e):"end"===n?b.end(e):A.common(e.anchor.path,e.focus.path)),V.isPoint(e)&&(e=e.path),null!=t&&(e=e.slice(0,t)),e},u0=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:t="forward"}=r,n={current:e,affinity:t,unref(){var{current:e}=n;return _.pointRefs(u).delete(n),n.current=null,e}};return _.pointRefs(u).add(n),n},u1=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{edge:t="start"}=r;if(A.isPath(e)){if("end"===t){var n,[,o]=k.last(u,e);n=o}else{var[,a]=k.first(u,e);n=a}var i=k.get(u,n);if(!Z.isText(i))throw Error("Cannot get the ".concat(t," point in the node at path [").concat(e,"] because it has no ").concat(t," text node."));return{path:n,offset:"end"===t?i.text.length:0}}if(b.isRange(e)){var[D,s]=b.edges(e);return"start"===t?D:s}return e},u3=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{mode:r="lowest",voids:t=!1}=e,{match:n,at:o=u.selection}=e;if(o){var a=_.before(u,o,{voids:t});if(a){var[,i]=_.first(u,[]),D=[a.path,i];if(A.isPath(o)&&0===o.length)throw Error("Cannot get the previous node from the root node!");if(null==n)if(A.isPath(o)){var[s]=_.parent(u,o);n=u=>s.children.includes(u)}else n=()=>!0;var[l]=_.nodes(u,{reverse:!0,at:D,match:n,mode:r,voids:t});return l}}},u2=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{affinity:t="forward"}=r,n={current:e,affinity:t,unref(){var{current:e}=n;return _.rangeRefs(u).delete(n),n.current=null,e}};return _.rangeRefs(u).add(n),n};function u7(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}var u8=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:t=!1}=r,n=_.range(u,e),[o,a]=b.edges(n),i="";for(var[D,s]of _.nodes(u,{at:n,match:Z.isText,voids:t})){var l=D.text;A.equals(s,a.path)&&(l=l.slice(0,a.offset)),A.equals(s,o.path)&&(l=l.slice(o.offset)),i+=l}return i},u4=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{voids:t=!1}=r,[n,o]=b.edges(e);if(0!==n.offset||0!==o.offset||b.isCollapsed(e)||A.hasPrevious(o.path))return e;var a=_.above(u,{at:o,match:e=>w.isElement(e)&&_.isBlock(u,e),voids:t}),i=a?a[1]:[],D={anchor:_.start(u,n),focus:o},s=!0;for(var[l,C]of _.nodes(u,{at:D,match:Z.isText,reverse:!0,voids:t})){if(s){s=!1;continue}if(""!==l.text||A.isBefore(C,i)){o={path:C,offset:l.text.length};break}}return{anchor:n,focus:o}},u9=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.withoutNormalizing(u,()=>{var r,t,n,{reverse:o=!1,unit:a="character",distance:i=1,voids:D=!1}=e,{at:s=u.selection,hanging:l=!1}=e;if(s){var C=!1;if(b.isRange(s)&&b.isCollapsed(s)&&(C=!0,s=s.anchor),V.isPoint(s)){var f=_.void(u,{at:s,mode:"highest"});if(!D&&f){var[,c]=f;s=c}else{var B={unit:a,distance:i},h=o?_.before(u,s,B)||_.start(u,[]):_.after(u,s,B)||_.end(u,[]);s={anchor:s,focus:h},l=!0}}if(A.isPath(s))return void uy.removeNodes(u,{at:s,voids:D});if(!b.isCollapsed(s)){if(!l){var[,v]=b.edges(s),p=_.end(u,[]);V.equals(v,p)||(s=_.unhangRange(u,s,{voids:D}))}var[F,d]=b.edges(s),E=_.above(u,{match:e=>w.isElement(e)&&_.isBlock(u,e),at:F,voids:D}),g=_.above(u,{match:e=>w.isElement(e)&&_.isBlock(u,e),at:d,voids:D}),y=E&&g&&!A.equals(E[1],g[1]),m=A.equals(F.path,d.path),O=D?null:null!=(r=_.void(u,{at:F,mode:"highest"}))?r:_.elementReadOnly(u,{at:F,mode:"highest"}),P=D?null:null!=(t=_.void(u,{at:d,mode:"highest"}))?t:_.elementReadOnly(u,{at:d,mode:"highest"});if(O){var x=_.before(u,F);x&&E&&A.isAncestor(E[1],x.path)&&(F=x)}if(P){var j=_.after(u,d);j&&g&&A.isAncestor(g[1],j.path)&&(d=j)}var k=[];for(var N of _.nodes(u,{at:s,voids:D})){var[R,S]=N;(!n||0!==A.compare(S,n))&&(!D&&w.isElement(R)&&(_.isVoid(u,R)||_.isElementReadOnly(u,R))||!A.isCommon(S,F.path)&&!A.isCommon(S,d.path))&&(k.push(N),n=S)}var T=Array.from(k,e=>{var[,r]=e;return _.pathRef(u,r)}),q=_.pointRef(u,F),I=_.pointRef(u,d),z="";if(!m&&!O){var M=q.current,[L]=_.leaf(u,M),{path:W}=M,{offset:Q}=F,$=L.text.slice(Q);$.length>0&&(u.apply({type:"remove_text",path:W,offset:Q,text:$}),z=$)}if(T.reverse().map(u=>u.unref()).filter(u=>null!==u).forEach(e=>uy.removeNodes(u,{at:e,voids:D})),!P){var J=I.current,[Z]=_.leaf(u,J),{path:H}=J,K=m?F.offset:0,Y=Z.text.slice(K,d.offset);Y.length>0&&(u.apply({type:"remove_text",path:H,offset:K,text:Y}),z=Y)}!m&&y&&I.current&&q.current&&uy.mergeNodes(u,{at:I.current,hanging:!0,voids:D}),C&&o&&"character"===a&&z.length>1&&z.match(/[\u0E00-\u0E7F]+/)&&uy.insertText(u,z.slice(0,z.length-i));var G=q.unref(),U=I.unref(),X=o?G||U:U||G;null==e.at&&X&&uy.select(u,X)}}})},u5=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_.withoutNormalizing(u,()=>{var t,{hanging:n=!1,voids:o=!1}=r,{at:a=H(u),batchDirty:i=!0}=r;if(e.length){if(b.isRange(a))if(n||(a=_.unhangRange(u,a,{voids:o})),b.isCollapsed(a))a=a.anchor;else{var[,D]=b.edges(a);if(!o&&_.void(u,{at:D}))return;var s=_.pointRef(u,D);uy.delete(u,{at:a}),a=s.unref()}else A.isPath(a)&&(a=_.start(u,a));if(!(!o&&_.void(u,{at:a}))){var l=_.above(u,{at:a,match:e=>w.isElement(e)&&_.isInline(u,e),mode:"highest",voids:o});if(l){var[,C]=l;_.isEnd(u,a,C)?a=_.after(u,C):_.isStart(u,a,C)&&(a=_.before(u,C))}var[,f]=_.above(u,{match:e=>w.isElement(e)&&_.isBlock(u,e),at:a,voids:o}),c=_.isStart(u,a,f),B=_.isEnd(u,a,f),h=c&&B,v=!c||c&&B,p=!B,[,F]=k.first({children:e},[]),[,d]=k.last({children:e},[]),E=[],g=e=>{var[r,t]=e;return 0!==t.length&&(!!h||!(v&&A.isAncestor(t,F)&&w.isElement(r)&&!u.isVoid(r)&&!u.isInline(r)||p&&A.isAncestor(t,d)&&w.isElement(r)&&!u.isVoid(r)&&!u.isInline(r)))};for(var y of k.nodes({children:e},{pass:g}))g(y)&&E.push(y);var m=[],O=[],P=[],x=!0,j=!1;for(var[N]of E)w.isElement(N)&&!u.isInline(N)?(x=!1,j=!0,O.push(N)):x?m.push(N):P.push(N);var[R]=_.nodes(u,{at:a,match:e=>Z.isText(e)||_.isInline(u,e),mode:"highest",voids:o}),[,S]=R,T=_.isStart(u,a,S),q=_.isEnd(u,a,S),I=_.pathRef(u,B&&!P.length?A.next(f):f),z=_.pathRef(u,q?A.next(S):S);uy.splitNodes(u,{at:a,match:e=>j?w.isElement(e)&&_.isBlock(u,e):Z.isText(e)||_.isInline(u,e),mode:j?"lowest":"highest",always:j&&(!c||m.length>0)&&(!B||P.length>0),voids:o});var V=_.pathRef(u,!T||T&&q?A.next(S):S);if(uy.insertNodes(u,m,{at:V.current,match:e=>Z.isText(e)||_.isInline(u,e),mode:"highest",voids:o,batchDirty:i}),h&&!m.length&&O.length&&!P.length&&uy.delete(u,{at:f,voids:o}),uy.insertNodes(u,O,{at:I.current,match:e=>w.isElement(e)&&_.isBlock(u,e),mode:"lowest",voids:o,batchDirty:i}),uy.insertNodes(u,P,{at:z.current,match:e=>Z.isText(e)||_.isInline(u,e),mode:"highest",voids:o,batchDirty:i}),!r.at&&(P.length>0&&z.current?t=A.previous(z.current):O.length>0&&I.current?t=A.previous(I.current):V.current&&(t=A.previous(V.current)),t)){var M=_.end(u,t);uy.select(u,M)}V.unref(),I.unref(),z.unref()}}})},u6=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{edge:r="anchor"}=e,{selection:t}=u;if(t){if("anchor"===r)uy.select(u,t.anchor);else if("focus"===r)uy.select(u,t.focus);else if("start"===r){var[n]=b.edges(t);uy.select(u,n)}else if("end"===r){var[,o]=b.edges(t);uy.select(u,o)}}},eu=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{selection:r}=u,{distance:t=1,unit:n="character",reverse:o=!1}=e,{edge:a=null}=e;if(r){"start"===a&&(a=b.isBackward(r)?"focus":"anchor"),"end"===a&&(a=b.isBackward(r)?"anchor":"focus");var{anchor:i,focus:D}=r,s={distance:t,unit:n,ignoreNonSelectable:!0},l={};if(null==a||"anchor"===a){var C=o?_.before(u,i,s):_.after(u,i,s);C&&(l.anchor=C)}if(null==a||"focus"===a){var f=o?_.before(u,D,s):_.after(u,D,s);f&&(l.focus=f)}uy.setSelection(u,l)}};function ee(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function er(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ee(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var et=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{selection:t}=u,{edge:n="both"}=r;if(t){"start"===n&&(n=b.isBackward(t)?"focus":"anchor"),"end"===n&&(n=b.isBackward(t)?"anchor":"focus");var{anchor:o,focus:a}=t,i="anchor"===n?o:a;uy.setSelection(u,{["anchor"===n?"anchor":"focus"]:er(er({},i),e)})}},en=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_.withoutNormalizing(u,()=>{var{hanging:t=!1,voids:n=!1,mode:o="lowest",batchDirty:a=!0}=r,{at:i,match:D,select:s}=r;if(k.isNode(e)&&(e=[e]),0!==e.length){var[l]=e;if(i||(i=H(u),!1!==s&&(s=!0)),null==s&&(s=!1),b.isRange(i))if(t||(i=_.unhangRange(u,i,{voids:n})),b.isCollapsed(i))i=i.anchor;else{var[,C]=b.edges(i),f=_.pointRef(u,C);uy.delete(u,{at:i}),i=f.unref()}if(V.isPoint(i)){null==D&&(D=Z.isText(l)?u=>Z.isText(u):u.isInline(l)?e=>Z.isText(e)||_.isInline(u,e):e=>w.isElement(e)&&_.isBlock(u,e));var[c]=_.nodes(u,{at:i.path,match:D,mode:o,voids:n});if(!c)return;var[,B]=c,h=_.pathRef(u,B),v=_.isEnd(u,i,B);uy.splitNodes(u,{at:i,match:D,mode:o,voids:n});var p=h.unref();i=v?A.next(p):p}var F=A.parent(i),d=i[i.length-1];if(!(!n&&_.void(u,{at:F}))){if(a){var E=[],g=A.levels(F);((u,e,r)=>{var t=um.get(u)||!1;um.set(u,!0);try{e(),r()}finally{um.set(u,t)}})(u,()=>{for(var r of e)!function(){var e=F.concat(d);d++;var t={type:"insert_node",path:e,node:r};u.apply(t),i=A.next(i),E.push(t),Z.isText?g.push(...Array.from(k.nodes(r),u=>{var[,r]=u;return e.concat(r)})):g.push(e)}()},()=>{ub(u,g,u=>{var e=u;for(var r of E)if(A.operationCanTransformPath(r)&&!(e=A.transform(e,r)))return null;return e})})}else for(var y of e){var m=F.concat(d);d++,u.apply({type:"insert_node",path:m,node:y}),i=A.next(i)}if(i=A.previous(i),s){var O=_.end(u,i);O&&uy.select(u,O)}}}})},eo=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.withoutNormalizing(u,()=>{var{at:r=u.selection,mode:t="lowest",voids:n=!1}=e,{match:o}=e;if(null==o&&(o=A.isPath(r)?K(u,r):e=>w.isElement(e)&&_.isBlock(u,e)),r)for(var a of Array.from(_.nodes(u,{at:r,match:o,mode:t,voids:n}),e=>{var[,r]=e;return _.pathRef(u,r)})){var i=a.unref();if(i.length<2)throw Error("Cannot lift node at a path [".concat(i,"] because it has a depth of less than `2`."));var[D,s]=_.node(u,A.parent(i)),l=i[i.length-1],{length:C}=D.children;if(1===C){var f=A.next(s);uy.moveNodes(u,{at:i,to:f,voids:n}),uy.removeNodes(u,{at:s,voids:n})}else if(0===l)uy.moveNodes(u,{at:i,to:s,voids:n});else if(l===C-1){var c=A.next(s);uy.moveNodes(u,{at:i,to:c,voids:n})}else{var B=A.next(i),h=A.next(s);uy.splitNodes(u,{at:B,voids:n}),uy.moveNodes(u,{at:i,to:h,voids:n})}}})},ea=["text"],ei=["children"],eD=(u,e)=>w.isElement(e)?!!_.isVoid(u,e)||1===e.children.length&&eD(u,e.children[0]):!_.isEditor(e)&&!0,es=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.withoutNormalizing(u,()=>{var r,t,{match:n,at:o=u.selection}=e,{hanging:a=!1,voids:i=!1,mode:D="lowest"}=e;if(o){if(null==n)if(A.isPath(o)){var[s]=_.parent(u,o);n=u=>s.children.includes(u)}else n=e=>w.isElement(e)&&_.isBlock(u,e);if(!a&&b.isRange(o)&&(o=_.unhangRange(u,o,{voids:i})),b.isRange(o))if(b.isCollapsed(o))o=o.anchor;else{var[,l]=b.edges(o),C=_.pointRef(u,l);uy.delete(u,{at:o}),o=C.unref(),null==e.at&&uy.select(u,o)}var[f]=_.nodes(u,{at:o,match:n,voids:i,mode:D}),c=_.previous(u,{at:o,match:n,voids:i,mode:D});if(f&&c){var[B,h]=f,[v,p]=c;if(0!==h.length&&0!==p.length){var F=A.next(p),d=A.common(h,p),E=A.isSibling(h,p),y=Array.from(_.levels(u,{at:h}),u=>{var[e]=u;return e}).slice(d.length).slice(0,-1),m=_.above(u,{at:h,mode:"highest",match:e=>y.includes(e)&&eD(u,e)}),O=m&&_.pathRef(u,m[1]);if(Z.isText(B)&&Z.isText(v)){var P=g(B,ea);t=v.text.length,r=P}else if(w.isElement(B)&&w.isElement(v)){var P=g(B,ei);t=v.children.length,r=P}else throw Error("Cannot merge the node at path [".concat(h,"] with the previous sibling because it is not the same kind: ").concat(L.stringify(B)," ").concat(L.stringify(v)));E||uy.moveNodes(u,{at:h,to:F,voids:i}),O&&uy.removeNodes(u,{at:O.current,voids:i}),_.shouldMergeNodesRemovePrevNode(u,c,f)?uy.removeNodes(u,{at:p,voids:i}):u.apply({type:"merge_node",path:F,position:t,properties:r}),O&&O.unref()}}}})},el=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.withoutNormalizing(u,()=>{var{hanging:r=!1,voids:t=!1,mode:n="lowest"}=e,{at:o=u.selection,match:a}=e;if(o)for(var i of(null==a&&(a=A.isPath(o)?K(u,o):e=>w.isElement(e)&&_.isBlock(u,e)),!r&&b.isRange(o)&&(o=_.unhangRange(u,o,{voids:t})),Array.from(_.nodes(u,{at:o,match:a,mode:n,voids:t}),e=>{var[,r]=e;return _.pathRef(u,r)}))){var D=i.unref();if(D){var[s]=_.node(u,D);u.apply({type:"remove_node",path:D,node:s})}}})},eC=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_.withoutNormalizing(u,()=>{var{match:t,at:n=u.selection,compare:o,merge:a}=r,{hanging:i=!1,mode:D="lowest",split:s=!1,voids:l=!1}=r;if(n){if(null==t&&(t=A.isPath(n)?K(u,n):e=>w.isElement(e)&&_.isBlock(u,e)),!i&&b.isRange(n)&&(n=_.unhangRange(u,n,{voids:l})),s&&b.isRange(n)){if(b.isCollapsed(n)&&_.leaf(u,n.anchor)[0].text.length>0)return;var C=_.rangeRef(u,n,{affinity:"inward"}),[f,c]=b.edges(n),B="lowest"===D?"lowest":"highest",h=_.isEnd(u,c,c.path);uy.splitNodes(u,{at:c,match:t,mode:B,voids:l,always:!h});var v=_.isStart(u,f,f.path);uy.splitNodes(u,{at:f,match:t,mode:B,voids:l,always:!v}),n=C.unref(),null==r.at&&uy.select(u,n)}for(var[p,F]of(o||(o=(u,e)=>u!==e),_.nodes(u,{at:n,match:t,mode:D,voids:l}))){var d={},E={};if(0!==F.length){var g=!1;for(var y in e)"children"!==y&&"text"!==y&&o(e[y],p[y])&&(g=!0,p.hasOwnProperty(y)&&(d[y]=p[y]),a?null!=e[y]&&(E[y]=a(p[y],e[y])):null!=e[y]&&(E[y]=e[y]));g&&u.apply({type:"set_node",path:F,properties:d,newProperties:E})}}}})},ef=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.withoutNormalizing(u,()=>{var r,t,{mode:n="lowest",voids:o=!1}=e,{match:a,at:i=u.selection,height:D=0,always:s=!1}=e;if(null==a&&(a=e=>w.isElement(e)&&_.isBlock(u,e)),b.isRange(i)&&(i=((u,e)=>{if(b.isCollapsed(e))return e.anchor;var[,r]=b.edges(e),t=_.pointRef(u,r);return uy.delete(u,{at:e}),t.unref()})(u,i)),A.isPath(i)){var l=i,C=_.point(u,l),[f]=_.parent(u,l);a=u=>u===f,D=C.path.length-l.length+1,i=C,s=!0}if(i){var c=_.pointRef(u,i,{affinity:"backward"});try{var[B]=_.nodes(u,{at:i,match:a,mode:n,voids:o});if(!B)return;var h=_.void(u,{at:i,mode:"highest"});if(!o&&h){var[v,p]=h;if(w.isElement(v)&&u.isInline(v)){var F=_.after(u,p);if(!F){var d=A.next(p);uy.insertNodes(u,{text:""},{at:d,voids:o}),F=_.point(u,d)}i=F,s=!0}D=i.path.length-p.length+1,s=!0}r=_.pointRef(u,i);var E=i.path.length-D,[,g]=B,y=i.path.slice(0,E),m=0===D?i.offset:i.path[E]+0;for(var[O,P]of _.levels(u,{at:y,reverse:!0,voids:o})){var x=!1;if(P.length<g.length||0===P.length||!o&&w.isElement(O)&&_.isVoid(u,O))break;var j=c.current,N=_.isEnd(u,j,P);if(s||!c||!_.isEdge(u,j,P)){x=!0;var R=k.extractProps(O);u.apply({type:"split_node",path:P,position:m,properties:R})}m=P[P.length-1]+(x||N?1:0)}if(null==e.at){var S=r.current||_.end(u,[]);uy.select(u,S)}}finally{c.unref(),null==(t=r)||t.unref()}}})},ec=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Array.isArray(e)||(e=[e]);var t={};for(var n of e)t[n]=null;uy.setNodes(u,t,r)},eB=function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_.withoutNormalizing(u,()=>{var{mode:r="lowest",split:t=!1,voids:n=!1}=e,{at:o=u.selection,match:a}=e;if(o){null==a&&(a=A.isPath(o)?K(u,o):e=>w.isElement(e)&&_.isBlock(u,e)),A.isPath(o)&&(o=_.range(u,o));var i=b.isRange(o)?_.rangeRef(u,o):null;for(var D of Array.from(_.nodes(u,{at:o,match:a,mode:r,voids:n}),e=>{var[,r]=e;return _.pathRef(u,r)}).reverse())!function(){var e=D.unref(),[r]=_.node(u,e),o=_.range(u,e);t&&i&&(o=b.intersection(i.current,o)),uy.liftNodes(u,{at:o,match:u=>w.isAncestor(r)&&r.children.includes(u),voids:n})}();i&&i.unref()}})};function eh(u,e){var r=Object.keys(u);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(u);e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(u,e).enumerable})),r.push.apply(r,t)}return r}function eA(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?eh(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):eh(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}var ev=function(u,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_.withoutNormalizing(u,()=>{var{mode:t="lowest",split:n=!1,voids:o=!1}=r,{match:a,at:i=u.selection}=r;if(i){if(null==a&&(a=A.isPath(i)?K(u,i):u.isInline(e)?e=>w.isElement(e)&&_.isInline(u,e)||Z.isText(e):e=>w.isElement(e)&&_.isBlock(u,e)),n&&b.isRange(i)){var[D,s]=b.edges(i),l=_.rangeRef(u,i,{affinity:"inward"});uy.splitNodes(u,{at:s,match:a,voids:o}),uy.splitNodes(u,{at:D,match:a,voids:o}),i=l.unref(),null==r.at&&uy.select(u,i)}for(var[,C]of Array.from(_.nodes(u,{at:i,match:u.isInline(e)?e=>w.isElement(e)&&_.isBlock(u,e):u=>_.isEditor(u),mode:"lowest",voids:o})))if(0===function(){var r=b.isRange(i)?b.intersection(i,_.range(u,C)):i;if(!r)return 0;var n=Array.from(_.nodes(u,{at:r,match:a,mode:t,voids:o}));if(n.length>0){var[D]=n,s=n[n.length-1],[,l]=D,[,f]=s;if(0===l.length&&0===f.length)return 0;var c=A.equals(l,f)?A.parent(l):A.common(l,f),B=_.range(u,l,f),[h]=_.node(u,c),v=c.length+1,p=A.next(f.slice(0,v)),F=eA(eA({},e),{},{children:[]});uy.insertNodes(u,F,{at:p,voids:o}),uy.moveNodes(u,{at:B,match:u=>w.isAncestor(h)&&h.children.includes(u),to:p.concat(0),voids:o})}}())continue}})},ep=()=>{var u={children:[],operations:[],selection:null,marks:null,isElementReadOnly:()=>!1,isInline:()=>!1,isSelectable:()=>!0,isVoid:()=>!1,markableVoid:()=>!1,onChange:()=>{},apply:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{for(var r of _.pathRefs(u))a.transform(r,e);for(var t of _.pointRefs(u))i.transform(t,e);for(var n of _.rangeRefs(u))D.transform(n,e);if(!um.get(u)&&1){var o=A.operationCanTransformPath(e)?u=>A.transform(u,e):void 0;ub(u,u.getDirtyPaths(e),o)}uy.transform(u,e),u.operations.push(e),_.normalize(u,{operation:e}),"set_selection"===e.type&&(u.marks=null),C.get(u)||(C.set(u,!0),Promise.resolve().then(()=>{C.set(u,!1),u.onChange({operation:e}),u.operations=[]}))})(u,...r)},addMark:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e,r)=>{var{selection:t}=u;if(t){var n=(e,r)=>{if(!Z.isText(e))return!1;var[t,n]=_.parent(u,r);return!u.isVoid(t)||u.markableVoid(t)},o=b.isExpanded(t),a=!1;if(!o){var[i,D]=_.node(u,t);if(i&&n(i,D)){var[s]=_.parent(u,D);a=s&&u.markableVoid(s)}}if(o||a)uy.setNodes(u,{[e]:r},{match:n,split:!0,voids:!0});else{var l=uP(uP({},_.marks(u)||{}),{},{[e]:r});u.marks=l,C.get(u)||u.onChange()}}})(u,...r)},deleteBackward:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var{selection:r}=u;r&&b.isCollapsed(r)&&uy.delete(u,{unit:e,reverse:!0})})(u,...r)},deleteForward:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var{selection:r}=u;r&&b.isCollapsed(r)&&uy.delete(u,{unit:e})})(u,...r)},deleteFragment:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uT(u,...r)},getFragment:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{var{selection:e}=u;return e?k.fragment(u,e):[]})(u,...r)},insertBreak:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{uy.splitNodes(u,{always:!0})})(u,...r)},insertSoftBreak:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{uy.splitNodes(u,{always:!0})})(u,...r)},insertFragment:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u5(u,...r)},insertNode:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e,r)=>{uy.insertNodes(u,e,r)})(u,...r)},insertText:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uW(u,...r)},normalizeNode:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var[r,t]=e;if(!Z.isText(r)){if(w.isElement(r)&&0===r.children.length)return void uy.insertNodes(u,{text:""},{at:t.concat(0),voids:!0});for(var n=!_.isEditor(r)&&w.isElement(r)&&(u.isInline(r)||0===r.children.length||Z.isText(r.children[0])||u.isInline(r.children[0])),o=0,a=0;a<r.children.length;a++,o++){var i=k.get(u,t);if(!Z.isText(i)){var D=i.children[o],s=i.children[o-1],l=a===r.children.length-1,C=Z.isText(D)||w.isElement(D)&&u.isInline(D);if(C!==n)C?uy.removeNodes(u,{at:t.concat(o),voids:!0}):uy.unwrapNodes(u,{at:t.concat(o),voids:!0}),o--;else if(w.isElement(D)){if(u.isInline(D))if(null!=s&&Z.isText(s)){if(l){var f={text:""};uy.insertNodes(u,f,{at:t.concat(o+1),voids:!0}),o++}}else{var c={text:""};uy.insertNodes(u,c,{at:t.concat(o),voids:!0}),o++}}else Z.isText(D)||"children"in D||(D.children=[]),null!=s&&Z.isText(s)&&(Z.equals(D,s,{loose:!0})?(uy.mergeNodes(u,{at:t.concat(o),voids:!0}),o--):""===s.text?(uy.removeNodes(u,{at:t.concat(o-1),voids:!0}),o--):""===D.text&&(uy.removeNodes(u,{at:t.concat(o),voids:!0}),o--))}}}})(u,...r)},removeMark:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var{selection:r}=u;if(r){var t=(e,r)=>{if(!Z.isText(e))return!1;var[t,n]=_.parent(u,r);return!u.isVoid(t)||u.markableVoid(t)},n=b.isExpanded(r),o=!1;if(!n){var[a,i]=_.node(u,r);if(a&&t(a,i)){var[D]=_.parent(u,i);o=D&&u.markableVoid(D)}}if(n||o)uy.unsetNodes(u,e,{match:t,split:!0,voids:!0});else{var s=function(u){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?u7(Object(r),!0).forEach(function(e){p(u,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(r)):u7(Object(r)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(r,e))})}return u}({},_.marks(u)||{});delete s[e],u.marks=s,C.get(u)||u.onChange()}}})(u,...r)},getDirtyPaths:function(){for(var u=arguments.length,e=Array(u),r=0;r<u;r++)e[r]=arguments[r];return((u,e)=>{switch(e.type){case"insert_text":case"remove_text":case"set_node":var{path:r}=e;return A.levels(r);case"insert_node":var{node:t,path:n}=e;return[...A.levels(n),...Z.isText(t)?[]:Array.from(k.nodes(t),u=>{var[,e]=u;return n.concat(e)})];case"merge_node":var{path:o}=e;return[...A.ancestors(o),A.previous(o)];case"move_node":var{path:a,newPath:i}=e;if(A.equals(a,i))return[];var D=[],s=[];for(var l of A.ancestors(a)){var C=A.transform(l,e);D.push(C)}for(var f of A.ancestors(i)){var c=A.transform(f,e);s.push(c)}var B=s[s.length-1],h=i[i.length-1];return[...D,...s,B.concat(h)];case"remove_node":var{path:v}=e;return[...A.ancestors(v)];case"split_node":var{path:p}=e;return[...A.levels(p),A.next(p)];default:return[]}})(0,...e)},shouldNormalize:function(){for(var u=arguments.length,e=Array(u),r=0;r<u;r++)e[r]=arguments[r];return((u,e)=>{var{iteration:r,initialDirtyPathsLength:t}=e,n=42*t;if(r>n)throw Error("Could not completely normalize the editor after ".concat(n," iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state."));return!0})(0,...e)},above:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uO(u,...r)},after:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uk(u,...r)},before:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uS(u,...r)},collapse:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u6(u,...r)},delete:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u9(u,...r)},deselect:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{var{selection:e}=u;e&&u.apply({type:"set_selection",properties:e,newProperties:null})})(u,...r)},edges:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>[_.start(u,e),_.end(u,e)])(u,...r)},elementReadOnly:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uI(u,...r)},end:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>_.point(u,e,{edge:"end"}))(u,...r)},first:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var r=_.path(u,e,{edge:"start"});return _.node(u,r)})(u,...r)},fragment:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var r=_.range(u,e);return k.fragment(u,r)})(u,...r)},getMarks:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uZ(u,...r)},hasBlocks:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>e.children.some(e=>w.isElement(e)&&_.isBlock(u,e)))(u,...r)},hasInlines:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>e.children.some(e=>Z.isText(e)||_.isInline(u,e)))(u,...r)},hasPath:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>k.has(u,e))(u,...r)},hasTexts:function(){for(var u=arguments.length,e=Array(u),r=0;r<u;r++)e[r]=arguments[r];return((u,e)=>e.children.every(u=>Z.isText(u)))(0,...e)},insertNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return en(u,...r)},isBlock:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>!u.isInline(e))(u,...r)},isEdge:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e,r)=>_.isStart(u,e,r)||_.isEnd(u,e,r))(u,...r)},isEmpty:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var{children:r}=e,[t]=r;return 0===r.length||1===r.length&&Z.isText(t)&&""===t.text&&!u.isVoid(e)})(u,...r)},isEnd:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e,r)=>{var t=_.end(u,r);return V.equals(e,t)})(u,...r)},isNormalizing:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{var e=f.get(u);return void 0===e||e})(u,...r)},isStart:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e,r)=>{if(0!==e.offset)return!1;var t=_.start(u,r);return V.equals(e,t)})(u,...r)},last:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var r=_.path(u,e,{edge:"end"});return _.node(u,r)})(u,...r)},leaf:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uQ(u,...r)},levels:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:r=u.selection,reverse:t=!1,voids:n=!1}=e,{match:o}=e;if(null==o&&(o=()=>!0),r){var a=[],i=_.path(u,r);for(var[D,s]of k.levels(u,i))if(o(D,s)&&(a.push([D,s]),!n&&w.isElement(D)&&_.isVoid(u,D)))break;t&&a.reverse(),yield*a}}()}(u,...r)},liftNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return eo(u,...r)},mergeNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return es(u,...r)},move:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return eu(u,...r)},moveNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{_.withoutNormalizing(u,()=>{var{to:r,at:t=u.selection,mode:n="lowest",voids:o=!1}=e,{match:a}=e;if(t){null==a&&(a=A.isPath(t)?K(u,t):e=>w.isElement(e)&&_.isBlock(u,e));var i=_.pathRef(u,r);for(var D of Array.from(_.nodes(u,{at:t,match:a,mode:n,voids:o}),e=>{var[,r]=e;return _.pathRef(u,r)})){var s=D.unref(),l=i.current;0!==s.length&&u.apply({type:"move_node",path:s,newPath:l}),i.current&&A.isSibling(l,s)&&A.isAfter(l,s)&&(i.current=A.next(i.current))}i.unref()}})})(u,...r)},next:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uH(u,...r)},node:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uK(u,...r)},nodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var r,t,n,{at:o=u.selection,mode:a="all",universal:i=!1,reverse:D=!1,voids:s=!1,ignoreNonSelectable:l=!1}=e,{match:C}=e;if(C||(C=()=>!0),o){if(q.isSpan(o))r=o[0],t=o[1];else{var f=_.path(u,o,{edge:"start"}),c=_.path(u,o,{edge:"end"});r=D?c:f,t=D?f:c}var B=k.nodes(u,{reverse:D,from:r,to:t,pass:e=>{var[r]=e;return!!w.isElement(r)&&!(!(!s&&(_.isVoid(u,r)||_.isElementReadOnly(u,r)))&&(!l||_.isSelectable(u,r)))}}),h=[];for(var[v,p]of B)if(!(l&&w.isElement(v))||_.isSelectable(u,v)){var F=n&&0===A.compare(p,n[1]);if("highest"!==a||!F){if(!C(v,p))if(i&&!F&&Z.isText(v))return;else continue;if("lowest"===a&&F){n=[v,p];continue}var d="lowest"===a?n:[v,p];d&&(i?h.push(d):yield d),n=[v,p]}}"lowest"===a&&n&&(i?h.push(n):yield n),i&&(yield*h)}}()}(u,...r)},normalize:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uY(u,...r)},parent:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uG(u,...r)},path:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uX(u,...r)},pathRef:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uU(u,...r)},pathRefs:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{var e=c.get(u);return e||(e=new Set,c.set(u,e)),e})(u,...r)},point:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u1(u,...r)},pointRef:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u0(u,...r)},pointRefs:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{var e=B.get(u);return e||(e=new Set,B.set(u,e)),e})(u,...r)},positions:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){var{at:r=u.selection,unit:t="offset",reverse:n=!1,voids:o=!1,ignoreNonSelectable:a=!1}=e;if(r){var i=_.range(u,r),[D,s]=b.edges(i),l=n?s:D,C=!1,f="",c=0,B=0,h=0;for(var[v,p]of _.nodes(u,{at:r,reverse:n,voids:o,ignoreNonSelectable:a})){if(w.isElement(v)){if(!o&&(u.isVoid(v)||u.isElementReadOnly(v))){yield _.start(u,p);continue}if(u.isInline(v))continue;if(_.hasInlines(u,v)){var F=A.isAncestor(p,s.path)?s:_.end(u,p),d=A.isAncestor(p,D.path)?D:_.start(u,p);f=_.string(u,{anchor:d,focus:F},{voids:o}),C=!0}}if(Z.isText(v)){var E,g,y,m=A.equals(p,l.path);for(m?(B=n?l.offset:v.text.length-l.offset,h=l.offset):(B=v.text.length,h=n?B:0),(m||C||"offset"===t)&&(yield{path:p,offset:h},C=!1);;){if(0===c){if(""===f)break;E=f,g=t,y=n,f=ue(f,c="character"===g?Y(E,y):"word"===g?uu(E,y):"line"===g||"block"===g?E.length:1,n)[1]}if(h=n?h-c:h+c,(B-=c)<0){c=-B;break}c=0,yield{path:p,offset:h}}}}}}()}(u,...r)},previous:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u3(u,...r)},range:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e,r)=>b.isRange(e)&&!r?e:{anchor:_.start(u,e),focus:_.end(u,r||e)})(u,...r)},rangeRef:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u2(u,...r)},rangeRefs:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(u=>{var e=h.get(u);return e||(e=new Set,h.set(u,e)),e})(u,...r)},removeNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return el(u,...r)},select:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var{selection:r}=u;if(e=_.range(u,e),r)return void uy.setSelection(u,e);if(!b.isRange(e))throw Error("When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: ".concat(L.stringify(e)));u.apply({type:"set_selection",properties:r,newProperties:e})})(u,...r)},setNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return eC(u,...r)},setNormalizing:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{f.set(u,e)})(u,...r)},setPoint:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return et(u,...r)},setSelection:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var{selection:r}=u,t={},n={};if(r){for(var o in e)("anchor"!==o||null==e.anchor||V.equals(e.anchor,r.anchor))&&("focus"!==o||null==e.focus||V.equals(e.focus,r.focus))&&("anchor"===o||"focus"===o||e[o]===r[o])||(t[o]=r[o],n[o]=e[o]);Object.keys(t).length>0&&u.apply({type:"set_selection",properties:t,newProperties:n})}})(u,...r)},splitNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return ef(u,...r)},start:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>_.point(u,e,{edge:"start"}))(u,...r)},string:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u8(u,...r)},unhangRange:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return u4(u,...r)},unsetNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return ec(u,...r)},unwrapNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return eB(u,...r)},void:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return uM(u,...r)},withoutNormalizing:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e)=>{var r=_.isNormalizing(u);_.setNormalizing(u,!1);try{e()}finally{_.setNormalizing(u,r)}_.normalize(u)})(u,...r)},wrapNodes:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return ev(u,...r)},shouldMergeNodesRemovePrevNode:function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return((u,e,r)=>{var[t,n]=e;return w.isElement(t)&&_.isEmpty(u,t)||Z.isText(t)&&""===t.text&&0!==n[n.length-1]})(u,...r)}};return u}}}]);