wiki-viewer 2.20.1 → 3.0.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 (242) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js +4 -4
  15. package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js +8 -8
  17. package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js +8 -8
  19. package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js +5 -5
  22. package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +4 -4
  26. package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/pdf/save/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/share/[token]/asset/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/branch/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/wiki/backlinks/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/wiki/content/route.js +7 -6
  44. package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/api/wiki/hosted-apps/[slug]/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/wiki/hosted-apps/route.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/api/wiki/move/route.js +4 -4
  56. package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/api/wiki/outlinks/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
  60. package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/api/wiki/scratch/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/app/[slug]/[[...rest]]/route.js +1 -1
  68. package/.next/standalone/.next/server/app/app/[slug]/[[...rest]]/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
  70. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/s/[token]/page.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/chunks/0.u4_next_dist_esm_build_templates_app-route_0.4w~2_.js +1 -1
  76. package/.next/standalone/.next/server/chunks/0.u4_next_dist_esm_build_templates_app-route_024r~hj.js +1 -1
  77. package/.next/standalone/.next/server/chunks/[root-of-the-server]__014dhj5._.js +3 -0
  78. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__09vw_yd._.js → [root-of-the-server]__07757zz._.js} +2 -2
  79. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_2j7pq._.js +3 -0
  80. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dya7sd._.js +1 -1
  81. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ivbizg._.js +16 -0
  82. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k2nouu._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ul.gyt._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w2ba2x._.js +3 -0
  85. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wcg8qs._.js +16 -0
  86. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yzumg-._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~a6cyg._.js +1 -1
  88. package/.next/standalone/.next/server/chunks/_079xuln._.js +1 -1
  89. package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_02b4pv0._.js → 0~w0_katex_dist_katex_mjs_01swx_l._.js} +1 -1
  90. package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_03x.-bb._.js → 0~w0_katex_dist_katex_mjs_10cht08._.js} +1 -1
  91. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0fh-02e._.js → [root-of-the-server]__0d89mrm._.js} +2 -2
  92. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05fw4nf._.js → [root-of-the-server]__0xl7e3h._.js} +2 -2
  93. package/.next/standalone/.next/server/chunks/ssr/_0d28.zp._.js +1 -1
  94. package/.next/standalone/.next/server/chunks/ssr/_0e1uo~z._.js +1 -1
  95. package/.next/standalone/.next/server/chunks/ssr/_0k6g8yo._.js +22 -20
  96. package/.next/standalone/.next/server/chunks/ssr/_0sr4wj.._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ho8oyj._.js → node_modules__pnpm_0-xbi6q._.js} +2 -2
  98. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.lls2f._.js → node_modules__pnpm_0045hhh._.js} +2 -2
  99. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0p_qmx3._.js → node_modules__pnpm_00b2ftc._.js} +2 -2
  100. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_06xedp9._.js → node_modules__pnpm_01mrx7s._.js} +2 -2
  101. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.b-q-g._.js → node_modules__pnpm_029sanw._.js} +2 -2
  102. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0dm-.3s._.js → node_modules__pnpm_034eonm._.js} +1 -1
  103. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gdk9ii._.js → node_modules__pnpm_03cxqnc._.js} +2 -2
  104. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_131~6_2._.js → node_modules__pnpm_03~9v2y._.js} +1 -1
  105. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0eo2ac8._.js → node_modules__pnpm_047iyar._.js} +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0f.-l_i._.js → node_modules__pnpm_04qoa_.._.js} +1 -1
  107. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_02j29jd._.js → node_modules__pnpm_05jxr.d._.js} +2 -2
  108. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0u~ng-b._.js → node_modules__pnpm_05m3zxe._.js} +1 -1
  109. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_03m~yp-._.js → node_modules__pnpm_05s3rp_._.js} +1 -1
  110. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0owi.t~._.js → node_modules__pnpm_06ti8hd._.js} +2 -2
  111. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0frtimc._.js → node_modules__pnpm_06xoojz._.js} +1 -1
  112. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0zhmzqf._.js → node_modules__pnpm_085kv-l._.js} +1 -1
  113. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0b9mrd-._.js → node_modules__pnpm_08wjj_6._.js} +2 -2
  114. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_004esp.._.js → node_modules__pnpm_098q_0q._.js} +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_035f6c2._.js → node_modules__pnpm_0_rahb~._.js} +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_00d_ihj._.js → node_modules__pnpm_0a2ww-4._.js} +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0dnud63._.js → node_modules__pnpm_0aca6hd._.js} +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0laq3ah._.js → node_modules__pnpm_0btk5kj._.js} +2 -2
  119. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0lwio3d._.js → node_modules__pnpm_0deg.gs._.js} +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_029eo0j._.js → node_modules__pnpm_0dir6h3._.js} +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_13i2f82._.js → node_modules__pnpm_0fk6r5-._.js} +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_04e8oap._.js → node_modules__pnpm_0g.7k_n._.js} +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0wpana9._.js → node_modules__pnpm_0gguvd4._.js} +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.cggg3._.js → node_modules__pnpm_0gy4l1q._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0jn81p-._.js → node_modules__pnpm_0hajaki._.js} +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0oqqt~3._.js → node_modules__pnpm_0hvnqml._.js} +2 -2
  127. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0qq915e._.js → node_modules__pnpm_0hy39av._.js} +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0va2k-t._.js → node_modules__pnpm_0j_.d8m._.js} +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0w6417f._.js → node_modules__pnpm_0jq2ef9._.js} +2 -2
  130. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0t_97nv._.js → node_modules__pnpm_0mtv_af._.js} +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09-tnjc._.js → node_modules__pnpm_0mus7ah._.js} +1 -1
  132. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0_39rjg._.js → node_modules__pnpm_0oexapu._.js} +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0d.7f.v._.js → node_modules__pnpm_0oqzhc1._.js} +1 -1
  134. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-q76.t._.js → node_modules__pnpm_0o~vvgs._.js} +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08aserg._.js → node_modules__pnpm_0ptozb4._.js} +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_018bmrp._.js → node_modules__pnpm_0rqsp1j._.js} +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ye5zu~._.js → node_modules__pnpm_0rs15iz._.js} +2 -2
  138. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0pq-m-w._.js → node_modules__pnpm_0ryy9ik._.js} +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ew~_em._.js → node_modules__pnpm_0t9_wi1._.js} +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0.eafd4._.js → node_modules__pnpm_0tnriso._.js} +2 -2
  141. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0awp-lz._.js → node_modules__pnpm_0tz8-2x._.js} +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08ly65-._.js → node_modules__pnpm_0uap1~z._.js} +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0-9pgc-._.js → node_modules__pnpm_0wyvqp7._.js} +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0a0xb30._.js → node_modules__pnpm_0yect_i._.js} +1 -1
  145. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gk3zd4._.js → node_modules__pnpm_0yyt.qr._.js} +1 -1
  146. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_13dh01l._.js → node_modules__pnpm_0z7wvui._.js} +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_11ge450._.js → node_modules__pnpm_1032cax._.js} +1 -1
  148. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_10tma_q._.js → node_modules__pnpm_107~rhn._.js} +1 -1
  149. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_09cnu2l._.js → node_modules__pnpm_124jh7j._.js} +1 -1
  150. package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0ibh1jm._.js → node_modules__pnpm_12v9693._.js} +1 -1
  151. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  152. package/.next/standalone/.next/server/pages/500.html +1 -1
  153. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  154. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  155. package/.next/standalone/.next/static/chunks/0_6~i5v43qpgh.js +1 -0
  156. package/.next/standalone/.next/static/chunks/{16xauntup4146.js → 0drn9l.ihdwh-.js} +1 -1
  157. package/.next/standalone/.next/static/chunks/{0j7kp7w2oum68.js → 0ftz-0jz~tk6i.js} +1 -1
  158. package/.next/standalone/.next/static/chunks/0kml2.eor4-mh.js +190 -0
  159. package/.next/standalone/.next/static/chunks/{09dn.__2m_69y.js → 0rows7ykoflq3.js} +1 -1
  160. package/.next/standalone/.next/static/chunks/{0j_n58.7iw6~6.js → 0ujpqxim7iqme.js} +1 -1
  161. package/.next/standalone/.next/static/chunks/136jk6_h2z_jw.js +1 -0
  162. package/.next/standalone/.next/static/chunks/17khi18hxwx5d.css +1 -0
  163. package/.next/standalone/.test-floor +1 -1
  164. package/.next/standalone/package.json +22 -21
  165. package/.next/standalone/server.js +1 -1
  166. package/package.json +22 -21
  167. package/.next/standalone/.next/server/chunks/[root-of-the-server]__041fu_k._.js +0 -3
  168. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_6mful._.js +0 -3
  169. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b7h2ot._.js +0 -16
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bs~4kr._.js +0 -3
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bzyv11._.js +0 -3
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ian9~8._.js +0 -16
  173. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wgd88e._.js +0 -3
  174. package/.next/standalone/.next/static/chunks/0gl24pgjp37cr.js +0 -1
  175. package/.next/standalone/.next/static/chunks/0o.-s7.m.hhct.css +0 -1
  176. package/.next/standalone/.next/static/chunks/0x082gn2hhbex.js +0 -188
  177. package/.next/standalone/.next/static/chunks/13s~dhi5itm5t.js +0 -1
  178. package/.next/standalone/isometric-codebase-map.html +0 -1506
  179. package/.next/standalone/isometric-codebase-map.json +0 -169
  180. package/.next/standalone/wp-test-6mm5qr/burst-0.txt +0 -1
  181. package/.next/standalone/wp-test-6mm5qr/burst-1.txt +0 -1
  182. package/.next/standalone/wp-test-6mm5qr/burst-10.txt +0 -1
  183. package/.next/standalone/wp-test-6mm5qr/burst-11.txt +0 -1
  184. package/.next/standalone/wp-test-6mm5qr/burst-12.txt +0 -1
  185. package/.next/standalone/wp-test-6mm5qr/burst-13.txt +0 -1
  186. package/.next/standalone/wp-test-6mm5qr/burst-14.txt +0 -1
  187. package/.next/standalone/wp-test-6mm5qr/burst-15.txt +0 -1
  188. package/.next/standalone/wp-test-6mm5qr/burst-16.txt +0 -1
  189. package/.next/standalone/wp-test-6mm5qr/burst-17.txt +0 -1
  190. package/.next/standalone/wp-test-6mm5qr/burst-18.txt +0 -1
  191. package/.next/standalone/wp-test-6mm5qr/burst-19.txt +0 -1
  192. package/.next/standalone/wp-test-6mm5qr/burst-2.txt +0 -1
  193. package/.next/standalone/wp-test-6mm5qr/burst-20.txt +0 -1
  194. package/.next/standalone/wp-test-6mm5qr/burst-21.txt +0 -1
  195. package/.next/standalone/wp-test-6mm5qr/burst-22.txt +0 -1
  196. package/.next/standalone/wp-test-6mm5qr/burst-23.txt +0 -1
  197. package/.next/standalone/wp-test-6mm5qr/burst-24.txt +0 -1
  198. package/.next/standalone/wp-test-6mm5qr/burst-25.txt +0 -1
  199. package/.next/standalone/wp-test-6mm5qr/burst-26.txt +0 -1
  200. package/.next/standalone/wp-test-6mm5qr/burst-27.txt +0 -1
  201. package/.next/standalone/wp-test-6mm5qr/burst-28.txt +0 -1
  202. package/.next/standalone/wp-test-6mm5qr/burst-29.txt +0 -1
  203. package/.next/standalone/wp-test-6mm5qr/burst-3.txt +0 -1
  204. package/.next/standalone/wp-test-6mm5qr/burst-30.txt +0 -1
  205. package/.next/standalone/wp-test-6mm5qr/burst-31.txt +0 -1
  206. package/.next/standalone/wp-test-6mm5qr/burst-32.txt +0 -1
  207. package/.next/standalone/wp-test-6mm5qr/burst-33.txt +0 -1
  208. package/.next/standalone/wp-test-6mm5qr/burst-34.txt +0 -1
  209. package/.next/standalone/wp-test-6mm5qr/burst-35.txt +0 -1
  210. package/.next/standalone/wp-test-6mm5qr/burst-36.txt +0 -1
  211. package/.next/standalone/wp-test-6mm5qr/burst-37.txt +0 -1
  212. package/.next/standalone/wp-test-6mm5qr/burst-38.txt +0 -1
  213. package/.next/standalone/wp-test-6mm5qr/burst-39.txt +0 -1
  214. package/.next/standalone/wp-test-6mm5qr/burst-4.txt +0 -1
  215. package/.next/standalone/wp-test-6mm5qr/burst-40.txt +0 -1
  216. package/.next/standalone/wp-test-6mm5qr/burst-41.txt +0 -1
  217. package/.next/standalone/wp-test-6mm5qr/burst-42.txt +0 -1
  218. package/.next/standalone/wp-test-6mm5qr/burst-43.txt +0 -1
  219. package/.next/standalone/wp-test-6mm5qr/burst-44.txt +0 -1
  220. package/.next/standalone/wp-test-6mm5qr/burst-45.txt +0 -1
  221. package/.next/standalone/wp-test-6mm5qr/burst-46.txt +0 -1
  222. package/.next/standalone/wp-test-6mm5qr/burst-47.txt +0 -1
  223. package/.next/standalone/wp-test-6mm5qr/burst-48.txt +0 -1
  224. package/.next/standalone/wp-test-6mm5qr/burst-49.txt +0 -1
  225. package/.next/standalone/wp-test-6mm5qr/burst-5.txt +0 -1
  226. package/.next/standalone/wp-test-6mm5qr/burst-6.txt +0 -1
  227. package/.next/standalone/wp-test-6mm5qr/burst-7.txt +0 -1
  228. package/.next/standalone/wp-test-6mm5qr/burst-8.txt +0 -1
  229. package/.next/standalone/wp-test-6mm5qr/burst-9.txt +0 -1
  230. package/.next/standalone/wp-test-SiMBLk/child/nested.txt +0 -1
  231. package/.next/standalone/wp-test-SiMBLk/rootfile.txt +0 -1
  232. package/.next/standalone/wp-test-bFyuuZ/child/nested.txt +0 -1
  233. package/.next/standalone/wp-test-bFyuuZ/rootfile.txt +0 -1
  234. package/.next/standalone/wp-test-dn9shN/after-reset.txt +0 -1
  235. package/.next/standalone/wp-test-gL64l2/shared.txt +0 -1
  236. package/.next/standalone/wp-test-mlyQ7q/test.txt +0 -1
  237. package/.next/standalone/wp-test-o3g2XI/shared.txt +0 -1
  238. package/.next/standalone/wp-test-oHeYCM/subA/a.txt +0 -1
  239. package/.next/standalone/wp-test-oHeYCM/subB/b.txt +0 -1
  240. /package/.next/standalone/.next/static/{ch24XdB6w4ERJnCBxzvzW → fJ3GtWg-nxX07oIencv35}/_buildManifest.js +0 -0
  241. /package/.next/standalone/.next/static/{ch24XdB6w4ERJnCBxzvzW → fJ3GtWg-nxX07oIencv35}/_clientMiddlewareManifest.js +0 -0
  242. /package/.next/standalone/.next/static/{ch24XdB6w4ERJnCBxzvzW → fJ3GtWg-nxX07oIencv35}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[373116,(a,b,c)=>{var d;b.exports=d={},d.simpleFilter=function(a,b){return b.filter(function(b){return d.test(a,b)})},d.test=function(a,b){return null!==d.match(a,b)},d.match=function(a,b,c){c=c||{};var d,e=0,f=[],g=b.length,h=0,i=0,j=c.pre||"",k=c.post||"",l=c.caseSensitive&&b||b.toLowerCase();a=c.caseSensitive&&a||a.toLowerCase();for(var m=0;m<g;m++)d=b[m],l[m]===a[e]?(d=j+d+k,e+=1,i+=1+i):i=0,h+=i,f[f.length]=d;return e===a.length?(h=l===a?1/0:h,{rendered:f.join(""),score:h}):null},d.filter=function(a,b,c){return b&&0!==b.length?"string"!=typeof a?b:(c=c||{},b.reduce(function(b,e,f,g){var h=e;c.extract&&(h=c.extract(e));var i=d.match(a,h,c);return null!=i&&(b[b.length]={string:i.rendered,score:i.score,index:f,original:e}),b},[]).sort(function(a,b){var c=b.score-a.score;return c||a.index-b.index})):[]}},739639,(a,b,c)=>{var d=0/0,e=/^\s+|\s+$/g,f=/^[-+]0x[0-9a-f]+$/i,g=/^0b[01]+$/i,h=/^0o[0-7]+$/i,i=parseInt,j=a.g&&a.g.Object===Object&&a.g,k="object"==typeof self&&self&&self.Object===Object&&self,l=j||k||Function("return this")(),m=Object.prototype.toString,n=Math.max,o=Math.min,p=function(){return l.Date.now()};function q(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function r(a){if("number"==typeof a)return a;if("symbol"==typeof(b=a)||b&&"object"==typeof b&&"[object Symbol]"==m.call(b))return d;if(q(a)){var b,c="function"==typeof a.valueOf?a.valueOf():a;a=q(c)?c+"":c}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(e,"");var j=g.test(a);return j||h.test(a)?i(a.slice(2),j?2:8):f.test(a)?d:+a}b.exports=function(a,b,c){var d,e,f,g,h,i,j=0,k=!1,l=!1,m=!0;if("function"!=typeof a)throw TypeError("Expected a function");function s(b){var c=d,f=e;return d=e=void 0,j=b,g=a.apply(f,c)}function t(a){var c=a-i,d=a-j;return void 0===i||c>=b||c<0||l&&d>=f}function u(){var a,c,d,e=p();if(t(e))return v(e);h=setTimeout(u,(a=e-i,c=e-j,d=b-a,l?o(d,f-c):d))}function v(a){return(h=void 0,m&&d)?s(a):(d=e=void 0,g)}function w(){var a,c=p(),f=t(c);if(d=arguments,e=this,i=c,f){if(void 0===h)return j=a=i,h=setTimeout(u,b),k?s(a):g;if(l)return h=setTimeout(u,b),s(i)}return void 0===h&&(h=setTimeout(u,b)),g}return b=r(b)||0,q(c)&&(k=!!c.leading,f=(l="maxWait"in c)?n(r(c.maxWait)||0,b):f,m="trailing"in c?!!c.trailing:m),w.cancel=function(){void 0!==h&&clearTimeout(h),j=0,d=i=e=h=void 0},w.flush=function(){return void 0===h?g:v(p())},w}},973220,a=>{"use strict";let b,c;var d,e=a.i(674164),f=a.i(739159),g=a.i(410672),h=a.i(237407),i=a.i(235549),j=a.i(715190),k=a.i(827647),l=a.i(463788),m=a.i(333481),n=a.i(710149),o=a.i(699570),p=a.i(866718),q=a.i(591119),r=a.i(301148),s=a.i(681204),t=a.i(335732),u=a.i(713033);function v({className:a}){let b=(0,u.useViewWidthStore)(a=>a.width),c=(0,u.useViewWidthStore)(a=>a.setWidth),d=(0,u.useViewWidthStore)(a=>a.align),f=(0,u.useViewWidthStore)(a=>a.setAlign);return(0,e.jsxs)(t.DropdownMenu,{children:[(0,e.jsx)(t.DropdownMenuTrigger,{asChild:!0,children:(0,e.jsx)(o.Button,{size:"sm",variant:"ghost",className:`h-7 w-7 p-0 ${a??""}`,title:`Content width: ${u.VIEW_WIDTH_LABEL[b]}`,children:(0,e.jsx)(s.AlignJustify,{className:"h-3.5 w-3.5"})})}),(0,e.jsxs)(t.DropdownMenuContent,{align:"end",className:"w-36",children:[(0,e.jsx)(t.DropdownMenuLabel,{className:"text-[11px] text-muted-foreground",children:"Width"}),u.VIEW_WIDTH_ORDER.map(a=>(0,e.jsxs)(t.DropdownMenuItem,{onClick:()=>c(a),className:"flex items-center justify-between text-xs",children:[u.VIEW_WIDTH_LABEL[a],a===b&&(0,e.jsx)(l.Check,{className:"h-3.5 w-3.5"})]},a)),(0,e.jsx)(t.DropdownMenuSeparator,{}),(0,e.jsx)(t.DropdownMenuLabel,{className:"text-[11px] text-muted-foreground",children:"Alignment"}),u.VIEW_ALIGN_ORDER.map(a=>(0,e.jsxs)(t.DropdownMenuItem,{onClick:()=>f(a),className:"flex items-center justify-between text-xs",children:[u.VIEW_ALIGN_LABEL[a],a===d&&(0,e.jsx)(l.Check,{className:"h-3.5 w-3.5"})]},a))]})]})}var w=a.i(796873),x=a.i(453590),y=a.i(111939);function z({className:a}){let{resolvedTheme:b,setTheme:c}=(0,y.useTheme)();return(0,e.jsx)(o.Button,{size:"sm",variant:"ghost",className:`h-7 w-7 p-0 ${a??""}`,title:"dark"===b?"Switch to light":"Switch to dark",onClick:()=>c("dark"===b?"light":"dark"),children:"dark"===b?(0,e.jsx)(x.Sun,{className:"h-3.5 w-3.5"}):(0,e.jsx)(w.Moon,{className:"h-3.5 w-3.5"})})}var A=a.i(765021),B=a.i(360878),C=a.i(211789),D=a.i(175853),E=a.i(393282),F=a.i(756763),G=a.i(66623),G=G,H=a.i(996578),I=a.i(613646),J=a.i(421999),K=a.i(119349),L=m;let M={get url(){return`file://${a.P("node_modules/.pnpm/jotai@2.11.0_@types+react@19.2.14_react@19.2.5/node_modules/jotai/esm/vanilla.mjs")}`}},N=0;function O(a,b){let c=`atom${++N}`,d={toString(){return(M.env?M.env.MODE:void 0)!=="production"&&this.debugLabel?c+":"+this.debugLabel:c}};return"function"==typeof a?d.read=a:(d.init=a,d.read=P,d.write=Q),b&&(d.write=b),d}function P(a){return a(this)}function Q(a,b,c){return b(this,"function"==typeof c?c(a(this)):c)}let R=(a,b)=>a.unstable_is?a.unstable_is(b):b===a,S=a=>"init"in a,T=new WeakMap,U=a=>{var b;return V(a)&&!(null==(b=T.get(a))?void 0:b[1])},V=a=>"function"==typeof(null==a?void 0:a.then),W=a=>"v"in a||"e"in a,X=a=>{if("e"in a)throw a.e;if((M.env?M.env.MODE:void 0)!=="production"&&!("v"in a))throw Error("[Bug] atom state is not initialized");return a.v},Y=(a,b,c)=>{c.p.has(a)||(c.p.add(a),b.then(()=>{c.p.delete(a)},()=>{c.p.delete(a)}))},Z=(a,b,c,d,e)=>{var f;if((M.env?M.env.MODE:void 0)!=="production"&&d===b)throw Error("[Bug] atom cannot depend on itself");c.d.set(d,e.n),U(c.v)&&Y(b,c.v,e),null==(f=e.m)||f.t.add(b),a&&ab(a,d,b)},$=()=>({D:new Map,H:new Set,M:new Set,L:new Set}),_=(a,b,c)=>{a[b].add(c)},aa=(a,b,c)=>{a.D.has(b)||(a.D.set(b,new Set),_(a,"M",()=>{var b;null==(b=c.m)||b.l.forEach(b=>_(a,"M",b))}))},ab=(a,b,c)=>{let d=a.D.get(b);d&&d.add(c)},ac=a=>{let b,c=!1,d=a=>{try{a()}catch(a){c||(b=a,c=!0)}};for(;a.H.size||a.M.size||a.L.size;)a.D.clear(),a.H.forEach(d),a.H.clear(),a.M.forEach(d),a.M.clear(),a.L.forEach(d),a.L.clear();if(c)throw b},ad=(...[a,b,c,d])=>{let e=(b,c,d)=>{let e="v"in c,f=c.v,g=U(c.v)?c.v:null;if(V(d)){for(let e of((a=>{if(T.has(a))return;let b=[new Set,!1];T.set(a,b);let c=()=>{b[1]=!0};a.then(c,c),a.onCancel=a=>{b[0].add(a)}})(d),c.d.keys()))Y(b,d,a(e));c.v=d}else c.v=d;delete c.e,delete c.x,e&&Object.is(f,c.v)||(++c.n,g&&((a,b)=>{let c=T.get(a);if(c)c[1]=!0,c[0].forEach(a=>a(b));else if((M.env?M.env.MODE:void 0)!=="production")throw Error("[Bug] cancelable promise not found")})(g,d))},f=(c,d)=>{var g;let h,k,l=a(d);if(W(l)&&(l.m&&!l.x||Array.from(l.d).every(([a,b])=>f(c,a).n===b)))return l;l.d.clear();let m=!0;try{let n=b(d,b=>{if(R(d,b)){let c=a(b);if(!W(c))if(S(b))e(b,c,b.init);else throw Error("no atom init");return X(c)}let g=f(c,b);try{return X(g)}finally{if(m)Z(c,d,l,b,g);else{let a=$();Z(a,d,l,b,g),j(a,d,l),ac(a)}}},{get signal(){return h||(h=new AbortController),h.signal},get setSelf(){return(M.env?M.env.MODE:void 0)==="production"||d.write||console.warn("setSelf function cannot be used with read-only atom"),!k&&d.write&&(k=(...a)=>{if((M.env?M.env.MODE:void 0)!=="production"&&m&&console.warn("setSelf function cannot be called in sync"),!m)return i(d,...a)}),k}});if(e(d,l,n),V(n)){null==(g=n.onCancel)||g.call(n,()=>null==h?void 0:h.abort());let a=()=>{if(l.m){let a=$();j(a,d,l),ac(a)}};n.then(a,a)}return l}catch(a){return delete l.v,l.e=a,delete l.x,++l.n,l}finally{m=!1}},g=(b,c,d)=>{var e,f;let g=new Map;for(let b of(null==(e=d.m)?void 0:e.t)||[]){let c=a(b);c.m&&g.set(b,c)}for(let b of d.p)g.set(b,a(b));return null==(f=b.D.get(c))||f.forEach(b=>{g.set(b,a(b))}),g},h=(b,d,...i)=>{let k=!0;try{return c(d,a=>X(f(b,a)),(c,...i)=>{let l=a(c);try{if(!R(d,c))return h(b,c,...i);{if(!S(c))throw Error("atom not writable");let a=l.n,d=i[0];e(c,l,d),j(b,c,l),a!==l.n&&(aa(b,c,l),((a,b,c)=>{let d=[],e=new Set,h=new Set,i=[[b,c]];for(;i.length>0;){let[b,c]=i[i.length-1];if(h.has(b)){i.pop();continue}if(e.has(b)){d.push([b,c,c.n]),h.add(b),c.x=!0,i.pop();continue}for(let[d,f]of(e.add(b),g(a,b,c)))b===d||e.has(d)||i.push([d,f])}_(a,"H",()=>{let c=new Set([b]);for(let b=d.length-1;b>=0;--b){let[e,g,h]=d[b],i=!1;for(let a of g.d.keys())if(a!==e&&c.has(a)){i=!0;break}i&&(f(a,e),j(a,e,g),h!==g.n&&(aa(a,e,g),c.add(e))),delete g.x}})})(b,c,l));return}}finally{k||ac(b)}},...i)}finally{k=!1}},i=(a,...b)=>{let c=$();try{return h(c,a,...b)}finally{ac(c)}},j=(b,c,d)=>{if(d.m&&!U(d.v)){for(let e of d.d.keys())d.m.d.has(e)||(k(b,e,a(e)).t.add(c),d.m.d.add(e));for(let e of d.m.d||[])if(!d.d.has(e)){d.m.d.delete(e);let f=l(b,e,a(e));null==f||f.t.delete(c)}}},k=(b,c,e)=>{if(!e.m){for(let d of(f(b,c),e.d.keys()))k(b,d,a(d)).t.add(c);if(e.m={l:new Set,d:new Set(e.d.keys()),t:new Set},c.write){let a,f=e.m,g=(b,d)=>{let e=!0;a=(...a)=>{try{return h(b,c,...a)}finally{e||ac(b)}};try{return d()}finally{e=!1}};_(b,"L",()=>{let e=g(b,()=>d(c,(...b)=>a(...b)));e&&(f.u=a=>g(a,e))})}}return e.m},l=(b,c,d)=>{if(d.m&&!d.m.l.size&&!Array.from(d.m.t).some(b=>{var d;return null==(d=a(b).m)?void 0:d.d.has(c)})){let e=d.m.u;for(let f of(e&&_(b,"L",()=>e(b)),delete d.m,d.d.keys())){let d=l(b,f,a(f));null==d||d.t.delete(c)}return}return d.m};return{get:a=>X(f(void 0,a)),set:i,sub:(b,c)=>{let d=$(),e=a(b),f=k(d,b,e).l;return f.add(c),ac(d),()=>{f.delete(c);let a=$();l(a,b,e),ac(a)}},unstable_derive:e=>ad(...e(a,b,c,d))}},ae=()=>{let a=new WeakMap,b=ad(b=>{if((M.env?M.env.MODE:void 0)!=="production"&&!b)throw Error("Atom is undefined or null");let c=a.get(b);return c||(c={d:new Map,p:new Set,n:0},a.set(b,c)),c},(a,...b)=>a.read(...b),(a,...b)=>a.write(...b),(a,...b)=>{var c;return null==(c=a.onMount)?void 0:c.call(a,...b)});if((M.env?M.env.MODE:void 0)!=="production"){let a,c,d,e,f,g;return c=new WeakMap,d=new Set,e=0,g=(f=b.unstable_derive((b,f,g,h)=>(a=b,[a=>{let e=c.get(a);return e||(e=new Proxy(b(a),{set:(b,c,e)=>("m"===c&&d.add(a),Reflect.set(b,c,e)),deleteProperty:(b,c)=>("m"===c&&d.delete(a),Reflect.deleteProperty(b,c))}),c.set(a,e)),e},f,(a,b,c,...d)=>e?c(a,...d):g(a,b,c,...d),h]))).set,Object.assign(f,{dev4_get_internal_weak_map:()=>({get:b=>{let c=a(b);if(0!==c.n)return c}}),dev4_get_mounted_atoms:()=>d,dev4_restore_atoms:a=>{g({read:()=>null,write:(b,c)=>{++e;try{for(let[b,d]of a)S(b)&&c(b,d)}finally{--e}}})}})}return b},af={get url(){return`file://${a.P("node_modules/.pnpm/jotai@2.11.0_@types+react@19.2.14_react@19.2.5/node_modules/jotai/esm/react.mjs")}`}},ag=(0,m.createContext)(void 0),ah=a=>{let c=(0,m.useContext)(ag);return(null==a?void 0:a.store)||c||(b||(b=ae(),(M.env?M.env.MODE:void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=b),globalThis.__JOTAI_DEFAULT_STORE__!==b&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),b)},ai=a=>"function"==typeof(null==a?void 0:a.then),aj=a=>{a.status="pending",a.then(b=>{a.status="fulfilled",a.value=b},b=>{a.status="rejected",a.reason=b})},ak=m.default.use||(a=>{if("pending"===a.status)throw a;if("fulfilled"===a.status)return a.value;if("rejected"===a.status)throw a.reason;throw aj(a),a}),al=new WeakMap,am=a=>{let b=al.get(a);return b||(b=new Promise((c,d)=>{let e=a,f=a=>b=>{e===a&&c(b)},g=a=>b=>{e===a&&d(b)},h=a=>{"onCancel"in a&&"function"==typeof a.onCancel&&a.onCancel(d=>{if((af.env?af.env.MODE:void 0)!=="production"&&d===a)throw Error("[Bug] p is not updated even after cancelation");ai(d)?(al.set(d,b),e=d,d.then(f(d),g(d)),h(d)):c(d)})};a.then(f(a),g(a)),h(a)}),al.set(a,b)),b};function an(a,b){let c=ah(b),[[d,e,f],g]=(0,m.useReducer)(b=>{let d=c.get(a);return Object.is(b[0],d)&&b[1]===c&&b[2]===a?b:[d,c,a]},void 0,()=>[c.get(a),c,a]),h=d;(e!==c||f!==a)&&(g(),h=c.get(a));let i=null==b?void 0:b.delay;return((0,m.useEffect)(()=>{let b=c.sub(a,()=>{if("number"==typeof i){let b=c.get(a);ai(b)&&aj(am(b)),setTimeout(g,i);return}g()});return g(),b},[c,a,i]),(0,m.useDebugValue)(h),ai(h))?ak(am(h)):h}function ao(a,b){let c=ah(b);return(0,m.useCallback)((...b)=>{if((af.env?af.env.MODE:void 0)!=="production"&&!("write"in a))throw Error("not writable atom");return c.set(a,...b)},[c,a])}let ap={get url(){return`file://${a.P("node_modules/.pnpm/jotai@2.11.0_@types+react@19.2.14_react@19.2.5/node_modules/jotai/esm/vanilla/utils.mjs")}`}};Symbol((ap.env?ap.env.MODE:void 0)!=="production"?"RESET":""),!function(a=()=>{try{return window.localStorage}catch(a){ap.env&&ap.env.MODE;return}}){var b;let c,d;try{c=null==(b=a())?void 0:b.subscribe}catch(a){}c&&(d=c,(a,b,c)=>d(a,a=>{let d;try{d=JSON.parse(a||"")}catch(a){d=c}b(d)}))}();let aq=new WeakMap;function ar(){return(ar=Object.assign.bind()).apply(this,arguments)}function as(){let a=(0,m.createContext)(null),b=b=>{let c=(0,m.useContext)(a);if(!c)throw Error("Missing Provider from createIsolation");return ah(ar({store:c},b))};return{Provider:function({store:b,initialValues:c=[],children:d}){let f,g=(0,m.useRef)(b);g.current||(g.current=ae());var h,i={store:g.current};let j=ah(i),k=(h=j,(f=aq.get(h))||(f=new WeakSet,aq.set(h,f)),f);for(let[a,b]of c)(!k.has(a)||(null==i?void 0:i.dangerouslyForceHydrate))&&(k.add(a),j.set(a,b));return(0,e.jsx)(a.Provider,{value:g.current,children:d})},useStore:b,useAtom:(a,c)=>{var d;let e=b();return[an(a,d=ar({store:e},c)),ao(a,d)]},useAtomValue:(a,c)=>{let d=b();return an(a,ar({store:d},c))},useSetAtom:(a,c)=>{let d=b();return ao(a,ar({store:d},c))}}}let{read:at,write:au}=O(null);(0,m.createContext)({scope:void 0,baseStore:void 0});var av=a.i(575828),aw=a.i(567373),ax=a.i(26463),ay=a.i(169731);function az(a,b,{checkForDefaultPrevented:c=!0}={}){return function(d){if(a?.(d),!1===c||!d.defaultPrevented)return b?.(d)}}function aA(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function aB(...a){return b=>{let c=!1,d=a.map(a=>{let d=aA(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():aA(a[b],null)}}}}function aC(...a){return m.useCallback(aB(...a),a)}function aD(a,b=[]){let c=[],d=()=>{let b=c.map(a=>m.createContext(a));return function(c){let d=c?.[a]||b;return m.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let f=m.createContext(d),g=c.length;c=[...c,d];let h=b=>{let{scope:c,children:d,...h}=b,i=c?.[a]?.[g]||f,j=m.useMemo(()=>h,Object.values(h));return(0,e.jsx)(i.Provider,{value:j,children:d})};return h.displayName=b+"Provider",[h,function(c,e){let h=e?.[a]?.[g]||f,i=m.useContext(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return m.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}var aE=m.forwardRef((a,b)=>{let{children:c,...d}=a,f=m.Children.toArray(c),g=f.find(aH);if(g){let a=g.props.children,c=f.map(b=>b!==g?b:m.Children.count(a)>1?m.Children.only(null):m.isValidElement(a)?a.props.children:null);return(0,e.jsx)(aF,{...d,ref:b,children:m.isValidElement(a)?m.cloneElement(a,void 0,c):null})}return(0,e.jsx)(aF,{...d,ref:b,children:c})});aE.displayName="Slot";var aF=m.forwardRef((a,b)=>{let{children:c,...d}=a;if(m.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{f(...a),e(...a)}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==m.Fragment&&(h.ref=b?aB(b,g):g),m.cloneElement(c,h)}return m.Children.count(c)>1?m.Children.only(null):null});aF.displayName="SlotClone";var aG=({children:a})=>(0,e.jsx)(e.Fragment,{children:a});function aH(a){return m.isValidElement(a)&&a.type===aG}var aI=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((a,b)=>{let c=m.forwardRef((a,c)=>{let{asChild:d,...f}=a,g=d?aE:b;return(0,e.jsx)(g,{...f,ref:c})});return c.displayName=`Primitive.${b}`,{...a,[b]:c}},{});function aJ(a){let b=m.useRef(a);return m.useEffect(()=>{b.current=a}),m.useMemo(()=>(...a)=>b.current?.(...a),[])}var aK="dismissableLayer.update",aL=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),aM=m.forwardRef((a,b)=>{let{disableOutsidePointerEvents:c=!1,onEscapeKeyDown:f,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:i,onDismiss:j,...k}=a,l=m.useContext(aL),[n,o]=m.useState(null),p=n?.ownerDocument??globalThis?.document,[,q]=m.useState({}),r=aC(b,a=>o(a)),s=Array.from(l.layers),[t]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),u=s.indexOf(t),v=n?s.indexOf(n):-1,w=l.layersWithOutsidePointerEventsDisabled.size>0,x=v>=u,y=function(a,b=globalThis?.document){let c=aJ(a),d=m.useRef(!1),e=m.useRef(()=>{});return m.useEffect(()=>{let a=a=>{if(a.target&&!d.current){let d=function(){aO("dismissableLayer.pointerDownOutside",c,f,{discrete:!0})},f={originalEvent:a};"touch"===a.pointerType?(b.removeEventListener("click",e.current),e.current=d,b.addEventListener("click",e.current,{once:!0})):d()}else b.removeEventListener("click",e.current);d.current=!1},f=window.setTimeout(()=>{b.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(f),b.removeEventListener("pointerdown",a),b.removeEventListener("click",e.current)}},[b,c]),{onPointerDownCapture:()=>d.current=!0}}(a=>{let b=a.target,c=[...l.branches].some(a=>a.contains(b));x&&!c&&(g?.(a),i?.(a),a.defaultPrevented||j?.())},p),z=function(a,b=globalThis?.document){let c=aJ(a),d=m.useRef(!1);return m.useEffect(()=>{let a=a=>{a.target&&!d.current&&aO("dismissableLayer.focusOutside",c,{originalEvent:a},{discrete:!1})};return b.addEventListener("focusin",a),()=>b.removeEventListener("focusin",a)},[b,c]),{onFocusCapture:()=>d.current=!0,onBlurCapture:()=>d.current=!1}}(a=>{let b=a.target;![...l.branches].some(a=>a.contains(b))&&(h?.(a),i?.(a),a.defaultPrevented||j?.())},p);return!function(a,b=globalThis?.document){let c=aJ(a);m.useEffect(()=>{let a=a=>{"Escape"===a.key&&c(a)};return b.addEventListener("keydown",a,{capture:!0}),()=>b.removeEventListener("keydown",a,{capture:!0})},[c,b])}(a=>{v===l.layers.size-1&&(f?.(a),!a.defaultPrevented&&j&&(a.preventDefault(),j()))},p),m.useEffect(()=>{if(n)return c&&(0===l.layersWithOutsidePointerEventsDisabled.size&&(d=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(n)),l.layers.add(n),aN(),()=>{c&&1===l.layersWithOutsidePointerEventsDisabled.size&&(p.body.style.pointerEvents=d)}},[n,p,c,l]),m.useEffect(()=>()=>{n&&(l.layers.delete(n),l.layersWithOutsidePointerEventsDisabled.delete(n),aN())},[n,l]),m.useEffect(()=>{let a=()=>q({});return document.addEventListener(aK,a),()=>document.removeEventListener(aK,a)},[]),(0,e.jsx)(aI.div,{...k,ref:r,style:{pointerEvents:w?x?"auto":"none":void 0,...a.style},onFocusCapture:az(a.onFocusCapture,z.onFocusCapture),onBlurCapture:az(a.onBlurCapture,z.onBlurCapture),onPointerDownCapture:az(a.onPointerDownCapture,y.onPointerDownCapture)})});function aN(){let a=new CustomEvent(aK);document.dispatchEvent(a)}function aO(a,b,c,{discrete:d}){let e=c.originalEvent.target,f=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:c});if(b&&e.addEventListener(a,b,{once:!0}),d)e&&aw.flushSync(()=>e.dispatchEvent(f));else e.dispatchEvent(f)}aM.displayName="DismissableLayer",m.forwardRef((a,b)=>{let c=m.useContext(aL),d=m.useRef(null),f=aC(b,d);return m.useEffect(()=>{let a=d.current;if(a)return c.branches.add(a),()=>{c.branches.delete(a)}},[c.branches]),(0,e.jsx)(aI.div,{...a,ref:f})}).displayName="DismissableLayerBranch";var aP=0;function aQ(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var aR="focusScope.autoFocusOnMount",aS="focusScope.autoFocusOnUnmount",aT={bubbles:!1,cancelable:!0},aU=m.forwardRef((a,b)=>{let{loop:c=!1,trapped:d=!1,onMountAutoFocus:f,onUnmountAutoFocus:g,...h}=a,[i,j]=m.useState(null),k=aJ(f),l=aJ(g),n=m.useRef(null),o=aC(b,a=>j(a)),p=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(d){let a=function(a){if(p.paused||!i)return;let b=a.target;i.contains(b)?n.current=b:aX(n.current,{select:!0})},b=function(a){if(p.paused||!i)return;let b=a.relatedTarget;null!==b&&(i.contains(b)||aX(n.current,{select:!0}))};document.addEventListener("focusin",a),document.addEventListener("focusout",b);let c=new MutationObserver(function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&aX(i)});return i&&c.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),c.disconnect()}}},[d,i,p.paused]),m.useEffect(()=>{if(i){aY.add(p);let a=document.activeElement;if(!i.contains(a)){let b=new CustomEvent(aR,aT);i.addEventListener(aR,k),i.dispatchEvent(b),b.defaultPrevented||(function(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(aX(d,{select:b}),document.activeElement!==c)return}(aV(i).filter(a=>"A"!==a.tagName),{select:!0}),document.activeElement===a&&aX(i))}return()=>{i.removeEventListener(aR,k),setTimeout(()=>{let b=new CustomEvent(aS,aT);i.addEventListener(aS,l),i.dispatchEvent(b),b.defaultPrevented||aX(a??document.body,{select:!0}),i.removeEventListener(aS,l),aY.remove(p)},0)}}},[i,k,l,p]);let q=m.useCallback(a=>{if(!c&&!d||p.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){var f;let b,d=a.currentTarget,[g,h]=[aW(b=aV(f=d),f),aW(b.reverse(),f)];g&&h?a.shiftKey||e!==h?a.shiftKey&&e===g&&(a.preventDefault(),c&&aX(h,{select:!0})):(a.preventDefault(),c&&aX(g,{select:!0})):e===d&&a.preventDefault()}},[c,d,p.paused]);return(0,e.jsx)(aI.div,{tabIndex:-1,...h,ref:o,onKeyDown:q})});function aV(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;c.nextNode();)b.push(c.currentNode);return b}function aW(a,b){for(let c of a)if(!function(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}(c,{upTo:b}))return c}function aX(a,{select:b=!1}={}){if(a&&a.focus){var c;let d=document.activeElement;a.focus({preventScroll:!0}),a!==d&&(c=a)instanceof HTMLInputElement&&"select"in c&&b&&a.select()}}aU.displayName="FocusScope";var aY=(c=[],{add(a){let b=c[0];a!==b&&b?.pause(),(c=aZ(c,a)).unshift(a)},remove(a){c=aZ(c,a),c[0]?.resume()}});function aZ(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}var a$=globalThis?.document?m.useLayoutEffect:()=>{},a_=m["useId".toString()]||(()=>void 0),a0=0,a1=a.i(983393),a2=a.i(512719),a3=m.forwardRef((a,b)=>{let{children:c,width:d=10,height:f=5,...g}=a;return(0,e.jsx)(aI.svg,{...g,ref:b,width:d,height:f,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:a.asChild?c:(0,e.jsx)("polygon",{points:"0,0 30,0 15,10"})})});a3.displayName="Arrow";var a4="Popper",[a5,a6]=aD(a4),[a7,a8]=a5(a4),a9=a=>{let{__scopePopper:b,children:c}=a,[d,f]=m.useState(null);return(0,e.jsx)(a7,{scope:b,anchor:d,onAnchorChange:f,children:c})};a9.displayName=a4;var ba="PopperAnchor",bb=m.forwardRef((a,b)=>{let{__scopePopper:c,virtualRef:d,...f}=a,g=a8(ba,c),h=m.useRef(null),i=aC(b,h);return m.useEffect(()=>{g.onAnchorChange(d?.current||h.current)}),d?null:(0,e.jsx)(aI.div,{...f,ref:i})});bb.displayName=ba;var bc="PopperContent",[bd,be]=a5(bc),bf=m.forwardRef((a,b)=>{let{__scopePopper:c,side:d="bottom",sideOffset:f=0,align:g="center",alignOffset:h=0,arrowPadding:i=0,avoidCollisions:j=!0,collisionBoundary:k=[],collisionPadding:l=0,sticky:n="partial",hideWhenDetached:o=!1,updatePositionStrategy:p="optimized",onPlaced:q,...r}=a,s=a8(bc,c),[t,u]=m.useState(null),v=aC(b,a=>u(a)),[w,x]=m.useState(null),y=function(a){let[b,c]=m.useState(void 0);return a$(()=>{if(a){c({width:a.offsetWidth,height:a.offsetHeight});let b=new ResizeObserver(b=>{let d,e;if(!Array.isArray(b)||!b.length)return;let f=b[0];if("borderBoxSize"in f){let a=f.borderBoxSize,b=Array.isArray(a)?a[0]:a;d=b.inlineSize,e=b.blockSize}else d=a.offsetWidth,e=a.offsetHeight;c({width:d,height:e})});return b.observe(a,{box:"border-box"}),()=>b.unobserve(a)}c(void 0)},[a]),b}(w),z=y?.width??0,A=y?.height??0,B="number"==typeof l?l:{top:0,right:0,bottom:0,left:0,...l},C=Array.isArray(k)?k:[k],D=C.length>0,E={padding:B,boundary:C.filter(bj),altBoundary:D},{refs:F,floatingStyles:G,placement:H,isPositioned:I,middlewareData:J}=(0,a1.useFloating)({strategy:"fixed",placement:d+("center"!==g?"-"+g:""),whileElementsMounted:(...a)=>(0,a2.autoUpdate)(...a,{animationFrame:"always"===p}),elements:{reference:s.anchor},middleware:[(0,a1.offset)({mainAxis:f+A,alignmentAxis:h}),j&&(0,a1.shift)({mainAxis:!0,crossAxis:!1,limiter:"partial"===n?(0,a1.limitShift)():void 0,...E}),j&&(0,a1.flip)({...E}),(0,a1.size)({...E,apply:({elements:a,rects:b,availableWidth:c,availableHeight:d})=>{let{width:e,height:f}=b.reference,g=a.floating.style;g.setProperty("--radix-popper-available-width",`${c}px`),g.setProperty("--radix-popper-available-height",`${d}px`),g.setProperty("--radix-popper-anchor-width",`${e}px`),g.setProperty("--radix-popper-anchor-height",`${f}px`)}}),w&&(0,a1.arrow)({element:w,padding:i}),bk({arrowWidth:z,arrowHeight:A}),o&&(0,a1.hide)({strategy:"referenceHidden",...E})]}),[K,L]=bl(H),M=aJ(q);a$(()=>{I&&M?.()},[I,M]);let N=J.arrow?.x,O=J.arrow?.y,P=J.arrow?.centerOffset!==0,[Q,R]=m.useState();return a$(()=>{t&&R(window.getComputedStyle(t).zIndex)},[t]),(0,e.jsx)("div",{ref:F.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:I?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Q,"--radix-popper-transform-origin":[J.transformOrigin?.x,J.transformOrigin?.y].join(" "),...J.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:a.dir,children:(0,e.jsx)(bd,{scope:c,placedSide:K,onArrowChange:x,arrowX:N,arrowY:O,shouldHideArrow:P,children:(0,e.jsx)(aI.div,{"data-side":K,"data-align":L,...r,ref:v,style:{...r.style,animation:I?void 0:"none"}})})})});bf.displayName=bc;var bg="PopperArrow",bh={top:"bottom",right:"left",bottom:"top",left:"right"},bi=m.forwardRef(function(a,b){let{__scopePopper:c,...d}=a,f=be(bg,c),g=bh[f.placedSide];return(0,e.jsx)("span",{ref:f.onArrowChange,style:{position:"absolute",left:f.arrowX,top:f.arrowY,[g]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[f.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[f.placedSide],visibility:f.shouldHideArrow?"hidden":void 0},children:(0,e.jsx)(a3,{...d,ref:b,style:{...d.style,display:"block"}})})});function bj(a){return null!==a}bi.displayName=bg;var bk=a=>({name:"transformOrigin",options:a,fn(b){let{placement:c,rects:d,middlewareData:e}=b,f=e.arrow?.centerOffset!==0,g=f?0:a.arrowWidth,h=f?0:a.arrowHeight,[i,j]=bl(c),k={start:"0%",center:"50%",end:"100%"}[j],l=(e.arrow?.x??0)+g/2,m=(e.arrow?.y??0)+h/2,n="",o="";return"bottom"===i?(n=f?k:`${l}px`,o=`${-h}px`):"top"===i?(n=f?k:`${l}px`,o=`${d.floating.height+h}px`):"right"===i?(n=`${-h}px`,o=f?k:`${m}px`):"left"===i&&(n=`${d.floating.width+h}px`,o=f?k:`${m}px`),{data:{x:n,y:o}}}});function bl(a){let[b,c="center"]=a.split("-");return[b,c]}var bm=m.forwardRef((a,b)=>{let{container:c,...d}=a,[f,g]=m.useState(!1);a$(()=>g(!0),[]);let h=c||f&&globalThis?.document?.body;return h?aw.default.createPortal((0,e.jsx)(aI.div,{...d,ref:b}),h):null});bm.displayName="Portal";var bn=a=>{var b;let c,d,{present:e,children:f}=a,g=function(a){var b,c;let[d,e]=m.useState(),f=m.useRef({}),g=m.useRef(a),h=m.useRef("none"),[i,j]=(b=a?"mounted":"unmounted",c={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},m.useReducer((a,b)=>c[a][b]??a,b));return m.useEffect(()=>{let a=bo(f.current);h.current="mounted"===i?a:"none"},[i]),a$(()=>{let b=f.current,c=g.current;if(c!==a){let d=h.current,e=bo(b);a?j("MOUNT"):"none"===e||b?.display==="none"?j("UNMOUNT"):c&&d!==e?j("ANIMATION_OUT"):j("UNMOUNT"),g.current=a}},[a,j]),a$(()=>{if(d){let a,b=d.ownerDocument.defaultView??window,c=c=>{let e=bo(f.current).includes(c.animationName);if(c.target===d&&e&&(j("ANIMATION_END"),!g.current)){let c=d.style.animationFillMode;d.style.animationFillMode="forwards",a=b.setTimeout(()=>{"forwards"===d.style.animationFillMode&&(d.style.animationFillMode=c)})}},e=a=>{a.target===d&&(h.current=bo(f.current))};return d.addEventListener("animationstart",e),d.addEventListener("animationcancel",c),d.addEventListener("animationend",c),()=>{b.clearTimeout(a),d.removeEventListener("animationstart",e),d.removeEventListener("animationcancel",c),d.removeEventListener("animationend",c)}}j("ANIMATION_END")},[d,j]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:m.useCallback(a=>{a&&(f.current=getComputedStyle(a)),e(a)},[])}}(e),h="function"==typeof f?f({present:g.isPresent}):m.Children.only(f),i=aC(g.ref,(b=h,(d=(c=Object.getOwnPropertyDescriptor(b.props,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.ref:(d=(c=Object.getOwnPropertyDescriptor(b,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.props.ref:b.props.ref||b.ref));return"function"==typeof f||g.isPresent?m.cloneElement(h,{ref:i}):null};function bo(a){return a?.animationName||"none"}bn.displayName="Presence";var bp=a.i(516164),bq=a.i(173673),br="Popover",[bs,bt]=aD(br,[a6]),bu=a6(),[bv,bw]=bs(br),bx=a=>{let{__scopePopover:b,children:c,open:d,defaultOpen:f,onOpenChange:g,modal:h=!1}=a,i=bu(b),j=m.useRef(null),[k,l]=m.useState(!1),[n=!1,o]=function({prop:a,defaultProp:b,onChange:c=()=>{}}){let[d,e]=function({defaultProp:a,onChange:b}){let c=m.useState(a),[d]=c,e=m.useRef(d),f=aJ(b);return m.useEffect(()=>{e.current!==d&&(f(d),e.current=d)},[d,e,f]),c}({defaultProp:b,onChange:c}),f=void 0!==a,g=f?a:d,h=aJ(c);return[g,m.useCallback(b=>{if(f){let c="function"==typeof b?b(a):b;c!==a&&h(c)}else e(b)},[f,a,e,h])]}({prop:d,defaultProp:f,onChange:g});return(0,e.jsx)(a9,{...i,children:(0,e.jsx)(bv,{scope:b,contentId:function(){let[a,b]=m.useState(a_());return a$(()=>{b(a=>a??String(a0++))},[void 0]),a?`radix-${a}`:""}(),triggerRef:j,open:n,onOpenChange:o,onOpenToggle:m.useCallback(()=>o(a=>!a),[o]),hasCustomAnchor:k,onCustomAnchorAdd:m.useCallback(()=>l(!0),[]),onCustomAnchorRemove:m.useCallback(()=>l(!1),[]),modal:h,children:c})})};bx.displayName=br;var by="PopoverAnchor";m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bw(by,c),g=bu(c),{onCustomAnchorAdd:h,onCustomAnchorRemove:i}=f;return m.useEffect(()=>(h(),()=>i()),[h,i]),(0,e.jsx)(bb,{...g,...d,ref:b})}).displayName=by;var bz="PopoverTrigger",bA=m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bw(bz,c),g=bu(c),h=aC(b,f.triggerRef),i=(0,e.jsx)(aI.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.contentId,"data-state":bM(f.open),...d,ref:h,onClick:az(a.onClick,f.onOpenToggle)});return f.hasCustomAnchor?i:(0,e.jsx)(bb,{asChild:!0,...g,children:i})});bA.displayName=bz;var bB="PopoverPortal",[bC,bD]=bs(bB,{forceMount:void 0}),bE=a=>{let{__scopePopover:b,forceMount:c,children:d,container:f}=a,g=bw(bB,b);return(0,e.jsx)(bC,{scope:b,forceMount:c,children:(0,e.jsx)(bn,{present:c||g.open,children:(0,e.jsx)(bm,{asChild:!0,container:f,children:d})})})};bE.displayName=bB;var bF="PopoverContent",bG=m.forwardRef((a,b)=>{let c=bD(bF,a.__scopePopover),{forceMount:d=c.forceMount,...f}=a,g=bw(bF,a.__scopePopover);return(0,e.jsx)(bn,{present:d||g.open,children:g.modal?(0,e.jsx)(bH,{...f,ref:b}):(0,e.jsx)(bI,{...f,ref:b})})});bG.displayName=bF;var bH=m.forwardRef((a,b)=>{let c=bw(bF,a.__scopePopover),d=m.useRef(null),f=aC(b,d),g=m.useRef(!1);return m.useEffect(()=>{let a=d.current;if(a)return(0,bp.hideOthers)(a)},[]),(0,e.jsx)(bq.RemoveScroll,{as:aE,allowPinchZoom:!0,children:(0,e.jsx)(bJ,{...a,ref:f,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:az(a.onCloseAutoFocus,a=>{a.preventDefault(),g.current||c.triggerRef.current?.focus()}),onPointerDownOutside:az(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;g.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:az(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),bI=m.forwardRef((a,b)=>{let c=bw(bF,a.__scopePopover),d=m.useRef(!1),f=m.useRef(!1);return(0,e.jsx)(bJ,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,f.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(f.current=!0));let e=b.target;c.triggerRef.current?.contains(e)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&f.current&&b.preventDefault()}})}),bJ=m.forwardRef((a,b)=>{let{__scopePopover:c,trapFocus:d,onOpenAutoFocus:f,onCloseAutoFocus:g,disableOutsidePointerEvents:h,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onInteractOutside:l,...n}=a,o=bw(bF,c),p=bu(c);return m.useEffect(()=>{let a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??aQ()),document.body.insertAdjacentElement("beforeend",a[1]??aQ()),aP++,()=>{1===aP&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),aP--}},[]),(0,e.jsx)(aU,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:f,onUnmountAutoFocus:g,children:(0,e.jsx)(aM,{asChild:!0,disableOutsidePointerEvents:h,onInteractOutside:l,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onDismiss:()=>o.onOpenChange(!1),children:(0,e.jsx)(bf,{"data-state":bM(o.open),role:"dialog",id:o.contentId,...p,...n,ref:b,style:{...n.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),bK="PopoverClose";m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bw(bK,c);return(0,e.jsx)(aI.button,{type:"button",...d,ref:b,onClick:az(a.onClick,()=>f.onOpenChange(!1))})}).displayName=bK;var bL=m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bu(c);return(0,e.jsx)(bi,{...f,...d,ref:b})});function bM(a){return a?"open":"closed"}bL.displayName="PopoverArrow";var bN=a.i(449851),bO=a.i(424478),bP=a.i(373116);let bQ={get url(){return`file://${a.P("node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.14_react@19.2.5/node_modules/zustand/esm/vanilla.mjs")}`}},bR=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a)),destroy:()=>{(bQ.env?bQ.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),c.clear()}},g=b=a(d,e,f);return f};var bS=a.i(878001);let bT={get url(){return`file://${a.P("node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.14_react@19.2.5/node_modules/zustand/esm/index.mjs")}`}},{useDebugValue:bU}=m.default,{useSyncExternalStoreWithSelector:bV}=bS.default,bW=!1,bX=a=>{(bT.env?bT.env.MODE:void 0)!=="production"&&"function"!=typeof a&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let b="function"==typeof a?a?bR(a):bR:a,c=(a,c)=>(function(a,b=a=>a,c){(bT.env?bT.env.MODE:void 0)!=="production"&&c&&!bW&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),bW=!0);let d=bV(a.subscribe,a.getState,a.getServerState||a.getInitialState,b,c);return bU(d),d})(b,a,c);return Object.assign(c,b),c},bY=m.default.useEffect;function bZ(){let a,b=(a=a=>({current:[],version:0,set:a}))?bX(a):bX;return{In:({children:a})=>{let c=b(a=>a.set),d=b(a=>a.version);return bY(()=>{c(a=>({version:a.version+1}))},[]),bY(()=>(c(({current:b})=>({current:[...b,a]})),()=>c(({current:b})=>({current:b.filter(b=>b!==a)}))),[a,d]),null},Out:()=>{let a=b(a=>a.current);return m.default.createElement(m.default.Fragment,null,a)}}}function b$(){return(b$=Object.assign.bind()).apply(null,arguments)}function b_(a,b,{checkForDefaultPrevented:c=!0}={}){return function(d){if(null==a||a(d),!1===c||!d.defaultPrevented)return null==b?void 0:b(d)}}function b0(a,b=[]){let c=[],d=()=>{let b=c.map(a=>(0,m.createContext)(a));return function(c){let d=(null==c?void 0:c[a])||b;return(0,m.useMemo)(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let e=(0,m.createContext)(d),f=c.length;function g(b){let{scope:c,children:d,...g}=b,h=(null==c?void 0:c[a][f])||e,i=(0,m.useMemo)(()=>g,Object.values(g));return(0,m.createElement)(h.Provider,{value:i},d)}return c=[...c,d],g.displayName=b+"Provider",[g,function(c,g){let h=(null==g?void 0:g[a][f])||e,i=(0,m.useContext)(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return(0,m.useMemo)(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}function b1(...a){return b=>a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})}function b2(...a){return(0,m.useCallback)(b1(...a),a)}let b3=(0,m.forwardRef)((a,b)=>{let{children:c,...d}=a,e=m.Children.toArray(c),f=e.find(b6);if(f){let a=f.props.children,c=e.map(b=>b!==f?b:m.Children.count(a)>1?m.Children.only(null):(0,m.isValidElement)(a)?a.props.children:null);return(0,m.createElement)(b4,b$({},d,{ref:b}),(0,m.isValidElement)(a)?(0,m.cloneElement)(a,void 0,c):null)}return(0,m.createElement)(b4,b$({},d,{ref:b}),c)});b3.displayName="Slot";let b4=(0,m.forwardRef)((a,b)=>{let{children:c,...d}=a;return(0,m.isValidElement)(c)?(0,m.cloneElement)(c,{...function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{f(...a),e(...a)}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props),ref:b1(b,c.ref)}):m.Children.count(c)>1?m.Children.only(null):null});b4.displayName="SlotClone";let b5=({children:a})=>(0,m.createElement)(m.Fragment,null,a);function b6(a){return(0,m.isValidElement)(a)&&a.type===b5}let b7=(null==globalThis?void 0:globalThis.document)?m.useLayoutEffect:()=>{},b8=m["useId".toString()]||(()=>void 0),b9=0;function ca(a){let[b,c]=m.useState(b8());return b7(()=>{a||c(a=>null!=a?a:String(b9++))},[a]),a||(b?`radix-${b}`:"")}let cb=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"].reduce((a,b)=>{let c=(0,m.forwardRef)((a,c)=>{let{asChild:d,...e}=a,f=d?b3:b;return(0,m.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,m.createElement)(f,b$({},e,{ref:c}))});return c.displayName=`Primitive.${b}`,{...a,[b]:c}},{});function cc(a){let b=(0,m.useRef)(a);return(0,m.useEffect)(()=>{b.current=a}),(0,m.useMemo)(()=>(...a)=>{var c;return null==(c=b.current)?void 0:c.call(b,...a)},[])}function cd({prop:a,defaultProp:b,onChange:c=()=>{}}){let[d,e]=function({defaultProp:a,onChange:b}){let c=(0,m.useState)(a),[d]=c,e=(0,m.useRef)(d),f=cc(b);return(0,m.useEffect)(()=>{e.current!==d&&(f(d),e.current=d)},[d,e,f]),c}({defaultProp:b,onChange:c}),f=void 0!==a,g=f?a:d,h=cc(c);return[g,(0,m.useCallback)(b=>{if(f){let c="function"==typeof b?b(a):b;c!==a&&h(c)}else e(b)},[f,a,e,h])]}let ce=(0,m.createContext)(void 0);function cf(a){let b=(0,m.useContext)(ce);return a||b||"ltr"}let cg="rovingFocusGroup.onEntryFocus",ch={bubbles:!1,cancelable:!0},ci="RovingFocusGroup",[cj,ck,cl]=function(a){let b=a+"CollectionProvider",[c,d]=b0(b),[e,f]=c(b,{collectionRef:{current:null},itemMap:new Map}),g=a+"CollectionSlot",h=m.default.forwardRef((a,b)=>{let{scope:c,children:d}=a,e=b2(b,f(g,c).collectionRef);return m.default.createElement(b3,{ref:e},d)}),i=a+"CollectionItemSlot",j="data-radix-collection-item";return[{Provider:a=>{let{scope:b,children:c}=a,d=m.default.useRef(null),f=m.default.useRef(new Map).current;return m.default.createElement(e,{scope:b,itemMap:f,collectionRef:d},c)},Slot:h,ItemSlot:m.default.forwardRef((a,b)=>{let{scope:c,children:d,...e}=a,g=m.default.useRef(null),h=b2(b,g),k=f(i,c);return m.default.useEffect(()=>(k.itemMap.set(g,{ref:g,...e}),()=>void k.itemMap.delete(g))),m.default.createElement(b3,{[j]:"",ref:h},d)})},function(b){let c=f(a+"CollectionConsumer",b);return m.default.useCallback(()=>{let a=c.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${j}]`));return Array.from(c.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[c.collectionRef,c.itemMap])},d]}(ci),[cm,cn]=b0(ci,[cl]),[co,cp]=cm(ci),cq=(0,m.forwardRef)((a,b)=>(0,m.createElement)(cj.Provider,{scope:a.__scopeRovingFocusGroup},(0,m.createElement)(cj.Slot,{scope:a.__scopeRovingFocusGroup},(0,m.createElement)(cr,b$({},a,{ref:b}))))),cr=(0,m.forwardRef)((a,b)=>{let{__scopeRovingFocusGroup:c,orientation:d,loop:e=!1,dir:f,currentTabStopId:g,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:i,onEntryFocus:j,...k}=a,l=(0,m.useRef)(null),n=b2(b,l),o=cf(f),[p=null,q]=cd({prop:g,defaultProp:h,onChange:i}),[r,s]=(0,m.useState)(!1),t=cc(j),u=ck(c),v=(0,m.useRef)(!1),[w,x]=(0,m.useState)(0);return(0,m.useEffect)(()=>{let a=l.current;if(a)return a.addEventListener(cg,t),()=>a.removeEventListener(cg,t)},[t]),(0,m.createElement)(co,{scope:c,orientation:d,dir:o,loop:e,currentTabStopId:p,onItemFocus:(0,m.useCallback)(a=>q(a),[q]),onItemShiftTab:(0,m.useCallback)(()=>s(!0),[]),onFocusableItemAdd:(0,m.useCallback)(()=>x(a=>a+1),[]),onFocusableItemRemove:(0,m.useCallback)(()=>x(a=>a-1),[])},(0,m.createElement)(cb.div,b$({tabIndex:r||0===w?-1:0,"data-orientation":d},k,{ref:n,style:{outline:"none",...a.style},onMouseDown:b_(a.onMouseDown,()=>{v.current=!0}),onFocus:b_(a.onFocus,a=>{let b=!v.current;if(a.target===a.currentTarget&&b&&!r){let b=new CustomEvent(cg,ch);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=u().filter(a=>a.focusable);cu([a.find(a=>a.active),a.find(a=>a.id===p),...a].filter(Boolean).map(a=>a.ref.current))}}v.current=!1}),onBlur:b_(a.onBlur,()=>s(!1))})))}),cs=(0,m.forwardRef)((a,b)=>{let{__scopeRovingFocusGroup:c,focusable:d=!0,active:e=!1,tabStopId:f,...g}=a,h=ca(),i=f||h,j=cp("RovingFocusGroupItem",c),k=j.currentTabStopId===i,l=ck(c),{onFocusableItemAdd:n,onFocusableItemRemove:o}=j;return(0,m.useEffect)(()=>{if(d)return n(),()=>o()},[d,n,o]),(0,m.createElement)(cj.ItemSlot,{scope:c,id:i,focusable:d,active:e},(0,m.createElement)(cb.span,b$({tabIndex:k?0:-1,"data-orientation":j.orientation},g,{ref:b,onMouseDown:b_(a.onMouseDown,a=>{d?j.onItemFocus(i):a.preventDefault()}),onFocus:b_(a.onFocus,()=>j.onItemFocus(i)),onKeyDown:b_(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void j.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return ct[e]}(a,j.orientation,j.dir);if(void 0!==b){a.preventDefault();let e=l().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)e.reverse();else if("prev"===b||"next"===b){var c,d;"prev"===b&&e.reverse();let f=e.indexOf(a.currentTarget);e=j.loop?(c=e,d=f+1,c.map((a,b)=>c[(d+b)%c.length])):e.slice(f+1)}setTimeout(()=>cu(e))}})})))}),ct={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function cu(a){let b=document.activeElement;for(let c of a)if(c===b||(c.focus(),document.activeElement!==b))return}let cv=a=>{let{present:b,children:c}=a,d=function(a){var b,c;let[d,e]=(0,m.useState)(),f=(0,m.useRef)({}),g=(0,m.useRef)(a),h=(0,m.useRef)("none"),[i,j]=(b=a?"mounted":"unmounted",c={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},(0,m.useReducer)((a,b)=>{let d=c[a][b];return null!=d?d:a},b));return(0,m.useEffect)(()=>{let a=cw(f.current);h.current="mounted"===i?a:"none"},[i]),b7(()=>{let b=f.current,c=g.current;if(c!==a){let d=h.current,e=cw(b);a?j("MOUNT"):"none"===e||(null==b?void 0:b.display)==="none"?j("UNMOUNT"):c&&d!==e?j("ANIMATION_OUT"):j("UNMOUNT"),g.current=a}},[a,j]),b7(()=>{if(d){let a=a=>{let b=cw(f.current).includes(a.animationName);a.target===d&&b&&(0,aw.flushSync)(()=>j("ANIMATION_END"))},b=a=>{a.target===d&&(h.current=cw(f.current))};return d.addEventListener("animationstart",b),d.addEventListener("animationcancel",a),d.addEventListener("animationend",a),()=>{d.removeEventListener("animationstart",b),d.removeEventListener("animationcancel",a),d.removeEventListener("animationend",a)}}j("ANIMATION_END")},[d,j]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:(0,m.useCallback)(a=>{a&&(f.current=getComputedStyle(a)),e(a)},[])}}(b),e="function"==typeof c?c({present:d.isPresent}):m.Children.only(c),f=b2(d.ref,e.ref);return"function"==typeof c||d.isPresent?(0,m.cloneElement)(e,{ref:f}):null};function cw(a){return(null==a?void 0:a.animationName)||"none"}cv.displayName="Presence";let cx="Tabs",[cy,cz]=b0(cx,[cn]),cA=cn(),[cB,cC]=cy(cx),cD=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,onValueChange:e,defaultValue:f,orientation:g="horizontal",dir:h,activationMode:i="automatic",...j}=a,k=cf(h),[l,n]=cd({prop:d,onChange:e,defaultProp:f});return(0,m.createElement)(cB,{scope:c,baseId:ca(),value:l,onValueChange:n,orientation:g,dir:k,activationMode:i},(0,m.createElement)(cb.div,b$({dir:k,"data-orientation":g},j,{ref:b})))}),cE=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,loop:d=!0,...e}=a,f=cC("TabsList",c),g=cA(c);return(0,m.createElement)(cq,b$({asChild:!0},g,{orientation:f.orientation,dir:f.dir,loop:d}),(0,m.createElement)(cb.div,b$({role:"tablist","aria-orientation":f.orientation},e,{ref:b})))}),cF=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,disabled:e=!1,...f}=a,g=cC("TabsTrigger",c),h=cA(c),i=cH(g.baseId,d),j=cI(g.baseId,d),k=d===g.value;return(0,m.createElement)(cs,b$({asChild:!0},h,{focusable:!e,active:k}),(0,m.createElement)(cb.button,b$({type:"button",role:"tab","aria-selected":k,"aria-controls":j,"data-state":k?"active":"inactive","data-disabled":e?"":void 0,disabled:e,id:i},f,{ref:b,onMouseDown:b_(a.onMouseDown,a=>{e||0!==a.button||!1!==a.ctrlKey?a.preventDefault():g.onValueChange(d)}),onKeyDown:b_(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&g.onValueChange(d)}),onFocus:b_(a.onFocus,()=>{let a="manual"!==g.activationMode;k||e||!a||g.onValueChange(d)})})))}),cG=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,forceMount:e,children:f,...g}=a,h=cC("TabsContent",c),i=cH(h.baseId,d),j=cI(h.baseId,d),k=d===h.value,l=(0,m.useRef)(k);return(0,m.useEffect)(()=>{let a=requestAnimationFrame(()=>l.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,m.createElement)(cv,{present:e||k},({present:c})=>(0,m.createElement)(cb.div,b$({"data-state":k?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":i,hidden:!c,id:j,tabIndex:0},g,{ref:b,style:{...a.style,animationDuration:l.current?"0s":void 0}}),c&&f))});function cH(a,b){return`${a}-trigger-${b}`}function cI(a,b){return`${a}-content-${b}`}var cJ=a.i(739639);function cK([a,b,c],[d,e,f]){return[a+d,b+e,c+f]}function cL([a,b,c],[d,e,f]){return[a-d,b-e,c-f]}function cM([a,b,c],d){return[a*d,b*d,c*d]}function cN([a,b,c]){return[a/Math.sqrt(a**2+b**2),b/Math.sqrt(a**2+b**2),c]}function cO([a,b,c],d){return[Math.cos(d)*a-Math.sin(d)*b,Math.sin(d)*a+Math.cos(d)*b,c]}function cP(a,b,c){return Math.atan2(c[1]-a[1],c[0]-a[0])-Math.atan2(b[1]-a[1],b[0]-a[0])}function cQ(a){return Math.atan2(Math.sin(a),Math.cos(a))}function cR([a,b]){return Math.sqrt(a**2+b**2)}function cS([a,b],[c,d]){return Math.sqrt((c-a)**2+(d-b)**2)}function cT(a,b){if(0===b||a.length<=2)return a;let c=a[0],d=a[a.length-1],[e,f]=a.reduce(([a,b],e,f)=>{let g=function(a,b,c){let d=cS(b,c);if(0===d)return cS(a,b);let e=Math.max(0,Math.min(1,((a[0]-b[0])*(c[0]-b[0])+(a[1]-b[1])*(c[1]-b[1]))/d**2));return cS([b[0]+e*(c[0]-b[0]),b[1]+e*(c[1]-b[1]),a[2]],a)}(e,c,d);return g>a?[g,f]:[a,b]},[0,-1]);if(!(e>=b))return[c,d];{let e=a[f];return[...cT([c,...a.slice(1,f),e],b).slice(0,-1),e,...cT([e,...a.slice(f,-1),d],b).slice(1)]}}Object.defineProperty({},"LaserPointer",{get:()=>cU,set:void 0,enumerable:!0,configurable:!0});class cU{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:a=>a>35?.5:1,maxTailLength:50}}constructor(a){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},cU.defaults,a)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(a){let b=this.originalPoints[this.originalPoints.length-1];if(!b||b[0]!==a[0]||b[1]!==a[1]){var c,d,e;if(this.originalPoints.push(a),this.isFresh){this.isFresh=!1,this.stablePoints.push(a);return}this.options.streamline>0&&(c=this.lastPoint,d=a,e=1-this.options.streamline,a=cK(c,cM(cL(d,c),e))),this.tailPoints.push(a),function(a){if(a.length<2)return 0;let b=0;for(let c=1;c<=a.length-1;c++)b+=cS(a[c-1],a[c]);return b+cS(a[a.length-2],a[a.length-1])}(this.tailPoints)>cU.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&"tail"==this.options.simplifyPhase)throw Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(a,b,c,d,e){return(a??this.options.size)*this.options.sizeMapping({pressure:b,runningLength:e,currentIndex:c,totalLength:d})}getStrokeOutline(a){if(this.isFresh)return[];let b=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&"input"===this.options.simplifyPhase&&(b=cT(b,this.options.simplify));let c=b.length;if(0===c)return[];if(1===c){let d=b[0],e=this.getSize(a,d[2],0,c,0);if(e<.5)return[];let f=[];for(let a=0;a<=2*Math.PI;a+=Math.PI/16)f.push(cK(d,cM(cO([1,0,0],a),e)));return f.push(cK(d,cM([1,0,0],this.getSize(a,d[2],0,c,0)))),f}if(2===c){let d=b[0],e=b[1],f=this.getSize(a,d[2],0,c,0),g=this.getSize(a,e[2],0,c,0);if(f<.5||g<.5)return[];let h=[],i=cP(d,[d[0],d[1]-100,d[2]],e);for(let a=i;a<=Math.PI+i;a+=Math.PI/16)h.push(cK(d,cM(cO([1,0,0],a),f)));for(let a=Math.PI+i;a<=2*Math.PI+i;a+=Math.PI/16)h.push(cK(e,cM(cO([1,0,0],a),g)));return h.push(h[0]),h}let d=[],e=[],f=0,g=0,h=0,i=0;for(let j=1;j<c-1;j++){let k=b[j-1],l=b[j],m=b[j+1],n=l[2],o=cS(k,l);i+=o,f=g+(o-g)*.2;let p=this.getSize(a,n,j,c,i);if(0===p){h=j+1;continue}let q=cN(cL(k,l)),r=cN(cL(m,l)),s=cO(q,Math.PI/2),t=cO(q,-Math.PI/2),u=cO(r,Math.PI/2),v=cO(r,-Math.PI/2),w=cK(l,cM(s,p)),x=cK(l,cM(t,p)),y=cK(l,cM(u,p)),z=cK(l,cM(v,p)),A=cK(s,v),B=cK(t,u),C=cK(l,cM(0===cR(A)?q:cN(A),p)),D=cK(l,cM(0===cR(B)?r:cN(B),p)),E=cQ(cP(l,k,m));if(Math.abs(E)<cU.constants.cornerDetectionMaxAngle/180*Math.PI*cU.constants.cornerDetectionVariance(f)){let a=Math.abs(cQ(Math.PI-E));if(0===a)continue;if(E<0){e.push(x,D);for(let b=0;b<=a;b+=a/4)d.push(cK(l,cO(cM(s,p),b)));for(let b=a;b>=0;b-=a/4)e.push(cK(l,cO(cM(s,p),b)));e.push(D,y)}else{d.push(w,C);for(let b=0;b<=a;b+=a/4)e.push(cK(l,cO(cM(s,-p),-b)));for(let b=a;b>=0;b-=a/4)d.push(cK(l,cO(cM(s,-p),-b)));d.push(C,z)}}else d.push(C),e.push(D);g=f}if(h>=c-2)if(!this.options.keepHead)return[];else{let a=b[c-1],d=[];for(let b=0;b<=2*Math.PI;b+=Math.PI/16)d.push(cK(a,cM(cO([1,0,0],b),this.options.size)));return d.push(cK(a,cM([1,0,0],this.options.size))),d}let j=b[h],k=b[h+1],l=b[c-2],m=b[c-1],n=cN(cL(k,j)),o=cN(cL(l,m)),p=cO(n,-Math.PI/2),q=cO(o,Math.PI/2),r=this.getSize(a,j[2],0,c,0),s=[],t=this.options.keepHead?this.options.size:this.getSize(a,l[2],c-2,c,i),u=[];if(r>1){for(let a=0;a<=Math.PI;a+=Math.PI/16)s.unshift(cK(j,cO(cM(p,r),-a)));s.unshift(cK(j,cM(p,-r)))}else s.push(j);for(let a=0;a<=3*Math.PI;a+=Math.PI/16)u.push(cK(m,cO(cM(q,-t),-a)));let v=[...s,...d,...u.reverse(),...e.reverse()];return(s.length>0&&v.push(s[0]),this.options.simplify>0&&"output"===this.options.simplifyPhase)?cT(v,this.options.simplify):v}}var cV=as(),{useAtom:cW,useSetAtom:cX,useAtomValue:cY,useStore:cZ}=cV,c$=cV.Provider,c_=ae(),c0=(0,K.b)({"./locales/ar-SA.json":()=>a.A(483149),"./locales/az-AZ.json":()=>a.A(520085),"./locales/bg-BG.json":()=>a.A(915721),"./locales/bn-BD.json":()=>a.A(790886),"./locales/ca-ES.json":()=>a.A(154063),"./locales/cs-CZ.json":()=>a.A(349588),"./locales/da-DK.json":()=>a.A(29427),"./locales/de-DE.json":()=>a.A(376696),"./locales/el-GR.json":()=>a.A(691135),"./locales/en.json":()=>a.A(915859),"./locales/es-ES.json":()=>a.A(781240),"./locales/eu-ES.json":()=>a.A(443710),"./locales/fa-IR.json":()=>a.A(859503),"./locales/fi-FI.json":()=>a.A(912498),"./locales/fr-FR.json":()=>a.A(758903),"./locales/gl-ES.json":()=>a.A(807105),"./locales/he-IL.json":()=>a.A(855987),"./locales/hi-IN.json":()=>a.A(494911),"./locales/hu-HU.json":()=>a.A(890605),"./locales/id-ID.json":()=>a.A(769243),"./locales/it-IT.json":()=>a.A(245582),"./locales/ja-JP.json":()=>a.A(634831),"./locales/kaa.json":()=>a.A(641990),"./locales/kab-KAB.json":()=>a.A(540088),"./locales/kk-KZ.json":()=>a.A(909890),"./locales/km-KH.json":()=>a.A(688923),"./locales/ko-KR.json":()=>a.A(65036),"./locales/ku-TR.json":()=>a.A(615978),"./locales/lt-LT.json":()=>a.A(191965),"./locales/lv-LV.json":()=>a.A(617016),"./locales/mr-IN.json":()=>a.A(913213),"./locales/my-MM.json":()=>a.A(862761),"./locales/nb-NO.json":()=>a.A(350552),"./locales/nl-NL.json":()=>a.A(19045),"./locales/nn-NO.json":()=>a.A(380948),"./locales/oc-FR.json":()=>a.A(740777),"./locales/pa-IN.json":()=>a.A(867599),"./locales/percentages.json":()=>a.A(505040),"./locales/pl-PL.json":()=>a.A(989039),"./locales/pt-BR.json":()=>a.A(549891),"./locales/pt-PT.json":()=>a.A(955266),"./locales/ro-RO.json":()=>a.A(537912),"./locales/ru-RU.json":()=>a.A(900612),"./locales/si-LK.json":()=>a.A(895179),"./locales/sk-SK.json":()=>a.A(826065),"./locales/sl-SI.json":()=>a.A(889473),"./locales/sv-SE.json":()=>a.A(703589),"./locales/ta-IN.json":()=>a.A(97001),"./locales/th-TH.json":()=>a.A(878477),"./locales/tr-TR.json":()=>a.A(798438),"./locales/uk-UA.json":()=>a.A(777581),"./locales/vi-VN.json":()=>a.A(393304),"./locales/zh-CN.json":()=>a.A(506118),"./locales/zh-HK.json":()=>a.A(27077),"./locales/zh-TW.json":()=>a.A(332929)}),c1={code:"en",label:"English"},c2=[c1,...[{code:"ar-SA",label:"العربية",rtl:!0},{code:"bg-BG",label:"Български"},{code:"ca-ES",label:"Català"},{code:"cs-CZ",label:"Česky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"Ελληνικά"},{code:"es-ES",label:"Español"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"فارسی",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Français"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"עברית",rtl:!0},{code:"hi-IN",label:"हिन्दी"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"日本語"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"Қазақ тілі"},{code:"ko-KR",label:"한국어"},{code:"ku-TR",label:"Kurdî"},{code:"lt-LT",label:"Lietuvių"},{code:"lv-LV",label:"Latviešu"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokmål"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"ਪੰਜਾਬੀ"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Português Brasileiro"},{code:"pt-PT",label:"Português"},{code:"ro-RO",label:"Română"},{code:"ru-RU",label:"Русский"},{code:"sk-SK",label:"Slovenčina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Slovenščina"},{code:"tr-TR",label:"Türkçe"},{code:"uk-UA",label:"Українська"},{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"},{code:"vi-VN",label:"Tiếng Việt"},{code:"mr-IN",label:"मराठी"}].filter(a=>J.c[a.code]>=85).sort((a,b)=>a.label>b.label?1:-1)],c3="__test__";H.a.DEV&&c2.unshift({code:c3,label:"test language"},{code:`${c3}.rtl`,label:"‪test language (rtl)‬",rtl:!0});var c4=c1,c5={},c6=async a=>{if(c4=a,document.documentElement.dir=c4.rtl?"rtl":"ltr",document.documentElement.lang=c4.code,a.code.startsWith(c3))c5={};else try{c5=await c0(`./locales/${c4.code}.json`)}catch(b){console.error(`Failed to load language ${a.code}:`,b.message),c5=I.J}c_.set(c9,a.code)},c7=(a,b)=>{for(let c=0;c<b.length;++c){let d=b[c];if(void 0===a[d])return;a=a[d]}if("string"==typeof a)return a},c8=(a,b,c)=>{if(c4.code.startsWith(c3))return`\u202A[[${b?`${a}(${JSON.stringify(b).slice(1,-1)})`:a}]]\u202C`;let d=a.split("."),e=c7(c5,d)||c7(I.J,d)||c;if(void 0===e){let b=`Can't find translation for ${a}`;if(H.a.PROD)return console.warn(b),"";throw Error(b)}if(b)for(let a in b)e=e.replace(`{{${a}}}`,String(b[a]));return e},c9=O(c1.code),da=()=>({t:c8,langCode:cY(c9)}),db=({size:a="1em",circleWidth:b=8,synchronized:c=!1,className:d=""})=>{let f=-(L.default.useRef(Date.now()).current%1600);return(0,e.jsx)("div",{className:`Spinner ${d}`,children:(0,e.jsx)("svg",{viewBox:"0 0 100 100",style:{width:a,height:a,"--spinner-delay":c?`${f}ms`:0},children:(0,e.jsx)("circle",{cx:"50",cy:"50",r:50-b/2,strokeWidth:b,fill:"none",strokeMiterlimit:"10"})})})},dc=({delay:a,theme:b})=>{let[c,d]=(0,L.useState)(!!a);return(0,L.useEffect)(()=>{if(!a)return;let b=setTimeout(()=>{d(!1)},a);return()=>clearTimeout(b)},[a]),c?null:(0,e.jsxs)("div",{className:(0,av.default)("LoadingMessage",{"LoadingMessage--dark":b===F.G.DARK}),children:[(0,e.jsx)("div",{children:(0,e.jsx)(db,{})}),(0,e.jsx)("div",{className:"LoadingMessage-text",children:c8("labels.loadingScene")})]})},dd=a=>{let[b,c]=(0,L.useState)(!0);return(0,L.useEffect)(()=>{let b=async()=>{await c6(d),c(!1)},d=c2.find(b=>b.code===a.langCode)||c1;b()},[a.langCode]),b?(0,e.jsx)(dc,{theme:a.theme}):a.children},de=L.default.forwardRef(({size:a="medium",visible:b=!0,className:c="",...d},f)=>{let{id:g}=kc(),h=L.default.useRef(null);L.default.useImperativeHandle(f,()=>h.current);let i=`ToolIcon_size_${a}`,[j,k]=(0,L.useState)(!1),l=(0,L.useRef)(!0),m=async a=>{let b="onClick"in d&&d.onClick?.(a);if((0,F.Fb)(b))try{k(!0),await b}catch(a){if(a instanceof F.tc)console.warn(a);else throw a}finally{l.current&&k(!1)}};(0,L.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let n=(0,L.useRef)(null);if("button"===d.type||"icon"===d.type||"submit"===d.type){let a="icon"===d.type?"button":d.type;return(0,e.jsxs)("button",{className:(0,av.default)("ToolIcon_type_button",i,c,b&&!d.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!d.hidden,"ToolIcon--selected":d.selected,"ToolIcon--plain":"icon"===d.type}),style:d.style,"data-testid":d["data-testid"],hidden:d.hidden,title:d.title,"aria-label":d["aria-label"],type:a,onClick:m,ref:h,disabled:j||d.isLoading||!!d.disabled,children:[(d.icon||d.label)&&(0,e.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!d.disabled,children:[d.icon||d.label,d.keyBindingLabel&&(0,e.jsx)("span",{className:"ToolIcon__keybinding",children:d.keyBindingLabel}),d.isLoading&&(0,e.jsx)(db,{})]}),d.showAriaLabel&&(0,e.jsxs)("div",{className:"ToolIcon__label",children:[d["aria-label"]," ",j&&(0,e.jsx)(db,{})]}),d.children]})}return(0,e.jsxs)("label",{className:(0,av.default)("ToolIcon",c),title:d.title,onPointerDown:a=>{n.current=a.pointerType||null,d.onPointerDown?.({pointerType:a.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{n.current=null})},children:[(0,e.jsx)("input",{className:`ToolIcon_type_radio ${i}`,type:"radio",name:d.name,"aria-label":d["aria-label"],"aria-keyshortcuts":d["aria-keyshortcuts"],"data-testid":d["data-testid"],id:`${g}-${d.id}`,onChange:()=>{d.onChange?.({pointerType:n.current})},checked:d.checked,ref:h}),(0,e.jsxs)("div",{className:"ToolIcon__icon",children:[d.icon,d.keyBindingLabel&&(0,e.jsx)("span",{className:"ToolIcon__keybinding",children:d.keyBindingLabel})]})]})});de.displayName="ToolButton";var df=(a,b)=>{if(a.editingGroupId){let c=(0,F.Qc)((0,F.pk)(b),a.editingGroupId);if(c.length)return{...a,selectedElementIds:{[c[0].id]:!0}}}return a},dg=(0,F.$c)({name:"deleteSelectedElements",label:"labels.delete",icon:F.ud,trackEvent:{category:"element",action:"delete"},perform:(a,b,c,d)=>{if(b.editingLinearElement){let{elementId:c,selectedPointsIndices:e,startBindingElement:f,endBindingElement:g}=b.editingLinearElement,h=d.scene.getNonDeletedElementsMap(),i=F.pj.getElement(c,h);if(!i||null==e)return!1;if(i.points.length<2){let c=a.map(a=>a.id===i.id?(0,F.Qj)(a,{isDeleted:!0}):a),d=df(b,c);return{elements:c,appState:{...d,editingLinearElement:null},captureUpdate:F.Wg.IMMEDIATELY}}let j={startBindingElement:e?.includes(0)?null:f,endBindingElement:e?.includes(i.points.length-1)?null:g};return F.pj.deletePoints(i,e),{elements:a,appState:{...b,editingLinearElement:{...b.editingLinearElement,...j,selectedPointsIndices:e?.[0]>0?[e[0]-1]:[0]}},captureUpdate:F.Wg.IMMEDIATELY}}let{elements:e,appState:f}=((a,b,c)=>{let d=new Set((0,F.vk)(a.filter(a=>(0,F.bc)(a)),b).map(a=>a.id)),e={},f=c.scene.getNonDeletedElementsMap(),g=new Set;for(let b of d)for(let c of(0,F.Bi)(a,b))if(!g.has(c.id)){if((0,F.nc)(c)){let a=(0,F.Aj)(c,f);a&&(e[a.id]=!0)}else e[c.id]=!0;g.add(c.id)}let h=!0,i=a.map(a=>{if(b.selectedElementIds[a.id]){let b=(0,F.nc)(a)?(0,F.Aj)(a,f):null;return a.frameId&&d.has(a.frameId)?(h=!1,e[a.id]=!0,a):b?.frameId&&d.has(b?.frameId)?a:(a.boundElements&&a.boundElements.forEach(b=>{let d=c.scene.getNonDeletedElementsMap().get(b.id);d&&(0,F.ec)(d)&&((0,F.Pj)(d,{startBinding:a.id===d.startBinding?.elementId?null:d.startBinding,endBinding:a.id===d.endBinding?.elementId?null:d.endBinding}),(0,F.Pj)(d,{points:d.points}))}),(0,F.Qj)(a,{isDeleted:!0}))}return a.frameId&&d.has(a.frameId)?(h=!1,(0,F.nc)(a)||(e[a.id]=!0),(0,F.Qj)(a,{frameId:null})):(0,F.nc)(a)&&b.selectedElementIds[a.containerId]?(0,F.Qj)(a,{isDeleted:!0}):a}),j=b.editingGroupId;if(h&&b.editingGroupId){let a=(0,F.Qc)(i,b.editingGroupId).filter(a=>!a.isDeleted);if(a.length>1)a[0]&&(e[a[0].id]=!0);else{j=null,a[0]&&(e[a[0].id]=!0);let c=a[0];if(c){let a=c.groupIds.findIndex(a=>a===b.editingGroupId),d=c.groupIds[a+1];if(d){let a=(0,F.Qc)(i,d).filter(a=>!a.isDeleted);a.length>1&&(j=d,a.forEach(a=>{e[a.id]=!0}))}}}}return{elements:i,appState:{...b,...(0,F.Jc)({selectedElementIds:e,editingGroupId:j},i,b,null)}}})(a,b,d);return(0,F.Tg)(e,e.filter(a=>a.isDeleted)),f=df(f,e),{elements:e,appState:{...f,activeTool:(0,F.jb)(b,{type:"selection"}),multiElement:null,activeEmbeddable:null},captureUpdate:(0,F.tk)((0,F.pk)(a),b)?F.Wg.IMMEDIATELY:F.Wg.EVENTUALLY}},keyTest:(a,b,c)=>(a.key===F.hg.BACKSPACE||a.key===F.hg.DELETE)&&!a[F.hg.CTRL_OR_CMD],PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsx)(de,{type:"button",icon:F.ud,title:c8("labels.delete"),"aria-label":c8("labels.delete"),onClick:()=>c(null),visible:(0,F.tk)((0,F.pk)(a),b)})}),dh=(a,b)=>a.frameId===b||a.id===b,di=(a,b,c)=>{let d=[],e=[],f=null,g=-1,h=(0,F.xb)(c||(0,F.vk)(a,b,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++g<a.length;){let b=a[g];h.get(b.id)?(e.length&&(d=d.concat(e),e=[]),d.push(g),f=g+1):b.isDeleted&&f===g?(f=g+1,e.push(g)):e=[]}return d},dj=(a,b,c)=>{if("containerId"in a&&a.containerId){let d=F.Oj.getScene(a).getElement(a.containerId);if(d)return"left"===c?Math.min(b.indexOf(d),b.indexOf(a)):Math.max(b.indexOf(d),b.indexOf(a))}else{let d=a.boundElements?.find(a=>"arrow"!==a.type)?.id;if(d){let e=F.Oj.getScene(a).getElement(d);if(e)return"left"===c?Math.min(b.indexOf(e),b.indexOf(a)):Math.max(b.indexOf(e),b.indexOf(a))}}},dk=(a,b)=>b.reduce((b,c)=>{let d=a[c];return b.set(d.id,d),b},new Map),dl=(a,b,c)=>{let d,e=di(a,b),f=dk(a,e),g=(d=0,e.reduce((a,b,c)=>(c>0&&e[c-1]!==b-1&&(d=++d),(a[d]||(a[d]=[])).push(b),a),[]));"right"===c&&(g=g.reverse());let h=new Set(e.filter(b=>(0,F.bc)(a[b])).map(b=>a[b].id));return g.forEach((d,e)=>{let f=d[0],g=d[d.length-1],i="left"===c?f:g,j=d.some(b=>{let c=a[b];return c.frameId&&h.has(c.frameId)})?null:a[i]?.frameId,k=((a,b,c,d,e)=>{let f=b[c],g=b=>!b.isDeleted&&(e?b.frameId===e:!a.editingGroupId||b.groupIds.includes(a.editingGroupId)),h="left"===d?(0,F.rb)(b,a=>g(a),Math.max(0,c-1)):(0,F.qb)(b,a=>g(a),c+1),i=b[h];if(!i)return -1;if(a.editingGroupId){if(f?.groupIds.join("")===i?.groupIds.join(""))return dj(i,b,d)??h;if(!i?.groupIds.includes(a.editingGroupId))return -1}if(!e&&(i.frameId||(0,F.bc)(i))){var j;let a,c,e=(j=i.frameId||i.id,a=-1,c=-1,b.forEach((b,d)=>{dh(b,j)&&(-1===a&&(a=d),c=d)}),-1===a?[]:b.slice(a,c+1));return"left"===d?b.indexOf(e[0]):b.indexOf(e[e.length-1])}if(!i.groupIds.length)return dj(i,b,d)??h;let k=a.editingGroupId?i.groupIds[i.groupIds.indexOf(a.editingGroupId)-1]:i.groupIds[i.groupIds.length-1],l=(0,F.Qc)(b,k);return l.length?"left"===d?b.indexOf(l[0]):b.indexOf(l[l.length-1]):h})(b,a,i,c,j);if(-1===k||i===k)return;let l="left"===c?a.slice(0,k):a.slice(0,f),m=a.slice(f,g+1),n="left"===c?a.slice(k,f):a.slice(g+1,k+1),o="left"===c?a.slice(g+1):a.slice(k+1);a="left"===c?[...l,...m,...n,...o]:[...l,...n,...m,...o]}),(0,F.Mj)(a,f),a},dm=(a,b,c,d,e)=>{let f=di(a,b,e),g=dk(a,f),h=[],i,j;if("left"===c){if(d)i=(0,F.qb)(a,a=>dh(a,d));else if(b.editingGroupId){let c=(0,F.Qc)(a,b.editingGroupId);if(!c.length)return a;i=a.indexOf(c[0])}else i=0;j=f[f.length-1]}else{if(d)j=(0,F.rb)(a,a=>dh(a,d));else if(b.editingGroupId){let c=(0,F.Qc)(a,b.editingGroupId);if(!c.length)return a;j=a.indexOf(c[c.length-1])}else j=a.length-1;i=f[0]}-1===i&&(i=0);for(let b=i;b<j+1;b++)f.includes(b)||h.push(a[b]);let k=Array.from(g.values()),l=a.slice(0,i),m=a.slice(j+1),n="left"===c?[...l,...k,...h,...m]:[...l,...h,...k,...m];return(0,F.Mj)(n,g),n};function dn(a,b,c,d){let e=(0,F.xb)((0,F.vk)(a,b,{includeBoundTextElement:!0,includeElementsInFrames:!0})),f={regularElements:[],frameChildren:new Map},g=new Set;for(let b of a)e.has(b.id)&&(0,F.bc)(b)&&g.add(b.id);for(let b of a)if(e.has(b.id))if((0,F.bc)(b)||b.frameId&&g.has(b.frameId))f.regularElements.push(b);else if(b.frameId){let a=f.frameChildren.get(b.frameId)||[];a.push(b),f.frameChildren.set(b.frameId,a)}else f.regularElements.push(b);let h=a;for(let[e,g]of Array.from(f.frameChildren.entries()))h=d(a,b,c,e,g);return d(h,b,c,null,f.regularElements)}var dp=(0,F.$c)({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:F.Wd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dl(a,b,"left"),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyPriority:40,keyTest:a=>a[F.hg.CTRL_OR_CMD]&&!a.shiftKey&&a.code===F.gg.BRACKET_LEFT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>a(null),title:`${c8("labels.sendBackward")} \u2014 ${(0,F.kb)("CtrlOrCmd+[")}`,children:F.Wd})}),dq=(0,F.$c)({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:F.Vd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dl(a,b,"right"),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyPriority:40,keyTest:a=>a[F.hg.CTRL_OR_CMD]&&!a.shiftKey&&a.code===F.gg.BRACKET_RIGHT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>a(null),title:`${c8("labels.bringForward")} \u2014 ${(0,F.kb)("CtrlOrCmd+]")}`,children:F.Vd})}),dr=(0,F.$c)({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:F.Yd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dn(a,b,"left",dm),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>F.l?a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.BRACKET_LEFT:a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.code===F.gg.BRACKET_LEFT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>a(null),title:`${c8("labels.sendToBack")} \u2014 ${F.l?(0,F.kb)("CtrlOrCmd+Alt+["):(0,F.kb)("CtrlOrCmd+Shift+[")}`,children:F.Yd})}),ds=(0,F.$c)({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:F.Xd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dn(a,b,"right",dm),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>F.l?a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.BRACKET_RIGHT:a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.code===F.gg.BRACKET_RIGHT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:b=>a(null),title:`${c8("labels.bringToFront")} \u2014 ${F.l?(0,F.kb)("CtrlOrCmd+Alt+]"):(0,F.kb)("CtrlOrCmd+Shift+]")}`,children:F.Xd})}),dt=(0,F.$c)({name:"selectAll",label:"labels.selectAll",icon:F.uf,trackEvent:{category:"canvas"},viewMode:!1,perform:(a,b,c,d)=>{if(b.editingLinearElement)return!1;let e=a.filter(a=>!a.isDeleted&&!((0,F._b)(a)&&a.containerId)&&!a.locked).reduce((a,b)=>(a[b.id]=!0,a),{});return{appState:{...b,...(0,F.Jc)({editingGroupId:null,selectedElementIds:e},(0,F.pk)(a),b,d),selectedLinearElement:1===Object.keys(e).length&&(0,F.cc)(a[0])?new F.pj(a[0]):null},captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.A}),du=(0,F.$c)({name:"duplicateSelection",label:"labels.duplicateSelection",icon:F.wd,trackEvent:{category:"element"},perform:(a,b,c,d)=>{if(b.editingLinearElement)try{let c=F.pj.duplicateSelectedPoints(b,d.scene.getNonDeletedElementsMap());return{elements:a,appState:c,captureUpdate:F.Wg.IMMEDIATELY}}catch{return!1}let e=dv(a,b);if(d.props.onDuplicate&&e.elements){let b=d.props.onDuplicate(e.elements,a);b&&(e.elements=b)}return{...e,captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.D,PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsx)(de,{type:"button",icon:F.wd,title:`${c8("labels.duplicateSelection")} \u2014 ${(0,F.kb)("CtrlOrCmd+D")}`,"aria-label":c8("labels.duplicateSelection"),onClick:()=>c(null),visible:(0,F.tk)((0,F.pk)(a),b)})}),dv=(a,b)=>{var c,d;let e,f,g,h,i,j,k,l=new Map,m=[],n=[],o=new Map,p=new Map,q=(0,F.xb)(a),r=a=>{let c=(0,F.Ub)(a).reduce((a,c)=>{if(t.has(c.id))return a;t.set(c.id,!0);let d=(0,F.cg)(b.editingGroupId,l,c,{x:c.x+F.R/2,y:c.y+F.R/2});return t.set(d.id,!0),p.set(d.id,d),o.set(c.id,d.id),n.push(c),m.push(d),a.push(d),a},[]);return Array.isArray(a)?c:c[0]||null};e=(c=a).slice(),f=new Set,g=a=>{let b=a[0]?.groupIds?.join(""),c=[a[0]],d=[];for(let e of a.slice(1))e.groupIds?.join("")===b?c.push(e):d.push(e);return d.length?[...c,...g(d)]:c},h=new Map,e.forEach((a,b)=>{if(!h.has(a.id))if(a.groupIds?.length){let c=a.groupIds[a.groupIds.length-1];for(let a of g(e.slice(b).filter(a=>{let b=a?.groupIds?.some(a=>a===c);return b&&h.set(a.id,!0),b})))f.add(a)}else f.add(a)}),d=f.size!==c.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),c):[...f],i=(0,F.yb)(d),j=d.slice(),k=new Set,j.forEach((a,b)=>{a&&(a.boundElements?.length?(k.add(a),j[b]=null,a.boundElements.forEach(a=>{let b=i.get(a.id);b&&"text"===a.type&&(k.add(b[0]),j[b[1]]=null)})):"text"===a.type&&a.containerId&&i.get(a.containerId)?.[0].boundElements?.find(b=>b.id===a.id)||(k.add(a),j[b]=null))}),a=k.size!==d.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),d):[...k];let s=(0,F.xb)((0,F.vk)(a,b,{includeBoundTextElement:!0,includeElementsInFrames:!0})),t=new Map,u=a.slice(),v=(a,b)=>{(0,F.Kb)(-1!==a,"targetIndex === -1 "),(Array.isArray(b)||b)&&u.splice(a+1,0,...(0,F.Ub)(b))},w=new Set(a.filter(a=>s.has(a.id)&&(0,F.bc)(a)).map(a=>a.id));for(let c of a){if(t.has(c.id)||!s.has(c.id))continue;let d=(0,F.Lc)(b,c);if(d){let b=(0,F.Qc)(a,d).flatMap(b=>(0,F.bc)(b)?[...(0,F.Bi)(a,b.id),b]:[b]);v((0,F.rb)(u,a=>a.groupIds?.includes(d)),r(b));continue}if(!(c.frameId&&w.has(c.frameId))){if((0,F.bc)(c)){let b=c.id,d=(0,F.Bi)(a,b);v((0,F.rb)(u,a=>a.frameId===b||a.id===b),r([...d,c]));continue}if((0,F.mc)(c)){let a=(0,F.zj)(c,q);v((0,F.rb)(u,a=>a.id===c.id||"containerId"in a&&a.containerId===c.id),r(a?[c,a]:c));continue}if((0,F.nc)(c)){let a=(0,F.Aj)(c,q);v((0,F.rb)(u,b=>b.id===c.id||b.id===a?.id),r(a?[a,c]:c));continue}v((0,F.rb)(u,a=>a.id===c.id),r(c))}}(0,F.vj)(u,n,o),(0,F.Sg)(u,n,o),(0,F.wi)(u,n,o);let x=(0,F.rk)(m);return{elements:u,appState:{...b,...(0,F.Jc)({editingGroupId:b.editingGroupId,selectedElementIds:x.reduce((a,b)=>((0,F.nc)(b)||(a[b.id]=!0),a),{})},(0,F.pk)(u),b,null)}}},dw=(a,b,c,d)=>{try{return}catch(a){console.error("error during analytics",a)}},dx=(0,L.forwardRef)((a,b)=>{let{title:c,className:d,testId:f,active:g,standalone:h,icon:i,onClick:j}=a;return(0,e.jsx)("button",{type:"button",ref:b,title:c,"data-testid":f,className:(0,av.default)(d,{standalone:h,active:g}),onClick:j,children:i},c)}),dy=a=>(0,e.jsx)("div",{className:"buttonList",children:a.options.map(b=>"button"===a.type?(0,e.jsx)(dx,{icon:b.icon,title:b.text,testId:b.testId,active:b.active??a.value===b.value,onClick:c=>a.onClick(b.value,c)},b.text):(0,e.jsxs)("label",{className:(0,av.default)({active:a.value===b.value}),title:b.text,children:[(0,e.jsx)("input",{type:"radio",name:a.group,onChange:()=>a.onChange(b.value),checked:a.value===b.value,"data-testid":b.testId}),b.icon]},b.text))}),dz=({onChange:a,type:b,activeColor:c,topPicks:d})=>{let f;return"elementStroke"===b&&(f=F.f),"elementBackground"===b&&(f=F.g),"canvasBackground"===b&&(f=F.h),d&&(f=d),f?(0,e.jsx)("div",{className:"color-picker__top-picks",children:f.map(b=>(0,e.jsx)("button",{className:(0,av.default)("color-picker__button",{active:b===c,"is-transparent":"transparent"===b||!b}),style:{"--swatch-color":b},type:"button",title:b,onClick:()=>a(b),"data-testid":`color-top-pick-${b}`,children:(0,e.jsx)("div",{className:"color-picker__button-outline"})},b))}):(console.error("Invalid type for TopPicks"),null)},dA=()=>(0,e.jsx)("div",{style:{width:1,height:"1rem",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),dB=({palette:a,color:b})=>{for(let[c,d]of Object.entries(a))if(Array.isArray(d)){let a=d.indexOf(b);if(a>-1)return{colorName:c,shade:a}}else if(d===b)return{colorName:c,shade:null};return null},dC=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),dD=({color:a,palette:b})=>!Object.values(b).flat().includes(a),dE=O(null),dF=(a,b,c)=>(299*a+587*b+114*c)/1e3>=160?"black":"white",dG=({color:a,keyLabel:b,isCustomColor:c=!1,isShade:d=!1})=>(0,e.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:((a,b)=>{if(b){let b=new Option().style;if(b.color=a,b.color){let a=b.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(",");return dF(parseInt(a[0]),parseInt(a[1]),parseInt(a[2]))}}return"transparent"===a?"black":dF(parseInt(a.substring(1,3),16),parseInt(a.substring(3,5),16),parseInt(a.substring(5,7),16))})(a,c)},children:[d&&"⇧",b]}),dH=({hex:a,onChange:b,palette:c})=>{let d=dB({color:a||"transparent",palette:c}),[f,g]=cW(dE),h=(0,L.useRef)(null);if((0,L.useEffect)(()=>{h.current&&"shades"===f&&h.current.focus()},[d,f]),d){let{colorName:a,shade:i}=d,j=c[a];if(Array.isArray(j))return(0,e.jsx)("div",{className:"color-picker-content--default shades",children:j.map((c,d)=>(0,e.jsxs)("button",{ref:d===i&&"shades"===f?h:void 0,tabIndex:-1,type:"button",className:(0,av.default)("color-picker__button color-picker__button--large",{active:d===i}),"aria-label":"Shade",title:`${a} - ${d+1}`,style:c?{"--swatch-color":c}:void 0,onClick:()=>{b(c),g("shades")},children:[(0,e.jsx)("div",{className:"color-picker__button-outline"}),(0,e.jsx)(dG,{color:c,keyLabel:d+1,isShade:!0})]},d))})}return(0,e.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,e.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,e.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:c8("colorPicker.noShades")})]})},dI=({palette:a,color:b,onChange:c,label:d,activeShade:f})=>{let g=dB({color:b||"transparent",palette:a}),[h,i]=cW(dE),j=(0,L.useRef)(null);return(0,L.useEffect)(()=>{j.current&&"baseColors"===h&&j.current.focus()},[g?.colorName,h]),(0,e.jsx)("div",{className:"color-picker-content--default",children:Object.entries(a).map(([a,b],d)=>{let h=(Array.isArray(b)?b[f]:b)||"transparent",k=dC[d],l=c8(`colors.${a.replace(/\d+/,"")}`,null,"");return(0,e.jsxs)("button",{ref:g?.colorName===a?j:void 0,tabIndex:-1,type:"button",className:(0,av.default)("color-picker__button color-picker__button--large",{active:g?.colorName===a,"is-transparent":"transparent"===h||!h}),onClick:()=>{c(h),i("baseColors")},title:`${l}${h.startsWith("#")?` ${h}`:""} \u2014 ${k}`,"aria-label":`${l} \u2014 ${k}`,style:{"--swatch-color":h},"data-testid":`color-${a}`,children:[(0,e.jsx)("div",{className:"color-picker__button-outline"}),(0,e.jsx)(dG,{color:h,keyLabel:k})]},a)})})},dJ=({colors:a,color:b,onChange:c,label:d})=>{let[f,g]=cW(dE),h=(0,L.useRef)(null);return(0,L.useEffect)(()=>{h.current&&h.current.focus()},[b,f]),(0,e.jsx)("div",{className:"color-picker-content--default",children:a.map((a,f)=>(0,e.jsxs)("button",{ref:b===a?h:void 0,tabIndex:-1,type:"button",className:(0,av.default)("color-picker__button color-picker__button--large",{active:b===a,"is-transparent":"transparent"===a||!a}),onClick:()=>{c(a),g("custom")},title:a,"aria-label":d,style:{"--swatch-color":a},children:[(0,e.jsx)("div",{className:"color-picker__button-outline"}),(0,e.jsx)(dG,{color:a,keyLabel:f+1,isCustomColor:!0})]},f))})},dK=(a,b,c)=>{let d=Math.ceil(c/F.b);switch(b=b??-1,a){case"ArrowLeft":{let a=b-1;return a<0?c-1:a}case"ArrowRight":return(b+1)%c;case"ArrowDown":{let a=b+F.b;return a>=c?b%F.b:a}case"ArrowUp":{let a=b-F.b,e=a<0?F.b*d+a:a;return e>=c?void 0:e}}},dL=({children:a})=>(0,e.jsx)("div",{className:"color-picker__heading",children:a}),dM=({color:a,onChange:b,label:c,type:d,elements:f,palette:g,updateData:h,children:i,onEyeDropperToggle:j,onEscape:k})=>{let[l]=L.default.useState(()=>{let a,b,c;return"canvasBackground"===d?[]:(a={elementBackground:"backgroundColor",elementStroke:"strokeColor"},b=f.filter(b=>!b.isDeleted&&dD({color:b[a[d]],palette:g})),c=new Map,b.forEach(b=>{let e=b[a[d]];c.has(e)?c.set(e,c.get(e)+1):c.set(e,1)}),[...c.entries()].sort((a,b)=>b[1]-a[1]).map(a=>a[0]).slice(0,F.a))}),[m,n]=cW(dE),o=dB({color:a,palette:g});(0,L.useEffect)(()=>{if(!m){let b=dD({color:a,palette:g});n(b&&!l.includes(a)?"hex":b?"custom":o?.shade!=null?"shades":"baseColors")}},[m,a,g,n,o,l]);let[p,q]=(0,L.useState)(o?.shade??("elementBackground"===d?F.d:F.c));(0,L.useEffect)(()=>{o?.shade!=null&&q(o.shade);let a=a=>{a.key===F.hg.ALT&&j(!1)};return document.addEventListener("keyup",a,{capture:!0}),()=>{document.removeEventListener("keyup",a,{capture:!0})}},[o,j]);let r=L.default.useRef(null);return(0,e.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":c8("labels.colorPicker"),children:(0,e.jsxs)("div",{ref:r,onKeyDown:c=>{(({event:a,activeColorPickerSection:b,palette:c,color:d,onChange:e,customColors:f,setActiveColorPickerSection:g,updateData:h,activeShade:i,onEyeDropperToggle:j,onEscape:k})=>{if(a[F.hg.CTRL_OR_CMD])return!1;if(a.key===F.hg.ESCAPE)return k(a),!0;if(a.key===F.hg.ALT)return j(!0),!0;if(a.key===F.hg.I)return j(),!0;let l=dB({color:d,palette:c});if(a.key===F.hg.TAB){let h=Object.entries({custom:!!f.length,baseColors:!0,shades:l?.shade!=null,hex:!0}).reduce((a,[b,c])=>(c&&a.push(b),a),[]),i=h.indexOf(b),j=a.shiftKey?-1:1,k=i+j>h.length-1?0:i+j<0?h.length-1:i+j,m=h[k];return m&&g(m),"custom"===m?e(f[0]):"baseColors"===m&&(Object.entries(c).find(([a,b])=>Array.isArray(b)?b.includes(d):b===d?a:null)||e(F.e.black)),a.preventDefault(),a.stopPropagation(),!0}if((({e:a,colorObj:b,onChange:c,palette:d,customColors:e,setActiveColorPickerSection:f,activeShade:g})=>{if(b?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(a.code)&&a.shiftKey){let e=Number(a.code.slice(-1))-1;return c(d[b.colorName][e]),f("shades"),!0}if(["1","2","3","4","5"].includes(a.key)&&e[Number(a.key)-1])return c(e[Number(a.key)-1]),f("custom"),!0;if(dC.includes(a.key)){let b=dC.indexOf(a.key),e=Object.keys(d)[b],h=d[e];return c(Array.isArray(h)?h[g]:h),f("baseColors"),!0}return!1})({e:a,colorObj:l,onChange:e,palette:c,customColors:f,setActiveColorPickerSection:g,activeShade:i}))return!0;if("shades"===b&&l){let{shade:b}=l,d=dK(a.key,b,F.b);if(void 0!==d)return e(c[l.colorName][d]),!0}if("baseColors"===b&&l){let{colorName:b}=l,d=Object.keys(c),f=d.indexOf(b),g=dK(a.key,f,d.length);if(void 0!==g){let a=c[d[g]];return e(Array.isArray(a)?a[i]:a),!0}}if("custom"===b){let b=f.indexOf(d),c=dK(a.key,b,f.length);if(void 0!==c)return e(f[c]),!0}return!1})({event:c,activeColorPickerSection:m,palette:g,color:a,onChange:b,onEyeDropperToggle:j,customColors:l,setActiveColorPickerSection:n,updateData:h,activeShade:p,onEscape:k})&&(c.preventDefault(),c.stopPropagation())},className:"color-picker-content properties-content",tabIndex:-1,children:[!!l.length&&(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.mostUsedCustomColors")}),(0,e.jsx)(dJ,{colors:l,color:a,label:c8("colorPicker.mostUsedCustomColors"),onChange:b})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.colors")}),(0,e.jsx)(dI,{color:a,label:c,palette:g,onChange:b,activeShade:p})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.shades")}),(0,e.jsx)(dH,{hex:a,onChange:b,palette:g})]}),i]})})},dN=L.default.createContext(null),dO=a=>{let[b,c]=(0,L.useState)(null),d=kb(),{theme:e}=L.default.useContext(dN),{container:f}=kc();return(0,L.useLayoutEffect)(()=>{b&&(b.className="",b.classList.add("excalidraw",...a?.className?.split(/\s+/)||[]),b.classList.toggle("excalidraw--mobile",d.editor.isMobile),b.classList.toggle("theme--dark",e===F.G.DARK))},[b,e,d.editor.isMobile,a?.className]),(0,L.useLayoutEffect)(()=>{let b=a?.parentSelector?f?.querySelector(a.parentSelector):document.body;if(!b)return;let d=document.createElement("div");return b.appendChild(d),c(d),()=>{b.removeChild(d)}},[f,a?.parentSelector]),b};function dP(a,b,c){(0,L.useEffect)(()=>{function d(d){if(!a.current)return;let e=c?.(d,a.current);if(!0!==e){if(!1===e)return b(d);a.current.contains(d.target)||!document.documentElement.contains(d.target)||d.target.closest("[data-radix-portal]")||d.target===document.documentElement&&"none"===document.body.style.pointerEvents||d.target.closest("[data-prevent-outside-click]")||b(d)}}return document.addEventListener("pointerdown",d),document.addEventListener("touchstart",d),()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("touchstart",d)}},[a,b,c])}var dQ=a=>{let b=(0,L.useRef)(a);return Object.assign(b.current,a),b.current},dR=O(null),dS=({onCancel:a,onChange:b,onSelect:c,colorPickerType:d})=>{let f=dO({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),g=L.default.useContext(dN),h=kd(),i=j9(),j=dQ({app:i,onCancel:a,onChange:b,onSelect:c,selectedElements:(0,F.vk)(h,g)}),{container:k}=kc();(0,L.useEffect)(()=>{let a=l.current;if(!a||!i.canvas||!f)return;let b=!1,c=i.canvas.getContext("2d"),e=({clientX:a,clientY:b})=>{let d=c.getImageData((a-g.offsetLeft)*window.devicePixelRatio,(b-g.offsetTop)*window.devicePixelRatio,1,1).data;return(0,F.k)(d[0],d[1],d[2])},h=({clientX:c,clientY:f,altKey:g})=>{a.style.top=`${f+20}px`,a.style.left=`${c+20}px`;let h=e({clientX:c,clientY:f});b&&j.onChange(d,h,j.selectedElements,{altKey:g}),a.style.background=h},m=()=>{j.onCancel()},n=a=>{b=!0,a.stopImmediatePropagation()},o=a=>{var c;b=!1,k?.focus(),a.stopImmediatePropagation(),a.preventDefault(),c=e(a),j.onSelect(c,a)},p=a=>{a.key===F.hg.ESCAPE&&(a.preventDefault(),a.stopImmediatePropagation(),m())};return f.tabIndex=-1,f.focus(),h({clientX:j.app.lastViewportPosition.x,clientY:j.app.lastViewportPosition.y,altKey:!1}),f.addEventListener("keydown",p),f.addEventListener("pointerdown",n),f.addEventListener("pointerup",o),window.addEventListener("pointermove",h,{passive:!0}),window.addEventListener("blur",m),()=>{b=!1,f.removeEventListener("keydown",p),f.removeEventListener("pointerdown",n),f.removeEventListener("pointerup",o),window.removeEventListener("pointermove",h),window.removeEventListener("blur",m)}},[j,i.canvas,f,d,k,g.offsetLeft,g.offsetTop]);let l=(0,L.useRef)(null);return dP(l,()=>{a()},a=>!!a.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),f?(0,aw.createPortal)((0,e.jsx)("div",{ref:l,className:"excalidraw-eye-dropper-preview"}),f):null},dT=({color:a,onChange:b,label:c,colorPickerType:d})=>{let f=kb(),[g,h]=(0,L.useState)(a),[i,j]=cW(dE);(0,L.useEffect)(()=>{h(a)},[a]);let k=(0,L.useCallback)(a=>{let c=a.toLowerCase(),d=dX(c);d&&b(d),h(c)},[b]),l=(0,L.useRef)(null),m=(0,L.useRef)(null);(0,L.useEffect)(()=>{l.current&&l.current.focus()},[i]);let[n,o]=cW(dR);return(0,L.useEffect)(()=>()=>{o(null)},[o]),(0,e.jsxs)("div",{className:"color-picker__input-label",children:[(0,e.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,e.jsx)("input",{ref:"hex"===i?l:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":c,onChange:a=>{k(a.target.value)},value:(g||"").replace(/^#/,""),onBlur:()=>{h(a)},tabIndex:-1,onFocus:()=>j("hex"),onKeyDown:a=>{a.key!==F.hg.TAB&&(a.key===F.hg.ESCAPE&&m.current?.focus(),a.stopPropagation())}}),!f.editor.isMobile&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,e.jsx)("div",{ref:m,className:(0,av.default)("excalidraw-eye-dropper-trigger",{selected:n}),onClick:()=>o(a=>a?null:{keepOpenOnAlt:!1,onSelect:a=>b(a),colorPickerType:d}),title:`${c8("labels.eyeDropper")} \u2014 ${F.hg.I.toLocaleUpperCase()} or ${(0,F.kb)("Alt")} `,children:F.df})]})]})},dU=L.default.forwardRef(({children:a,padding:b,className:c,style:d},f)=>(0,e.jsx)("div",{className:(0,av.default)("Island",c),style:{"--padding":b,...d},ref:f,children:a})),dV=L.default.forwardRef(({className:a,container:b,children:c,style:d,onClose:f,onKeyDown:g,onFocusOutside:h,onPointerLeave:i,onPointerDownOutside:j},k)=>{let l=kb();return(0,e.jsx)(bE,{container:b,children:(0,e.jsxs)(bG,{ref:k,className:(0,av.default)("focus-visible-none",a),"data-prevent-outside-click":!0,side:l.editor.isMobile&&!l.viewport.isLandscape?"bottom":"right",align:l.editor.isMobile&&!l.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-popup)"},onPointerLeave:i,onKeyDown:g,onFocusOutside:h,onPointerDownOutside:j,onCloseAutoFocus:a=>{a.stopPropagation(),a.preventDefault(),b&&!(0,F.$a)(document.activeElement)&&b.focus(),f()},children:[(0,e.jsx)(dU,{padding:3,style:d,children:c}),(0,e.jsx)(bL,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})}),dW=a=>{let b=new Option().style;return b.color=a,!!b.color},dX=a=>(0,F.sb)(a)?a:dW(`#${a}`)?`#${a}`:dW(a)?a:null,dY=({type:a,color:b,onChange:c,label:d,elements:f,palette:g=F.e,updateData:h})=>{let{container:i}=kc(),[,j]=cW(dE),[k,l]=cW(dR),m=(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.hexCode")}),(0,e.jsx)(dT,{color:b,label:d,onChange:a=>{c(a)},colorPickerType:a})]}),n=(0,L.useRef)(null);return(0,e.jsx)(dV,{container:i,style:{maxWidth:"13rem"},onFocusOutside:a=>{n.current?.querySelector(".color-picker-content")?.focus(),a.preventDefault()},onPointerDownOutside:a=>{k&&a.preventDefault()},onClose:()=>{h({openPopup:null}),j(null)},children:g?(0,e.jsx)(dM,{palette:g,color:b,onChange:a=>{c(a)},onEyeDropperToggle:b=>{l(d=>b?((d=d||{keepOpenOnAlt:!0,onSelect:c,colorPickerType:a}).keepOpenOnAlt=!0,d):!1===b||d?null:{keepOpenOnAlt:!1,onSelect:c,colorPickerType:a})},onEscape:a=>{k?l(null):h({openPopup:null})},label:d,type:a,elements:f,updateData:h,children:m}):m})},dZ=({label:a,color:b,type:c})=>(0,e.jsx)(bA,{type:"button",className:(0,av.default)("color-picker__button active-color properties-trigger",{"is-transparent":"transparent"===b||!b}),"aria-label":a,style:b?{"--swatch-color":b}:void 0,title:"elementStroke"===c?c8("labels.showStroke"):c8("labels.showBackground"),children:(0,e.jsx)("div",{className:"color-picker__button-outline"})}),d$=({type:a,color:b,onChange:c,label:d,elements:f,palette:g=F.e,topPicks:h,updateData:i,appState:j})=>(0,e.jsx)("div",{children:(0,e.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,e.jsx)(dz,{activeColor:b,onChange:c,type:a,topPicks:h}),(0,e.jsx)(dA,{}),(0,e.jsxs)(bx,{open:j.openPopup===a,onOpenChange:b=>{i({openPopup:b?a:null})},children:[(0,e.jsx)(dZ,{color:b,label:d,type:a}),j.openPopup===a&&(0,e.jsx)(dY,{type:a,color:b,onChange:c,label:d,elements:f,palette:g,updateData:i})]})]})}),d_=({icon:a})=>(0,e.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:a}),d0=({label:a,open:b,openTrigger:c,children:d,className:f})=>(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{style:{cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center"},className:f,onClick:c,children:[a,(0,e.jsx)(d_,{icon:b?F.Mf:F.Lf})]}),b&&(0,e.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:d})]}),d1=O(!1);function d2({options:a,value:b,label:c,onChange:d,onClose:f,numberOfOptionsToAlwaysShow:g=a.length}){let h=kb(),[i,j]=cW(d1),k=L.default.useMemo(()=>a.slice(0,g),[a,g]),l=L.default.useMemo(()=>a.slice(g),[a,g]);(0,L.useEffect)(()=>{k.some(a=>a.value===b)||j(!0)},[b,k,j]);let m=a=>(0,e.jsx)("div",{className:"picker-content",children:a.map((a,c)=>(0,e.jsxs)("button",{type:"button",className:(0,av.default)("picker-option",{active:b===a.value}),onClick:b=>{d(a.value)},title:`${a.text} ${a.keyBinding&&`\u2014 ${a.keyBinding.toUpperCase()}`}`,"aria-label":a.text||"none","aria-keyshortcuts":a.keyBinding||void 0,ref:c=>{b===a.value&&setTimeout(()=>{c?.focus()},0)},children:[a.icon,a.keyBinding&&(0,e.jsx)("span",{className:"picker-keybinding",children:a.keyBinding})]},a.text))});return(0,e.jsx)(bG,{side:h.editor.isMobile&&!h.viewport.isLandscape?"top":"bottom",align:"start",sideOffset:12,style:{zIndex:"var(--zIndex-popup)"},onKeyDown:c=>{let e=a.find(a=>a.keyBinding===c.key.toLowerCase());if(!(c.metaKey||c.altKey||c.ctrlKey)&&e)d(e.value),c.preventDefault();else if(c.key===F.hg.TAB){let e=a.findIndex(a=>a.value===b),f=c.shiftKey?(a.length+e-1)%a.length:(e+1)%a.length;d(a[f].value)}else if((0,F.jg)(c.key)){let e=c4.rtl,f=a.findIndex(a=>a.value===b);if(-1!==f){let b=a.length,h=f;switch(c.key){case e?F.hg.ARROW_LEFT:F.hg.ARROW_RIGHT:h=(f+1)%b;break;case e?F.hg.ARROW_RIGHT:F.hg.ARROW_LEFT:h=(b+f-1)%b;break;case F.hg.ARROW_DOWN:h=(f+(g??1))%b;break;case F.hg.ARROW_UP:h=(b+f-(g??1))%b}d(a[h].value)}c.preventDefault()}else(c.key===F.hg.ESCAPE||c.key===F.hg.ENTER)&&(c.preventDefault(),f());c.nativeEvent.stopImmediatePropagation(),c.stopPropagation()},children:(0,e.jsxs)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":c,children:[m(k),l.length>0&&(0,e.jsx)(d0,{label:c8("labels.more_options"),open:i,openTrigger:()=>{j(a=>!a)},className:"picker-collapsible",children:m(l)})]})})}function d3({value:a,label:b,options:c,onChange:d,group:f="",numberOfOptionsToAlwaysShow:g}){let[h,i]=L.default.useState(!1),j=L.default.useRef(null);return(0,e.jsx)("div",{children:(0,e.jsxs)(bx,{open:h,onOpenChange:a=>i(a),children:[(0,e.jsx)(bA,{name:f,type:"button","aria-label":b,onClick:()=>i(!h),ref:j,className:h?"active":"",children:c.find(b=>b.value===a)?.icon}),h&&(0,e.jsx)(d2,{options:c,value:a,label:b,onChange:d,onClose:()=>{i(!1)},numberOfOptionsToAlwaysShow:g})]})})}var d4=L.default.forwardRef(({className:a,placeholder:b,onChange:c},d)=>(0,e.jsxs)("div",{className:(0,av.default)("QuickSearch__wrapper",a),children:[F.pf,(0,e.jsx)("input",{ref:d,className:"QuickSearch__input",type:"text",placeholder:b,onChange:a=>c(a.target.value.trim().toLowerCase())})]})),d5=({className:a,placeholder:b,children:c})=>{let d=!L.Children.count(c);return(0,e.jsx)("div",{className:(0,av.default)("ScrollableList__wrapper",a),role:"menu",children:d?(0,e.jsx)("div",{className:"empty",children:b}):c})},d6=({children:a,className:b="",style:c,title:d})=>(0,e.jsxs)("div",{className:`dropdown-menu-group ${b}`,style:c,children:[d&&(0,e.jsx)("p",{className:"dropdown-menu-group-title",children:d}),a]});d6.displayName="DropdownMenuGroup";var d7=L.default.createContext({}),d8=(a="",b=!1,c=!1)=>`dropdown-menu-item dropdown-menu-item-base ${a}
1
+ module.exports=[373116,(a,b,c)=>{var d;b.exports=d={},d.simpleFilter=function(a,b){return b.filter(function(b){return d.test(a,b)})},d.test=function(a,b){return null!==d.match(a,b)},d.match=function(a,b,c){c=c||{};var d,e=0,f=[],g=b.length,h=0,i=0,j=c.pre||"",k=c.post||"",l=c.caseSensitive&&b||b.toLowerCase();a=c.caseSensitive&&a||a.toLowerCase();for(var m=0;m<g;m++)d=b[m],l[m]===a[e]?(d=j+d+k,e+=1,i+=1+i):i=0,h+=i,f[f.length]=d;return e===a.length?(h=l===a?1/0:h,{rendered:f.join(""),score:h}):null},d.filter=function(a,b,c){return b&&0!==b.length?"string"!=typeof a?b:(c=c||{},b.reduce(function(b,e,f,g){var h=e;c.extract&&(h=c.extract(e));var i=d.match(a,h,c);return null!=i&&(b[b.length]={string:i.rendered,score:i.score,index:f,original:e}),b},[]).sort(function(a,b){var c=b.score-a.score;return c||a.index-b.index})):[]}},739639,(a,b,c)=>{var d=0/0,e=/^\s+|\s+$/g,f=/^[-+]0x[0-9a-f]+$/i,g=/^0b[01]+$/i,h=/^0o[0-7]+$/i,i=parseInt,j=a.g&&a.g.Object===Object&&a.g,k="object"==typeof self&&self&&self.Object===Object&&self,l=j||k||Function("return this")(),m=Object.prototype.toString,n=Math.max,o=Math.min,p=function(){return l.Date.now()};function q(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function r(a){if("number"==typeof a)return a;if("symbol"==typeof(b=a)||b&&"object"==typeof b&&"[object Symbol]"==m.call(b))return d;if(q(a)){var b,c="function"==typeof a.valueOf?a.valueOf():a;a=q(c)?c+"":c}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(e,"");var j=g.test(a);return j||h.test(a)?i(a.slice(2),j?2:8):f.test(a)?d:+a}b.exports=function(a,b,c){var d,e,f,g,h,i,j=0,k=!1,l=!1,m=!0;if("function"!=typeof a)throw TypeError("Expected a function");function s(b){var c=d,f=e;return d=e=void 0,j=b,g=a.apply(f,c)}function t(a){var c=a-i,d=a-j;return void 0===i||c>=b||c<0||l&&d>=f}function u(){var a,c,d,e=p();if(t(e))return v(e);h=setTimeout(u,(a=e-i,c=e-j,d=b-a,l?o(d,f-c):d))}function v(a){return(h=void 0,m&&d)?s(a):(d=e=void 0,g)}function w(){var a,c=p(),f=t(c);if(d=arguments,e=this,i=c,f){if(void 0===h)return j=a=i,h=setTimeout(u,b),k?s(a):g;if(l)return h=setTimeout(u,b),s(i)}return void 0===h&&(h=setTimeout(u,b)),g}return b=r(b)||0,q(c)&&(k=!!c.leading,f=(l="maxWait"in c)?n(r(c.maxWait)||0,b):f,m="trailing"in c?!!c.trailing:m),w.cancel=function(){void 0!==h&&clearTimeout(h),j=0,d=i=e=h=void 0},w.flush=function(){return void 0===h?g:v(p())},w}},973220,a=>{"use strict";let b,c;var d,e=a.i(674164),f=a.i(739159),g=a.i(410672),h=a.i(237407),i=a.i(235549),j=a.i(715190),k=a.i(827647),l=a.i(463788),m=a.i(333481),n=a.i(710149),o=a.i(699570),p=a.i(866718),q=a.i(591119),r=a.i(301148),s=a.i(681204),t=a.i(335732),u=a.i(713033);function v({className:a}){let b=(0,u.useViewWidthStore)(a=>a.width),c=(0,u.useViewWidthStore)(a=>a.setWidth),d=(0,u.useViewWidthStore)(a=>a.align),f=(0,u.useViewWidthStore)(a=>a.setAlign);return(0,e.jsxs)(t.DropdownMenu,{children:[(0,e.jsx)(t.DropdownMenuTrigger,{asChild:!0,children:(0,e.jsx)(o.Button,{size:"sm",variant:"ghost",className:`h-7 w-7 p-0 ${a??""}`,title:`Content width: ${u.VIEW_WIDTH_LABEL[b]}`,children:(0,e.jsx)(s.AlignJustify,{className:"h-3.5 w-3.5"})})}),(0,e.jsxs)(t.DropdownMenuContent,{align:"end",className:"w-36",children:[(0,e.jsx)(t.DropdownMenuLabel,{className:"text-[11px] text-muted-foreground",children:"Width"}),u.VIEW_WIDTH_ORDER.map(a=>(0,e.jsxs)(t.DropdownMenuItem,{onClick:()=>c(a),className:"flex items-center justify-between text-xs",children:[u.VIEW_WIDTH_LABEL[a],a===b&&(0,e.jsx)(l.Check,{className:"h-3.5 w-3.5"})]},a)),(0,e.jsx)(t.DropdownMenuSeparator,{}),(0,e.jsx)(t.DropdownMenuLabel,{className:"text-[11px] text-muted-foreground",children:"Alignment"}),u.VIEW_ALIGN_ORDER.map(a=>(0,e.jsxs)(t.DropdownMenuItem,{onClick:()=>f(a),className:"flex items-center justify-between text-xs",children:[u.VIEW_ALIGN_LABEL[a],a===d&&(0,e.jsx)(l.Check,{className:"h-3.5 w-3.5"})]},a))]})]})}var w=a.i(796873),x=a.i(453590),y=a.i(111939);function z({className:a}){let{resolvedTheme:b,setTheme:c}=(0,y.useTheme)();return(0,e.jsx)(o.Button,{size:"sm",variant:"ghost",className:`h-7 w-7 p-0 ${a??""}`,title:"dark"===b?"Switch to light":"Switch to dark",onClick:()=>c("dark"===b?"light":"dark"),children:"dark"===b?(0,e.jsx)(x.Sun,{className:"h-3.5 w-3.5"}):(0,e.jsx)(w.Moon,{className:"h-3.5 w-3.5"})})}var A=a.i(765021),B=a.i(360878),C=a.i(211789),D=a.i(175853),E=a.i(393282),F=a.i(756763),G=a.i(66623),G=G,H=a.i(996578),I=a.i(613646),J=a.i(421999),K=a.i(119349),L=m;let M={get url(){return`file://${a.P("node_modules/.pnpm/jotai@2.11.0_@types+react@19.2.14_react@19.2.5/node_modules/jotai/esm/vanilla.mjs")}`}},N=0;function O(a,b){let c=`atom${++N}`,d={toString(){return(M.env?M.env.MODE:void 0)!=="production"&&this.debugLabel?c+":"+this.debugLabel:c}};return"function"==typeof a?d.read=a:(d.init=a,d.read=P,d.write=Q),b&&(d.write=b),d}function P(a){return a(this)}function Q(a,b,c){return b(this,"function"==typeof c?c(a(this)):c)}let R=(a,b)=>a.unstable_is?a.unstable_is(b):b===a,S=a=>"init"in a,T=new WeakMap,U=a=>{var b;return V(a)&&!(null==(b=T.get(a))?void 0:b[1])},V=a=>"function"==typeof(null==a?void 0:a.then),W=a=>"v"in a||"e"in a,X=a=>{if("e"in a)throw a.e;if((M.env?M.env.MODE:void 0)!=="production"&&!("v"in a))throw Error("[Bug] atom state is not initialized");return a.v},Y=(a,b,c)=>{c.p.has(a)||(c.p.add(a),b.then(()=>{c.p.delete(a)},()=>{c.p.delete(a)}))},Z=(a,b,c,d,e)=>{var f;if((M.env?M.env.MODE:void 0)!=="production"&&d===b)throw Error("[Bug] atom cannot depend on itself");c.d.set(d,e.n),U(c.v)&&Y(b,c.v,e),null==(f=e.m)||f.t.add(b),a&&ab(a,d,b)},$=()=>({D:new Map,H:new Set,M:new Set,L:new Set}),_=(a,b,c)=>{a[b].add(c)},aa=(a,b,c)=>{a.D.has(b)||(a.D.set(b,new Set),_(a,"M",()=>{var b;null==(b=c.m)||b.l.forEach(b=>_(a,"M",b))}))},ab=(a,b,c)=>{let d=a.D.get(b);d&&d.add(c)},ac=a=>{let b,c=!1,d=a=>{try{a()}catch(a){c||(b=a,c=!0)}};for(;a.H.size||a.M.size||a.L.size;)a.D.clear(),a.H.forEach(d),a.H.clear(),a.M.forEach(d),a.M.clear(),a.L.forEach(d),a.L.clear();if(c)throw b},ad=(...[a,b,c,d])=>{let e=(b,c,d)=>{let e="v"in c,f=c.v,g=U(c.v)?c.v:null;if(V(d)){for(let e of((a=>{if(T.has(a))return;let b=[new Set,!1];T.set(a,b);let c=()=>{b[1]=!0};a.then(c,c),a.onCancel=a=>{b[0].add(a)}})(d),c.d.keys()))Y(b,d,a(e));c.v=d}else c.v=d;delete c.e,delete c.x,e&&Object.is(f,c.v)||(++c.n,g&&((a,b)=>{let c=T.get(a);if(c)c[1]=!0,c[0].forEach(a=>a(b));else if((M.env?M.env.MODE:void 0)!=="production")throw Error("[Bug] cancelable promise not found")})(g,d))},f=(c,d)=>{var g;let h,k,l=a(d);if(W(l)&&(l.m&&!l.x||Array.from(l.d).every(([a,b])=>f(c,a).n===b)))return l;l.d.clear();let m=!0;try{let n=b(d,b=>{if(R(d,b)){let c=a(b);if(!W(c))if(S(b))e(b,c,b.init);else throw Error("no atom init");return X(c)}let g=f(c,b);try{return X(g)}finally{if(m)Z(c,d,l,b,g);else{let a=$();Z(a,d,l,b,g),j(a,d,l),ac(a)}}},{get signal(){return h||(h=new AbortController),h.signal},get setSelf(){return(M.env?M.env.MODE:void 0)==="production"||d.write||console.warn("setSelf function cannot be used with read-only atom"),!k&&d.write&&(k=(...a)=>{if((M.env?M.env.MODE:void 0)!=="production"&&m&&console.warn("setSelf function cannot be called in sync"),!m)return i(d,...a)}),k}});if(e(d,l,n),V(n)){null==(g=n.onCancel)||g.call(n,()=>null==h?void 0:h.abort());let a=()=>{if(l.m){let a=$();j(a,d,l),ac(a)}};n.then(a,a)}return l}catch(a){return delete l.v,l.e=a,delete l.x,++l.n,l}finally{m=!1}},g=(b,c,d)=>{var e,f;let g=new Map;for(let b of(null==(e=d.m)?void 0:e.t)||[]){let c=a(b);c.m&&g.set(b,c)}for(let b of d.p)g.set(b,a(b));return null==(f=b.D.get(c))||f.forEach(b=>{g.set(b,a(b))}),g},h=(b,d,...i)=>{let k=!0;try{return c(d,a=>X(f(b,a)),(c,...i)=>{let l=a(c);try{if(!R(d,c))return h(b,c,...i);{if(!S(c))throw Error("atom not writable");let a=l.n,d=i[0];e(c,l,d),j(b,c,l),a!==l.n&&(aa(b,c,l),((a,b,c)=>{let d=[],e=new Set,h=new Set,i=[[b,c]];for(;i.length>0;){let[b,c]=i[i.length-1];if(h.has(b)){i.pop();continue}if(e.has(b)){d.push([b,c,c.n]),h.add(b),c.x=!0,i.pop();continue}for(let[d,f]of(e.add(b),g(a,b,c)))b===d||e.has(d)||i.push([d,f])}_(a,"H",()=>{let c=new Set([b]);for(let b=d.length-1;b>=0;--b){let[e,g,h]=d[b],i=!1;for(let a of g.d.keys())if(a!==e&&c.has(a)){i=!0;break}i&&(f(a,e),j(a,e,g),h!==g.n&&(aa(a,e,g),c.add(e))),delete g.x}})})(b,c,l));return}}finally{k||ac(b)}},...i)}finally{k=!1}},i=(a,...b)=>{let c=$();try{return h(c,a,...b)}finally{ac(c)}},j=(b,c,d)=>{if(d.m&&!U(d.v)){for(let e of d.d.keys())d.m.d.has(e)||(k(b,e,a(e)).t.add(c),d.m.d.add(e));for(let e of d.m.d||[])if(!d.d.has(e)){d.m.d.delete(e);let f=l(b,e,a(e));null==f||f.t.delete(c)}}},k=(b,c,e)=>{if(!e.m){for(let d of(f(b,c),e.d.keys()))k(b,d,a(d)).t.add(c);if(e.m={l:new Set,d:new Set(e.d.keys()),t:new Set},c.write){let a,f=e.m,g=(b,d)=>{let e=!0;a=(...a)=>{try{return h(b,c,...a)}finally{e||ac(b)}};try{return d()}finally{e=!1}};_(b,"L",()=>{let e=g(b,()=>d(c,(...b)=>a(...b)));e&&(f.u=a=>g(a,e))})}}return e.m},l=(b,c,d)=>{if(d.m&&!d.m.l.size&&!Array.from(d.m.t).some(b=>{var d;return null==(d=a(b).m)?void 0:d.d.has(c)})){let e=d.m.u;for(let f of(e&&_(b,"L",()=>e(b)),delete d.m,d.d.keys())){let d=l(b,f,a(f));null==d||d.t.delete(c)}return}return d.m};return{get:a=>X(f(void 0,a)),set:i,sub:(b,c)=>{let d=$(),e=a(b),f=k(d,b,e).l;return f.add(c),ac(d),()=>{f.delete(c);let a=$();l(a,b,e),ac(a)}},unstable_derive:e=>ad(...e(a,b,c,d))}},ae=()=>{let a=new WeakMap,b=ad(b=>{if((M.env?M.env.MODE:void 0)!=="production"&&!b)throw Error("Atom is undefined or null");let c=a.get(b);return c||(c={d:new Map,p:new Set,n:0},a.set(b,c)),c},(a,...b)=>a.read(...b),(a,...b)=>a.write(...b),(a,...b)=>{var c;return null==(c=a.onMount)?void 0:c.call(a,...b)});if((M.env?M.env.MODE:void 0)!=="production"){let a,c,d,e,f,g;return c=new WeakMap,d=new Set,e=0,g=(f=b.unstable_derive((b,f,g,h)=>(a=b,[a=>{let e=c.get(a);return e||(e=new Proxy(b(a),{set:(b,c,e)=>("m"===c&&d.add(a),Reflect.set(b,c,e)),deleteProperty:(b,c)=>("m"===c&&d.delete(a),Reflect.deleteProperty(b,c))}),c.set(a,e)),e},f,(a,b,c,...d)=>e?c(a,...d):g(a,b,c,...d),h]))).set,Object.assign(f,{dev4_get_internal_weak_map:()=>({get:b=>{let c=a(b);if(0!==c.n)return c}}),dev4_get_mounted_atoms:()=>d,dev4_restore_atoms:a=>{g({read:()=>null,write:(b,c)=>{++e;try{for(let[b,d]of a)S(b)&&c(b,d)}finally{--e}}})}})}return b},af={get url(){return`file://${a.P("node_modules/.pnpm/jotai@2.11.0_@types+react@19.2.14_react@19.2.5/node_modules/jotai/esm/react.mjs")}`}},ag=(0,m.createContext)(void 0),ah=a=>{let c=(0,m.useContext)(ag);return(null==a?void 0:a.store)||c||(b||(b=ae(),(M.env?M.env.MODE:void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=b),globalThis.__JOTAI_DEFAULT_STORE__!==b&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),b)},ai=a=>"function"==typeof(null==a?void 0:a.then),aj=a=>{a.status="pending",a.then(b=>{a.status="fulfilled",a.value=b},b=>{a.status="rejected",a.reason=b})},ak=m.default.use||(a=>{if("pending"===a.status)throw a;if("fulfilled"===a.status)return a.value;if("rejected"===a.status)throw a.reason;throw aj(a),a}),al=new WeakMap,am=a=>{let b=al.get(a);return b||(b=new Promise((c,d)=>{let e=a,f=a=>b=>{e===a&&c(b)},g=a=>b=>{e===a&&d(b)},h=a=>{"onCancel"in a&&"function"==typeof a.onCancel&&a.onCancel(d=>{if((af.env?af.env.MODE:void 0)!=="production"&&d===a)throw Error("[Bug] p is not updated even after cancelation");ai(d)?(al.set(d,b),e=d,d.then(f(d),g(d)),h(d)):c(d)})};a.then(f(a),g(a)),h(a)}),al.set(a,b)),b};function an(a,b){let c=ah(b),[[d,e,f],g]=(0,m.useReducer)(b=>{let d=c.get(a);return Object.is(b[0],d)&&b[1]===c&&b[2]===a?b:[d,c,a]},void 0,()=>[c.get(a),c,a]),h=d;(e!==c||f!==a)&&(g(),h=c.get(a));let i=null==b?void 0:b.delay;return((0,m.useEffect)(()=>{let b=c.sub(a,()=>{if("number"==typeof i){let b=c.get(a);ai(b)&&aj(am(b)),setTimeout(g,i);return}g()});return g(),b},[c,a,i]),(0,m.useDebugValue)(h),ai(h))?ak(am(h)):h}function ao(a,b){let c=ah(b);return(0,m.useCallback)((...b)=>{if((af.env?af.env.MODE:void 0)!=="production"&&!("write"in a))throw Error("not writable atom");return c.set(a,...b)},[c,a])}let ap={get url(){return`file://${a.P("node_modules/.pnpm/jotai@2.11.0_@types+react@19.2.14_react@19.2.5/node_modules/jotai/esm/vanilla/utils.mjs")}`}};Symbol((ap.env?ap.env.MODE:void 0)!=="production"?"RESET":""),!function(a=()=>{try{return window.localStorage}catch(a){ap.env&&ap.env.MODE;return}}){var b;let c,d;try{c=null==(b=a())?void 0:b.subscribe}catch(a){}c&&(d=c,(a,b,c)=>d(a,a=>{let d;try{d=JSON.parse(a||"")}catch(a){d=c}b(d)}))}();let aq=new WeakMap;function ar(){return(ar=Object.assign.bind()).apply(this,arguments)}function as(){let a=(0,m.createContext)(null),b=b=>{let c=(0,m.useContext)(a);if(!c)throw Error("Missing Provider from createIsolation");return ah(ar({store:c},b))};return{Provider:function({store:b,initialValues:c=[],children:d}){let f,g=(0,m.useRef)(b);g.current||(g.current=ae());var h,i={store:g.current};let j=ah(i),k=(h=j,(f=aq.get(h))||(f=new WeakSet,aq.set(h,f)),f);for(let[a,b]of c)(!k.has(a)||(null==i?void 0:i.dangerouslyForceHydrate))&&(k.add(a),j.set(a,b));return(0,e.jsx)(a.Provider,{value:g.current,children:d})},useStore:b,useAtom:(a,c)=>{var d;let e=b();return[an(a,d=ar({store:e},c)),ao(a,d)]},useAtomValue:(a,c)=>{let d=b();return an(a,ar({store:d},c))},useSetAtom:(a,c)=>{let d=b();return ao(a,ar({store:d},c))}}}let{read:at,write:au}=O(null);(0,m.createContext)({scope:void 0,baseStore:void 0});var av=a.i(575828),aw=a.i(567373),ax=a.i(26463),ay=a.i(169731);function az(a,b,{checkForDefaultPrevented:c=!0}={}){return function(d){if(a?.(d),!1===c||!d.defaultPrevented)return b?.(d)}}function aA(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function aB(...a){return b=>{let c=!1,d=a.map(a=>{let d=aA(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():aA(a[b],null)}}}}function aC(...a){return m.useCallback(aB(...a),a)}function aD(a,b=[]){let c=[],d=()=>{let b=c.map(a=>m.createContext(a));return function(c){let d=c?.[a]||b;return m.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let f=m.createContext(d),g=c.length;c=[...c,d];let h=b=>{let{scope:c,children:d,...h}=b,i=c?.[a]?.[g]||f,j=m.useMemo(()=>h,Object.values(h));return(0,e.jsx)(i.Provider,{value:j,children:d})};return h.displayName=b+"Provider",[h,function(c,e){let h=e?.[a]?.[g]||f,i=m.useContext(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return m.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}var aE=m.forwardRef((a,b)=>{let{children:c,...d}=a,f=m.Children.toArray(c),g=f.find(aH);if(g){let a=g.props.children,c=f.map(b=>b!==g?b:m.Children.count(a)>1?m.Children.only(null):m.isValidElement(a)?a.props.children:null);return(0,e.jsx)(aF,{...d,ref:b,children:m.isValidElement(a)?m.cloneElement(a,void 0,c):null})}return(0,e.jsx)(aF,{...d,ref:b,children:c})});aE.displayName="Slot";var aF=m.forwardRef((a,b)=>{let{children:c,...d}=a;if(m.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{f(...a),e(...a)}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==m.Fragment&&(h.ref=b?aB(b,g):g),m.cloneElement(c,h)}return m.Children.count(c)>1?m.Children.only(null):null});aF.displayName="SlotClone";var aG=({children:a})=>(0,e.jsx)(e.Fragment,{children:a});function aH(a){return m.isValidElement(a)&&a.type===aG}var aI=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((a,b)=>{let c=m.forwardRef((a,c)=>{let{asChild:d,...f}=a,g=d?aE:b;return(0,e.jsx)(g,{...f,ref:c})});return c.displayName=`Primitive.${b}`,{...a,[b]:c}},{});function aJ(a){let b=m.useRef(a);return m.useEffect(()=>{b.current=a}),m.useMemo(()=>(...a)=>b.current?.(...a),[])}var aK="dismissableLayer.update",aL=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),aM=m.forwardRef((a,b)=>{let{disableOutsidePointerEvents:c=!1,onEscapeKeyDown:f,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:i,onDismiss:j,...k}=a,l=m.useContext(aL),[n,o]=m.useState(null),p=n?.ownerDocument??globalThis?.document,[,q]=m.useState({}),r=aC(b,a=>o(a)),s=Array.from(l.layers),[t]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),u=s.indexOf(t),v=n?s.indexOf(n):-1,w=l.layersWithOutsidePointerEventsDisabled.size>0,x=v>=u,y=function(a,b=globalThis?.document){let c=aJ(a),d=m.useRef(!1),e=m.useRef(()=>{});return m.useEffect(()=>{let a=a=>{if(a.target&&!d.current){let d=function(){aO("dismissableLayer.pointerDownOutside",c,f,{discrete:!0})},f={originalEvent:a};"touch"===a.pointerType?(b.removeEventListener("click",e.current),e.current=d,b.addEventListener("click",e.current,{once:!0})):d()}else b.removeEventListener("click",e.current);d.current=!1},f=window.setTimeout(()=>{b.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(f),b.removeEventListener("pointerdown",a),b.removeEventListener("click",e.current)}},[b,c]),{onPointerDownCapture:()=>d.current=!0}}(a=>{let b=a.target,c=[...l.branches].some(a=>a.contains(b));x&&!c&&(g?.(a),i?.(a),a.defaultPrevented||j?.())},p),z=function(a,b=globalThis?.document){let c=aJ(a),d=m.useRef(!1);return m.useEffect(()=>{let a=a=>{a.target&&!d.current&&aO("dismissableLayer.focusOutside",c,{originalEvent:a},{discrete:!1})};return b.addEventListener("focusin",a),()=>b.removeEventListener("focusin",a)},[b,c]),{onFocusCapture:()=>d.current=!0,onBlurCapture:()=>d.current=!1}}(a=>{let b=a.target;![...l.branches].some(a=>a.contains(b))&&(h?.(a),i?.(a),a.defaultPrevented||j?.())},p);return!function(a,b=globalThis?.document){let c=aJ(a);m.useEffect(()=>{let a=a=>{"Escape"===a.key&&c(a)};return b.addEventListener("keydown",a,{capture:!0}),()=>b.removeEventListener("keydown",a,{capture:!0})},[c,b])}(a=>{v===l.layers.size-1&&(f?.(a),!a.defaultPrevented&&j&&(a.preventDefault(),j()))},p),m.useEffect(()=>{if(n)return c&&(0===l.layersWithOutsidePointerEventsDisabled.size&&(d=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(n)),l.layers.add(n),aN(),()=>{c&&1===l.layersWithOutsidePointerEventsDisabled.size&&(p.body.style.pointerEvents=d)}},[n,p,c,l]),m.useEffect(()=>()=>{n&&(l.layers.delete(n),l.layersWithOutsidePointerEventsDisabled.delete(n),aN())},[n,l]),m.useEffect(()=>{let a=()=>q({});return document.addEventListener(aK,a),()=>document.removeEventListener(aK,a)},[]),(0,e.jsx)(aI.div,{...k,ref:r,style:{pointerEvents:w?x?"auto":"none":void 0,...a.style},onFocusCapture:az(a.onFocusCapture,z.onFocusCapture),onBlurCapture:az(a.onBlurCapture,z.onBlurCapture),onPointerDownCapture:az(a.onPointerDownCapture,y.onPointerDownCapture)})});function aN(){let a=new CustomEvent(aK);document.dispatchEvent(a)}function aO(a,b,c,{discrete:d}){let e=c.originalEvent.target,f=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:c});if(b&&e.addEventListener(a,b,{once:!0}),d)e&&aw.flushSync(()=>e.dispatchEvent(f));else e.dispatchEvent(f)}aM.displayName="DismissableLayer",m.forwardRef((a,b)=>{let c=m.useContext(aL),d=m.useRef(null),f=aC(b,d);return m.useEffect(()=>{let a=d.current;if(a)return c.branches.add(a),()=>{c.branches.delete(a)}},[c.branches]),(0,e.jsx)(aI.div,{...a,ref:f})}).displayName="DismissableLayerBranch";var aP=0;function aQ(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var aR="focusScope.autoFocusOnMount",aS="focusScope.autoFocusOnUnmount",aT={bubbles:!1,cancelable:!0},aU=m.forwardRef((a,b)=>{let{loop:c=!1,trapped:d=!1,onMountAutoFocus:f,onUnmountAutoFocus:g,...h}=a,[i,j]=m.useState(null),k=aJ(f),l=aJ(g),n=m.useRef(null),o=aC(b,a=>j(a)),p=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(d){let a=function(a){if(p.paused||!i)return;let b=a.target;i.contains(b)?n.current=b:aX(n.current,{select:!0})},b=function(a){if(p.paused||!i)return;let b=a.relatedTarget;null!==b&&(i.contains(b)||aX(n.current,{select:!0}))};document.addEventListener("focusin",a),document.addEventListener("focusout",b);let c=new MutationObserver(function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&aX(i)});return i&&c.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),c.disconnect()}}},[d,i,p.paused]),m.useEffect(()=>{if(i){aY.add(p);let a=document.activeElement;if(!i.contains(a)){let b=new CustomEvent(aR,aT);i.addEventListener(aR,k),i.dispatchEvent(b),b.defaultPrevented||(function(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(aX(d,{select:b}),document.activeElement!==c)return}(aV(i).filter(a=>"A"!==a.tagName),{select:!0}),document.activeElement===a&&aX(i))}return()=>{i.removeEventListener(aR,k),setTimeout(()=>{let b=new CustomEvent(aS,aT);i.addEventListener(aS,l),i.dispatchEvent(b),b.defaultPrevented||aX(a??document.body,{select:!0}),i.removeEventListener(aS,l),aY.remove(p)},0)}}},[i,k,l,p]);let q=m.useCallback(a=>{if(!c&&!d||p.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){var f;let b,d=a.currentTarget,[g,h]=[aW(b=aV(f=d),f),aW(b.reverse(),f)];g&&h?a.shiftKey||e!==h?a.shiftKey&&e===g&&(a.preventDefault(),c&&aX(h,{select:!0})):(a.preventDefault(),c&&aX(g,{select:!0})):e===d&&a.preventDefault()}},[c,d,p.paused]);return(0,e.jsx)(aI.div,{tabIndex:-1,...h,ref:o,onKeyDown:q})});function aV(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;c.nextNode();)b.push(c.currentNode);return b}function aW(a,b){for(let c of a)if(!function(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}(c,{upTo:b}))return c}function aX(a,{select:b=!1}={}){if(a&&a.focus){var c;let d=document.activeElement;a.focus({preventScroll:!0}),a!==d&&(c=a)instanceof HTMLInputElement&&"select"in c&&b&&a.select()}}aU.displayName="FocusScope";var aY=(c=[],{add(a){let b=c[0];a!==b&&b?.pause(),(c=aZ(c,a)).unshift(a)},remove(a){c=aZ(c,a),c[0]?.resume()}});function aZ(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}var a$=globalThis?.document?m.useLayoutEffect:()=>{},a_=m["useId".toString()]||(()=>void 0),a0=0,a1=a.i(983393),a2=a.i(916842),a3=m.forwardRef((a,b)=>{let{children:c,width:d=10,height:f=5,...g}=a;return(0,e.jsx)(aI.svg,{...g,ref:b,width:d,height:f,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:a.asChild?c:(0,e.jsx)("polygon",{points:"0,0 30,0 15,10"})})});a3.displayName="Arrow";var a4="Popper",[a5,a6]=aD(a4),[a7,a8]=a5(a4),a9=a=>{let{__scopePopper:b,children:c}=a,[d,f]=m.useState(null);return(0,e.jsx)(a7,{scope:b,anchor:d,onAnchorChange:f,children:c})};a9.displayName=a4;var ba="PopperAnchor",bb=m.forwardRef((a,b)=>{let{__scopePopper:c,virtualRef:d,...f}=a,g=a8(ba,c),h=m.useRef(null),i=aC(b,h);return m.useEffect(()=>{g.onAnchorChange(d?.current||h.current)}),d?null:(0,e.jsx)(aI.div,{...f,ref:i})});bb.displayName=ba;var bc="PopperContent",[bd,be]=a5(bc),bf=m.forwardRef((a,b)=>{let{__scopePopper:c,side:d="bottom",sideOffset:f=0,align:g="center",alignOffset:h=0,arrowPadding:i=0,avoidCollisions:j=!0,collisionBoundary:k=[],collisionPadding:l=0,sticky:n="partial",hideWhenDetached:o=!1,updatePositionStrategy:p="optimized",onPlaced:q,...r}=a,s=a8(bc,c),[t,u]=m.useState(null),v=aC(b,a=>u(a)),[w,x]=m.useState(null),y=function(a){let[b,c]=m.useState(void 0);return a$(()=>{if(a){c({width:a.offsetWidth,height:a.offsetHeight});let b=new ResizeObserver(b=>{let d,e;if(!Array.isArray(b)||!b.length)return;let f=b[0];if("borderBoxSize"in f){let a=f.borderBoxSize,b=Array.isArray(a)?a[0]:a;d=b.inlineSize,e=b.blockSize}else d=a.offsetWidth,e=a.offsetHeight;c({width:d,height:e})});return b.observe(a,{box:"border-box"}),()=>b.unobserve(a)}c(void 0)},[a]),b}(w),z=y?.width??0,A=y?.height??0,B="number"==typeof l?l:{top:0,right:0,bottom:0,left:0,...l},C=Array.isArray(k)?k:[k],D=C.length>0,E={padding:B,boundary:C.filter(bj),altBoundary:D},{refs:F,floatingStyles:G,placement:H,isPositioned:I,middlewareData:J}=(0,a1.useFloating)({strategy:"fixed",placement:d+("center"!==g?"-"+g:""),whileElementsMounted:(...a)=>(0,a2.autoUpdate)(...a,{animationFrame:"always"===p}),elements:{reference:s.anchor},middleware:[(0,a1.offset)({mainAxis:f+A,alignmentAxis:h}),j&&(0,a1.shift)({mainAxis:!0,crossAxis:!1,limiter:"partial"===n?(0,a1.limitShift)():void 0,...E}),j&&(0,a1.flip)({...E}),(0,a1.size)({...E,apply:({elements:a,rects:b,availableWidth:c,availableHeight:d})=>{let{width:e,height:f}=b.reference,g=a.floating.style;g.setProperty("--radix-popper-available-width",`${c}px`),g.setProperty("--radix-popper-available-height",`${d}px`),g.setProperty("--radix-popper-anchor-width",`${e}px`),g.setProperty("--radix-popper-anchor-height",`${f}px`)}}),w&&(0,a1.arrow)({element:w,padding:i}),bk({arrowWidth:z,arrowHeight:A}),o&&(0,a1.hide)({strategy:"referenceHidden",...E})]}),[K,L]=bl(H),M=aJ(q);a$(()=>{I&&M?.()},[I,M]);let N=J.arrow?.x,O=J.arrow?.y,P=J.arrow?.centerOffset!==0,[Q,R]=m.useState();return a$(()=>{t&&R(window.getComputedStyle(t).zIndex)},[t]),(0,e.jsx)("div",{ref:F.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:I?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Q,"--radix-popper-transform-origin":[J.transformOrigin?.x,J.transformOrigin?.y].join(" "),...J.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:a.dir,children:(0,e.jsx)(bd,{scope:c,placedSide:K,onArrowChange:x,arrowX:N,arrowY:O,shouldHideArrow:P,children:(0,e.jsx)(aI.div,{"data-side":K,"data-align":L,...r,ref:v,style:{...r.style,animation:I?void 0:"none"}})})})});bf.displayName=bc;var bg="PopperArrow",bh={top:"bottom",right:"left",bottom:"top",left:"right"},bi=m.forwardRef(function(a,b){let{__scopePopper:c,...d}=a,f=be(bg,c),g=bh[f.placedSide];return(0,e.jsx)("span",{ref:f.onArrowChange,style:{position:"absolute",left:f.arrowX,top:f.arrowY,[g]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[f.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[f.placedSide],visibility:f.shouldHideArrow?"hidden":void 0},children:(0,e.jsx)(a3,{...d,ref:b,style:{...d.style,display:"block"}})})});function bj(a){return null!==a}bi.displayName=bg;var bk=a=>({name:"transformOrigin",options:a,fn(b){let{placement:c,rects:d,middlewareData:e}=b,f=e.arrow?.centerOffset!==0,g=f?0:a.arrowWidth,h=f?0:a.arrowHeight,[i,j]=bl(c),k={start:"0%",center:"50%",end:"100%"}[j],l=(e.arrow?.x??0)+g/2,m=(e.arrow?.y??0)+h/2,n="",o="";return"bottom"===i?(n=f?k:`${l}px`,o=`${-h}px`):"top"===i?(n=f?k:`${l}px`,o=`${d.floating.height+h}px`):"right"===i?(n=`${-h}px`,o=f?k:`${m}px`):"left"===i&&(n=`${d.floating.width+h}px`,o=f?k:`${m}px`),{data:{x:n,y:o}}}});function bl(a){let[b,c="center"]=a.split("-");return[b,c]}var bm=m.forwardRef((a,b)=>{let{container:c,...d}=a,[f,g]=m.useState(!1);a$(()=>g(!0),[]);let h=c||f&&globalThis?.document?.body;return h?aw.default.createPortal((0,e.jsx)(aI.div,{...d,ref:b}),h):null});bm.displayName="Portal";var bn=a=>{var b;let c,d,{present:e,children:f}=a,g=function(a){var b,c;let[d,e]=m.useState(),f=m.useRef({}),g=m.useRef(a),h=m.useRef("none"),[i,j]=(b=a?"mounted":"unmounted",c={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},m.useReducer((a,b)=>c[a][b]??a,b));return m.useEffect(()=>{let a=bo(f.current);h.current="mounted"===i?a:"none"},[i]),a$(()=>{let b=f.current,c=g.current;if(c!==a){let d=h.current,e=bo(b);a?j("MOUNT"):"none"===e||b?.display==="none"?j("UNMOUNT"):c&&d!==e?j("ANIMATION_OUT"):j("UNMOUNT"),g.current=a}},[a,j]),a$(()=>{if(d){let a,b=d.ownerDocument.defaultView??window,c=c=>{let e=bo(f.current).includes(c.animationName);if(c.target===d&&e&&(j("ANIMATION_END"),!g.current)){let c=d.style.animationFillMode;d.style.animationFillMode="forwards",a=b.setTimeout(()=>{"forwards"===d.style.animationFillMode&&(d.style.animationFillMode=c)})}},e=a=>{a.target===d&&(h.current=bo(f.current))};return d.addEventListener("animationstart",e),d.addEventListener("animationcancel",c),d.addEventListener("animationend",c),()=>{b.clearTimeout(a),d.removeEventListener("animationstart",e),d.removeEventListener("animationcancel",c),d.removeEventListener("animationend",c)}}j("ANIMATION_END")},[d,j]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:m.useCallback(a=>{a&&(f.current=getComputedStyle(a)),e(a)},[])}}(e),h="function"==typeof f?f({present:g.isPresent}):m.Children.only(f),i=aC(g.ref,(b=h,(d=(c=Object.getOwnPropertyDescriptor(b.props,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.ref:(d=(c=Object.getOwnPropertyDescriptor(b,"ref")?.get)&&"isReactWarning"in c&&c.isReactWarning)?b.props.ref:b.props.ref||b.ref));return"function"==typeof f||g.isPresent?m.cloneElement(h,{ref:i}):null};function bo(a){return a?.animationName||"none"}bn.displayName="Presence";var bp=a.i(516164),bq=a.i(173673),br="Popover",[bs,bt]=aD(br,[a6]),bu=a6(),[bv,bw]=bs(br),bx=a=>{let{__scopePopover:b,children:c,open:d,defaultOpen:f,onOpenChange:g,modal:h=!1}=a,i=bu(b),j=m.useRef(null),[k,l]=m.useState(!1),[n=!1,o]=function({prop:a,defaultProp:b,onChange:c=()=>{}}){let[d,e]=function({defaultProp:a,onChange:b}){let c=m.useState(a),[d]=c,e=m.useRef(d),f=aJ(b);return m.useEffect(()=>{e.current!==d&&(f(d),e.current=d)},[d,e,f]),c}({defaultProp:b,onChange:c}),f=void 0!==a,g=f?a:d,h=aJ(c);return[g,m.useCallback(b=>{if(f){let c="function"==typeof b?b(a):b;c!==a&&h(c)}else e(b)},[f,a,e,h])]}({prop:d,defaultProp:f,onChange:g});return(0,e.jsx)(a9,{...i,children:(0,e.jsx)(bv,{scope:b,contentId:function(){let[a,b]=m.useState(a_());return a$(()=>{b(a=>a??String(a0++))},[void 0]),a?`radix-${a}`:""}(),triggerRef:j,open:n,onOpenChange:o,onOpenToggle:m.useCallback(()=>o(a=>!a),[o]),hasCustomAnchor:k,onCustomAnchorAdd:m.useCallback(()=>l(!0),[]),onCustomAnchorRemove:m.useCallback(()=>l(!1),[]),modal:h,children:c})})};bx.displayName=br;var by="PopoverAnchor";m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bw(by,c),g=bu(c),{onCustomAnchorAdd:h,onCustomAnchorRemove:i}=f;return m.useEffect(()=>(h(),()=>i()),[h,i]),(0,e.jsx)(bb,{...g,...d,ref:b})}).displayName=by;var bz="PopoverTrigger",bA=m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bw(bz,c),g=bu(c),h=aC(b,f.triggerRef),i=(0,e.jsx)(aI.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.contentId,"data-state":bM(f.open),...d,ref:h,onClick:az(a.onClick,f.onOpenToggle)});return f.hasCustomAnchor?i:(0,e.jsx)(bb,{asChild:!0,...g,children:i})});bA.displayName=bz;var bB="PopoverPortal",[bC,bD]=bs(bB,{forceMount:void 0}),bE=a=>{let{__scopePopover:b,forceMount:c,children:d,container:f}=a,g=bw(bB,b);return(0,e.jsx)(bC,{scope:b,forceMount:c,children:(0,e.jsx)(bn,{present:c||g.open,children:(0,e.jsx)(bm,{asChild:!0,container:f,children:d})})})};bE.displayName=bB;var bF="PopoverContent",bG=m.forwardRef((a,b)=>{let c=bD(bF,a.__scopePopover),{forceMount:d=c.forceMount,...f}=a,g=bw(bF,a.__scopePopover);return(0,e.jsx)(bn,{present:d||g.open,children:g.modal?(0,e.jsx)(bH,{...f,ref:b}):(0,e.jsx)(bI,{...f,ref:b})})});bG.displayName=bF;var bH=m.forwardRef((a,b)=>{let c=bw(bF,a.__scopePopover),d=m.useRef(null),f=aC(b,d),g=m.useRef(!1);return m.useEffect(()=>{let a=d.current;if(a)return(0,bp.hideOthers)(a)},[]),(0,e.jsx)(bq.RemoveScroll,{as:aE,allowPinchZoom:!0,children:(0,e.jsx)(bJ,{...a,ref:f,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:az(a.onCloseAutoFocus,a=>{a.preventDefault(),g.current||c.triggerRef.current?.focus()}),onPointerDownOutside:az(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;g.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:az(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),bI=m.forwardRef((a,b)=>{let c=bw(bF,a.__scopePopover),d=m.useRef(!1),f=m.useRef(!1);return(0,e.jsx)(bJ,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,f.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(f.current=!0));let e=b.target;c.triggerRef.current?.contains(e)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&f.current&&b.preventDefault()}})}),bJ=m.forwardRef((a,b)=>{let{__scopePopover:c,trapFocus:d,onOpenAutoFocus:f,onCloseAutoFocus:g,disableOutsidePointerEvents:h,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onInteractOutside:l,...n}=a,o=bw(bF,c),p=bu(c);return m.useEffect(()=>{let a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??aQ()),document.body.insertAdjacentElement("beforeend",a[1]??aQ()),aP++,()=>{1===aP&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),aP--}},[]),(0,e.jsx)(aU,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:f,onUnmountAutoFocus:g,children:(0,e.jsx)(aM,{asChild:!0,disableOutsidePointerEvents:h,onInteractOutside:l,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onDismiss:()=>o.onOpenChange(!1),children:(0,e.jsx)(bf,{"data-state":bM(o.open),role:"dialog",id:o.contentId,...p,...n,ref:b,style:{...n.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),bK="PopoverClose";m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bw(bK,c);return(0,e.jsx)(aI.button,{type:"button",...d,ref:b,onClick:az(a.onClick,()=>f.onOpenChange(!1))})}).displayName=bK;var bL=m.forwardRef((a,b)=>{let{__scopePopover:c,...d}=a,f=bu(c);return(0,e.jsx)(bi,{...f,...d,ref:b})});function bM(a){return a?"open":"closed"}bL.displayName="PopoverArrow";var bN=a.i(449851),bO=a.i(424478),bP=a.i(373116);let bQ={get url(){return`file://${a.P("node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.14_react@19.2.5/node_modules/zustand/esm/vanilla.mjs")}`}},bR=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a)),destroy:()=>{(bQ.env?bQ.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),c.clear()}},g=b=a(d,e,f);return f};var bS=a.i(878001);let bT={get url(){return`file://${a.P("node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.14_react@19.2.5/node_modules/zustand/esm/index.mjs")}`}},{useDebugValue:bU}=m.default,{useSyncExternalStoreWithSelector:bV}=bS.default,bW=!1,bX=a=>{(bT.env?bT.env.MODE:void 0)!=="production"&&"function"!=typeof a&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let b="function"==typeof a?a?bR(a):bR:a,c=(a,c)=>(function(a,b=a=>a,c){(bT.env?bT.env.MODE:void 0)!=="production"&&c&&!bW&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),bW=!0);let d=bV(a.subscribe,a.getState,a.getServerState||a.getInitialState,b,c);return bU(d),d})(b,a,c);return Object.assign(c,b),c},bY=m.default.useEffect;function bZ(){let a,b=(a=a=>({current:[],version:0,set:a}))?bX(a):bX;return{In:({children:a})=>{let c=b(a=>a.set),d=b(a=>a.version);return bY(()=>{c(a=>({version:a.version+1}))},[]),bY(()=>(c(({current:b})=>({current:[...b,a]})),()=>c(({current:b})=>({current:b.filter(b=>b!==a)}))),[a,d]),null},Out:()=>{let a=b(a=>a.current);return m.default.createElement(m.default.Fragment,null,a)}}}function b$(){return(b$=Object.assign.bind()).apply(null,arguments)}function b_(a,b,{checkForDefaultPrevented:c=!0}={}){return function(d){if(null==a||a(d),!1===c||!d.defaultPrevented)return null==b?void 0:b(d)}}function b0(a,b=[]){let c=[],d=()=>{let b=c.map(a=>(0,m.createContext)(a));return function(c){let d=(null==c?void 0:c[a])||b;return(0,m.useMemo)(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let e=(0,m.createContext)(d),f=c.length;function g(b){let{scope:c,children:d,...g}=b,h=(null==c?void 0:c[a][f])||e,i=(0,m.useMemo)(()=>g,Object.values(g));return(0,m.createElement)(h.Provider,{value:i},d)}return c=[...c,d],g.displayName=b+"Provider",[g,function(c,g){let h=(null==g?void 0:g[a][f])||e,i=(0,m.useContext)(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return(0,m.useMemo)(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}function b1(...a){return b=>a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})}function b2(...a){return(0,m.useCallback)(b1(...a),a)}let b3=(0,m.forwardRef)((a,b)=>{let{children:c,...d}=a,e=m.Children.toArray(c),f=e.find(b6);if(f){let a=f.props.children,c=e.map(b=>b!==f?b:m.Children.count(a)>1?m.Children.only(null):(0,m.isValidElement)(a)?a.props.children:null);return(0,m.createElement)(b4,b$({},d,{ref:b}),(0,m.isValidElement)(a)?(0,m.cloneElement)(a,void 0,c):null)}return(0,m.createElement)(b4,b$({},d,{ref:b}),c)});b3.displayName="Slot";let b4=(0,m.forwardRef)((a,b)=>{let{children:c,...d}=a;return(0,m.isValidElement)(c)?(0,m.cloneElement)(c,{...function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{f(...a),e(...a)}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props),ref:b1(b,c.ref)}):m.Children.count(c)>1?m.Children.only(null):null});b4.displayName="SlotClone";let b5=({children:a})=>(0,m.createElement)(m.Fragment,null,a);function b6(a){return(0,m.isValidElement)(a)&&a.type===b5}let b7=(null==globalThis?void 0:globalThis.document)?m.useLayoutEffect:()=>{},b8=m["useId".toString()]||(()=>void 0),b9=0;function ca(a){let[b,c]=m.useState(b8());return b7(()=>{a||c(a=>null!=a?a:String(b9++))},[a]),a||(b?`radix-${b}`:"")}let cb=["a","button","div","h2","h3","img","label","li","nav","ol","p","span","svg","ul"].reduce((a,b)=>{let c=(0,m.forwardRef)((a,c)=>{let{asChild:d,...e}=a,f=d?b3:b;return(0,m.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,m.createElement)(f,b$({},e,{ref:c}))});return c.displayName=`Primitive.${b}`,{...a,[b]:c}},{});function cc(a){let b=(0,m.useRef)(a);return(0,m.useEffect)(()=>{b.current=a}),(0,m.useMemo)(()=>(...a)=>{var c;return null==(c=b.current)?void 0:c.call(b,...a)},[])}function cd({prop:a,defaultProp:b,onChange:c=()=>{}}){let[d,e]=function({defaultProp:a,onChange:b}){let c=(0,m.useState)(a),[d]=c,e=(0,m.useRef)(d),f=cc(b);return(0,m.useEffect)(()=>{e.current!==d&&(f(d),e.current=d)},[d,e,f]),c}({defaultProp:b,onChange:c}),f=void 0!==a,g=f?a:d,h=cc(c);return[g,(0,m.useCallback)(b=>{if(f){let c="function"==typeof b?b(a):b;c!==a&&h(c)}else e(b)},[f,a,e,h])]}let ce=(0,m.createContext)(void 0);function cf(a){let b=(0,m.useContext)(ce);return a||b||"ltr"}let cg="rovingFocusGroup.onEntryFocus",ch={bubbles:!1,cancelable:!0},ci="RovingFocusGroup",[cj,ck,cl]=function(a){let b=a+"CollectionProvider",[c,d]=b0(b),[e,f]=c(b,{collectionRef:{current:null},itemMap:new Map}),g=a+"CollectionSlot",h=m.default.forwardRef((a,b)=>{let{scope:c,children:d}=a,e=b2(b,f(g,c).collectionRef);return m.default.createElement(b3,{ref:e},d)}),i=a+"CollectionItemSlot",j="data-radix-collection-item";return[{Provider:a=>{let{scope:b,children:c}=a,d=m.default.useRef(null),f=m.default.useRef(new Map).current;return m.default.createElement(e,{scope:b,itemMap:f,collectionRef:d},c)},Slot:h,ItemSlot:m.default.forwardRef((a,b)=>{let{scope:c,children:d,...e}=a,g=m.default.useRef(null),h=b2(b,g),k=f(i,c);return m.default.useEffect(()=>(k.itemMap.set(g,{ref:g,...e}),()=>void k.itemMap.delete(g))),m.default.createElement(b3,{[j]:"",ref:h},d)})},function(b){let c=f(a+"CollectionConsumer",b);return m.default.useCallback(()=>{let a=c.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${j}]`));return Array.from(c.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[c.collectionRef,c.itemMap])},d]}(ci),[cm,cn]=b0(ci,[cl]),[co,cp]=cm(ci),cq=(0,m.forwardRef)((a,b)=>(0,m.createElement)(cj.Provider,{scope:a.__scopeRovingFocusGroup},(0,m.createElement)(cj.Slot,{scope:a.__scopeRovingFocusGroup},(0,m.createElement)(cr,b$({},a,{ref:b}))))),cr=(0,m.forwardRef)((a,b)=>{let{__scopeRovingFocusGroup:c,orientation:d,loop:e=!1,dir:f,currentTabStopId:g,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:i,onEntryFocus:j,...k}=a,l=(0,m.useRef)(null),n=b2(b,l),o=cf(f),[p=null,q]=cd({prop:g,defaultProp:h,onChange:i}),[r,s]=(0,m.useState)(!1),t=cc(j),u=ck(c),v=(0,m.useRef)(!1),[w,x]=(0,m.useState)(0);return(0,m.useEffect)(()=>{let a=l.current;if(a)return a.addEventListener(cg,t),()=>a.removeEventListener(cg,t)},[t]),(0,m.createElement)(co,{scope:c,orientation:d,dir:o,loop:e,currentTabStopId:p,onItemFocus:(0,m.useCallback)(a=>q(a),[q]),onItemShiftTab:(0,m.useCallback)(()=>s(!0),[]),onFocusableItemAdd:(0,m.useCallback)(()=>x(a=>a+1),[]),onFocusableItemRemove:(0,m.useCallback)(()=>x(a=>a-1),[])},(0,m.createElement)(cb.div,b$({tabIndex:r||0===w?-1:0,"data-orientation":d},k,{ref:n,style:{outline:"none",...a.style},onMouseDown:b_(a.onMouseDown,()=>{v.current=!0}),onFocus:b_(a.onFocus,a=>{let b=!v.current;if(a.target===a.currentTarget&&b&&!r){let b=new CustomEvent(cg,ch);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=u().filter(a=>a.focusable);cu([a.find(a=>a.active),a.find(a=>a.id===p),...a].filter(Boolean).map(a=>a.ref.current))}}v.current=!1}),onBlur:b_(a.onBlur,()=>s(!1))})))}),cs=(0,m.forwardRef)((a,b)=>{let{__scopeRovingFocusGroup:c,focusable:d=!0,active:e=!1,tabStopId:f,...g}=a,h=ca(),i=f||h,j=cp("RovingFocusGroupItem",c),k=j.currentTabStopId===i,l=ck(c),{onFocusableItemAdd:n,onFocusableItemRemove:o}=j;return(0,m.useEffect)(()=>{if(d)return n(),()=>o()},[d,n,o]),(0,m.createElement)(cj.ItemSlot,{scope:c,id:i,focusable:d,active:e},(0,m.createElement)(cb.span,b$({tabIndex:k?0:-1,"data-orientation":j.orientation},g,{ref:b,onMouseDown:b_(a.onMouseDown,a=>{d?j.onItemFocus(i):a.preventDefault()}),onFocus:b_(a.onFocus,()=>j.onItemFocus(i)),onKeyDown:b_(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void j.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return ct[e]}(a,j.orientation,j.dir);if(void 0!==b){a.preventDefault();let e=l().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)e.reverse();else if("prev"===b||"next"===b){var c,d;"prev"===b&&e.reverse();let f=e.indexOf(a.currentTarget);e=j.loop?(c=e,d=f+1,c.map((a,b)=>c[(d+b)%c.length])):e.slice(f+1)}setTimeout(()=>cu(e))}})})))}),ct={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function cu(a){let b=document.activeElement;for(let c of a)if(c===b||(c.focus(),document.activeElement!==b))return}let cv=a=>{let{present:b,children:c}=a,d=function(a){var b,c;let[d,e]=(0,m.useState)(),f=(0,m.useRef)({}),g=(0,m.useRef)(a),h=(0,m.useRef)("none"),[i,j]=(b=a?"mounted":"unmounted",c={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},(0,m.useReducer)((a,b)=>{let d=c[a][b];return null!=d?d:a},b));return(0,m.useEffect)(()=>{let a=cw(f.current);h.current="mounted"===i?a:"none"},[i]),b7(()=>{let b=f.current,c=g.current;if(c!==a){let d=h.current,e=cw(b);a?j("MOUNT"):"none"===e||(null==b?void 0:b.display)==="none"?j("UNMOUNT"):c&&d!==e?j("ANIMATION_OUT"):j("UNMOUNT"),g.current=a}},[a,j]),b7(()=>{if(d){let a=a=>{let b=cw(f.current).includes(a.animationName);a.target===d&&b&&(0,aw.flushSync)(()=>j("ANIMATION_END"))},b=a=>{a.target===d&&(h.current=cw(f.current))};return d.addEventListener("animationstart",b),d.addEventListener("animationcancel",a),d.addEventListener("animationend",a),()=>{d.removeEventListener("animationstart",b),d.removeEventListener("animationcancel",a),d.removeEventListener("animationend",a)}}j("ANIMATION_END")},[d,j]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:(0,m.useCallback)(a=>{a&&(f.current=getComputedStyle(a)),e(a)},[])}}(b),e="function"==typeof c?c({present:d.isPresent}):m.Children.only(c),f=b2(d.ref,e.ref);return"function"==typeof c||d.isPresent?(0,m.cloneElement)(e,{ref:f}):null};function cw(a){return(null==a?void 0:a.animationName)||"none"}cv.displayName="Presence";let cx="Tabs",[cy,cz]=b0(cx,[cn]),cA=cn(),[cB,cC]=cy(cx),cD=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,onValueChange:e,defaultValue:f,orientation:g="horizontal",dir:h,activationMode:i="automatic",...j}=a,k=cf(h),[l,n]=cd({prop:d,onChange:e,defaultProp:f});return(0,m.createElement)(cB,{scope:c,baseId:ca(),value:l,onValueChange:n,orientation:g,dir:k,activationMode:i},(0,m.createElement)(cb.div,b$({dir:k,"data-orientation":g},j,{ref:b})))}),cE=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,loop:d=!0,...e}=a,f=cC("TabsList",c),g=cA(c);return(0,m.createElement)(cq,b$({asChild:!0},g,{orientation:f.orientation,dir:f.dir,loop:d}),(0,m.createElement)(cb.div,b$({role:"tablist","aria-orientation":f.orientation},e,{ref:b})))}),cF=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,disabled:e=!1,...f}=a,g=cC("TabsTrigger",c),h=cA(c),i=cH(g.baseId,d),j=cI(g.baseId,d),k=d===g.value;return(0,m.createElement)(cs,b$({asChild:!0},h,{focusable:!e,active:k}),(0,m.createElement)(cb.button,b$({type:"button",role:"tab","aria-selected":k,"aria-controls":j,"data-state":k?"active":"inactive","data-disabled":e?"":void 0,disabled:e,id:i},f,{ref:b,onMouseDown:b_(a.onMouseDown,a=>{e||0!==a.button||!1!==a.ctrlKey?a.preventDefault():g.onValueChange(d)}),onKeyDown:b_(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&g.onValueChange(d)}),onFocus:b_(a.onFocus,()=>{let a="manual"!==g.activationMode;k||e||!a||g.onValueChange(d)})})))}),cG=(0,m.forwardRef)((a,b)=>{let{__scopeTabs:c,value:d,forceMount:e,children:f,...g}=a,h=cC("TabsContent",c),i=cH(h.baseId,d),j=cI(h.baseId,d),k=d===h.value,l=(0,m.useRef)(k);return(0,m.useEffect)(()=>{let a=requestAnimationFrame(()=>l.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,m.createElement)(cv,{present:e||k},({present:c})=>(0,m.createElement)(cb.div,b$({"data-state":k?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":i,hidden:!c,id:j,tabIndex:0},g,{ref:b,style:{...a.style,animationDuration:l.current?"0s":void 0}}),c&&f))});function cH(a,b){return`${a}-trigger-${b}`}function cI(a,b){return`${a}-content-${b}`}var cJ=a.i(739639);function cK([a,b,c],[d,e,f]){return[a+d,b+e,c+f]}function cL([a,b,c],[d,e,f]){return[a-d,b-e,c-f]}function cM([a,b,c],d){return[a*d,b*d,c*d]}function cN([a,b,c]){return[a/Math.sqrt(a**2+b**2),b/Math.sqrt(a**2+b**2),c]}function cO([a,b,c],d){return[Math.cos(d)*a-Math.sin(d)*b,Math.sin(d)*a+Math.cos(d)*b,c]}function cP(a,b,c){return Math.atan2(c[1]-a[1],c[0]-a[0])-Math.atan2(b[1]-a[1],b[0]-a[0])}function cQ(a){return Math.atan2(Math.sin(a),Math.cos(a))}function cR([a,b]){return Math.sqrt(a**2+b**2)}function cS([a,b],[c,d]){return Math.sqrt((c-a)**2+(d-b)**2)}function cT(a,b){if(0===b||a.length<=2)return a;let c=a[0],d=a[a.length-1],[e,f]=a.reduce(([a,b],e,f)=>{let g=function(a,b,c){let d=cS(b,c);if(0===d)return cS(a,b);let e=Math.max(0,Math.min(1,((a[0]-b[0])*(c[0]-b[0])+(a[1]-b[1])*(c[1]-b[1]))/d**2));return cS([b[0]+e*(c[0]-b[0]),b[1]+e*(c[1]-b[1]),a[2]],a)}(e,c,d);return g>a?[g,f]:[a,b]},[0,-1]);if(!(e>=b))return[c,d];{let e=a[f];return[...cT([c,...a.slice(1,f),e],b).slice(0,-1),e,...cT([e,...a.slice(f,-1),d],b).slice(1)]}}Object.defineProperty({},"LaserPointer",{get:()=>cU,set:void 0,enumerable:!0,configurable:!0});class cU{static{this.defaults={size:2,streamline:.45,simplify:.1,simplifyPhase:"output",keepHead:!1,sizeMapping:()=>1}}static{this.constants={cornerDetectionMaxAngle:75,cornerDetectionVariance:a=>a>35?.5:1,maxTailLength:50}}constructor(a){this.originalPoints=[],this.stablePoints=[],this.tailPoints=[],this.isFresh=!0,this.options=Object.assign({},cU.defaults,a)}get lastPoint(){return this.tailPoints[this.tailPoints.length-1]??this.stablePoints[this.stablePoints.length-1]}addPoint(a){let b=this.originalPoints[this.originalPoints.length-1];if(!b||b[0]!==a[0]||b[1]!==a[1]){var c,d,e;if(this.originalPoints.push(a),this.isFresh){this.isFresh=!1,this.stablePoints.push(a);return}this.options.streamline>0&&(c=this.lastPoint,d=a,e=1-this.options.streamline,a=cK(c,cM(cL(d,c),e))),this.tailPoints.push(a),function(a){if(a.length<2)return 0;let b=0;for(let c=1;c<=a.length-1;c++)b+=cS(a[c-1],a[c]);return b+cS(a[a.length-2],a[a.length-1])}(this.tailPoints)>cU.constants.maxTailLength&&this.stabilizeTail()}}close(){this.stabilizeTail()}stabilizeTail(){if(this.options.simplify>0&&"tail"==this.options.simplifyPhase)throw Error("Not implemented yet");this.stablePoints.push(...this.tailPoints),this.tailPoints=[]}getSize(a,b,c,d,e){return(a??this.options.size)*this.options.sizeMapping({pressure:b,runningLength:e,currentIndex:c,totalLength:d})}getStrokeOutline(a){if(this.isFresh)return[];let b=[...this.stablePoints,...this.tailPoints];this.options.simplify>0&&"input"===this.options.simplifyPhase&&(b=cT(b,this.options.simplify));let c=b.length;if(0===c)return[];if(1===c){let d=b[0],e=this.getSize(a,d[2],0,c,0);if(e<.5)return[];let f=[];for(let a=0;a<=2*Math.PI;a+=Math.PI/16)f.push(cK(d,cM(cO([1,0,0],a),e)));return f.push(cK(d,cM([1,0,0],this.getSize(a,d[2],0,c,0)))),f}if(2===c){let d=b[0],e=b[1],f=this.getSize(a,d[2],0,c,0),g=this.getSize(a,e[2],0,c,0);if(f<.5||g<.5)return[];let h=[],i=cP(d,[d[0],d[1]-100,d[2]],e);for(let a=i;a<=Math.PI+i;a+=Math.PI/16)h.push(cK(d,cM(cO([1,0,0],a),f)));for(let a=Math.PI+i;a<=2*Math.PI+i;a+=Math.PI/16)h.push(cK(e,cM(cO([1,0,0],a),g)));return h.push(h[0]),h}let d=[],e=[],f=0,g=0,h=0,i=0;for(let j=1;j<c-1;j++){let k=b[j-1],l=b[j],m=b[j+1],n=l[2],o=cS(k,l);i+=o,f=g+(o-g)*.2;let p=this.getSize(a,n,j,c,i);if(0===p){h=j+1;continue}let q=cN(cL(k,l)),r=cN(cL(m,l)),s=cO(q,Math.PI/2),t=cO(q,-Math.PI/2),u=cO(r,Math.PI/2),v=cO(r,-Math.PI/2),w=cK(l,cM(s,p)),x=cK(l,cM(t,p)),y=cK(l,cM(u,p)),z=cK(l,cM(v,p)),A=cK(s,v),B=cK(t,u),C=cK(l,cM(0===cR(A)?q:cN(A),p)),D=cK(l,cM(0===cR(B)?r:cN(B),p)),E=cQ(cP(l,k,m));if(Math.abs(E)<cU.constants.cornerDetectionMaxAngle/180*Math.PI*cU.constants.cornerDetectionVariance(f)){let a=Math.abs(cQ(Math.PI-E));if(0===a)continue;if(E<0){e.push(x,D);for(let b=0;b<=a;b+=a/4)d.push(cK(l,cO(cM(s,p),b)));for(let b=a;b>=0;b-=a/4)e.push(cK(l,cO(cM(s,p),b)));e.push(D,y)}else{d.push(w,C);for(let b=0;b<=a;b+=a/4)e.push(cK(l,cO(cM(s,-p),-b)));for(let b=a;b>=0;b-=a/4)d.push(cK(l,cO(cM(s,-p),-b)));d.push(C,z)}}else d.push(C),e.push(D);g=f}if(h>=c-2)if(!this.options.keepHead)return[];else{let a=b[c-1],d=[];for(let b=0;b<=2*Math.PI;b+=Math.PI/16)d.push(cK(a,cM(cO([1,0,0],b),this.options.size)));return d.push(cK(a,cM([1,0,0],this.options.size))),d}let j=b[h],k=b[h+1],l=b[c-2],m=b[c-1],n=cN(cL(k,j)),o=cN(cL(l,m)),p=cO(n,-Math.PI/2),q=cO(o,Math.PI/2),r=this.getSize(a,j[2],0,c,0),s=[],t=this.options.keepHead?this.options.size:this.getSize(a,l[2],c-2,c,i),u=[];if(r>1){for(let a=0;a<=Math.PI;a+=Math.PI/16)s.unshift(cK(j,cO(cM(p,r),-a)));s.unshift(cK(j,cM(p,-r)))}else s.push(j);for(let a=0;a<=3*Math.PI;a+=Math.PI/16)u.push(cK(m,cO(cM(q,-t),-a)));let v=[...s,...d,...u.reverse(),...e.reverse()];return(s.length>0&&v.push(s[0]),this.options.simplify>0&&"output"===this.options.simplifyPhase)?cT(v,this.options.simplify):v}}var cV=as(),{useAtom:cW,useSetAtom:cX,useAtomValue:cY,useStore:cZ}=cV,c$=cV.Provider,c_=ae(),c0=(0,K.b)({"./locales/ar-SA.json":()=>a.A(483149),"./locales/az-AZ.json":()=>a.A(520085),"./locales/bg-BG.json":()=>a.A(915721),"./locales/bn-BD.json":()=>a.A(790886),"./locales/ca-ES.json":()=>a.A(154063),"./locales/cs-CZ.json":()=>a.A(349588),"./locales/da-DK.json":()=>a.A(29427),"./locales/de-DE.json":()=>a.A(376696),"./locales/el-GR.json":()=>a.A(691135),"./locales/en.json":()=>a.A(915859),"./locales/es-ES.json":()=>a.A(781240),"./locales/eu-ES.json":()=>a.A(443710),"./locales/fa-IR.json":()=>a.A(859503),"./locales/fi-FI.json":()=>a.A(912498),"./locales/fr-FR.json":()=>a.A(758903),"./locales/gl-ES.json":()=>a.A(807105),"./locales/he-IL.json":()=>a.A(855987),"./locales/hi-IN.json":()=>a.A(494911),"./locales/hu-HU.json":()=>a.A(890605),"./locales/id-ID.json":()=>a.A(769243),"./locales/it-IT.json":()=>a.A(245582),"./locales/ja-JP.json":()=>a.A(634831),"./locales/kaa.json":()=>a.A(641990),"./locales/kab-KAB.json":()=>a.A(540088),"./locales/kk-KZ.json":()=>a.A(909890),"./locales/km-KH.json":()=>a.A(688923),"./locales/ko-KR.json":()=>a.A(65036),"./locales/ku-TR.json":()=>a.A(615978),"./locales/lt-LT.json":()=>a.A(191965),"./locales/lv-LV.json":()=>a.A(617016),"./locales/mr-IN.json":()=>a.A(913213),"./locales/my-MM.json":()=>a.A(862761),"./locales/nb-NO.json":()=>a.A(350552),"./locales/nl-NL.json":()=>a.A(19045),"./locales/nn-NO.json":()=>a.A(380948),"./locales/oc-FR.json":()=>a.A(740777),"./locales/pa-IN.json":()=>a.A(867599),"./locales/percentages.json":()=>a.A(505040),"./locales/pl-PL.json":()=>a.A(989039),"./locales/pt-BR.json":()=>a.A(549891),"./locales/pt-PT.json":()=>a.A(955266),"./locales/ro-RO.json":()=>a.A(537912),"./locales/ru-RU.json":()=>a.A(900612),"./locales/si-LK.json":()=>a.A(895179),"./locales/sk-SK.json":()=>a.A(826065),"./locales/sl-SI.json":()=>a.A(889473),"./locales/sv-SE.json":()=>a.A(703589),"./locales/ta-IN.json":()=>a.A(97001),"./locales/th-TH.json":()=>a.A(878477),"./locales/tr-TR.json":()=>a.A(798438),"./locales/uk-UA.json":()=>a.A(777581),"./locales/vi-VN.json":()=>a.A(393304),"./locales/zh-CN.json":()=>a.A(506118),"./locales/zh-HK.json":()=>a.A(27077),"./locales/zh-TW.json":()=>a.A(332929)}),c1={code:"en",label:"English"},c2=[c1,...[{code:"ar-SA",label:"العربية",rtl:!0},{code:"bg-BG",label:"Български"},{code:"ca-ES",label:"Català"},{code:"cs-CZ",label:"Česky"},{code:"de-DE",label:"Deutsch"},{code:"el-GR",label:"Ελληνικά"},{code:"es-ES",label:"Español"},{code:"eu-ES",label:"Euskara"},{code:"fa-IR",label:"فارسی",rtl:!0},{code:"fi-FI",label:"Suomi"},{code:"fr-FR",label:"Français"},{code:"gl-ES",label:"Galego"},{code:"he-IL",label:"עברית",rtl:!0},{code:"hi-IN",label:"हिन्दी"},{code:"hu-HU",label:"Magyar"},{code:"id-ID",label:"Bahasa Indonesia"},{code:"it-IT",label:"Italiano"},{code:"ja-JP",label:"日本語"},{code:"kab-KAB",label:"Taqbaylit"},{code:"kk-KZ",label:"Қазақ тілі"},{code:"ko-KR",label:"한국어"},{code:"ku-TR",label:"Kurdî"},{code:"lt-LT",label:"Lietuvių"},{code:"lv-LV",label:"Latviešu"},{code:"my-MM",label:"Burmese"},{code:"nb-NO",label:"Norsk bokmål"},{code:"nl-NL",label:"Nederlands"},{code:"nn-NO",label:"Norsk nynorsk"},{code:"oc-FR",label:"Occitan"},{code:"pa-IN",label:"ਪੰਜਾਬੀ"},{code:"pl-PL",label:"Polski"},{code:"pt-BR",label:"Português Brasileiro"},{code:"pt-PT",label:"Português"},{code:"ro-RO",label:"Română"},{code:"ru-RU",label:"Русский"},{code:"sk-SK",label:"Slovenčina"},{code:"sv-SE",label:"Svenska"},{code:"sl-SI",label:"Slovenščina"},{code:"tr-TR",label:"Türkçe"},{code:"uk-UA",label:"Українська"},{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"},{code:"vi-VN",label:"Tiếng Việt"},{code:"mr-IN",label:"मराठी"}].filter(a=>J.c[a.code]>=85).sort((a,b)=>a.label>b.label?1:-1)],c3="__test__";H.a.DEV&&c2.unshift({code:c3,label:"test language"},{code:`${c3}.rtl`,label:"‪test language (rtl)‬",rtl:!0});var c4=c1,c5={},c6=async a=>{if(c4=a,document.documentElement.dir=c4.rtl?"rtl":"ltr",document.documentElement.lang=c4.code,a.code.startsWith(c3))c5={};else try{c5=await c0(`./locales/${c4.code}.json`)}catch(b){console.error(`Failed to load language ${a.code}:`,b.message),c5=I.J}c_.set(c9,a.code)},c7=(a,b)=>{for(let c=0;c<b.length;++c){let d=b[c];if(void 0===a[d])return;a=a[d]}if("string"==typeof a)return a},c8=(a,b,c)=>{if(c4.code.startsWith(c3))return`\u202A[[${b?`${a}(${JSON.stringify(b).slice(1,-1)})`:a}]]\u202C`;let d=a.split("."),e=c7(c5,d)||c7(I.J,d)||c;if(void 0===e){let b=`Can't find translation for ${a}`;if(H.a.PROD)return console.warn(b),"";throw Error(b)}if(b)for(let a in b)e=e.replace(`{{${a}}}`,String(b[a]));return e},c9=O(c1.code),da=()=>({t:c8,langCode:cY(c9)}),db=({size:a="1em",circleWidth:b=8,synchronized:c=!1,className:d=""})=>{let f=-(L.default.useRef(Date.now()).current%1600);return(0,e.jsx)("div",{className:`Spinner ${d}`,children:(0,e.jsx)("svg",{viewBox:"0 0 100 100",style:{width:a,height:a,"--spinner-delay":c?`${f}ms`:0},children:(0,e.jsx)("circle",{cx:"50",cy:"50",r:50-b/2,strokeWidth:b,fill:"none",strokeMiterlimit:"10"})})})},dc=({delay:a,theme:b})=>{let[c,d]=(0,L.useState)(!!a);return(0,L.useEffect)(()=>{if(!a)return;let b=setTimeout(()=>{d(!1)},a);return()=>clearTimeout(b)},[a]),c?null:(0,e.jsxs)("div",{className:(0,av.default)("LoadingMessage",{"LoadingMessage--dark":b===F.G.DARK}),children:[(0,e.jsx)("div",{children:(0,e.jsx)(db,{})}),(0,e.jsx)("div",{className:"LoadingMessage-text",children:c8("labels.loadingScene")})]})},dd=a=>{let[b,c]=(0,L.useState)(!0);return(0,L.useEffect)(()=>{let b=async()=>{await c6(d),c(!1)},d=c2.find(b=>b.code===a.langCode)||c1;b()},[a.langCode]),b?(0,e.jsx)(dc,{theme:a.theme}):a.children},de=L.default.forwardRef(({size:a="medium",visible:b=!0,className:c="",...d},f)=>{let{id:g}=kc(),h=L.default.useRef(null);L.default.useImperativeHandle(f,()=>h.current);let i=`ToolIcon_size_${a}`,[j,k]=(0,L.useState)(!1),l=(0,L.useRef)(!0),m=async a=>{let b="onClick"in d&&d.onClick?.(a);if((0,F.Fb)(b))try{k(!0),await b}catch(a){if(a instanceof F.tc)console.warn(a);else throw a}finally{l.current&&k(!1)}};(0,L.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let n=(0,L.useRef)(null);if("button"===d.type||"icon"===d.type||"submit"===d.type){let a="icon"===d.type?"button":d.type;return(0,e.jsxs)("button",{className:(0,av.default)("ToolIcon_type_button",i,c,b&&!d.hidden?"ToolIcon_type_button--show":"ToolIcon_type_button--hide",{ToolIcon:!d.hidden,"ToolIcon--selected":d.selected,"ToolIcon--plain":"icon"===d.type}),style:d.style,"data-testid":d["data-testid"],hidden:d.hidden,title:d.title,"aria-label":d["aria-label"],type:a,onClick:m,ref:h,disabled:j||d.isLoading||!!d.disabled,children:[(d.icon||d.label)&&(0,e.jsxs)("div",{className:"ToolIcon__icon","aria-hidden":"true","aria-disabled":!!d.disabled,children:[d.icon||d.label,d.keyBindingLabel&&(0,e.jsx)("span",{className:"ToolIcon__keybinding",children:d.keyBindingLabel}),d.isLoading&&(0,e.jsx)(db,{})]}),d.showAriaLabel&&(0,e.jsxs)("div",{className:"ToolIcon__label",children:[d["aria-label"]," ",j&&(0,e.jsx)(db,{})]}),d.children]})}return(0,e.jsxs)("label",{className:(0,av.default)("ToolIcon",c),title:d.title,onPointerDown:a=>{n.current=a.pointerType||null,d.onPointerDown?.({pointerType:a.pointerType||null})},onPointerUp:()=>{requestAnimationFrame(()=>{n.current=null})},children:[(0,e.jsx)("input",{className:`ToolIcon_type_radio ${i}`,type:"radio",name:d.name,"aria-label":d["aria-label"],"aria-keyshortcuts":d["aria-keyshortcuts"],"data-testid":d["data-testid"],id:`${g}-${d.id}`,onChange:()=>{d.onChange?.({pointerType:n.current})},checked:d.checked,ref:h}),(0,e.jsxs)("div",{className:"ToolIcon__icon",children:[d.icon,d.keyBindingLabel&&(0,e.jsx)("span",{className:"ToolIcon__keybinding",children:d.keyBindingLabel})]})]})});de.displayName="ToolButton";var df=(a,b)=>{if(a.editingGroupId){let c=(0,F.Qc)((0,F.pk)(b),a.editingGroupId);if(c.length)return{...a,selectedElementIds:{[c[0].id]:!0}}}return a},dg=(0,F.$c)({name:"deleteSelectedElements",label:"labels.delete",icon:F.ud,trackEvent:{category:"element",action:"delete"},perform:(a,b,c,d)=>{if(b.editingLinearElement){let{elementId:c,selectedPointsIndices:e,startBindingElement:f,endBindingElement:g}=b.editingLinearElement,h=d.scene.getNonDeletedElementsMap(),i=F.pj.getElement(c,h);if(!i||null==e)return!1;if(i.points.length<2){let c=a.map(a=>a.id===i.id?(0,F.Qj)(a,{isDeleted:!0}):a),d=df(b,c);return{elements:c,appState:{...d,editingLinearElement:null},captureUpdate:F.Wg.IMMEDIATELY}}let j={startBindingElement:e?.includes(0)?null:f,endBindingElement:e?.includes(i.points.length-1)?null:g};return F.pj.deletePoints(i,e),{elements:a,appState:{...b,editingLinearElement:{...b.editingLinearElement,...j,selectedPointsIndices:e?.[0]>0?[e[0]-1]:[0]}},captureUpdate:F.Wg.IMMEDIATELY}}let{elements:e,appState:f}=((a,b,c)=>{let d=new Set((0,F.vk)(a.filter(a=>(0,F.bc)(a)),b).map(a=>a.id)),e={},f=c.scene.getNonDeletedElementsMap(),g=new Set;for(let b of d)for(let c of(0,F.Bi)(a,b))if(!g.has(c.id)){if((0,F.nc)(c)){let a=(0,F.Aj)(c,f);a&&(e[a.id]=!0)}else e[c.id]=!0;g.add(c.id)}let h=!0,i=a.map(a=>{if(b.selectedElementIds[a.id]){let b=(0,F.nc)(a)?(0,F.Aj)(a,f):null;return a.frameId&&d.has(a.frameId)?(h=!1,e[a.id]=!0,a):b?.frameId&&d.has(b?.frameId)?a:(a.boundElements&&a.boundElements.forEach(b=>{let d=c.scene.getNonDeletedElementsMap().get(b.id);d&&(0,F.ec)(d)&&((0,F.Pj)(d,{startBinding:a.id===d.startBinding?.elementId?null:d.startBinding,endBinding:a.id===d.endBinding?.elementId?null:d.endBinding}),(0,F.Pj)(d,{points:d.points}))}),(0,F.Qj)(a,{isDeleted:!0}))}return a.frameId&&d.has(a.frameId)?(h=!1,(0,F.nc)(a)||(e[a.id]=!0),(0,F.Qj)(a,{frameId:null})):(0,F.nc)(a)&&b.selectedElementIds[a.containerId]?(0,F.Qj)(a,{isDeleted:!0}):a}),j=b.editingGroupId;if(h&&b.editingGroupId){let a=(0,F.Qc)(i,b.editingGroupId).filter(a=>!a.isDeleted);if(a.length>1)a[0]&&(e[a[0].id]=!0);else{j=null,a[0]&&(e[a[0].id]=!0);let c=a[0];if(c){let a=c.groupIds.findIndex(a=>a===b.editingGroupId),d=c.groupIds[a+1];if(d){let a=(0,F.Qc)(i,d).filter(a=>!a.isDeleted);a.length>1&&(j=d,a.forEach(a=>{e[a.id]=!0}))}}}}return{elements:i,appState:{...b,...(0,F.Jc)({selectedElementIds:e,editingGroupId:j},i,b,null)}}})(a,b,d);return(0,F.Tg)(e,e.filter(a=>a.isDeleted)),f=df(f,e),{elements:e,appState:{...f,activeTool:(0,F.jb)(b,{type:"selection"}),multiElement:null,activeEmbeddable:null},captureUpdate:(0,F.tk)((0,F.pk)(a),b)?F.Wg.IMMEDIATELY:F.Wg.EVENTUALLY}},keyTest:(a,b,c)=>(a.key===F.hg.BACKSPACE||a.key===F.hg.DELETE)&&!a[F.hg.CTRL_OR_CMD],PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsx)(de,{type:"button",icon:F.ud,title:c8("labels.delete"),"aria-label":c8("labels.delete"),onClick:()=>c(null),visible:(0,F.tk)((0,F.pk)(a),b)})}),dh=(a,b)=>a.frameId===b||a.id===b,di=(a,b,c)=>{let d=[],e=[],f=null,g=-1,h=(0,F.xb)(c||(0,F.vk)(a,b,{includeBoundTextElement:!0,includeElementsInFrames:!0}));for(;++g<a.length;){let b=a[g];h.get(b.id)?(e.length&&(d=d.concat(e),e=[]),d.push(g),f=g+1):b.isDeleted&&f===g?(f=g+1,e.push(g)):e=[]}return d},dj=(a,b,c)=>{if("containerId"in a&&a.containerId){let d=F.Oj.getScene(a).getElement(a.containerId);if(d)return"left"===c?Math.min(b.indexOf(d),b.indexOf(a)):Math.max(b.indexOf(d),b.indexOf(a))}else{let d=a.boundElements?.find(a=>"arrow"!==a.type)?.id;if(d){let e=F.Oj.getScene(a).getElement(d);if(e)return"left"===c?Math.min(b.indexOf(e),b.indexOf(a)):Math.max(b.indexOf(e),b.indexOf(a))}}},dk=(a,b)=>b.reduce((b,c)=>{let d=a[c];return b.set(d.id,d),b},new Map),dl=(a,b,c)=>{let d,e=di(a,b),f=dk(a,e),g=(d=0,e.reduce((a,b,c)=>(c>0&&e[c-1]!==b-1&&(d=++d),(a[d]||(a[d]=[])).push(b),a),[]));"right"===c&&(g=g.reverse());let h=new Set(e.filter(b=>(0,F.bc)(a[b])).map(b=>a[b].id));return g.forEach((d,e)=>{let f=d[0],g=d[d.length-1],i="left"===c?f:g,j=d.some(b=>{let c=a[b];return c.frameId&&h.has(c.frameId)})?null:a[i]?.frameId,k=((a,b,c,d,e)=>{let f=b[c],g=b=>!b.isDeleted&&(e?b.frameId===e:!a.editingGroupId||b.groupIds.includes(a.editingGroupId)),h="left"===d?(0,F.rb)(b,a=>g(a),Math.max(0,c-1)):(0,F.qb)(b,a=>g(a),c+1),i=b[h];if(!i)return -1;if(a.editingGroupId){if(f?.groupIds.join("")===i?.groupIds.join(""))return dj(i,b,d)??h;if(!i?.groupIds.includes(a.editingGroupId))return -1}if(!e&&(i.frameId||(0,F.bc)(i))){var j;let a,c,e=(j=i.frameId||i.id,a=-1,c=-1,b.forEach((b,d)=>{dh(b,j)&&(-1===a&&(a=d),c=d)}),-1===a?[]:b.slice(a,c+1));return"left"===d?b.indexOf(e[0]):b.indexOf(e[e.length-1])}if(!i.groupIds.length)return dj(i,b,d)??h;let k=a.editingGroupId?i.groupIds[i.groupIds.indexOf(a.editingGroupId)-1]:i.groupIds[i.groupIds.length-1],l=(0,F.Qc)(b,k);return l.length?"left"===d?b.indexOf(l[0]):b.indexOf(l[l.length-1]):h})(b,a,i,c,j);if(-1===k||i===k)return;let l="left"===c?a.slice(0,k):a.slice(0,f),m=a.slice(f,g+1),n="left"===c?a.slice(k,f):a.slice(g+1,k+1),o="left"===c?a.slice(g+1):a.slice(k+1);a="left"===c?[...l,...m,...n,...o]:[...l,...n,...m,...o]}),(0,F.Mj)(a,f),a},dm=(a,b,c,d,e)=>{let f=di(a,b,e),g=dk(a,f),h=[],i,j;if("left"===c){if(d)i=(0,F.qb)(a,a=>dh(a,d));else if(b.editingGroupId){let c=(0,F.Qc)(a,b.editingGroupId);if(!c.length)return a;i=a.indexOf(c[0])}else i=0;j=f[f.length-1]}else{if(d)j=(0,F.rb)(a,a=>dh(a,d));else if(b.editingGroupId){let c=(0,F.Qc)(a,b.editingGroupId);if(!c.length)return a;j=a.indexOf(c[c.length-1])}else j=a.length-1;i=f[0]}-1===i&&(i=0);for(let b=i;b<j+1;b++)f.includes(b)||h.push(a[b]);let k=Array.from(g.values()),l=a.slice(0,i),m=a.slice(j+1),n="left"===c?[...l,...k,...h,...m]:[...l,...h,...k,...m];return(0,F.Mj)(n,g),n};function dn(a,b,c,d){let e=(0,F.xb)((0,F.vk)(a,b,{includeBoundTextElement:!0,includeElementsInFrames:!0})),f={regularElements:[],frameChildren:new Map},g=new Set;for(let b of a)e.has(b.id)&&(0,F.bc)(b)&&g.add(b.id);for(let b of a)if(e.has(b.id))if((0,F.bc)(b)||b.frameId&&g.has(b.frameId))f.regularElements.push(b);else if(b.frameId){let a=f.frameChildren.get(b.frameId)||[];a.push(b),f.frameChildren.set(b.frameId,a)}else f.regularElements.push(b);let h=a;for(let[e,g]of Array.from(f.frameChildren.entries()))h=d(a,b,c,e,g);return d(h,b,c,null,f.regularElements)}var dp=(0,F.$c)({name:"sendBackward",label:"labels.sendBackward",keywords:["move down","zindex","layer"],icon:F.Wd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dl(a,b,"left"),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyPriority:40,keyTest:a=>a[F.hg.CTRL_OR_CMD]&&!a.shiftKey&&a.code===F.gg.BRACKET_LEFT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>a(null),title:`${c8("labels.sendBackward")} \u2014 ${(0,F.kb)("CtrlOrCmd+[")}`,children:F.Wd})}),dq=(0,F.$c)({name:"bringForward",label:"labels.bringForward",keywords:["move up","zindex","layer"],icon:F.Vd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dl(a,b,"right"),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyPriority:40,keyTest:a=>a[F.hg.CTRL_OR_CMD]&&!a.shiftKey&&a.code===F.gg.BRACKET_RIGHT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>a(null),title:`${c8("labels.bringForward")} \u2014 ${(0,F.kb)("CtrlOrCmd+]")}`,children:F.Vd})}),dr=(0,F.$c)({name:"sendToBack",label:"labels.sendToBack",keywords:["move down","zindex","layer"],icon:F.Yd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dn(a,b,"left",dm),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>F.l?a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.BRACKET_LEFT:a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.code===F.gg.BRACKET_LEFT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:()=>a(null),title:`${c8("labels.sendToBack")} \u2014 ${F.l?(0,F.kb)("CtrlOrCmd+Alt+["):(0,F.kb)("CtrlOrCmd+Shift+[")}`,children:F.Yd})}),ds=(0,F.$c)({name:"bringToFront",label:"labels.bringToFront",keywords:["move up","zindex","layer"],icon:F.Xd,trackEvent:{category:"element"},perform:(a,b)=>({elements:dn(a,b,"right",dm),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>F.l?a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.BRACKET_RIGHT:a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.code===F.gg.BRACKET_RIGHT,PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)("button",{type:"button",className:"zIndexButton",onClick:b=>a(null),title:`${c8("labels.bringToFront")} \u2014 ${F.l?(0,F.kb)("CtrlOrCmd+Alt+]"):(0,F.kb)("CtrlOrCmd+Shift+]")}`,children:F.Xd})}),dt=(0,F.$c)({name:"selectAll",label:"labels.selectAll",icon:F.uf,trackEvent:{category:"canvas"},viewMode:!1,perform:(a,b,c,d)=>{if(b.editingLinearElement)return!1;let e=a.filter(a=>!a.isDeleted&&!((0,F._b)(a)&&a.containerId)&&!a.locked).reduce((a,b)=>(a[b.id]=!0,a),{});return{appState:{...b,...(0,F.Jc)({editingGroupId:null,selectedElementIds:e},(0,F.pk)(a),b,d),selectedLinearElement:1===Object.keys(e).length&&(0,F.cc)(a[0])?new F.pj(a[0]):null},captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.A}),du=(0,F.$c)({name:"duplicateSelection",label:"labels.duplicateSelection",icon:F.wd,trackEvent:{category:"element"},perform:(a,b,c,d)=>{if(b.editingLinearElement)try{let c=F.pj.duplicateSelectedPoints(b,d.scene.getNonDeletedElementsMap());return{elements:a,appState:c,captureUpdate:F.Wg.IMMEDIATELY}}catch{return!1}let e=dv(a,b);if(d.props.onDuplicate&&e.elements){let b=d.props.onDuplicate(e.elements,a);b&&(e.elements=b)}return{...e,captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.D,PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsx)(de,{type:"button",icon:F.wd,title:`${c8("labels.duplicateSelection")} \u2014 ${(0,F.kb)("CtrlOrCmd+D")}`,"aria-label":c8("labels.duplicateSelection"),onClick:()=>c(null),visible:(0,F.tk)((0,F.pk)(a),b)})}),dv=(a,b)=>{var c,d;let e,f,g,h,i,j,k,l=new Map,m=[],n=[],o=new Map,p=new Map,q=(0,F.xb)(a),r=a=>{let c=(0,F.Ub)(a).reduce((a,c)=>{if(t.has(c.id))return a;t.set(c.id,!0);let d=(0,F.cg)(b.editingGroupId,l,c,{x:c.x+F.R/2,y:c.y+F.R/2});return t.set(d.id,!0),p.set(d.id,d),o.set(c.id,d.id),n.push(c),m.push(d),a.push(d),a},[]);return Array.isArray(a)?c:c[0]||null};e=(c=a).slice(),f=new Set,g=a=>{let b=a[0]?.groupIds?.join(""),c=[a[0]],d=[];for(let e of a.slice(1))e.groupIds?.join("")===b?c.push(e):d.push(e);return d.length?[...c,...g(d)]:c},h=new Map,e.forEach((a,b)=>{if(!h.has(a.id))if(a.groupIds?.length){let c=a.groupIds[a.groupIds.length-1];for(let a of g(e.slice(b).filter(a=>{let b=a?.groupIds?.some(a=>a===c);return b&&h.set(a.id,!0),b})))f.add(a)}else f.add(a)}),d=f.size!==c.length?(console.error("normalizeGroupElementOrder: lost some elements... bailing!"),c):[...f],i=(0,F.yb)(d),j=d.slice(),k=new Set,j.forEach((a,b)=>{a&&(a.boundElements?.length?(k.add(a),j[b]=null,a.boundElements.forEach(a=>{let b=i.get(a.id);b&&"text"===a.type&&(k.add(b[0]),j[b[1]]=null)})):"text"===a.type&&a.containerId&&i.get(a.containerId)?.[0].boundElements?.find(b=>b.id===a.id)||(k.add(a),j[b]=null))}),a=k.size!==d.length?(console.error("normalizeBoundElementsOrder: lost some elements... bailing!"),d):[...k];let s=(0,F.xb)((0,F.vk)(a,b,{includeBoundTextElement:!0,includeElementsInFrames:!0})),t=new Map,u=a.slice(),v=(a,b)=>{(0,F.Kb)(-1!==a,"targetIndex === -1 "),(Array.isArray(b)||b)&&u.splice(a+1,0,...(0,F.Ub)(b))},w=new Set(a.filter(a=>s.has(a.id)&&(0,F.bc)(a)).map(a=>a.id));for(let c of a){if(t.has(c.id)||!s.has(c.id))continue;let d=(0,F.Lc)(b,c);if(d){let b=(0,F.Qc)(a,d).flatMap(b=>(0,F.bc)(b)?[...(0,F.Bi)(a,b.id),b]:[b]);v((0,F.rb)(u,a=>a.groupIds?.includes(d)),r(b));continue}if(!(c.frameId&&w.has(c.frameId))){if((0,F.bc)(c)){let b=c.id,d=(0,F.Bi)(a,b);v((0,F.rb)(u,a=>a.frameId===b||a.id===b),r([...d,c]));continue}if((0,F.mc)(c)){let a=(0,F.zj)(c,q);v((0,F.rb)(u,a=>a.id===c.id||"containerId"in a&&a.containerId===c.id),r(a?[c,a]:c));continue}if((0,F.nc)(c)){let a=(0,F.Aj)(c,q);v((0,F.rb)(u,b=>b.id===c.id||b.id===a?.id),r(a?[a,c]:c));continue}v((0,F.rb)(u,a=>a.id===c.id),r(c))}}(0,F.vj)(u,n,o),(0,F.Sg)(u,n,o),(0,F.wi)(u,n,o);let x=(0,F.rk)(m);return{elements:u,appState:{...b,...(0,F.Jc)({editingGroupId:b.editingGroupId,selectedElementIds:x.reduce((a,b)=>((0,F.nc)(b)||(a[b.id]=!0),a),{})},(0,F.pk)(u),b,null)}}},dw=(a,b,c,d)=>{try{return}catch(a){console.error("error during analytics",a)}},dx=(0,L.forwardRef)((a,b)=>{let{title:c,className:d,testId:f,active:g,standalone:h,icon:i,onClick:j}=a;return(0,e.jsx)("button",{type:"button",ref:b,title:c,"data-testid":f,className:(0,av.default)(d,{standalone:h,active:g}),onClick:j,children:i},c)}),dy=a=>(0,e.jsx)("div",{className:"buttonList",children:a.options.map(b=>"button"===a.type?(0,e.jsx)(dx,{icon:b.icon,title:b.text,testId:b.testId,active:b.active??a.value===b.value,onClick:c=>a.onClick(b.value,c)},b.text):(0,e.jsxs)("label",{className:(0,av.default)({active:a.value===b.value}),title:b.text,children:[(0,e.jsx)("input",{type:"radio",name:a.group,onChange:()=>a.onChange(b.value),checked:a.value===b.value,"data-testid":b.testId}),b.icon]},b.text))}),dz=({onChange:a,type:b,activeColor:c,topPicks:d})=>{let f;return"elementStroke"===b&&(f=F.f),"elementBackground"===b&&(f=F.g),"canvasBackground"===b&&(f=F.h),d&&(f=d),f?(0,e.jsx)("div",{className:"color-picker__top-picks",children:f.map(b=>(0,e.jsx)("button",{className:(0,av.default)("color-picker__button",{active:b===c,"is-transparent":"transparent"===b||!b}),style:{"--swatch-color":b},type:"button",title:b,onClick:()=>a(b),"data-testid":`color-top-pick-${b}`,children:(0,e.jsx)("div",{className:"color-picker__button-outline"})},b))}):(console.error("Invalid type for TopPicks"),null)},dA=()=>(0,e.jsx)("div",{style:{width:1,height:"1rem",backgroundColor:"var(--default-border-color)",margin:"0 auto"}}),dB=({palette:a,color:b})=>{for(let[c,d]of Object.entries(a))if(Array.isArray(d)){let a=d.indexOf(b);if(a>-1)return{colorName:c,shade:a}}else if(d===b)return{colorName:c,shade:null};return null},dC=[["q","w","e","r","t"],["a","s","d","f","g"],["z","x","c","v","b"]].flat(),dD=({color:a,palette:b})=>!Object.values(b).flat().includes(a),dE=O(null),dF=(a,b,c)=>(299*a+587*b+114*c)/1e3>=160?"black":"white",dG=({color:a,keyLabel:b,isCustomColor:c=!1,isShade:d=!1})=>(0,e.jsxs)("div",{className:"color-picker__button__hotkey-label",style:{color:((a,b)=>{if(b){let b=new Option().style;if(b.color=a,b.color){let a=b.color.replace(/^(rgb|rgba)\(/,"").replace(/\)$/,"").replace(/\s/g,"").split(",");return dF(parseInt(a[0]),parseInt(a[1]),parseInt(a[2]))}}return"transparent"===a?"black":dF(parseInt(a.substring(1,3),16),parseInt(a.substring(3,5),16),parseInt(a.substring(5,7),16))})(a,c)},children:[d&&"⇧",b]}),dH=({hex:a,onChange:b,palette:c})=>{let d=dB({color:a||"transparent",palette:c}),[f,g]=cW(dE),h=(0,L.useRef)(null);if((0,L.useEffect)(()=>{h.current&&"shades"===f&&h.current.focus()},[d,f]),d){let{colorName:a,shade:i}=d,j=c[a];if(Array.isArray(j))return(0,e.jsx)("div",{className:"color-picker-content--default shades",children:j.map((c,d)=>(0,e.jsxs)("button",{ref:d===i&&"shades"===f?h:void 0,tabIndex:-1,type:"button",className:(0,av.default)("color-picker__button color-picker__button--large",{active:d===i}),"aria-label":"Shade",title:`${a} - ${d+1}`,style:c?{"--swatch-color":c}:void 0,onClick:()=>{b(c),g("shades")},children:[(0,e.jsx)("div",{className:"color-picker__button-outline"}),(0,e.jsx)(dG,{color:c,keyLabel:d+1,isShade:!0})]},d))})}return(0,e.jsxs)("div",{className:"color-picker-content--default",style:{position:"relative"},tabIndex:-1,children:[(0,e.jsx)("button",{type:"button",tabIndex:-1,className:"color-picker__button color-picker__button--large color-picker__button--no-focus-visible"}),(0,e.jsx)("div",{tabIndex:-1,style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",fontSize:"0.75rem"},children:c8("colorPicker.noShades")})]})},dI=({palette:a,color:b,onChange:c,label:d,activeShade:f})=>{let g=dB({color:b||"transparent",palette:a}),[h,i]=cW(dE),j=(0,L.useRef)(null);return(0,L.useEffect)(()=>{j.current&&"baseColors"===h&&j.current.focus()},[g?.colorName,h]),(0,e.jsx)("div",{className:"color-picker-content--default",children:Object.entries(a).map(([a,b],d)=>{let h=(Array.isArray(b)?b[f]:b)||"transparent",k=dC[d],l=c8(`colors.${a.replace(/\d+/,"")}`,null,"");return(0,e.jsxs)("button",{ref:g?.colorName===a?j:void 0,tabIndex:-1,type:"button",className:(0,av.default)("color-picker__button color-picker__button--large",{active:g?.colorName===a,"is-transparent":"transparent"===h||!h}),onClick:()=>{c(h),i("baseColors")},title:`${l}${h.startsWith("#")?` ${h}`:""} \u2014 ${k}`,"aria-label":`${l} \u2014 ${k}`,style:{"--swatch-color":h},"data-testid":`color-${a}`,children:[(0,e.jsx)("div",{className:"color-picker__button-outline"}),(0,e.jsx)(dG,{color:h,keyLabel:k})]},a)})})},dJ=({colors:a,color:b,onChange:c,label:d})=>{let[f,g]=cW(dE),h=(0,L.useRef)(null);return(0,L.useEffect)(()=>{h.current&&h.current.focus()},[b,f]),(0,e.jsx)("div",{className:"color-picker-content--default",children:a.map((a,f)=>(0,e.jsxs)("button",{ref:b===a?h:void 0,tabIndex:-1,type:"button",className:(0,av.default)("color-picker__button color-picker__button--large",{active:b===a,"is-transparent":"transparent"===a||!a}),onClick:()=>{c(a),g("custom")},title:a,"aria-label":d,style:{"--swatch-color":a},children:[(0,e.jsx)("div",{className:"color-picker__button-outline"}),(0,e.jsx)(dG,{color:a,keyLabel:f+1,isCustomColor:!0})]},f))})},dK=(a,b,c)=>{let d=Math.ceil(c/F.b);switch(b=b??-1,a){case"ArrowLeft":{let a=b-1;return a<0?c-1:a}case"ArrowRight":return(b+1)%c;case"ArrowDown":{let a=b+F.b;return a>=c?b%F.b:a}case"ArrowUp":{let a=b-F.b,e=a<0?F.b*d+a:a;return e>=c?void 0:e}}},dL=({children:a})=>(0,e.jsx)("div",{className:"color-picker__heading",children:a}),dM=({color:a,onChange:b,label:c,type:d,elements:f,palette:g,updateData:h,children:i,onEyeDropperToggle:j,onEscape:k})=>{let[l]=L.default.useState(()=>{let a,b,c;return"canvasBackground"===d?[]:(a={elementBackground:"backgroundColor",elementStroke:"strokeColor"},b=f.filter(b=>!b.isDeleted&&dD({color:b[a[d]],palette:g})),c=new Map,b.forEach(b=>{let e=b[a[d]];c.has(e)?c.set(e,c.get(e)+1):c.set(e,1)}),[...c.entries()].sort((a,b)=>b[1]-a[1]).map(a=>a[0]).slice(0,F.a))}),[m,n]=cW(dE),o=dB({color:a,palette:g});(0,L.useEffect)(()=>{if(!m){let b=dD({color:a,palette:g});n(b&&!l.includes(a)?"hex":b?"custom":o?.shade!=null?"shades":"baseColors")}},[m,a,g,n,o,l]);let[p,q]=(0,L.useState)(o?.shade??("elementBackground"===d?F.d:F.c));(0,L.useEffect)(()=>{o?.shade!=null&&q(o.shade);let a=a=>{a.key===F.hg.ALT&&j(!1)};return document.addEventListener("keyup",a,{capture:!0}),()=>{document.removeEventListener("keyup",a,{capture:!0})}},[o,j]);let r=L.default.useRef(null);return(0,e.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":c8("labels.colorPicker"),children:(0,e.jsxs)("div",{ref:r,onKeyDown:c=>{(({event:a,activeColorPickerSection:b,palette:c,color:d,onChange:e,customColors:f,setActiveColorPickerSection:g,updateData:h,activeShade:i,onEyeDropperToggle:j,onEscape:k})=>{if(a[F.hg.CTRL_OR_CMD])return!1;if(a.key===F.hg.ESCAPE)return k(a),!0;if(a.key===F.hg.ALT)return j(!0),!0;if(a.key===F.hg.I)return j(),!0;let l=dB({color:d,palette:c});if(a.key===F.hg.TAB){let h=Object.entries({custom:!!f.length,baseColors:!0,shades:l?.shade!=null,hex:!0}).reduce((a,[b,c])=>(c&&a.push(b),a),[]),i=h.indexOf(b),j=a.shiftKey?-1:1,k=i+j>h.length-1?0:i+j<0?h.length-1:i+j,m=h[k];return m&&g(m),"custom"===m?e(f[0]):"baseColors"===m&&(Object.entries(c).find(([a,b])=>Array.isArray(b)?b.includes(d):b===d?a:null)||e(F.e.black)),a.preventDefault(),a.stopPropagation(),!0}if((({e:a,colorObj:b,onChange:c,palette:d,customColors:e,setActiveColorPickerSection:f,activeShade:g})=>{if(b?.shade!=null&&["Digit1","Digit2","Digit3","Digit4","Digit5"].includes(a.code)&&a.shiftKey){let e=Number(a.code.slice(-1))-1;return c(d[b.colorName][e]),f("shades"),!0}if(["1","2","3","4","5"].includes(a.key)&&e[Number(a.key)-1])return c(e[Number(a.key)-1]),f("custom"),!0;if(dC.includes(a.key)){let b=dC.indexOf(a.key),e=Object.keys(d)[b],h=d[e];return c(Array.isArray(h)?h[g]:h),f("baseColors"),!0}return!1})({e:a,colorObj:l,onChange:e,palette:c,customColors:f,setActiveColorPickerSection:g,activeShade:i}))return!0;if("shades"===b&&l){let{shade:b}=l,d=dK(a.key,b,F.b);if(void 0!==d)return e(c[l.colorName][d]),!0}if("baseColors"===b&&l){let{colorName:b}=l,d=Object.keys(c),f=d.indexOf(b),g=dK(a.key,f,d.length);if(void 0!==g){let a=c[d[g]];return e(Array.isArray(a)?a[i]:a),!0}}if("custom"===b){let b=f.indexOf(d),c=dK(a.key,b,f.length);if(void 0!==c)return e(f[c]),!0}return!1})({event:c,activeColorPickerSection:m,palette:g,color:a,onChange:b,onEyeDropperToggle:j,customColors:l,setActiveColorPickerSection:n,updateData:h,activeShade:p,onEscape:k})&&(c.preventDefault(),c.stopPropagation())},className:"color-picker-content properties-content",tabIndex:-1,children:[!!l.length&&(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.mostUsedCustomColors")}),(0,e.jsx)(dJ,{colors:l,color:a,label:c8("colorPicker.mostUsedCustomColors"),onChange:b})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.colors")}),(0,e.jsx)(dI,{color:a,label:c,palette:g,onChange:b,activeShade:p})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.shades")}),(0,e.jsx)(dH,{hex:a,onChange:b,palette:g})]}),i]})})},dN=L.default.createContext(null),dO=a=>{let[b,c]=(0,L.useState)(null),d=kb(),{theme:e}=L.default.useContext(dN),{container:f}=kc();return(0,L.useLayoutEffect)(()=>{b&&(b.className="",b.classList.add("excalidraw",...a?.className?.split(/\s+/)||[]),b.classList.toggle("excalidraw--mobile",d.editor.isMobile),b.classList.toggle("theme--dark",e===F.G.DARK))},[b,e,d.editor.isMobile,a?.className]),(0,L.useLayoutEffect)(()=>{let b=a?.parentSelector?f?.querySelector(a.parentSelector):document.body;if(!b)return;let d=document.createElement("div");return b.appendChild(d),c(d),()=>{b.removeChild(d)}},[f,a?.parentSelector]),b};function dP(a,b,c){(0,L.useEffect)(()=>{function d(d){if(!a.current)return;let e=c?.(d,a.current);if(!0!==e){if(!1===e)return b(d);a.current.contains(d.target)||!document.documentElement.contains(d.target)||d.target.closest("[data-radix-portal]")||d.target===document.documentElement&&"none"===document.body.style.pointerEvents||d.target.closest("[data-prevent-outside-click]")||b(d)}}return document.addEventListener("pointerdown",d),document.addEventListener("touchstart",d),()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("touchstart",d)}},[a,b,c])}var dQ=a=>{let b=(0,L.useRef)(a);return Object.assign(b.current,a),b.current},dR=O(null),dS=({onCancel:a,onChange:b,onSelect:c,colorPickerType:d})=>{let f=dO({className:"excalidraw-eye-dropper-backdrop",parentSelector:".excalidraw-eye-dropper-container"}),g=L.default.useContext(dN),h=kd(),i=j9(),j=dQ({app:i,onCancel:a,onChange:b,onSelect:c,selectedElements:(0,F.vk)(h,g)}),{container:k}=kc();(0,L.useEffect)(()=>{let a=l.current;if(!a||!i.canvas||!f)return;let b=!1,c=i.canvas.getContext("2d"),e=({clientX:a,clientY:b})=>{let d=c.getImageData((a-g.offsetLeft)*window.devicePixelRatio,(b-g.offsetTop)*window.devicePixelRatio,1,1).data;return(0,F.k)(d[0],d[1],d[2])},h=({clientX:c,clientY:f,altKey:g})=>{a.style.top=`${f+20}px`,a.style.left=`${c+20}px`;let h=e({clientX:c,clientY:f});b&&j.onChange(d,h,j.selectedElements,{altKey:g}),a.style.background=h},m=()=>{j.onCancel()},n=a=>{b=!0,a.stopImmediatePropagation()},o=a=>{var c;b=!1,k?.focus(),a.stopImmediatePropagation(),a.preventDefault(),c=e(a),j.onSelect(c,a)},p=a=>{a.key===F.hg.ESCAPE&&(a.preventDefault(),a.stopImmediatePropagation(),m())};return f.tabIndex=-1,f.focus(),h({clientX:j.app.lastViewportPosition.x,clientY:j.app.lastViewportPosition.y,altKey:!1}),f.addEventListener("keydown",p),f.addEventListener("pointerdown",n),f.addEventListener("pointerup",o),window.addEventListener("pointermove",h,{passive:!0}),window.addEventListener("blur",m),()=>{b=!1,f.removeEventListener("keydown",p),f.removeEventListener("pointerdown",n),f.removeEventListener("pointerup",o),window.removeEventListener("pointermove",h),window.removeEventListener("blur",m)}},[j,i.canvas,f,d,k,g.offsetLeft,g.offsetTop]);let l=(0,L.useRef)(null);return dP(l,()=>{a()},a=>!!a.target.closest(".excalidraw-eye-dropper-trigger, .excalidraw-eye-dropper-backdrop")),f?(0,aw.createPortal)((0,e.jsx)("div",{ref:l,className:"excalidraw-eye-dropper-preview"}),f):null},dT=({color:a,onChange:b,label:c,colorPickerType:d})=>{let f=kb(),[g,h]=(0,L.useState)(a),[i,j]=cW(dE);(0,L.useEffect)(()=>{h(a)},[a]);let k=(0,L.useCallback)(a=>{let c=a.toLowerCase(),d=dX(c);d&&b(d),h(c)},[b]),l=(0,L.useRef)(null),m=(0,L.useRef)(null);(0,L.useEffect)(()=>{l.current&&l.current.focus()},[i]);let[n,o]=cW(dR);return(0,L.useEffect)(()=>()=>{o(null)},[o]),(0,e.jsxs)("div",{className:"color-picker__input-label",children:[(0,e.jsx)("div",{className:"color-picker__input-hash",children:"#"}),(0,e.jsx)("input",{ref:"hex"===i?l:void 0,style:{border:0,padding:0},spellCheck:!1,className:"color-picker-input","aria-label":c,onChange:a=>{k(a.target.value)},value:(g||"").replace(/^#/,""),onBlur:()=>{h(a)},tabIndex:-1,onFocus:()=>j("hex"),onKeyDown:a=>{a.key!==F.hg.TAB&&(a.key===F.hg.ESCAPE&&m.current?.focus(),a.stopPropagation())}}),!f.editor.isMobile&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:{width:"1px",height:"1.25rem",backgroundColor:"var(--default-border-color)"}}),(0,e.jsx)("div",{ref:m,className:(0,av.default)("excalidraw-eye-dropper-trigger",{selected:n}),onClick:()=>o(a=>a?null:{keepOpenOnAlt:!1,onSelect:a=>b(a),colorPickerType:d}),title:`${c8("labels.eyeDropper")} \u2014 ${F.hg.I.toLocaleUpperCase()} or ${(0,F.kb)("Alt")} `,children:F.df})]})]})},dU=L.default.forwardRef(({children:a,padding:b,className:c,style:d},f)=>(0,e.jsx)("div",{className:(0,av.default)("Island",c),style:{"--padding":b,...d},ref:f,children:a})),dV=L.default.forwardRef(({className:a,container:b,children:c,style:d,onClose:f,onKeyDown:g,onFocusOutside:h,onPointerLeave:i,onPointerDownOutside:j},k)=>{let l=kb();return(0,e.jsx)(bE,{container:b,children:(0,e.jsxs)(bG,{ref:k,className:(0,av.default)("focus-visible-none",a),"data-prevent-outside-click":!0,side:l.editor.isMobile&&!l.viewport.isLandscape?"bottom":"right",align:l.editor.isMobile&&!l.viewport.isLandscape?"center":"start",alignOffset:-16,sideOffset:20,style:{zIndex:"var(--zIndex-popup)"},onPointerLeave:i,onKeyDown:g,onFocusOutside:h,onPointerDownOutside:j,onCloseAutoFocus:a=>{a.stopPropagation(),a.preventDefault(),b&&!(0,F.$a)(document.activeElement)&&b.focus(),f()},children:[(0,e.jsx)(dU,{padding:3,style:d,children:c}),(0,e.jsx)(bL,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})}),dW=a=>{let b=new Option().style;return b.color=a,!!b.color},dX=a=>(0,F.sb)(a)?a:dW(`#${a}`)?`#${a}`:dW(a)?a:null,dY=({type:a,color:b,onChange:c,label:d,elements:f,palette:g=F.e,updateData:h})=>{let{container:i}=kc(),[,j]=cW(dE),[k,l]=cW(dR),m=(0,e.jsxs)("div",{children:[(0,e.jsx)(dL,{children:c8("colorPicker.hexCode")}),(0,e.jsx)(dT,{color:b,label:d,onChange:a=>{c(a)},colorPickerType:a})]}),n=(0,L.useRef)(null);return(0,e.jsx)(dV,{container:i,style:{maxWidth:"13rem"},onFocusOutside:a=>{n.current?.querySelector(".color-picker-content")?.focus(),a.preventDefault()},onPointerDownOutside:a=>{k&&a.preventDefault()},onClose:()=>{h({openPopup:null}),j(null)},children:g?(0,e.jsx)(dM,{palette:g,color:b,onChange:a=>{c(a)},onEyeDropperToggle:b=>{l(d=>b?((d=d||{keepOpenOnAlt:!0,onSelect:c,colorPickerType:a}).keepOpenOnAlt=!0,d):!1===b||d?null:{keepOpenOnAlt:!1,onSelect:c,colorPickerType:a})},onEscape:a=>{k?l(null):h({openPopup:null})},label:d,type:a,elements:f,updateData:h,children:m}):m})},dZ=({label:a,color:b,type:c})=>(0,e.jsx)(bA,{type:"button",className:(0,av.default)("color-picker__button active-color properties-trigger",{"is-transparent":"transparent"===b||!b}),"aria-label":a,style:b?{"--swatch-color":b}:void 0,title:"elementStroke"===c?c8("labels.showStroke"):c8("labels.showBackground"),children:(0,e.jsx)("div",{className:"color-picker__button-outline"})}),d$=({type:a,color:b,onChange:c,label:d,elements:f,palette:g=F.e,topPicks:h,updateData:i,appState:j})=>(0,e.jsx)("div",{children:(0,e.jsxs)("div",{role:"dialog","aria-modal":"true",className:"color-picker-container",children:[(0,e.jsx)(dz,{activeColor:b,onChange:c,type:a,topPicks:h}),(0,e.jsx)(dA,{}),(0,e.jsxs)(bx,{open:j.openPopup===a,onOpenChange:b=>{i({openPopup:b?a:null})},children:[(0,e.jsx)(dZ,{color:b,label:d,type:a}),j.openPopup===a&&(0,e.jsx)(dY,{type:a,color:b,onChange:c,label:d,elements:f,palette:g,updateData:i})]})]})}),d_=({icon:a})=>(0,e.jsx)("span",{style:{width:"1em",margin:"0 0.5ex 0 0.5ex",display:"inline-block",lineHeight:0,verticalAlign:"middle"},children:a}),d0=({label:a,open:b,openTrigger:c,children:d,className:f})=>(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{style:{cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center"},className:f,onClick:c,children:[a,(0,e.jsx)(d_,{icon:b?F.Mf:F.Lf})]}),b&&(0,e.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:d})]}),d1=O(!1);function d2({options:a,value:b,label:c,onChange:d,onClose:f,numberOfOptionsToAlwaysShow:g=a.length}){let h=kb(),[i,j]=cW(d1),k=L.default.useMemo(()=>a.slice(0,g),[a,g]),l=L.default.useMemo(()=>a.slice(g),[a,g]);(0,L.useEffect)(()=>{k.some(a=>a.value===b)||j(!0)},[b,k,j]);let m=a=>(0,e.jsx)("div",{className:"picker-content",children:a.map((a,c)=>(0,e.jsxs)("button",{type:"button",className:(0,av.default)("picker-option",{active:b===a.value}),onClick:b=>{d(a.value)},title:`${a.text} ${a.keyBinding&&`\u2014 ${a.keyBinding.toUpperCase()}`}`,"aria-label":a.text||"none","aria-keyshortcuts":a.keyBinding||void 0,ref:c=>{b===a.value&&setTimeout(()=>{c?.focus()},0)},children:[a.icon,a.keyBinding&&(0,e.jsx)("span",{className:"picker-keybinding",children:a.keyBinding})]},a.text))});return(0,e.jsx)(bG,{side:h.editor.isMobile&&!h.viewport.isLandscape?"top":"bottom",align:"start",sideOffset:12,style:{zIndex:"var(--zIndex-popup)"},onKeyDown:c=>{let e=a.find(a=>a.keyBinding===c.key.toLowerCase());if(!(c.metaKey||c.altKey||c.ctrlKey)&&e)d(e.value),c.preventDefault();else if(c.key===F.hg.TAB){let e=a.findIndex(a=>a.value===b),f=c.shiftKey?(a.length+e-1)%a.length:(e+1)%a.length;d(a[f].value)}else if((0,F.jg)(c.key)){let e=c4.rtl,f=a.findIndex(a=>a.value===b);if(-1!==f){let b=a.length,h=f;switch(c.key){case e?F.hg.ARROW_LEFT:F.hg.ARROW_RIGHT:h=(f+1)%b;break;case e?F.hg.ARROW_RIGHT:F.hg.ARROW_LEFT:h=(b+f-1)%b;break;case F.hg.ARROW_DOWN:h=(f+(g??1))%b;break;case F.hg.ARROW_UP:h=(b+f-(g??1))%b}d(a[h].value)}c.preventDefault()}else(c.key===F.hg.ESCAPE||c.key===F.hg.ENTER)&&(c.preventDefault(),f());c.nativeEvent.stopImmediatePropagation(),c.stopPropagation()},children:(0,e.jsxs)("div",{className:"picker",role:"dialog","aria-modal":"true","aria-label":c,children:[m(k),l.length>0&&(0,e.jsx)(d0,{label:c8("labels.more_options"),open:i,openTrigger:()=>{j(a=>!a)},className:"picker-collapsible",children:m(l)})]})})}function d3({value:a,label:b,options:c,onChange:d,group:f="",numberOfOptionsToAlwaysShow:g}){let[h,i]=L.default.useState(!1),j=L.default.useRef(null);return(0,e.jsx)("div",{children:(0,e.jsxs)(bx,{open:h,onOpenChange:a=>i(a),children:[(0,e.jsx)(bA,{name:f,type:"button","aria-label":b,onClick:()=>i(!h),ref:j,className:h?"active":"",children:c.find(b=>b.value===a)?.icon}),h&&(0,e.jsx)(d2,{options:c,value:a,label:b,onChange:d,onClose:()=>{i(!1)},numberOfOptionsToAlwaysShow:g})]})})}var d4=L.default.forwardRef(({className:a,placeholder:b,onChange:c},d)=>(0,e.jsxs)("div",{className:(0,av.default)("QuickSearch__wrapper",a),children:[F.pf,(0,e.jsx)("input",{ref:d,className:"QuickSearch__input",type:"text",placeholder:b,onChange:a=>c(a.target.value.trim().toLowerCase())})]})),d5=({className:a,placeholder:b,children:c})=>{let d=!L.Children.count(c);return(0,e.jsx)("div",{className:(0,av.default)("ScrollableList__wrapper",a),role:"menu",children:d?(0,e.jsx)("div",{className:"empty",children:b}):c})},d6=({children:a,className:b="",style:c,title:d})=>(0,e.jsxs)("div",{className:`dropdown-menu-group ${b}`,style:c,children:[d&&(0,e.jsx)("p",{className:"dropdown-menu-group-title",children:d}),a]});d6.displayName="DropdownMenuGroup";var d7=L.default.createContext({}),d8=(a="",b=!1,c=!1)=>`dropdown-menu-item dropdown-menu-item-base ${a}
2
2
  ${b?"dropdown-menu-item--selected":""} ${c?"dropdown-menu-item--hovered":""}`.trim(),d9=(a,b)=>{let c=(0,L.useContext)(d7);return(0,F.Ib)(a,a=>{let d=new CustomEvent("menu.itemSelect",{bubbles:!0,cancelable:!0});b?.(d),d.defaultPrevented||c.onSelect?.(d)})},ea=({textStyle:a,icon:b,shortcut:c,children:d})=>{let f=kb();return(0,e.jsxs)(e.Fragment,{children:[b&&(0,e.jsx)("div",{className:"dropdown-menu-item__icon",children:b}),(0,e.jsx)("div",{style:a,className:"dropdown-menu-item__text",children:d}),c&&!f.editor.isMobile&&(0,e.jsx)("div",{className:"dropdown-menu-item__shortcut",children:c})]})},eb=({icon:a,value:b,order:c,children:d,shortcut:f,className:g,hovered:h,selected:i,textStyle:j,onSelect:k,onClick:l,...m})=>{let n=d9(l,k),o=(0,L.useRef)(null);return(0,L.useEffect)(()=>{h&&(0===c?o.current?.scrollIntoView({block:"end"}):o.current?.scrollIntoView({block:"nearest"}))},[h,c]),(0,e.jsx)("button",{...m,ref:o,value:b,onClick:n,className:d8(g,i,h),title:m.title??m["aria-label"],children:(0,e.jsx)(ea,{textStyle:j,icon:a,shortcut:f,children:d})})};eb.displayName="DropdownMenuItem";var ec="blue",ed=({type:a=ec,children:b})=>{let{theme:c}=ke(),d={display:"inline-flex",marginLeft:"auto",padding:"2px 4px",borderRadius:6,fontSize:9,fontFamily:"Cascadia, monospace",border:c===F.G.LIGHT?"1.5px solid white":"none"};switch(a){case"green":Object.assign(d,{backgroundColor:"var(--background-color-badge)",color:"var(--color-badge)"});break;case"red":Object.assign(d,{backgroundColor:"pink",color:"darkred"});break;default:Object.assign(d,{background:"var(--color-promo)",color:"var(--color-surface-lowest)"})}return(0,e.jsx)("div",{className:"DropDownMenuItemBadge",style:d,children:b})};ed.displayName="DropdownMenuItemBadge",eb.Badge=ed;var ee=L.default.memo(({selectedFontFamily:a,hoveredFontFamily:b,onSelect:c,onHover:d,onLeave:f,onOpen:g,onClose:h})=>{let{container:i}=kc(),{fonts:j}=j9(),{showDeprecatedFonts:k}=ka(),[l,m]=(0,L.useState)(""),n=(0,L.useRef)(null),o=(0,L.useMemo)(()=>Array.from(F.Qf.registered.entries()).filter(([a,{metadata:b}])=>!b.serverSide&&!b.fallback).map(([a,{metadata:b,fontFaces:c}])=>{let d={value:a,icon:b.icon??F.Oe,text:c[0]?.fontFace?.family??"Unknown"};return b.deprecated&&Object.assign(d,{deprecated:b.deprecated,badge:{type:"red",placeholder:c8("fontList.badge.old")}}),d}).sort((a,b)=>a.text.toLowerCase()>b.text.toLowerCase()?1:-1),[]),p=(0,L.useMemo)(()=>new Set(j.getSceneFamilies()),[a]),q=(0,L.useMemo)(()=>o.filter(a=>p.has(a.value)),[o,p]),r=(0,L.useMemo)(()=>o.filter(a=>!p.has(a.value)&&(k||!a.deprecated)),[o,p,k]),s=(0,L.useMemo)(()=>(0,F.zb)([...q,...r].filter(a=>a.text?.toLowerCase().includes(l))),[q,r,l]),t=(0,L.useMemo)(()=>{let c;return b?c=s.find(a=>a.value===b):a&&(c=s.find(b=>b.value===a)),!c&&l&&(s[0]?.value?d(s[0].value):f()),c},[b,a,l,s,d,f]),u=(0,L.useCallback)(a=>{(({event:a,inputRef:b,hoveredFont:c,filteredFonts:d,onClose:e,onSelect:f,onHover:g})=>!a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.key.toLowerCase()===F.hg.F?(b.current?.focus(),!0):a.key===F.hg.ESCAPE?(e(),!0):a.key===F.hg.ENTER?(c?.value&&f(c.value),!0):a.key===F.hg.ARROW_DOWN?(c?.next?g(c.next.value):d[0]?.value&&g(d[0].value),!0):a.key===F.hg.ARROW_UP?(c?.prev?g(c.prev.value):d[d.length-1]?.value&&g(d[d.length-1].value),!0):void 0)({event:a,inputRef:n,hoveredFont:t,filteredFonts:s,onSelect:c,onHover:d,onClose:h})&&(a.preventDefault(),a.stopPropagation())},[t,s,c,d,h]);(0,L.useEffect)(()=>(g(),()=>{h()}),[]);let v=(0,L.useMemo)(()=>s.filter(a=>p.has(a.value)),[s,p]),w=(0,L.useMemo)(()=>s.filter(a=>!p.has(a.value)),[s,p]),x=(b,f)=>(0,e.jsxs)(eb,{icon:b.icon,value:b.value,order:f,textStyle:{fontFamily:(0,F.bb)({fontFamily:b.value})},hovered:b.value===t?.value,selected:b.value===a,tabIndex:b.value===a?0:-1,onClick:a=>{c(Number(a.currentTarget.value))},onMouseMove:()=>{t?.value!==b.value&&d(b.value)},children:[b.text,b.badge&&(0,e.jsx)(ed,{type:b.badge.type,children:b.badge.placeholder})]},b.value),y=[];return v.length&&y.push((0,e.jsx)(d6,{title:c8("fontList.sceneFonts"),children:v.map(x)},"group_1")),w.length&&y.push((0,e.jsx)(d6,{title:c8("fontList.availableFonts"),children:w.map((a,b)=>x(a,b+v.length))},"group_2")),(0,e.jsxs)(dV,{className:"properties-content",container:i,style:{width:"15rem"},onClose:h,onPointerLeave:f,onKeyDown:u,children:[(0,e.jsx)(d4,{ref:n,placeholder:c8("quickSearch.placeholder"),onChange:(0,F.db)(m,20)}),(0,e.jsx)(d5,{className:"dropdown-menu fonts manual-hover",placeholder:c8("fontList.empty"),children:y.length?y:null})]})},(a,b)=>a.selectedFontFamily===b.selectedFontFamily&&a.hoveredFontFamily===b.hoveredFontFamily),ef=({selectedFontFamily:a})=>{let b=(0,L.useMemo)(()=>!!(a&&!ei(a)),[a]);return(0,e.jsx)(bA,{asChild:!0,children:(0,e.jsx)("div",{children:(0,e.jsx)(dx,{standalone:!0,icon:F.qd,title:c8("labels.showFonts"),className:"properties-trigger",testId:"font-family-show-fonts",active:b,onClick:()=>{}})})})},eg=[{value:F.F.Excalifont,icon:F.pd,text:c8("labels.handDrawn"),testId:"font-family-hand-drawn"},{value:F.F.Nunito,icon:F.Oe,text:c8("labels.normal"),testId:"font-family-normal"},{value:F.F["Comic Shanns"],icon:F.Pe,text:c8("labels.code"),testId:"font-family-code"}],eh=new Set(eg.map(a=>a.value)),ei=a=>!!a&&eh.has(a),ej=L.default.memo(({isOpened:a,selectedFontFamily:b,hoveredFontFamily:c,onSelect:d,onHover:f,onLeave:g,onPopupChange:h})=>{let i=(0,L.useMemo)(()=>eg,[]),j=(0,L.useCallback)(a=>{a&&d(a)},[d]);return(0,e.jsxs)("div",{role:"dialog","aria-modal":"true",className:"FontPicker__container",children:[(0,e.jsx)(dy,{type:"button",options:i,value:b,onClick:j}),(0,e.jsx)(dA,{}),(0,e.jsxs)(bx,{open:a,onOpenChange:h,children:[(0,e.jsx)(ef,{selectedFontFamily:b}),a&&(0,e.jsx)(ee,{selectedFontFamily:b,hoveredFontFamily:c,onSelect:j,onHover:f,onLeave:g,onOpen:()=>h(!0),onClose:()=>h(!1)})]})]})},(a,b)=>a.isOpened===b.isOpened&&a.selectedFontFamily===b.selectedFontFamily&&a.hoveredFontFamily===b.hoveredFontFamily),ek=({updateData:a,appState:b,elements:c,testId:d})=>{let f=L.default.useRef(null),g=L.default.useRef(null),h=em(c,b,a=>a.opacity,!0,b.currentItemOpacity);return(0,L.useEffect)(()=>{if(f.current&&g.current){let a=f.current,b=g.current,c=h/100*(a.offsetWidth-15)+7.5;b.style.left=`${c}px`,a.style.background=`linear-gradient(to right, var(--color-slider-track) 0%, var(--color-slider-track) ${h}%, var(--button-bg) ${h}%, var(--button-bg) 100%)`}},[h]),(0,e.jsxs)("label",{className:"control-label",children:[c8("labels.opacity"),(0,e.jsxs)("div",{className:"range-wrapper",children:[(0,e.jsx)("input",{ref:f,type:"range",min:"0",max:"100",step:"10",onChange:b=>{a(+b.target.value)},value:h,className:"range-input","data-testid":d}),(0,e.jsx)("div",{className:"value-bubble",ref:g,children:0!==h?h:null}),(0,e.jsx)("div",{className:"zero-label",children:"0"})]})]})},el=(a,b,c,d=!1)=>{let e=(0,F.xb)((0,F.vk)(a,b,{includeBoundTextElement:d}));return a.map(a=>e.get(a.id)||a.id===b.editingTextElement?.id?c(a):a)},em=function(a,b,c,d,e){let f=b.editingTextElement,g=(0,F.pk)(a),h=null;return f&&(h=c(f)),h||(h=(0,F.tk)(g,b)?(0,F.uk)(!0===d?g:g.filter(a=>d(a)),b,c)??("function"==typeof e?e(!0):e):"function"==typeof e?e(!1):e),h},en=(a,b,c,d,e)=>{let f=new Set,g=el(a,b,a=>{if((0,F._b)(a)){let b,e=d(a);f.add(e);let g=(0,F.Qj)(a,{fontSize:e});return(0,F.uj)(g,c.scene.getContainerElement(a),c.scene.getNonDeletedElementsMap()),b=g,g=(0,F.nc)(b)||!b.autoResize?b:(0,F.Pj)(b,{x:"left"===a.textAlign?a.x:a.x+(a.width-b.width)/("center"===a.textAlign?2:1),y:a.y+(a.height-b.height)/2},!1)}return a},!0),h=(0,F.xb)(g);return(0,F.vk)(a,b,{includeBoundTextElement:!0}).forEach(a=>{(0,F._b)(a)&&(0,F.Pg)(a,h)}),{elements:g,appState:{...b,currentItemFontSize:1===f.size?[...f][0]:e??b.currentItemFontSize},captureUpdate:F.Wg.IMMEDIATELY}},eo=((0,F.$c)({name:"changeStrokeColor",label:"labels.stroke",trackEvent:!1,perform:(a,b,c)=>({...c.currentItemStrokeColor&&{elements:el(a,b,a=>(0,F.Wi)(a.type)?(0,F.Qj)(a,{strokeColor:c.currentItemStrokeColor}):a,!0)},appState:{...b,...c},captureUpdate:c.currentItemStrokeColor?F.Wg.IMMEDIATELY:F.Wg.EVENTUALLY}),PanelComponent:({elements:a,appState:b,updateData:c,appProps:d})=>(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("h3",{"aria-hidden":"true",children:c8("labels.stroke")}),(0,e.jsx)(d$,{topPicks:F.f,palette:F.i,type:"elementStroke",label:c8("labels.stroke"),color:em(a,b,a=>a.strokeColor,!0,b.currentItemStrokeColor),onChange:a=>c({currentItemStrokeColor:a}),elements:a,appState:b,updateData:c})]})}),(0,F.$c)({name:"changeBackgroundColor",label:"labels.changeBackground",trackEvent:!1,perform:(a,b,c)=>({...c.currentItemBackgroundColor&&{elements:el(a,b,a=>(0,F.Qj)(a,{backgroundColor:c.currentItemBackgroundColor}))},appState:{...b,...c},captureUpdate:c.currentItemBackgroundColor?F.Wg.IMMEDIATELY:F.Wg.EVENTUALLY}),PanelComponent:({elements:a,appState:b,updateData:c,appProps:d})=>(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("h3",{"aria-hidden":"true",children:c8("labels.background")}),(0,e.jsx)(d$,{topPicks:F.g,palette:F.j,type:"elementBackground",label:c8("labels.background"),color:em(a,b,a=>a.backgroundColor,!0,b.currentItemBackgroundColor),onChange:a=>c({currentItemBackgroundColor:a}),elements:a,appState:b,updateData:c})]})}),(0,F.$c)({name:"changeFillStyle",label:"labels.fill",trackEvent:!1,perform:(a,b,c,d)=>(dw("element","changeFillStyle",`${c} (${d.device.editor.isMobile?"mobile":"desktop"})`),{elements:el(a,b,a=>(0,F.Qj)(a,{fillStyle:c})),appState:{...b,currentItemFillStyle:c},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c})=>{let d=(0,F.vk)(a,b),f=d.length>0&&d.every(a=>"zigzag"===a.fillStyle);return(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.fill")}),(0,e.jsx)(dy,{type:"button",options:[{value:"hachure",text:`${f?c8("labels.zigzag"):c8("labels.hachure")} (${(0,F.kb)("Alt-Click")})`,icon:f?F.je:F.ke,active:!!f||void 0,testId:"fill-hachure"},{value:"cross-hatch",text:c8("labels.crossHatch"),icon:F.le,testId:"fill-cross-hatch"},{value:"solid",text:c8("labels.solid"),icon:F.me,testId:"fill-solid"}],value:em(a,b,a=>a.fillStyle,a=>a.hasOwnProperty("fillStyle"),a=>a?null:b.currentItemFillStyle),onClick:(a,b)=>{c(b.altKey&&"hachure"===a&&d.every(a=>"hachure"===a.fillStyle)?"zigzag":a)}})]})}}),(0,F.$c)({name:"changeStrokeWidth",label:"labels.strokeWidth",trackEvent:!1,perform:(a,b,c)=>({elements:el(a,b,a=>(0,F.Qj)(a,{strokeWidth:c})),appState:{...b,currentItemStrokeWidth:c},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.strokeWidth")}),(0,e.jsx)(dy,{group:"stroke-width",options:[{value:F.va.thin,text:c8("labels.thin"),icon:F.ne,testId:"strokeWidth-thin"},{value:F.va.bold,text:c8("labels.bold"),icon:F.oe,testId:"strokeWidth-bold"},{value:F.va.extraBold,text:c8("labels.extraBold"),icon:F.pe,testId:"strokeWidth-extraBold"}],value:em(a,b,a=>a.strokeWidth,a=>a.hasOwnProperty("strokeWidth"),a=>a?null:b.currentItemStrokeWidth),onChange:a=>c(a)})]})}),(0,F.$c)({name:"changeSloppiness",label:"labels.sloppiness",trackEvent:!1,perform:(a,b,c)=>({elements:el(a,b,a=>(0,F.Qj)(a,{seed:(0,F.rc)(),roughness:c})),appState:{...b,currentItemRoughness:c},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.sloppiness")}),(0,e.jsx)(dy,{group:"sloppiness",options:[{value:0,text:c8("labels.architect"),icon:F.se},{value:1,text:c8("labels.artist"),icon:F.te},{value:2,text:c8("labels.cartoonist"),icon:F.ue}],value:em(a,b,a=>a.roughness,a=>a.hasOwnProperty("roughness"),a=>a?null:b.currentItemRoughness),onChange:a=>c(a)})]})}),(0,F.$c)({name:"changeStrokeStyle",label:"labels.strokeStyle",trackEvent:!1,perform:(a,b,c)=>({elements:el(a,b,a=>(0,F.Qj)(a,{strokeStyle:c})),appState:{...b,currentItemStrokeStyle:c},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.strokeStyle")}),(0,e.jsx)(dy,{group:"strokeStyle",options:[{value:"solid",text:c8("labels.strokeStyle_solid"),icon:F.ne},{value:"dashed",text:c8("labels.strokeStyle_dashed"),icon:F.qe},{value:"dotted",text:c8("labels.strokeStyle_dotted"),icon:F.re}],value:em(a,b,a=>a.strokeStyle,a=>a.hasOwnProperty("strokeStyle"),a=>a?null:b.currentItemStrokeStyle),onChange:a=>c(a)})]})}),(0,F.$c)({name:"changeOpacity",label:"labels.opacity",trackEvent:!1,perform:(a,b,c)=>({elements:el(a,b,a=>(0,F.Qj)(a,{opacity:c}),!0),appState:{...b,currentItemOpacity:c},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsx)(ek,{updateData:c,elements:a,appState:b,testId:"opacity"})}),(0,F.$c)({name:"changeFontSize",label:"labels.fontSize",trackEvent:!1,perform:(a,b,c,d)=>en(a,b,d,()=>c,c),PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.fontSize")}),(0,e.jsx)(dy,{group:"font-size",options:[{value:16,text:c8("labels.small"),icon:F.Je,testId:"fontSize-small"},{value:20,text:c8("labels.medium"),icon:F.Ke,testId:"fontSize-medium"},{value:28,text:c8("labels.large"),icon:F.Le,testId:"fontSize-large"},{value:36,text:c8("labels.veryLarge"),icon:F.Me,testId:"fontSize-veryLarge"}],value:em(a,b,a=>{if((0,F._b)(a))return a.fontSize;let b=(0,F.zj)(a,d.scene.getNonDeletedElementsMap());return b?b.fontSize:null},a=>(0,F._b)(a)||null!==(0,F.zj)(a,d.scene.getNonDeletedElementsMap()),a=>a?null:b.currentItemFontSize||F.I),onChange:a=>c(a)})]})}),(0,F.$c)({name:"decreaseFontSize",label:"labels.decreaseFontSize",icon:F.Ne,trackEvent:!1,perform:(a,b,c,d)=>en(a,b,d,a=>Math.round(1/1.1*a.fontSize)),keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&(a.key===F.hg.CHEVRON_LEFT||a.key===F.hg.COMMA)})),ep=(0,F.$c)({name:"increaseFontSize",label:"labels.increaseFontSize",icon:F.Ne,trackEvent:!1,perform:(a,b,c,d)=>en(a,b,d,a=>Math.round(1.1*a.fontSize)),keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&(a.key===F.hg.CHEVRON_RIGHT||a.key===F.hg.PERIOD)}),eq=((0,F.$c)({name:"changeFontFamily",label:"labels.fontFamily",trackEvent:!1,perform:(a,b,c,d)=>{let{cachedElements:e,resetAll:f,resetContainers:g,...h}=c;if(f)return{elements:el(a,b,a=>{let b=e?.get(a.id);return b?(0,F.Qj)(a,{...b}):a},!0),appState:{...b,...h},captureUpdate:F.Wg.NEVER};let{currentItemFontFamily:i,currentHoveredFontFamily:j}=c,k=F.Wg.EVENTUALLY,l,m=!1;if(i)l=i,k=F.Wg.IMMEDIATELY;else if(j){l=j,k=F.Wg.EVENTUALLY;let c=(0,F.vk)(a,b,{includeBoundTextElement:!0}).filter(a=>(0,F._b)(a));if(c.length>200)m=!0;else{let a=0,b=0;for(;a<c.length&&b<5e3;){let d=c[a];b+=d?.originalText.length||0,a++}b>5e3&&(m=!0)}}let n={appState:{...b,...h},captureUpdate:k};if(l&&!m){let c=new Map,f=new Set,h=!1,k=Array.from(F.Qf.loadedFontsCache.values()),m=Object.entries(F.F).find(([a,b])=>b===l)?.[0];j&&m&&k.some(a=>a.startsWith(m))&&(h=!0),Object.assign(n,{elements:el(a,b,a=>{if((0,F._b)(a)&&(a.fontFamily!==l||i)){let b=(0,F.Qj)(a,{fontFamily:l,lineHeight:(0,F.Rf)(l)}),i=e?.get(a.containerId||"")||{},j=d.scene.getContainerElement(a);return g&&j&&i&&(0,F.Pj)(j,{...i},!1),h||(f=new Set([...f,...Array.from(b.originalText)])),c.set(b,j),b}return a},!0)});let o=`10px ${(0,F.bb)({fontFamily:l})}`,p=Array.from(f.values()).join();if(h||window.document.fonts.check(o,p))for(let[a,b]of c)(0,F.uj)(a,b,d.scene.getNonDeletedElementsMap(),!1);else window.document.fonts.load(o,p).then(a=>{for(let[a,b]of c){let c=d.scene.getElement(a.id),e=b?d.scene.getElement(b.id):null;c&&(0,F.uj)(c,e,d.scene.getNonDeletedElementsMap(),!1)}d.fonts.onLoaded(a)})}return n},PanelComponent:({elements:a,appState:b,app:c,updateData:d})=>{let f=(0,L.useRef)(new Map),g=(0,L.useRef)(null),[h,i]=(0,L.useState)({}),j=(0,L.useRef)(!0),k=(0,L.useMemo)(()=>{let d=(a,c)=>em(a,b,a=>{if((0,F._b)(a))return a.fontFamily;let b=(0,F.zj)(a,c);return b?b.fontFamily:null},a=>(0,F._b)(a)||null!==(0,F.zj)(a,c),a=>a?null:b.currentItemFontFamily||F.J);return"fontFamily"===h.openPopup&&"fontFamily"===b.openPopup?d(Array.from(f.current?.values()??[]),f.current):h.openPopup||"fontFamily"===b.openPopup?g.current:d(a,c.scene.getNonDeletedElementsMap())},[h.openPopup,b,a,c.scene]);return(0,L.useEffect)(()=>{g.current=k},[k]),(0,L.useEffect)(()=>{Object.keys(h).length&&(d(h),i({}))},[h]),(0,L.useEffect)(()=>(j.current=!1,()=>{j.current=!0}),[]),(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.fontFamily")}),(0,e.jsx)(ej,{isOpened:"fontFamily"===b.openPopup,selectedFontFamily:k,hoveredFontFamily:b.currentHoveredFontFamily,onSelect:a=>{i({openPopup:null,currentHoveredFontFamily:null,currentItemFontFamily:a}),f.current.clear()},onHover:a=>{i({currentHoveredFontFamily:a,cachedElements:new Map(f.current),resetContainers:!0})},onLeave:()=>{i({currentHoveredFontFamily:null,cachedElements:new Map(f.current),resetAll:!0})},onPopupChange:e=>{if(e){f.current.clear();let{editingTextElement:d}=b;if(d?.type==="text"){let a=c.scene.getElement(d.id);f.current.set(d.id,(0,F.Qj)(a||d,{},!0))}else for(let c of(0,F.vk)(a,b,{includeBoundTextElement:!0}))f.current.set(c.id,(0,F.Qj)(c,{},!0));i({openPopup:"fontFamily"})}else{let a={openPopup:null,currentHoveredFontFamily:null,cachedElements:new Map(f.current),resetAll:!0};j.current?d({...h,...a}):i(a),f.current.clear()}}})]})}}),(0,F.$c)({name:"changeTextAlign",label:"Change text alignment",trackEvent:!1,perform:(a,b,c,d)=>({elements:el(a,b,a=>{if((0,F._b)(a)){let b=(0,F.Qj)(a,{textAlign:c});return(0,F.uj)(b,d.scene.getContainerElement(a),d.scene.getNonDeletedElementsMap()),b}return a},!0),appState:{...b,currentItemTextAlign:c},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>{let f=d.scene.getNonDeletedElementsMap();return(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.textAlign")}),(0,e.jsx)(dy,{group:"text-align",options:[{value:"left",text:c8("labels.left"),icon:F.Qe,testId:"align-left"},{value:"center",text:c8("labels.center"),icon:F.Re,testId:"align-horizontal-center"},{value:"right",text:c8("labels.right"),icon:F.Se,testId:"align-right"}],value:em(a,b,a=>{if((0,F._b)(a))return a.textAlign;let b=(0,F.zj)(a,f);return b?b.textAlign:null},a=>(0,F._b)(a)||null!==(0,F.zj)(a,f),a=>a?null:b.currentItemTextAlign),onChange:a=>c(a)})]})}}),(0,F.$c)({name:"changeVerticalAlign",label:"Change vertical alignment",trackEvent:{category:"element"},perform:(a,b,c,d)=>({elements:el(a,b,a=>{if((0,F._b)(a)){let b=(0,F.Qj)(a,{verticalAlign:c});return(0,F.uj)(b,d.scene.getContainerElement(a),d.scene.getNonDeletedElementsMap()),b}return a},!0),appState:{...b},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)("fieldset",{children:(0,e.jsx)(dy,{group:"text-align",options:[{value:F.sa.TOP,text:c8("labels.alignTop"),icon:(0,e.jsx)(F.Te,{theme:b.theme}),testId:"align-top"},{value:F.sa.MIDDLE,text:c8("labels.centerVertically"),icon:(0,e.jsx)(F.Ve,{theme:b.theme}),testId:"align-middle"},{value:F.sa.BOTTOM,text:c8("labels.alignBottom"),icon:(0,e.jsx)(F.Ue,{theme:b.theme}),testId:"align-bottom"}],value:em(a,b,a=>{if((0,F._b)(a)&&a.containerId)return a.verticalAlign;let b=(0,F.zj)(a,d.scene.getNonDeletedElementsMap());return b?b.verticalAlign:null},a=>(0,F._b)(a)||null!==(0,F.zj)(a,d.scene.getNonDeletedElementsMap()),a=>a?null:F.sa.MIDDLE),onChange:a=>c(a)})})}),(0,F.$c)({name:"changeRoundness",label:"Change edge roundness",trackEvent:!1,perform:(a,b,c)=>({elements:el(a,b,a=>(0,F.ec)(a)?a:(0,F.Qj)(a,{roundness:"round"===c?{type:(0,F.oc)(a.type)?F.ua.ADAPTIVE_RADIUS:F.ua.PROPORTIONAL_RADIUS}:null})),appState:{...b,currentItemRoundness:c},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c})=>{let d=(0,F.wk)((0,F.pk)(a),b).some(a=>a.roundness?.type===F.ua.LEGACY);return(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.edges")}),(0,e.jsx)(dy,{group:"edges",options:[{value:"sharp",text:c8("labels.sharp"),icon:F.ve},{value:"round",text:c8("labels.round"),icon:F.we}],value:em(a,b,a=>d?null:a.roundness?"round":"sharp",a=>!(0,F.dc)(a)&&a.hasOwnProperty("roundness"),a=>a?null:b.currentItemRoundness),onChange:a=>c(a)})]})}}),a=>[{value:null,text:c8("labels.arrowhead_none"),keyBinding:"q",icon:F.xe},{value:"arrow",text:c8("labels.arrowhead_arrow"),keyBinding:"w",icon:(0,e.jsx)(F.ye,{flip:a})},{value:"triangle",text:c8("labels.arrowhead_triangle"),icon:(0,e.jsx)(F.Ce,{flip:a}),keyBinding:"e"},{value:"triangle_outline",text:c8("labels.arrowhead_triangle_outline"),icon:(0,e.jsx)(F.De,{flip:a}),keyBinding:"r"},{value:"circle",text:c8("labels.arrowhead_circle"),keyBinding:"a",icon:(0,e.jsx)(F.ze,{flip:a})},{value:"circle_outline",text:c8("labels.arrowhead_circle_outline"),keyBinding:"s",icon:(0,e.jsx)(F.Ae,{flip:a})},{value:"diamond",text:c8("labels.arrowhead_diamond"),icon:(0,e.jsx)(F.Ee,{flip:a}),keyBinding:"d"},{value:"diamond_outline",text:c8("labels.arrowhead_diamond_outline"),icon:(0,e.jsx)(F.Fe,{flip:a}),keyBinding:"f"},{value:"bar",text:c8("labels.arrowhead_bar"),keyBinding:"z",icon:(0,e.jsx)(F.Be,{flip:a})},{value:"crowfoot_one",text:c8("labels.arrowhead_crowfoot_one"),icon:(0,e.jsx)(F.He,{flip:a}),keyBinding:"c"},{value:"crowfoot_many",text:c8("labels.arrowhead_crowfoot_many"),icon:(0,e.jsx)(F.Ge,{flip:a}),keyBinding:"x"},{value:"crowfoot_one_or_many",text:c8("labels.arrowhead_crowfoot_one_or_many"),icon:(0,e.jsx)(F.Ie,{flip:a}),keyBinding:"v"}]);(0,F.$c)({name:"changeArrowhead",label:"Change arrowheads",trackEvent:!1,perform:(a,b,c)=>({elements:el(a,b,a=>{if((0,F.cc)(a)){let{position:b,type:d}=c;if("start"===b)return(0,F.Qj)(a,{startArrowhead:d});if("end"===b)return(0,F.Qj)(a,{endArrowhead:d})}return a}),appState:{...b,["start"===c.position?"currentItemStartArrowhead":"currentItemEndArrowhead"]:c.type},captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c})=>{let d=c4.rtl;return(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.arrowheads")}),(0,e.jsxs)("div",{className:"iconSelectList buttonList",children:[(0,e.jsx)(d3,{label:"arrowhead_start",options:eq(!d),value:em(a,b,a=>(0,F.cc)(a)&&(0,F.$i)(a.type)?a.startArrowhead:b.currentItemStartArrowhead,!0,b.currentItemStartArrowhead),onChange:a=>c({position:"start",type:a}),numberOfOptionsToAlwaysShow:4}),(0,e.jsx)(d3,{label:"arrowhead_end",group:"arrowheads",options:eq(!!d),value:em(a,b,a=>(0,F.cc)(a)&&(0,F.$i)(a.type)?a.endArrowhead:b.currentItemEndArrowhead,!0,b.currentItemEndArrowhead),onChange:a=>c({position:"end",type:a}),numberOfOptionsToAlwaysShow:4})]})]})}}),(0,F.$c)({name:"changeArrowType",label:"Change arrow types",trackEvent:!1,perform:(a,b,c,d)=>{let e=el(a,b,e=>{if(!(0,F.dc)(e))return e;let f=(0,F.Qj)(e,{roundness:c===F.Fa.round?{type:F.ua.PROPORTIONAL_RADIUS}:null,elbowed:c===F.Fa.elbow,points:c===F.Fa.elbow||e.elbowed?[e.points[0],e.points[e.points.length-1]]:e.points});if((0,F.ec)(f)){let c=d.scene.getNonDeletedElementsMap();d.dismissLinearEditor();let e=F.pj.getPointAtIndexGlobalCoordinates(f,0,c),g=F.pj.getPointAtIndexGlobalCoordinates(f,-1,c),h=!f.startBinding&&(0,F.Og)((0,F.ob)(e),a,c,b.zoom,!1,!0),i=!f.endBinding&&(0,F.Og)((0,F.ob)(g),a,c,b.zoom,!1,!0),j=h||f.startBinding&&c.get(f.startBinding.elementId),k=i||f.endBinding&&c.get(f.endBinding.elementId),l=h?(0,F.Qg)(f,h,"start"):e,m=i?(0,F.Qg)(f,i,"end"):g;h&&(0,F.Mg)(f,h,"start",c),i&&(0,F.Mg)(f,i,"end",c),(0,F.Pj)(f,{points:[l,m].map(a=>(0,F.Ua)(a[0]-f.x,a[1]-f.y)),...j&&f.startBinding?{startBinding:{...f.startBinding,...(0,F.Rg)(f,j,"start",c)}}:{},...k&&f.endBinding?{endBinding:{...f.endBinding,...(0,F.Rg)(f,k,"end",c)}}:{}}),F.pj.updateEditorMidPointsCache(f,c,d.state)}return f}),f={...b,currentItemArrowType:c},g=b.selectedLinearElement?.elementId;if(g){let a=e.find(a=>a.id===g);a&&(f.selectedLinearElement=new F.pj(a))}return{elements:e,appState:f,captureUpdate:F.Wg.IMMEDIATELY}},PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.arrowtypes")}),(0,e.jsx)(dy,{group:"arrowtypes",options:[{value:F.Fa.sharp,text:c8("labels.arrowtype_sharp"),icon:F.If,testId:"sharp-arrow"},{value:F.Fa.round,text:c8("labels.arrowtype_round"),icon:F.Kf,testId:"round-arrow"},{value:F.Fa.elbow,text:c8("labels.arrowtype_elbowed"),icon:F.Jf,testId:"elbow-arrow"}],value:em(a,b,a=>(0,F.dc)(a)?a.elbowed?F.Fa.elbow:a.roundness?F.Fa.round:F.Fa.sharp:null,a=>(0,F.dc)(a),a=>a?null:b.currentItemArrowType),onChange:a=>c(a)})]})});var er=({viewportX:a,viewportY:b,nextZoom:c},d)=>{let e=a-d.offsetLeft,f=b-d.offsetTop,g=d.zoom.value;return{scrollX:d.scrollX+(e-e/g)+-(e-e/c),scrollY:d.scrollY+(f-f/g)+-(f-f/c),zoom:{value:c}}},es=()=>{let a=document.querySelector(".excalidraw-tooltip");if(a)return a;let b=document.createElement("div");return document.body.appendChild(b),b.classList.add("excalidraw-tooltip"),b},et=(a,b,c="bottom")=>{let d,e=a.getBoundingClientRect(),f=window.innerWidth,g=window.innerHeight,h=b.left+b.width/2-e.width/2;h<0?h=5:h+e.width>=f&&(h=f-e.width-5),"bottom"===c?(d=b.top+b.height+5)+e.height>=g&&(d=b.top-e.height-5):(d=b.top-e.height-5)<0&&(d=b.top+b.height+5),Object.assign(a.style,{top:`${d}px`,left:`${h}px`})},eu=({children:a,label:b,long:c=!1,style:d,disabled:f})=>((0,L.useEffect)(()=>()=>es().classList.remove("excalidraw-tooltip--visible"),[]),f?null:(0,e.jsx)("div",{className:"excalidraw-tooltip-wrapper",onPointerEnter:a=>{var d,e;return d=a.currentTarget,e=es(),void(e.classList.add("excalidraw-tooltip--visible"),e.style.minWidth=c?"50ch":"10ch",e.style.maxWidth=c?"50ch":"15ch",e.textContent=b,et(e,d.getBoundingClientRect()))},onPointerLeave:()=>es().classList.remove("excalidraw-tooltip--visible"),style:d,children:a}));(0,F.$c)({name:"changeViewBackgroundColor",label:"labels.canvasBackground",paletteName:"Change canvas background color",trackEvent:!1,predicate:(a,b,c,d)=>!!d.props.UIOptions.canvasActions.changeViewBackgroundColor&&!b.viewModeEnabled,perform:(a,b,c)=>({appState:{...b,...c},captureUpdate:c.viewBackgroundColor?F.Wg.IMMEDIATELY:F.Wg.EVENTUALLY}),PanelComponent:({elements:a,appState:b,updateData:c,appProps:d})=>(0,e.jsx)(d$,{palette:null,topPicks:F.h,label:c8("labels.canvasBackground"),type:"canvasBackground",color:b.viewBackgroundColor,onChange:a=>c({viewBackgroundColor:a}),"data-testid":"canvas-background-picker",elements:a,appState:b,updateData:c})});var ev=(0,F.$c)({name:"clearCanvas",label:"labels.clearCanvas",paletteName:"Clear canvas",icon:F.ud,trackEvent:{category:"canvas"},predicate:(a,b,c,d)=>!!d.props.UIOptions.canvasActions.clearCanvas&&!b.viewModeEnabled&&b.openDialog?.name!=="elementLinkSelector",perform:(a,b,c,d)=>(d.imageCache.clear(),{elements:a.map(a=>(0,F.Qj)(a,{isDeleted:!0})),appState:{...(0,F.Fc)(),files:{},theme:b.theme,penMode:b.penMode,penDetected:b.penDetected,exportBackground:b.exportBackground,exportEmbedScene:b.exportEmbedScene,gridSize:b.gridSize,gridStep:b.gridStep,gridModeEnabled:b.gridModeEnabled,stats:b.stats,pasteDialog:b.pasteDialog,activeTool:"image"===b.activeTool.type?{...b.activeTool,type:"selection"}:b.activeTool},captureUpdate:F.Wg.IMMEDIATELY})}),ew=(0,F.$c)({name:"zoomIn",label:"buttons.zoomIn",viewMode:!0,icon:F.rd,trackEvent:{category:"canvas"},perform:(a,b,c,d)=>({appState:{...b,...er({viewportX:b.width/2+b.offsetLeft,viewportY:b.height/2+b.offsetTop,nextZoom:(0,F.Ak)(b.zoom.value+F.$)},b),userToFollow:null},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)(de,{type:"button",className:"zoom-in-button zoom-button",icon:F.rd,title:`${c8("buttons.zoomIn")} \u2014 ${(0,F.kb)("CtrlOrCmd++")}`,"aria-label":c8("buttons.zoomIn"),disabled:b.zoom.value>=F.ba,onClick:()=>{a(null)}}),keyTest:a=>(a.code===F.gg.EQUAL||a.code===F.gg.NUM_ADD)&&(a[F.hg.CTRL_OR_CMD]||a.shiftKey)}),ex=(0,F.$c)({name:"zoomOut",label:"buttons.zoomOut",icon:F.sd,viewMode:!0,trackEvent:{category:"canvas"},perform:(a,b,c,d)=>({appState:{...b,...er({viewportX:b.width/2+b.offsetLeft,viewportY:b.height/2+b.offsetTop,nextZoom:(0,F.Ak)(b.zoom.value-F.$)},b),userToFollow:null},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)(de,{type:"button",className:"zoom-out-button zoom-button",icon:F.sd,title:`${c8("buttons.zoomOut")} \u2014 ${(0,F.kb)("CtrlOrCmd+-")}`,"aria-label":c8("buttons.zoomOut"),disabled:b.zoom.value<=F.aa,onClick:()=>{a(null)}}),keyTest:a=>(a.code===F.gg.MINUS||a.code===F.gg.NUM_SUBTRACT)&&(a[F.hg.CTRL_OR_CMD]||a.shiftKey)}),ey=(0,F.$c)({name:"resetZoom",label:"buttons.resetZoom",icon:F.td,viewMode:!0,trackEvent:{category:"canvas"},perform:(a,b,c,d)=>({appState:{...b,...er({viewportX:b.width/2+b.offsetLeft,viewportY:b.height/2+b.offsetTop,nextZoom:(0,F.Ak)(1)},b),userToFollow:null},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({updateData:a,appState:b})=>(0,e.jsx)(eu,{label:c8("buttons.resetZoom"),style:{height:"100%"},children:(0,e.jsxs)(de,{type:"button",className:"reset-zoom-button zoom-button",title:c8("buttons.resetZoom"),"aria-label":c8("buttons.resetZoom"),onClick:()=>{a(null)},children:[(100*b.zoom.value).toFixed(0),"%"]})}),keyTest:a=>(a.code===F.gg.ZERO||a.code===F.gg.NUM_ZERO)&&(a[F.hg.CTRL_OR_CMD]||a.shiftKey)}),ez=({canvasOffsets:a,targetElements:b,appState:c,fitToViewport:d,viewportZoomFactor:e,minZoom:f,maxZoom:g})=>(({bounds:a,appState:b,canvasOffsets:c,fitToViewport:d=!1,viewportZoomFactor:e=1,minZoom:f=-1/0,maxZoom:g=1/0})=>{e=(0,F.Ia)(e,F.aa,F.ba);let[h,i,j,k]=a,l=c?.left??0,m=c?.top??0,n=c?.right??0,o=c?.bottom??0,p=b.width-l-n,q=b.height-m-o,r;r=d?Math.min(p/(j-h),q/(k-i))*e:((a,b,c=1)=>{let[d,e,f,g]=a;return Math.min(Math.min(b.width/(f-d),b.height/(g-e))*(0,F.Ia)(c,.1,1),1)})(a,{width:p,height:q},e);let s=(0,F.Ak)((0,F.Ia)((0,F.Ka)(r,F.$,"floor"),f,g)),t=(0,F.yk)({scenePoint:{x:(h+j)/2,y:(i+k)/2},viewportDimensions:{width:b.width,height:b.height},offsets:c,zoom:{value:s}});return{appState:{...b,scrollX:t.scrollX,scrollY:t.scrollY,zoom:{value:s}},captureUpdate:F.Wg.EVENTUALLY}})({canvasOffsets:a,bounds:(0,F.bj)((0,F.pk)(b)),appState:c,fitToViewport:d,viewportZoomFactor:e,minZoom:f,maxZoom:g}),eA=((0,F.$c)({name:"zoomToFitSelectionInViewport",label:"labels.zoomToFitViewport",icon:F.zf,trackEvent:{category:"canvas"},perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b);return ez({targetElements:e.length?e:a,appState:{...b,userToFollow:null},fitToViewport:!1,canvasOffsets:d.getEditorUIOffsets()})},keyTest:a=>a.code===F.gg.TWO&&a.shiftKey&&!a.altKey&&!a[F.hg.CTRL_OR_CMD]}),(0,F.$c)({name:"zoomToFitSelection",label:"helpDialog.zoomToSelection",icon:F.zf,trackEvent:{category:"canvas"},perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b);return ez({targetElements:e.length?e:a,appState:{...b,userToFollow:null},fitToViewport:!0,canvasOffsets:d.getEditorUIOffsets()})},keyTest:a=>a.code===F.gg.THREE&&a.shiftKey&&!a.altKey&&!a[F.hg.CTRL_OR_CMD]}),(0,F.$c)({name:"zoomToFit",label:"helpDialog.zoomToFit",icon:F.zf,viewMode:!0,trackEvent:{category:"canvas"},perform:(a,b,c,d)=>ez({targetElements:a,appState:{...b,userToFollow:null},fitToViewport:!1,canvasOffsets:d.getEditorUIOffsets()}),keyTest:a=>a.code===F.gg.ONE&&a.shiftKey&&!a.altKey&&!a[F.hg.CTRL_OR_CMD]}),(0,F.$c)({name:"toggleTheme",label:(a,b)=>b.theme===F.G.DARK?"buttons.lightMode":"buttons.darkMode",keywords:["toggle","dark","light","mode","theme"],icon:a=>a.theme===F.G.LIGHT?F.xd:F.yd,viewMode:!0,trackEvent:{category:"canvas"},perform:(a,b,c)=>({appState:{...b,theme:c||(b.theme===F.G.LIGHT?F.G.DARK:F.G.LIGHT)},captureUpdate:F.Wg.EVENTUALLY}),keyTest:a=>a.altKey&&a.shiftKey&&a.code===F.gg.D,predicate:(a,b,c,d)=>!!d.props.UIOptions.canvasActions.toggleTheme})),eB=((0,F.$c)({name:"toggleEraserTool",label:"toolBar.eraser",trackEvent:{category:"toolbar"},perform:(a,b)=>{let c;return c=(0,F.Gc)(b)?(0,F.jb)(b,{...b.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(0,F.jb)(b,{type:"eraser",lastActiveToolBeforeEraser:b.activeTool}),{appState:{...b,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:c},captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>a.key===F.hg.E}),(0,F.$c)({name:"toggleHandTool",label:"toolBar.hand",paletteName:"Toggle hand tool",trackEvent:{category:"toolbar"},icon:F.Ye,viewMode:!1,perform:(a,b,c,d)=>{let e;return(0,F.Hc)(b)?e=(0,F.jb)(b,{...b.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(e=(0,F.jb)(b,{type:"hand",lastActiveToolBeforeEraser:b.activeTool}),(0,F.bd)(d.interactiveCanvas,F.z.GRAB)),{appState:{...b,selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null,activeTool:e},captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>!a.altKey&&!a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.H})),eC=(0,F.$c)({name:"finalize",label:"",trackEvent:!1,perform:(a,b,c,d)=>{let e,{interactiveCanvas:f,focusContainer:g,scene:h}=d,i=h.getNonDeletedElementsMap();if(b.editingLinearElement){let{elementId:c,startBindingElement:d,endBindingElement:e}=b.editingLinearElement,f=F.pj.getElement(c,i);if(f)return(0,F.gc)(f)&&(0,F.Ig)(f,d,e,i,h),{elements:f.points.length<2||(0,F.Sj)(f)?a.filter(a=>a.id!==f.id):void 0,appState:{...b,cursorButton:"up",editingLinearElement:null},captureUpdate:F.Wg.IMMEDIATELY}}let j=a,k=b.pendingImageElementId&&h.getElement(b.pendingImageElementId);k&&(0,F.Pj)(k,{isDeleted:!0},!1),window.document.activeElement instanceof HTMLElement&&g();let l=b.multiElement?b.multiElement:b.newElement?.type==="freedraw"?b.newElement:null;if(l){if("freedraw"!==l.type&&"touch"!==b.lastPointerDownWith){let{points:a,lastCommittedPoint:b}=l;b&&a[a.length-1]===b||(0,F.Pj)(l,{points:l.points.slice(0,-1)})}(0,F.Sj)(l)&&(j=j.filter(a=>a.id!==l.id));let c=(0,F.xg)(l.points,b.zoom.value);if(("line"===l.type||"freedraw"===l.type)&&c){let a=l.points,b=a[0];(0,F.Pj)(l,{points:a.map((c,d)=>d===a.length-1?(0,F.Ua)(b[0],b[1]):c)})}if((0,F.gc)(l)&&!c&&l.points.length>1){let[c,d]=F.pj.getPointAtIndexGlobalCoordinates(l,-1,(0,F.xb)(a));(0,F.Lg)(l,b,{x:c,y:d},i,a)}}return(b.activeTool.locked||"freedraw"===b.activeTool.type)&&l||(0,F.ad)(f),e="eraser"===b.activeTool.type?(0,F.jb)(b,{...b.activeTool.lastActiveTool||{type:"selection"},lastActiveToolBeforeEraser:null}):(0,F.jb)(b,{type:"selection"}),{elements:j,appState:{...b,cursorButton:"up",activeTool:(b.activeTool.locked||"freedraw"===b.activeTool.type)&&l?b.activeTool:e,activeEmbeddable:null,newElement:null,selectionElement:null,multiElement:null,editingTextElement:null,startBoundElement:null,suggestedBindings:[],selectedElementIds:l&&!b.activeTool.locked&&"freedraw"!==b.activeTool.type?{...b.selectedElementIds,[l.id]:!0}:b.selectedElementIds,selectedLinearElement:l&&(0,F.cc)(l)?new F.pj(l):b.selectedLinearElement,pendingImageElementId:null},captureUpdate:F.Wg.IMMEDIATELY}},keyTest:(a,b)=>a.key===F.hg.ESCAPE&&(null!==b.editingLinearElement||!b.newElement&&null===b.multiElement)||(a.key===F.hg.ESCAPE||a.key===F.hg.ENTER)&&null!==b.multiElement,PanelComponent:({appState:a,updateData:b,data:c})=>(0,e.jsx)(de,{type:"button",icon:F.Qd,title:c8("buttons.done"),"aria-label":c8("buttons.done"),onClick:b,visible:null!=a.multiElement,size:c?.size||"medium",style:{pointerEvents:"all"}})}),eD=a=>{let{id:b}=kc(),[c,d]=(0,L.useState)(a.value);return(0,e.jsxs)("div",{className:"ProjectName",children:[(0,e.jsx)("label",{className:"ProjectName-label",htmlFor:"filename",children:`${a.label}:`}),(0,e.jsx)("input",{type:"text",className:"TextInput",onBlur:b=>{a.ignoreFocus||(0,F.vb)(b.target);let c=b.target.value;c!==a.value&&a.onChange(c)},onKeyDown:a=>{a.key===F.hg.ENTER&&(a.preventDefault(),a.nativeEvent.isComposing||229===a.keyCode||a.currentTarget.blur())},id:`${b}-filename`,value:c,onChange:a=>d(a.target.value)})]})},eE=a=>{let b=a.title||(a.value===F.G.DARK?c8("buttons.lightMode"):c8("buttons.darkMode"));return(0,e.jsx)(de,{type:"icon",icon:a.value===F.G.LIGHT?eF.MOON:eF.SUN,title:b,"aria-label":b,onClick:()=>a.onChange(a.value===F.G.DARK?F.G.LIGHT:F.G.DARK),"data-testid":"toggle-dark-mode"})},eF={SUN:(0,e.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,e.jsx)("path",{fill:"currentColor",d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"})}),MOON:(0,e.jsx)("svg",{width:"512",height:"512",className:"rtl-mirror",viewBox:"0 0 512 512",children:(0,e.jsx)("path",{fill:"currentColor",d:"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"})})},eG=(a,{selectedElementIds:b},c)=>{a=(0,F.pk)(a);let d=c&&(0,F.tk)(a,{selectedElementIds:b}),e=null,f=d?(0,F.vk)(a,{selectedElementIds:b},{includeBoundTextElement:!0}):a;return d&&(1===f.length&&(0,F.bc)(f[0])?(e=f[0],f=(0,F.Pi)(a,e)):f.length>1&&(f=(0,F.vk)(a,{selectedElementIds:b},{includeBoundTextElement:!0,includeElementsInFrames:!0}))),{exportingFrame:e,exportedElements:(0,F.Nb)(f)}},eH=async(b,c,d,e,{exportBackground:f,exportPadding:g=F.ma,viewBackgroundColor:h,name:i=d.name||F.Ca,fileHandle:j=null,exportingFrame:k=null})=>{if(0===c.length)throw Error(c8("alerts.cannotExportEmptyCanvas"));if("svg"===b||"clipboard-svg"===b){let a=(0,F.ei)(c,{exportBackground:f,exportWithDarkMode:d.exportWithDarkMode,viewBackgroundColor:h,exportPadding:g,exportScale:d.exportScale,exportEmbedScene:d.exportEmbedScene&&"svg"===b},e,{exportingFrame:k});if("svg"===b)return(0,F.gh)(a.then(a=>new Blob([a.outerHTML],{type:F.T.svg})),{description:"Export to SVG",name:i,extension:d.exportEmbedScene?"excalidraw.svg":"svg",mimeTypes:[F.S.svg],fileHandle:j});if("clipboard-svg"===b){let b=await a.then(a=>a.outerHTML);try{await (0,F.oi)(b)}catch{throw Error(c8("errors.copyToSystemClipboardFailed"))}return}}let l=(0,F.di)(c,d,e,{exportBackground:f,viewBackgroundColor:h,exportPadding:g,exportingFrame:k});if("png"===b){let b=(0,F.yh)(l);return d.exportEmbedScene&&(b=b.then(b=>a.A(965128).then(({encodePngMetadata:a})=>a({blob:b,metadata:(0,F.Jh)(c,d,e,"local")})))),(0,F.gh)(b,{description:"Export to PNG",name:i,extension:d.exportEmbedScene?"excalidraw.png":"png",mimeTypes:[F.S.png],fileHandle:j})}if("clipboard"===b)try{let a=(0,F.yh)(l);await (0,F.ni)(a)}catch(a){throw console.warn(a),"CANVAS_POSSIBLY_TOO_BIG"===a.name?Error(c8("canvasError.canvasTooBig")):F.n&&"TypeError"===a.name?Error(`${c8("alerts.couldNotCopyToClipboard")}
3
3
 
4
4
  ${c8("hints.firefox_clipboard_write")}`):Error(c8("alerts.couldNotCopyToClipboard"))}else throw Error("Unsupported export type")},eI=async(a,b,c,d)=>{let{exportBackground:e,viewBackgroundColor:f,fileHandle:g}=b,h=(0,F.qh)(g);if(!g||!(0,F.rh)(h))throw Error("fileHandle should exist and should be of type svg or png when resaving");let{exportedElements:i,exportingFrame:j}=eG(a,b={...b,exportEmbedScene:!0},!1);return await eH(h,i,b,c,{exportBackground:e,viewBackgroundColor:f,name:d,fileHandle:g,exportingFrame:j}),{fileHandle:g}},eJ=({children:a,checked:b,onChange:c,className:d})=>(0,e.jsxs)("div",{className:(0,av.default)("Checkbox",d,{"is-checked":b}),onClick:a=>{c(!b,a),a.currentTarget.querySelector(".Checkbox-box").focus()},children:[(0,e.jsx)("button",{type:"button",className:"Checkbox-box",role:"checkbox","aria-checked":b,children:F.Hd}),(0,e.jsx)("div",{className:"Checkbox-label",children:a})]}),eK=(0,F.$c)({name:"changeProjectName",label:"labels.fileTitle",trackEvent:!1,perform:(a,b,c)=>({appState:{...b,name:c},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({appState:a,updateData:b,appProps:c,data:d,app:f})=>(0,e.jsx)(eD,{label:c8("labels.fileTitle"),value:f.getName(),onChange:a=>b(a),ignoreFocus:d?.ignoreFocus??!1})}),eL=(0,F.$c)({name:"changeExportScale",label:"imageExportDialog.scale",trackEvent:{category:"export",action:"scale"},perform:(a,b,c)=>({appState:{...b,exportScale:c},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({elements:a,appState:b,updateData:c})=>{let d=(0,F.pk)(a),f=(0,F.tk)(d,b)?(0,F.vk)(d,b):d;return(0,e.jsx)(e.Fragment,{children:F.la.map(a=>{let[d,g]=(0,F.fi)(f,F.ma,a),h=`${c8("imageExportDialog.label.scale")} ${a}x (${d}x${g})`;return(0,e.jsx)(de,{size:"small",type:"radio",icon:`${a}x`,name:"export-canvas-scale",title:h,"aria-label":h,id:"export-canvas-scale",checked:a===b.exportScale,onChange:()=>c(a)},a)})})}}),eM=(0,F.$c)({name:"changeExportBackground",label:"imageExportDialog.label.withBackground",trackEvent:{category:"export",action:"toggleBackground"},perform:(a,b,c)=>({appState:{...b,exportBackground:c},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({appState:a,updateData:b})=>(0,e.jsx)(eJ,{checked:a.exportBackground,onChange:a=>b(a),children:c8("imageExportDialog.label.withBackground")})}),eN=(0,F.$c)({name:"changeExportEmbedScene",label:"imageExportDialog.tooltip.embedScene",trackEvent:{category:"export",action:"embedScene"},perform:(a,b,c)=>({appState:{...b,exportEmbedScene:c},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({appState:a,updateData:b})=>(0,e.jsxs)(eJ,{checked:a.exportEmbedScene,onChange:a=>b(a),children:[c8("imageExportDialog.label.embedScene"),(0,e.jsx)(eu,{label:c8("imageExportDialog.tooltip.embedScene"),long:!0,children:(0,e.jsx)("div",{className:"excalidraw-tooltip-icon",children:F.Td})})]})}),eO=(0,F.$c)({name:"saveToActiveFile",label:"buttons.save",icon:F.Ad,trackEvent:{category:"export"},predicate:(a,b,c,d)=>!!d.props.UIOptions.canvasActions.saveToActiveFile&&!!b.fileHandle&&!b.viewModeEnabled,perform:async(a,b,c,d)=>{let e=!!b.fileHandle;try{let{fileHandle:c}=(0,F.sh)(b.fileHandle)?await eI(a,b,d.files,d.getName()):await (0,F.Kh)(a,b,d.files,d.getName());return{captureUpdate:F.Wg.EVENTUALLY,appState:{...b,fileHandle:c,toast:e?{message:c?.name?c8("toast.fileSavedToFilename").replace("{filename}",`"${c.name}"`):c8("toast.fileSaved")}:null}}}catch(a){return a?.name!=="AbortError"?console.error(a):console.warn(a),{captureUpdate:F.Wg.EVENTUALLY}}},keyTest:a=>a.key===F.hg.S&&a[F.hg.CTRL_OR_CMD]&&!a.shiftKey}),eP=(0,F.$c)({name:"saveFileToDisk",label:"exportDialog.disk_title",icon:F.Ad,viewMode:!0,trackEvent:{category:"export"},perform:async(a,b,c,d)=>{try{let{fileHandle:c}=await (0,F.Kh)(a,{...b,fileHandle:null},d.files,d.getName());return{captureUpdate:F.Wg.EVENTUALLY,appState:{...b,openDialog:null,fileHandle:c,toast:{message:c8("toast.fileSaved")}}}}catch(a){return a?.name!=="AbortError"?console.error(a):console.warn(a),{captureUpdate:F.Wg.EVENTUALLY}}},keyTest:a=>a.key===F.hg.S&&a.shiftKey&&a[F.hg.CTRL_OR_CMD],PanelComponent:({updateData:a})=>(0,e.jsx)(de,{type:"button",icon:F.Kd,title:c8("buttons.saveAs"),"aria-label":c8("buttons.saveAs"),showAriaLabel:kb().editor.isMobile,hidden:!G.supported,onClick:()=>a(null),"data-testid":"save-as-button"})}),eQ=(0,F.$c)({name:"loadScene",label:"buttons.load",trackEvent:{category:"export"},predicate:(a,b,c,d)=>!!d.props.UIOptions.canvasActions.loadScene&&!b.viewModeEnabled,perform:async(a,b,c,d)=>{try{let{elements:c,appState:d,files:e}=await (0,F.Lh)(b,a);return{elements:c,appState:d,files:e,captureUpdate:F.Wg.IMMEDIATELY}}catch(c){return c?.name==="AbortError"?(console.warn(c),!1):{elements:a,appState:{...b,errorMessage:c.message},files:d.files,captureUpdate:F.Wg.EVENTUALLY}}},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.O}),eR=(0,F.$c)({name:"exportWithDarkMode",label:"imageExportDialog.label.darkMode",trackEvent:{category:"export",action:"toggleTheme"},perform:(a,b,c)=>({appState:{...b,exportWithDarkMode:c},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({appState:a,updateData:b})=>(0,e.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:"-45px",marginBottom:"10px"},children:(0,e.jsx)(eE,{value:a.exportWithDarkMode?F.G.DARK:F.G.LIGHT,onChange:a=>{b(a===F.G.DARK)},title:c8("imageExportDialog.label.darkMode")})})}),eS="{}",eT=(0,F.$c)({name:"copyStyles",label:"labels.copyStyles",icon:F.yf,trackEvent:{category:"element"},perform:(a,b,c,d)=>{let e=[],f=a.find(a=>b.selectedElementIds[a.id]);if(e.push(f),f&&(0,F.mc)(f)){let a=(0,F.zj)(f,d.scene.getNonDeletedElementsMap());e.push(a)}return f&&(eS=JSON.stringify(e)),{appState:{...b,toast:{message:c8("toast.copyStyles")}},captureUpdate:F.Wg.EVENTUALLY}},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.C}),eU=(0,F.$c)({name:"pasteStyles",label:"labels.pasteStyles",icon:F.yf,trackEvent:{category:"element"},perform:(a,b,c,d)=>{let e=JSON.parse(eS),f=e[0],g=e[1];if(!(0,F.kc)(f))return{elements:a,captureUpdate:F.Wg.EVENTUALLY};let h=(0,F.vk)(a,b,{includeBoundTextElement:!0}),i=h.map(a=>a.id);return{elements:a.map(a=>{if(i.includes(a.id)){let b=f;if((0,F._b)(a)&&a.containerId&&(b=g),!b)return a;let c=(0,F.Qj)(a,{backgroundColor:b?.backgroundColor,strokeWidth:b?.strokeWidth,strokeColor:b?.strokeColor,strokeStyle:b?.strokeStyle,fillStyle:b?.fillStyle,opacity:b?.opacity,roughness:b?.roughness,roundness:b.roundness?(0,F.pc)(b.roundness.type,a)?b.roundness:(0,F.qc)(a):null});if((0,F._b)(c)){let a=b.fontSize||F.I,e=b.fontFamily||F.J;c=(0,F.Qj)(c,{fontSize:a,fontFamily:e,textAlign:b.textAlign||F.K,lineHeight:b.lineHeight||(0,F.Rf)(e)});let f=null;c.containerId&&(f=h.find(a=>(0,F._b)(c)&&a.id===c.containerId)||null),(0,F.uj)(c,f,d.scene.getNonDeletedElementsMap())}return"arrow"===c.type&&(0,F.dc)(b)&&(c=(0,F.Qj)(c,{startArrowhead:b.startArrowhead,endArrowhead:b.endArrowhead})),(0,F.bc)(a)&&(c=(0,F.Qj)(c,{roundness:null,backgroundColor:"transparent"})),c}return a}),captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.V});(0,F.$c)({name:"toggleCanvasMenu",label:"buttons.menu",trackEvent:{category:"menu"},perform:(a,b)=>({appState:{...b,openMenu:"canvas"===b.openMenu?null:"canvas"},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({appState:a,updateData:b})=>(0,e.jsx)(de,{type:"button",icon:F.zd,"aria-label":c8("buttons.menu"),onClick:b,selected:"canvas"===a.openMenu})}),(0,F.$c)({name:"toggleEditMenu",label:"buttons.edit",trackEvent:{category:"menu"},perform:(a,b)=>({appState:{...b,openMenu:"shape"===b.openMenu?null:"shape"},captureUpdate:F.Wg.EVENTUALLY}),PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsx)(de,{visible:(0,F.lk)(b,(0,F.pk)(a)),type:"button",icon:F.Md,"aria-label":c8("buttons.edit"),onClick:c,selected:"shape"===b.openMenu})});var eV=(0,F.$c)({name:"toggleShortcuts",label:"welcomeScreen.defaults.helpHint",icon:F.Cd,viewMode:!0,trackEvent:{category:"menu",action:"toggleHelpDialog"},perform:(a,b,c,{focusContainer:d})=>(b.openDialog?.name==="help"&&d(),{appState:{...b,openDialog:b.openDialog?.name==="help"?null:{name:"help"}},captureUpdate:F.Wg.EVENTUALLY}),keyTest:a=>a.key===F.hg.QUESTION_MARK}),eW=(a,b,c)=>{let d=c.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0});return d.length>=2&&!(a=>{if(a.length>=2){for(let b of a[0].groupIds)if(a.reduce((a,c)=>a&&(0,F.Pc)(c,b),!0))return!0}return!1})(d)&&!(0,F.Qi)(d)},eX=(0,F.$c)({name:"group",label:"labels.group",icon:a=>(0,e.jsx)(F.he,{theme:a.theme}),trackEvent:{category:"element"},perform:(a,b,c,d)=>{let e=(0,F.Di)(d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0}));if(e.length<2)return{appState:b,elements:a,captureUpdate:F.Wg.EVENTUALLY};let f=(0,F.Mc)(b);if(1===f.length){let c=f[0],d=new Set((0,F.Qc)(a,c).map(a=>a.id)),g=new Set(e.map(a=>a.id));if(new Set([...Array.from(d),...Array.from(g)]).size===d.size)return{appState:b,elements:a,captureUpdate:F.Wg.EVENTUALLY}}let g=[...a];new Set(e.map(a=>a.frameId)).size>1&&(0,F.Ai)(e).forEach((a,b)=>{(0,F.Ji)(a,d.scene.getNonDeletedElementsMap())});let h=(0,F.sc)(),i=(0,F.xb)(e);g=g.map(a=>i.get(a.id)?(0,F.Qj)(a,{groupIds:(0,F.Sc)(a.groupIds,h,b.editingGroupId)}):a);let j=(0,F.Qc)(g,h),k=j[j.length-1],l=g.lastIndexOf(k),m=g.slice(l+1),n=g.slice(0,l).filter(a=>!(0,F.Pc)(a,h)),o=(0,F.Mj)([...n,...j,...m],(0,F.xb)(j));return{appState:{...b,...(0,F.Ic)(h,{...b,selectedGroupIds:{}},(0,F.pk)(g))},elements:o,captureUpdate:F.Wg.IMMEDIATELY}},predicate:(a,b,c,d)=>eW(a,b,d),keyTest:a=>!a.shiftKey&&a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.G,PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!eW(a,b,d),type:"button",icon:(0,e.jsx)(F.he,{theme:b.theme}),onClick:()=>c(null),title:`${c8("labels.group")} \u2014 ${(0,F.kb)("CtrlOrCmd+G")}`,"aria-label":c8("labels.group"),visible:(0,F.tk)((0,F.pk)(a),b)})}),eY=(0,F.$c)({name:"ungroup",label:"labels.ungroup",icon:a=>(0,e.jsx)(F.ie,{theme:a.theme}),trackEvent:{category:"element"},perform:(a,b,c,d)=>{let e=(0,F.Mc)(b),f=(0,F.xb)(a);if(0===e.length)return{appState:b,elements:a,captureUpdate:F.Wg.EVENTUALLY};let g=[...a],h=[];g=g.map(a=>{(0,F.nc)(a)&&h.push(a.id);let c=(0,F.Tc)(a.groupIds,b.selectedGroupIds);return c.length===a.groupIds.length?a:(0,F.Qj)(a,{groupIds:c})});let i=(0,F.Jc)(b,(0,F.pk)(g),b,null),j=new Set(d.scene.getSelectedElements(b).filter(a=>a.frameId).map(a=>a.frameId));return(0,F.Ci)(a).filter(a=>j.has(a.id)).forEach(a=>{a&&(g=(0,F.Li)(g,(0,F.Ei)(g,a,b,f),a,d))}),i.selectedElementIds=Object.entries(i.selectedElementIds).reduce((a,[b,c])=>(c&&!h.includes(b)&&(a[b]=!0),a),{}),{appState:{...b,...i},elements:g,captureUpdate:F.Wg.IMMEDIATELY}},keyTest:a=>a.shiftKey&&a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.G.toUpperCase(),predicate:(a,b)=>(0,F.Mc)(b).length>0,PanelComponent:({elements:a,appState:b,updateData:c})=>(0,e.jsx)(de,{type:"button",hidden:0===(0,F.Mc)(b).length,icon:(0,e.jsx)(F.ie,{theme:b.theme}),onClick:()=>c(null),title:`${c8("labels.ungroup")} \u2014 ${(0,F.kb)("CtrlOrCmd+Shift+G")}`,"aria-label":c8("labels.ungroup"),visible:(0,F.tk)((0,F.pk)(a),b)})}),eZ=(a,b,c,d,e,f,g)=>{a.beginPath(),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadraticCurveTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadraticCurveTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadraticCurveTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadraticCurveTo(b,c,b+f,c),a.closePath(),a.fill(),g&&(a.strokeStyle=g),a.stroke()},e$=(a,b)=>`hsl(${Math.abs(function(a){let b=0;if(0===a.length)return b;for(let c=0;c<a.length;c++)b=(b<<5)-b+a.charCodeAt(c);return b}(b?.id||a))%37*10}, 100%, 83%)`,e_=({color:a,onClick:b,name:c,src:d,className:f})=>{let g,h=((g=c?.trim()?.codePointAt(0))?String.fromCodePoint(g):"?").toUpperCase(),[i,j]=(0,L.useState)(!1),k=!i&&d;return(0,e.jsx)("div",{className:(0,av.default)("Avatar",f),style:k?void 0:{background:a},onClick:b,children:k?(0,e.jsx)("img",{className:"Avatar-img",src:d,alt:h,referrerPolicy:"no-referrer",onError:()=>j(!0)}):h})};(0,F.$c)({name:"goToCollaborator",label:"Go to a collaborator",viewMode:!0,trackEvent:{category:"collab"},perform:(a,b,c)=>!c.socketId||b.userToFollow?.socketId===c.socketId||c.isCurrentUser?{appState:{...b,userToFollow:null},captureUpdate:F.Wg.EVENTUALLY}:{appState:{...b,userToFollow:{socketId:c.socketId,username:c.username||""},openMenu:"canvas"===b.openMenu?null:b.openMenu},captureUpdate:F.Wg.EVENTUALLY},PanelComponent:({updateData:a,data:b,appState:c})=>{let{socketId:d,collaborator:f,withName:g,isBeingFollowed:h}=b,i=e$(d,f),j=(0,av.default)({"is-followed":h,"is-current-user":!0===f.isCurrentUser,"is-speaking":f.isSpeaking,"is-in-call":f.isInCall,"is-muted":f.isMuted}),k=f.isInCall?f.isSpeaking?(0,e.jsxs)("div",{className:"UserList__collaborator-status-icon-speaking-indicator",title:c8("userList.hint.isSpeaking"),children:[(0,e.jsx)("div",{}),(0,e.jsx)("div",{}),(0,e.jsx)("div",{})]}):f.isMuted?(0,e.jsx)("div",{className:"UserList__collaborator-status-icon-microphone-muted",title:c8("userList.hint.micMuted"),children:F.sf}):(0,e.jsx)("div",{title:c8("userList.hint.inCall"),children:F.rf}):null;return g?(0,e.jsxs)("div",{className:`dropdown-menu-item dropdown-menu-item-base UserList__collaborator ${j}`,style:{"--avatar-size":"1.5rem"},onClick:()=>a(f),children:[(0,e.jsx)(e_,{color:i,onClick:()=>{},name:f.username||"",src:f.avatarUrl,className:j}),(0,e.jsx)("div",{className:"UserList__collaborator-name",children:f.username}),(0,e.jsxs)("div",{className:"UserList__collaborator-status-icons","aria-hidden":!0,children:[h&&(0,e.jsx)("div",{className:"UserList__collaborator-status-icon-is-followed",title:c8("userList.hint.followStatus"),children:F.lf}),k]})]}):(0,e.jsxs)("div",{className:`UserList__collaborator UserList__collaborator--avatar-only ${j}`,children:[(0,e.jsx)(e_,{color:i,onClick:()=>{a(f)},name:f.username||"",src:f.avatarUrl,className:j}),k&&(0,e.jsx)("div",{className:"UserList__collaborator-status-icon",children:k})]})}});var e0=(0,F.$c)({name:"addToLibrary",trackEvent:{category:"element"},perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});for(let a of F.za)if(e.some(b=>b.type===a))return{captureUpdate:F.Wg.EVENTUALLY,appState:{...b,errorMessage:c8(`errors.libraryElementTypeError.${a}`)}};return d.library.getLatestLibrary().then(a=>d.library.setLibrary([{id:(0,F.sc)(),status:"unpublished",elements:e.map(F.bg),created:Date.now()},...a])).then(()=>({captureUpdate:F.Wg.EVENTUALLY,appState:{...b,toast:{message:c8("toast.addedToLibrary")}}})).catch(a=>({captureUpdate:F.Wg.EVENTUALLY,appState:{...b,errorMessage:a.message}}))},label:"labels.addToLibrary"}),e1=(a,b)=>{let c=b.scene.getSelectedElements(a);return c.length>1&&!c.some(a=>(0,F.bc)(a))},e2=(a,b,c,d)=>{var e;let f,g,h=c.scene.getSelectedElements(b),i=(0,F.xb)(a),j=(e=c.scene,f=(0,F.Uc)(h,i),g=(0,F.cj)(h),f.flatMap(a=>{let b=((a,b,{axis:c,position:d})=>{let e=(0,F.cj)(a),[f,g]="x"===c?["minX","maxX"]:["minY","maxY"],h={x:0,y:0};return"start"===d?{...h,[c]:b[f]-e[f]}:"end"===d?{...h,[c]:b[g]-e[g]}:{...h,[c]:(b[f]+b[g])/2-(e[f]+e[g])/2}})(a,g,d);return a.map(c=>{let d=(0,F.Pj)(c,{x:c.x+b.x,y:c.y+b.y});return(0,F.Pg)(c,e.getNonDeletedElementsMap(),{simultaneouslyUpdated:a}),d})})),k=(0,F.xb)(j);return(0,F.Mi)(a.map(a=>k.get(a.id)||a),b,c)};(0,F.$c)({name:"alignTop",label:"labels.alignTop",icon:F.Zd,trackEvent:{category:"element"},predicate:(a,b,c,d)=>e1(b,d),perform:(a,b,c,d)=>({appState:b,elements:e2(a,b,d,{position:"start",axis:"y"}),captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.key===F.hg.ARROW_UP,PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e1(b,d),type:"button",icon:F.Zd,onClick:()=>c(null),title:`${c8("labels.alignTop")} \u2014 ${(0,F.kb)("CtrlOrCmd+Shift+Up")}`,"aria-label":c8("labels.alignTop"),visible:(0,F.tk)((0,F.pk)(a),b)})}),(0,F.$c)({name:"alignBottom",label:"labels.alignBottom",icon:F._d,trackEvent:{category:"element"},predicate:(a,b,c,d)=>e1(b,d),perform:(a,b,c,d)=>({appState:b,elements:e2(a,b,d,{position:"end",axis:"y"}),captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.key===F.hg.ARROW_DOWN,PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e1(b,d),type:"button",icon:F._d,onClick:()=>c(null),title:`${c8("labels.alignBottom")} \u2014 ${(0,F.kb)("CtrlOrCmd+Shift+Down")}`,"aria-label":c8("labels.alignBottom"),visible:(0,F.tk)((0,F.pk)(a),b)})}),(0,F.$c)({name:"alignLeft",label:"labels.alignLeft",icon:F.$d,trackEvent:{category:"element"},predicate:(a,b,c,d)=>e1(b,d),perform:(a,b,c,d)=>({appState:b,elements:e2(a,b,d,{position:"start",axis:"x"}),captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.key===F.hg.ARROW_LEFT,PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e1(b,d),type:"button",icon:F.$d,onClick:()=>c(null),title:`${c8("labels.alignLeft")} \u2014 ${(0,F.kb)("CtrlOrCmd+Shift+Left")}`,"aria-label":c8("labels.alignLeft"),visible:(0,F.tk)((0,F.pk)(a),b)})}),(0,F.$c)({name:"alignRight",label:"labels.alignRight",icon:F.ae,trackEvent:{category:"element"},predicate:(a,b,c,d)=>e1(b,d),perform:(a,b,c,d)=>({appState:b,elements:e2(a,b,d,{position:"end",axis:"x"}),captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&a.key===F.hg.ARROW_RIGHT,PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e1(b,d),type:"button",icon:F.ae,onClick:()=>c(null),title:`${c8("labels.alignRight")} \u2014 ${(0,F.kb)("CtrlOrCmd+Shift+Right")}`,"aria-label":c8("labels.alignRight"),visible:(0,F.tk)((0,F.pk)(a),b)})}),(0,F.$c)({name:"alignVerticallyCentered",label:"labels.centerVertically",icon:F.de,trackEvent:{category:"element"},predicate:(a,b,c,d)=>e1(b,d),perform:(a,b,c,d)=>({appState:b,elements:e2(a,b,d,{position:"center",axis:"y"}),captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e1(b,d),type:"button",icon:F.de,onClick:()=>c(null),title:c8("labels.centerVertically"),"aria-label":c8("labels.centerVertically"),visible:(0,F.tk)((0,F.pk)(a),b)})}),(0,F.$c)({name:"alignHorizontallyCentered",label:"labels.centerHorizontally",icon:F.ee,trackEvent:{category:"element"},predicate:(a,b,c,d)=>e1(b,d),perform:(a,b,c,d)=>({appState:b,elements:e2(a,b,d,{position:"center",axis:"x"}),captureUpdate:F.Wg.IMMEDIATELY}),PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e1(b,d),type:"button",icon:F.ee,onClick:()=>c(null),title:c8("labels.centerHorizontally"),"aria-label":c8("labels.centerHorizontally"),visible:(0,F.tk)((0,F.pk)(a),b)})});var e3=(a,b)=>{let c=b.scene.getSelectedElements(a);return c.length>1&&!c.some(a=>(0,F.bc)(a))},e4=(a,b,c,d)=>{let e=((a,b,c)=>{let[d,e,f,g]="x"===c.axis?["minX","midX","maxX","width"]:["minY","midY","maxY","height"],h=(0,F.cj)(a),i=(0,F.Uc)(a,b).map(a=>[a,(0,F.cj)(a)]).sort((a,b)=>a[1][e]-b[1][e]),j=0;for(let a of i)j+=a[1][g];let k=(h[g]-j)/(i.length-1);if(k<0){let a=i.findIndex(a=>a[1][d]===h[d]),b=i.findIndex(a=>a[1][f]===h[f]),g=(i[b][1][e]-i[a][1][e])/(i.length-1),j=i[a][1][e];return i.flatMap(([d,f],h)=>{let i={x:0,y:0};return h!==a&&h!==b&&(j+=g,i[c.axis]=j-f[e]),d.map(a=>(0,F.Qj)(a,{x:a.x+i.x,y:a.y+i.y}))})}let l=h[d];return i.flatMap(([a,b])=>{let e={x:0,y:0};return e[c.axis]=l-b[d],l+=k,l+=b[g],a.map(a=>(0,F.Qj)(a,{x:a.x+e.x,y:a.y+e.y}))})})(c.scene.getSelectedElements(b),c.scene.getNonDeletedElementsMap(),d),f=(0,F.xb)(e);return(0,F.Mi)(a.map(a=>f.get(a.id)||a),b,c)};(0,F.$c)({name:"distributeHorizontally",label:"labels.distributeHorizontally",trackEvent:{category:"element"},perform:(a,b,c,d)=>({appState:b,elements:e4(a,b,d,{space:"between",axis:"x"}),captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>!a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.H,PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e3(b,d),type:"button",icon:F.be,onClick:()=>c(null),title:`${c8("labels.distributeHorizontally")} \u2014 ${(0,F.kb)("Alt+H")}`,"aria-label":c8("labels.distributeHorizontally"),visible:(0,F.tk)((0,F.pk)(a),b)})}),(0,F.$c)({name:"distributeVertically",label:"labels.distributeVertically",trackEvent:{category:"element"},perform:(a,b,c,d)=>({appState:b,elements:e4(a,b,d,{space:"between",axis:"y"}),captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>!a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.V,PanelComponent:({elements:a,appState:b,updateData:c,app:d})=>(0,e.jsx)(de,{hidden:!e3(b,d),type:"button",icon:F.ce,onClick:()=>c(null),title:`${c8("labels.distributeVertically")} \u2014 ${(0,F.kb)("Alt+V")}`,"aria-label":c8("labels.distributeVertically"),visible:(0,F.tk)((0,F.pk)(a),b)})});var e5=(0,F.$c)({name:"flipHorizontal",label:"labels.flipHorizontal",icon:F.xf,trackEvent:{category:"element"},perform:(a,b,c,d)=>({elements:(0,F.Mi)(e7(a,d.scene.getNonDeletedElementsMap(),b,"horizontal",d),b,d),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>a.shiftKey&&a.code===F.gg.H}),e6=(0,F.$c)({name:"flipVertical",label:"labels.flipVertical",icon:F.wf,trackEvent:{category:"element"},perform:(a,b,c,d)=>({elements:(0,F.Mi)(e7(a,d.scene.getNonDeletedElementsMap(),b,"vertical",d),b,d),appState:b,captureUpdate:F.Wg.IMMEDIATELY}),keyTest:a=>a.shiftKey&&a.code===F.gg.V&&!a[F.hg.CTRL_OR_CMD]}),e7=(a,b,c,d,e)=>{let f=e8((0,F.vk)((0,F.pk)(a),c,{includeBoundTextElement:!0,includeElementsInFrames:!0}),b,c,d,e),g=(0,F.xb)(f);return a.map(a=>g.get(a.id)||a)},e8=(a,b,c,d,e)=>{if(a.every(a=>(0,F.dc)(a)&&(a.startBinding||a.endBinding)))return a.map(a=>(0,F.Qj)(a,{startArrowhead:a.endArrowhead,endArrowhead:a.startArrowhead}));let{midX:f,midY:g}=(0,F.cj)(a);(0,F.hk)(a,b,"nw",e.scene,new Map(Array.from(b.values()).map(a=>[a.id,(0,F.bg)(a)])),{flipByX:"horizontal"===d,flipByY:"vertical"===d,shouldResizeFromCenter:!0,shouldMaintainAspectRatio:!0}),(0,F.Jg)(a.filter(F.cc),b,e.scene.getNonDeletedElements(),e.scene,(0,F.Fg)(c),[],c.zoom);let{elbowArrows:h,otherElements:i}=a.reduce((a,b)=>(0,F.ec)(b)?{...a,elbowArrows:a.elbowArrows.concat(b)}:{...a,otherElements:a.otherElements.concat(b)},{elbowArrows:[],otherElements:[]}),{midX:j,midY:k}=(0,F.cj)(a),[l,m]=[f-j,g-k];return i.forEach(a=>(0,F.Pj)(a,{x:a.x+l,y:a.y+m})),h.forEach(a=>(0,F.Pj)(a,{x:a.x+l,y:a.y+m})),a},e9=(0,F.$c)({name:"copy",label:"labels.copy",icon:F.wd,trackEvent:{category:"element"},perform:async(a,b,c,d)=>{let e=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});try{await (0,F.ki)(e,d.files,c)}catch(a){return{captureUpdate:F.Wg.EVENTUALLY,appState:{...b,errorMessage:a.message}}}return{captureUpdate:F.Wg.EVENTUALLY}},keyTest:void 0}),fa=(0,F.$c)({name:"paste",label:"labels.paste",trackEvent:{category:"element"},perform:async(a,b,c,d)=>{let e;try{e=await (0,F.li)()}catch(a){return"AbortError"!==a.name&&"NotAllowedError"!==a.name&&(console.error(`actionPaste ${a.name}: ${a.message}`),F.n?{captureUpdate:F.Wg.EVENTUALLY,appState:{...b,errorMessage:c8("hints.firefox_clipboard_write")}}:{captureUpdate:F.Wg.EVENTUALLY,appState:{...b,errorMessage:c8("errors.asyncPasteFailedOnRead")}})}try{d.pasteFromClipboard((0,F.ji)({types:e}))}catch(a){return console.error(a),{captureUpdate:F.Wg.EVENTUALLY,appState:{...b,errorMessage:c8("errors.asyncPasteFailedOnParse")}}}return{captureUpdate:F.Wg.EVENTUALLY}},keyTest:void 0}),fb=(0,F.$c)({name:"cut",label:"labels.cut",icon:F.$e,trackEvent:{category:"element"},perform:(a,b,c,d)=>(e9.perform(a,b,c,d),dg.perform(a,b,null,d)),keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.X}),fc=(0,F.$c)({name:"copyAsSvg",label:"labels.copyAsSvg",icon:F.Af,trackEvent:{category:"element"},perform:async(a,b,c,d)=>{if(!d.canvas)return{captureUpdate:F.Wg.EVENTUALLY};let{exportedElements:e,exportingFrame:f}=eG(a,b,!0);try{await eH("clipboard-svg",e,b,d.files,{...b,exportingFrame:f,name:d.getName()});let a=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});return{appState:{toast:{message:c8("toast.copyToClipboardAsSvg",{exportSelection:a.length?c8("toast.selection"):c8("toast.canvas"),exportColorScheme:b.exportWithDarkMode?c8("buttons.darkMode"):c8("buttons.lightMode")})}},captureUpdate:F.Wg.EVENTUALLY}}catch(a){return console.error(a),{appState:{errorMessage:a.message},captureUpdate:F.Wg.EVENTUALLY}}},predicate:a=>F.hi&&a.length>0,keywords:["svg","clipboard","copy"]}),fd=(0,F.$c)({name:"copyAsPng",label:"labels.copyAsPng",icon:F.Bf,trackEvent:{category:"element"},perform:async(a,b,c,d)=>{if(!d.canvas)return{captureUpdate:F.Wg.EVENTUALLY};let e=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0}),{exportedElements:f,exportingFrame:g}=eG(a,b,!0);try{return await eH("clipboard",f,b,d.files,{...b,exportingFrame:g,name:d.getName()}),{appState:{...b,toast:{message:c8("toast.copyToClipboardAsPng",{exportSelection:e.length?c8("toast.selection"):c8("toast.canvas"),exportColorScheme:b.exportWithDarkMode?c8("buttons.darkMode"):c8("buttons.lightMode")})}},captureUpdate:F.Wg.EVENTUALLY}}catch(a){return console.error(a),{appState:{...b,errorMessage:a.message},captureUpdate:F.Wg.EVENTUALLY}}},predicate:a=>F.ii&&a.length>0,keyTest:a=>a.code===F.gg.C&&a.altKey&&a.shiftKey,keywords:["png","clipboard","copy"]}),fe=(0,F.$c)({name:"copyText",label:"labels.copyText",trackEvent:{category:"element"},perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0});try{(0,F.oi)((0,F.Jj)(e))}catch{throw Error(c8("errors.copyToSystemClipboardFailed"))}return{captureUpdate:F.Wg.EVENTUALLY}},predicate:(a,b,c,d)=>F.hi&&d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0}).some(F._b),keywords:["text","clipboard","copy"]}),ff=(0,F.$c)({name:"gridMode",icon:F.Gf,keywords:["snap"],label:"labels.toggleGrid",viewMode:!0,trackEvent:{category:"canvas",predicate:a=>a.gridModeEnabled},perform(a,b){return{appState:{...b,gridModeEnabled:!this.checked(b),objectsSnapModeEnabled:!1},captureUpdate:F.Wg.EVENTUALLY}},checked:a=>a.gridModeEnabled,predicate:(a,b,c)=>void 0===c.gridModeEnabled,keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.code===F.gg.QUOTE}),fg=(0,F.$c)({name:"zenMode",label:"buttons.zenMode",icon:F.Df,paletteName:"Toggle zen mode",viewMode:!0,trackEvent:{category:"canvas",predicate:a=>!a.zenModeEnabled},perform(a,b){return{appState:{...b,zenModeEnabled:!this.checked(b)},captureUpdate:F.Wg.EVENTUALLY}},checked:a=>a.zenModeEnabled,predicate:(a,b,c)=>typeof c.zenModeEnabled>"u",keyTest:a=>!a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.Z}),fh=(0,F.$c)({name:"objectsSnapMode",label:"buttons.objectsSnapMode",icon:F.Cf,viewMode:!1,trackEvent:{category:"canvas",predicate:a=>!a.objectsSnapModeEnabled},perform(a,b){return{appState:{...b,objectsSnapModeEnabled:!this.checked(b),gridModeEnabled:!1},captureUpdate:F.Wg.EVENTUALLY}},checked:a=>a.objectsSnapModeEnabled,predicate:(a,b,c)=>typeof c.objectsSnapModeEnabled>"u",keyTest:a=>!a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.S}),fi=(0,F.$c)({name:"stats",label:"stats.fullTitle",icon:F.vf,paletteName:"Toggle stats",viewMode:!0,trackEvent:{category:"menu"},keywords:["edit","attributes","customize"],perform(a,b){return{appState:{...b,stats:{...b.stats,open:!this.checked(b)}},captureUpdate:F.Wg.EVENTUALLY}},checked:a=>a.stats.open,keyTest:a=>!a[F.hg.CTRL_OR_CMD]&&a.altKey&&a.code===F.gg.SLASH}),fj=(0,F.$c)({name:"unbindText",label:"labels.unbindText",trackEvent:{category:"element"},predicate:(a,b,c,d)=>d.scene.getSelectedElements(b).some(a=>(0,F.mc)(a)),perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b),f=d.scene.getNonDeletedElementsMap();return e.forEach(a=>{let b=(0,F.zj)(a,f);if(b){let{width:c,height:d}=(0,F.vc)(b.originalText,(0,F.cb)(b),b.lineHeight),e=(0,F.tj)(a.id);(0,F.sj)(a.id);let{x:g,y:h}=(0,F.xj)(a,b,f);(0,F.Pj)(b,{containerId:null,width:c,height:d,text:b.originalText,x:g,y:h}),(0,F.Pj)(a,{boundElements:a.boundElements?.filter(a=>a.id!==b.id),height:e||a.height})}}),{elements:a,appState:b,captureUpdate:F.Wg.IMMEDIATELY}}}),fk=(0,F.$c)({name:"bindText",label:"labels.bindText",trackEvent:{category:"element"},predicate:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b);if(2===e.length){let a=(0,F._b)(e[0])||(0,F._b)(e[1]),b;if((0,F.jc)(e[0])?b=e[0]:(0,F.jc)(e[1])&&(b=e[1]),a&&b&&null===(0,F.zj)(b,d.scene.getNonDeletedElementsMap()))return!0}return!1},perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b),f,g;(0,F._b)(e[0])&&(0,F.jc)(e[1])?(f=e[0],g=e[1]):(f=e[1],g=e[0]),(0,F.Pj)(f,{containerId:g.id,verticalAlign:F.sa.MIDDLE,textAlign:F.ta.CENTER,autoResize:!0}),(0,F.Pj)(g,{boundElements:(g.boundElements||[]).concat({type:"text",id:f.id})});let h=g.height;return(0,F.uj)(f,g,d.scene.getNonDeletedElementsMap()),(0,F.rj)(g.id,h),{elements:fl(a,g,f),appState:{...b,selectedElementIds:{[g.id]:!0}},captureUpdate:F.Wg.IMMEDIATELY}}}),fl=(a,b,c)=>{let d=a.slice(),e=d.findIndex(a=>a.id===c.id);d.splice(e,1);let f=d.findIndex(a=>a.id===b.id);return d.splice(f+1,0,c),(0,F.Mj)(d,(0,F.xb)([b,c])),d},fm=(a,b,c)=>{let d=a.slice(),e=d.findIndex(a=>a.id===b.id);d.splice(e,1);let f=d.findIndex(a=>a.id===c.id);return d.splice(f,0,b),(0,F.Mj)(d,(0,F.xb)([b,c])),d},fn=(0,F.$c)({name:"wrapTextInContainer",label:"labels.createContainerFromText",trackEvent:{category:"element"},predicate:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b),f=e.every(a=>(0,F._b)(a));return e.length>0&&f},perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b),f=a.slice(),g={};for(let a of e)if((0,F._b)(a)){let c=(0,F.Sf)({type:"rectangle",backgroundColor:b.currentItemBackgroundColor,boundElements:[...a.boundElements||[],{id:a.id,type:"text"}],angle:a.angle,fillStyle:b.currentItemFillStyle,strokeColor:b.currentItemStrokeColor,roughness:b.currentItemRoughness,strokeWidth:b.currentItemStrokeWidth,strokeStyle:b.currentItemStrokeStyle,roundness:"round"===b.currentItemRoundness?{type:(0,F.oc)("rectangle")?F.ua.ADAPTIVE_RADIUS:F.ua.PROPORTIONAL_RADIUS}:null,opacity:100,locked:!1,x:a.x-F.ra,y:a.y-F.ra,width:(0,F.Gj)(a.width,"rectangle"),height:(0,F.Gj)(a.height,"rectangle"),groupIds:a.groupIds,frameId:a.frameId});if(a.boundElements?.length){let b=a.boundElements.filter(a=>"arrow"===a.type).map(a=>a.id);f.filter(a=>b.includes(a.id)).forEach(b=>{let d=b.startBinding,e=b.endBinding;d?.elementId===a.id&&(d={...d,elementId:c.id}),e?.elementId===a.id&&(e={...e,elementId:c.id}),(d||e)&&(0,F.Pj)(b,{startBinding:d,endBinding:e},!1)})}(0,F.Pj)(a,{containerId:c.id,verticalAlign:F.sa.MIDDLE,boundElements:null,textAlign:F.ta.CENTER,autoResize:!0},!1),(0,F.uj)(a,c,d.scene.getNonDeletedElementsMap()),f=fm([...f,c],c,a),g[c.id]=!0}return{elements:f,appState:{...b,selectedElementIds:g},captureUpdate:F.Wg.IMMEDIATELY}}}),fo=!1,fp=new Map,fq=({element:a,elementsMap:b,setAppState:c,onLinkOpen:d,setToast:f,updateEmbedValidationStatus:g})=>{let h=ke(),i=ka(),j=kb(),k=a.link||"",[l,m]=(0,L.useState)(k),n=(0,L.useRef)(null),o="editor"===h.showHyperlinkPopup,p=(0,L.useCallback)(()=>{if(!n.current)return;let b=(0,F.Xc)(n.current.value)||null;if(!a.link&&b&&dw("hyperlink","create"),(0,F.Xb)(a)){if(h.activeEmbeddable?.element===a&&c({activeEmbeddable:null}),!b){(0,F.Pj)(a,{link:null}),g(a,!1);return}if((0,F.$g)(b,i.validateEmbeddable)){let{width:c,height:d}=a,e=(0,F.Zg)(b);e?.error instanceof URIError&&f({message:c8("toast.unrecognizedLinkFormat"),closable:!0});let h=e?e.intrinsicSize.w/e.intrinsicSize.h:1,i=fp.get(a.id)!==a.link;(0,F.Pj)(a,{...i?{width:e?.type==="video"?c>d?c:d*h:c,height:e?.type==="video"&&c>d?c/h:d}:{},link:b}),g(a,!0),fp.has(a.id)&&fp.delete(a.id)}else b&&f({message:c8("toast.unableToEmbed"),closable:!0}),a.link&&fp.set(a.id,a.link),(0,F.Pj)(a,{link:b}),g(a,!1)}else(0,F.Pj)(a,{link:b})},[a,f,i.validateEmbeddable,h.activeEmbeddable,c,g]);(0,L.useLayoutEffect)(()=>()=>{p()},[p]),(0,L.useEffect)(()=>{o&&n?.current&&!(j.viewport.isMobile||j.isTouchScreen)&&n.current.select()},[o,j.viewport.isMobile,j.isTouchScreen]),(0,L.useEffect)(()=>{let d=null,e=e=>{!o&&(d&&clearTimeout(d),fv(a,b,h,(0,F.Ua)(e.clientX,e.clientY))&&(d=window.setTimeout(()=>{c({showHyperlinkPopup:!1})},500)))};return window.addEventListener("pointermove",e,!1),()=>{window.removeEventListener("pointermove",e,!1),d&&clearTimeout(d)}},[h,a,o,c,b]);let q=(0,L.useCallback)(()=>{dw("hyperlink","delete"),(0,F.Pj)(a,{link:null}),c({showHyperlinkPopup:!1})},[c,a]),{x:r,y:s}=fr(a,h,b);return h.contextMenu||h.selectedElementsAreBeingDragged||h.resizingElement||h.isRotating||h.openMenu||h.viewModeEnabled?null:(0,e.jsxs)("div",{className:"excalidraw-hyperlinkContainer",style:{top:`${s}px`,left:`${r}px`,width:380,padding:5},children:[o?(0,e.jsx)("input",{className:(0,av.default)("excalidraw-hyperlinkContainer-input"),placeholder:c8("labels.link.hint"),ref:n,value:l,onChange:a=>m(a.target.value),autoFocus:!0,onKeyDown:a=>{a.stopPropagation(),a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.K&&a.preventDefault(),(a.key===F.hg.ENTER||a.key===F.hg.ESCAPE)&&(p(),c({showHyperlinkPopup:"info"}))}}):a.link?(0,e.jsx)("a",{href:(0,F.Xc)(a.link||""),className:"excalidraw-hyperlinkContainer-link",target:(0,F.Yc)(a.link)?"_self":"_blank",onClick:b=>{if(a.link&&d){let c=(0,F.Cb)("excalidraw-link",b.nativeEvent);d({...a,link:(0,F.Xc)(a.link)},c),c.defaultPrevented&&b.preventDefault()}},rel:"noopener noreferrer",children:a.link}):(0,e.jsx)("div",{className:"excalidraw-hyperlinkContainer-link",children:c8("labels.link.empty")}),(0,e.jsxs)("div",{className:"excalidraw-hyperlinkContainer__buttons",children:[!o&&(0,e.jsx)(de,{type:"button",title:c8("buttons.edit"),"aria-label":c8("buttons.edit"),label:c8("buttons.edit"),onClick:()=>{dw("hyperlink","edit","popup-ui"),c({showHyperlinkPopup:"editor"})},className:"excalidraw-hyperlinkContainer--edit",icon:F.pd}),(0,e.jsx)(de,{type:"button",title:c8("labels.linkToElement"),"aria-label":c8("labels.linkToElement"),label:c8("labels.linkToElement"),onClick:()=>{c({openDialog:{name:"elementLinkSelector",sourceElementId:a.id}})},icon:F.Pf}),k&&!(0,F.Xb)(a)&&(0,e.jsx)(de,{type:"button",title:c8("buttons.remove"),"aria-label":c8("buttons.remove"),label:c8("buttons.remove"),onClick:q,className:"excalidraw-hyperlinkContainer--remove",icon:F.ud})]})]})},fr=(a,b,c)=>{let[d,e]=(0,F.aj)(a,c),{x:f,y:g}=(0,F.mb)({sceneX:d+a.width/2,sceneY:e},b);return{x:f-b.offsetLeft-190,y:g-b.offsetTop-85}},fs=(a,b)=>{let c=(0,F.vk)(a,b);return(0,F.Xb)(c[0])?"labels.link.editEmbed":c[0]?.link?"labels.link.edit":"labels.link.create"},ft=null,fu=()=>{ft&&clearTimeout(ft),fo&&(fo=!1,es().classList.remove("excalidraw-tooltip--visible"))},fv=(a,b,c,[d,e])=>{let{x:f,y:g}=(0,F.lb)({clientX:d,clientY:e},c),h=15/c.zoom.value;if((0,F.og)(f,g,a,b))return!1;let[i,j,k]=(0,F.aj)(a,b);if(f>=i&&f<=k&&g>=j-85&&g<=j)return!1;let{x:l,y:m}=fr(a,c,b);return!(d>=l-h&&d<=l+380+10+h&&e>=m-h&&e<=m+h+10+42)},fw=(0,F.$c)({name:"hyperlink",label:(a,b)=>fs(a,b),icon:F.Id,perform:(a,b)=>"editor"!==b.showHyperlinkPopup&&{elements:a,appState:{...b,showHyperlinkPopup:"editor",openMenu:null},captureUpdate:F.Wg.IMMEDIATELY},trackEvent:{category:"hyperlink",action:"click"},keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.K,predicate:(a,b)=>1===(0,F.vk)(a,b).length,PanelComponent:({elements:a,appState:b,updateData:c})=>{let d=(0,F.vk)(a,b);return(0,e.jsx)(de,{type:"button",icon:F.Id,"aria-label":c8(fs(a,b)),title:`${(0,F.Xb)(a[0])?c8("labels.link.labelEmbed"):c8("labels.link.label")} - ${(0,F.kb)("CtrlOrCmd+K")}`,onClick:()=>c(null),selected:1===d.length&&!!d[0].link})}}),fx=a=>a.every(a=>!a.locked),fy=(0,F.$c)({name:"toggleElementLock",label:(a,b,c)=>{let d=c.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!1});return 1!==d.length||(0,F.bc)(d[0])?fx(d)?"labels.elementLock.lockAll":"labels.elementLock.unlockAll":d[0].locked?"labels.elementLock.unlock":"labels.elementLock.lock"},icon:(a,b)=>fx((0,F.vk)(b,a))?F.kd:F.jd,trackEvent:{category:"element"},predicate:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b);return e.length>0&&!e.some(a=>a.locked&&a.frameId)},perform:(a,b,c,d)=>{let e=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0,includeElementsInFrames:!0});if(!e.length)return!1;let f=fx(e),g=(0,F.xb)(e);return{elements:a.map(a=>g.has(a.id)?(0,F.Qj)(a,{locked:f}):a),appState:{...b,selectedLinearElement:f?null:b.selectedLinearElement},captureUpdate:F.Wg.IMMEDIATELY}},keyTest:(a,b,c,d)=>a.key.toLocaleLowerCase()===F.hg.L&&a[F.hg.CTRL_OR_CMD]&&a.shiftKey&&d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!1}).length>0}),fz=(0,F.$c)({name:"unlockAllElements",paletteName:"Unlock all elements",trackEvent:{category:"canvas"},viewMode:!1,icon:F.jd,predicate:(a,b)=>0===(0,F.vk)(a,b).length&&a.some(a=>a.locked),perform:(a,b)=>{let c=a.filter(a=>a.locked);return{elements:a.map(a=>a.locked?(0,F.Qj)(a,{locked:!1}):a),appState:{...b,selectedElementIds:Object.fromEntries(c.map(a=>[a.id,!0]))},captureUpdate:F.Wg.IMMEDIATELY}},label:"labels.elementLock.unlockAll"}),fA=a=>{let{closeOnClickOutside:b=!0}=a,c=dO({className:"excalidraw-modal-container"}),d=(0,L.useRef)(document.body.classList.contains("excalidraw-animations-disabled"));return c?(0,aw.createPortal)((0,e.jsxs)("div",{className:(0,av.default)("Modal",a.className,{"animations-disabled":d.current}),role:"dialog","aria-modal":"true",onKeyDown:b=>{b.key===F.hg.ESCAPE&&(b.nativeEvent.stopImmediatePropagation(),b.stopPropagation(),a.onCloseRequest())},"aria-labelledby":a.labelledBy,"data-prevent-outside-click":!0,children:[(0,e.jsx)("div",{className:"Modal__background",onClick:b?a.onCloseRequest:void 0}),(0,e.jsx)("div",{className:"Modal__content",style:{"--max-width":`${a.maxWidth}px`},tabIndex:0,children:a.children})]}),c):null},fB=O(new Map),fC=async a=>await (0,F.ri)({elements:a,appState:{exportBackground:!1,viewBackgroundColor:F.e.white},files:null,renderEmbeddables:!1,skipInliningFonts:!0}),fD=()=>{let[a]=cW(fB);return{clearLibraryCache:()=>a.clear(),deleteItemsFromLibraryCache:b=>{b.forEach(b=>a.delete(b))},svgCache:a}},fE=class{constructor(){(0,K.d)(this,"jobs",[]),(0,K.d)(this,"running",!1)}tick(){if(this.running)return;let a=this.jobs.shift();a?(this.running=!0,a.promise.resolve((0,F.Tb)(a.jobFactory,...a.args).finally(()=>{this.running=!1,this.tick()}))):this.running=!1}push(a,...b){let c=(0,F.tb)();return this.jobs.push({jobFactory:a,promise:c,args:b}),this.tick(),c}},fF=new F.Vg,fG=O({status:"loaded",isInitialized:!1,libraryItems:[]}),fH=a=>(0,F.Nb)(a),fI=(a,b)=>!a.find(a=>a.elements.length===b.elements.length&&a.elements.every((a,c)=>a.id===b.elements[c].id&&a.versionNonce===b.elements[c].versionNonce)),fJ=class{constructor(a){(0,K.d)(this,"currLibraryItems",[]),(0,K.d)(this,"prevLibraryItems",fH(this.currLibraryItems)),(0,K.d)(this,"app"),(0,K.d)(this,"updateQueue",[]),(0,K.d)(this,"getLastUpdateTask",()=>this.updateQueue[this.updateQueue.length-1]),(0,K.d)(this,"notifyListeners",()=>{if(this.updateQueue.length>0)c_.set(fG,a=>({status:"loading",libraryItems:this.currLibraryItems,isInitialized:a.isInitialized}));else{c_.set(fG,{status:"loaded",libraryItems:this.currLibraryItems,isInitialized:!0});try{let a=this.prevLibraryItems;this.prevLibraryItems=fH(this.currLibraryItems);let b=fH(this.currLibraryItems);this.app.props.onLibraryChange?.(b),fF.trigger(((a,b)=>{let c=(0,F.xb)(b),d={deletedItems:new Map,addedItems:new Map};for(let b of a)c.has(b.id)||d.deletedItems.set(b.id,b);let e=(0,F.xb)(a);for(let a of b)e.has(a.id)||d.addedItems.set(a.id,a);return d})(a,b),b)}catch(a){console.error(a)}}}),(0,K.d)(this,"destroy",()=>{this.updateQueue=[],this.currLibraryItems=[],c_.set(fB,new Map)}),(0,K.d)(this,"resetLibrary",()=>this.setLibrary([])),(0,K.d)(this,"getLatestLibrary",()=>new Promise(async a=>{try{let b=await (this.getLastUpdateTask()||this.currLibraryItems);a(this.updateQueue.length>0?this.getLatestLibrary():fH(b))}catch{return a(this.currLibraryItems)}})),(0,K.d)(this,"updateLibrary",async({libraryItems:a,prompt:b=!1,merge:c=!1,openLibraryMenu:d=!1,defaultStatus:e="unpublished"})=>(d&&this.app.setState({openSidebar:{name:F.ya.name,tab:F.wa}}),this.setLibrary(()=>new Promise(async(d,f)=>{try{let g=await ("function"==typeof a&&!(a instanceof Blob)?a(this.currLibraryItems):a),h;h=g instanceof Blob?await (0,F.xh)(g,e):(0,F.mh)(g,e),!b||window.confirm(c8("alerts.confirmAddLibrary",{numShapes:h.length}))?(b&&this.app.focusContainer(),d(c?((a,b)=>{let c=[];for(let d of b)fI(a,d)&&c.push(d);return[...c,...a]})(this.currLibraryItems,h):h)):f(new F.tc)}catch(a){f(a)}})))),(0,K.d)(this,"setLibrary",a=>{let b=new Promise(async(b,c)=>{try{await this.getLastUpdateTask(),"function"==typeof a&&(a=a(this.currLibraryItems)),this.currLibraryItems=fH(await a),b(this.currLibraryItems)}catch(a){c(a)}}).catch(a=>{if("AbortError"===a.name)return console.warn("Library update aborted by user"),this.currLibraryItems;throw a}).finally(()=>{this.updateQueue=this.updateQueue.filter(a=>a!==b),this.notifyListeners()});return this.updateQueue.push(b),this.notifyListeners(),b}),this.app=a}},fK=a=>{let b=Math.ceil(Math.sqrt(a.length)),c=[],d=c=>a.slice(c*b,c*b+b).reduce((a,b)=>{let{height:c}=(0,F.cj)(b.elements);return Math.max(a,c)},0),e=c=>{let d=0,e=0,f=0;for(let g of a){if(d%b==0&&(e=0),e===c){let{width:a}=(0,F.cj)(g.elements);f=Math.max(f,a)}d++,e++}return f},f=0,g=0,h=0,i=0,j=0,k=0,l=0;for(let m of a){j&&j%b==0&&(g+=h+50,f=0,k=0,l++),0===k&&(h=d(l)),i=e(k);let{minX:a,minY:n,width:o,height:p}=(0,F.cj)(m.elements),q=(i-o)/2,r=(h-p)/2;c.push(...m.elements.map(b=>({...b,x:b.x+f+q-a,y:b.y+g+r-n}))),f+=i+50,j++,k++}return c},fL=class a{constructor(a){(0,K.d)(this,"adapter"),this.adapter=a}static async getLibraryItems(b,c,d=!0){let e=()=>new Promise(async(a,d)=>{try{let d=await b.load({source:c});a((0,F.mh)(d?.libraryItems||[],"published"))}catch(a){d(a)}});return d?a.queue.push(e):e()}getLibraryItems(b){return a.getLibraryItems(this.adapter,b,!1)}};(0,K.d)(fL,"queue",new fE),(0,K.d)(fL,"run",async(a,b)=>{let c=new fL(a);return fL.queue.push(()=>b(c))});var fM=(0,L.forwardRef)(({children:a,gap:b,align:c,justifyContent:d,className:f,style:g},h)=>(0,e.jsx)("div",{className:(0,av.default)("Stack Stack_horizontal",f),style:{"--gap":b,alignItems:c,justifyContent:d,...g},ref:h,children:a})),fN=(0,L.forwardRef)(({children:a,gap:b,align:c,justifyContent:d,className:f,style:g},h)=>(0,e.jsx)("div",{className:(0,av.default)("Stack Stack_vertical",f),style:{"--gap":b,justifyItems:c,justifyContent:d,...g},ref:h,children:a})),fO=({theme:a,id:b,libraryReturnUrl:c})=>{let d=c||window.location.origin+window.location.pathname;return(0,e.jsx)("a",{className:"library-menu-browse-button",href:`${H.a.VITE_APP_LIBRARY_URL}?target=${window.name||"_blank"}&referrer=${d}&useHash=true&token=${b}&theme=${a}&version=${F.qa.excalidrawLibrary}`,target:"_excalidraw_libraries",children:c8("labels.libraries")})},fP=({libraryReturnUrl:a,theme:b,id:c,style:d,children:f,className:g})=>(0,e.jsxs)("div",{className:(0,av.default)("library-menu-control-buttons",g),style:d,children:[(0,e.jsx)(fO,{id:c,libraryReturnUrl:a,theme:b}),f]}),fQ=/({{[\w-]+}})|(<[\w-]+>)|(<\/[\w-]+>)/g,fR=/{{([\w-]+)}}/,fS=/<([\w-]+)>/,fT=/<\/([\w-]+)>/,fU=({i18nKey:a,children:b,...c})=>{var d;let e,{t:f}=da();return L.default.createElement(L.default.Fragment,{},...(d=f(a),e=[{name:"",children:[]}],d.split(fQ).filter(Boolean).forEach(a=>{let b=a.match(fS),f=a.match(fT),g=a.match(fR);if(null!==b){let a=b[1];c.hasOwnProperty(a)?e.push({name:a,children:[]}):console.warn(`Trans: missed to pass in prop ${a} for interpolating ${d}`)}else if(null!==f)if(f[1]===e[e.length-1].name){let a=e.pop(),b=L.default.createElement(L.default.Fragment,{},...a.children),d=c[a.name];"function"==typeof d&&e[e.length-1].children.push(d(b))}else console.warn(`Trans: unexpected end tag ${a} for interpolating ${d}`);else if(null!==g){let a=g[1];c.hasOwnProperty(a)?e[e.length-1].children.push(c[a]):console.warn(`Trans: key ${a} not in props for interpolating ${d}`)}else e[e.length-1].children.push(a)}),1!==e.length&&console.warn(`Trans: stack not empty for interpolating ${d}`),e[0].children))},fV=({label:a,onClick:b,className:c,children:d,actionType:f,type:g="button",isLoading:h,...i})=>{let j=f?`Dialog__action-button--${f}`:"";return(0,e.jsxs)("button",{className:(0,av.default)("Dialog__action-button",j,c),type:g,"aria-label":a,onClick:b,...i,children:[d&&(0,e.jsx)("div",{style:h?{visibility:"hidden"}:{},children:d}),(0,e.jsx)("div",{style:h?{visibility:"hidden"}:{},children:a}),h&&(0,e.jsx)("div",{style:{position:"absolute",inset:0},children:(0,e.jsx)(db,{})})]})},fW=a=>{let{onConfirm:b,onCancel:c,children:d,confirmText:f=c8("buttons.confirm"),cancelText:g=c8("buttons.cancel"),className:h="",...i}=a,j=kf(),k=cX(gd),{container:l}=kc();return(0,e.jsxs)(gi,{onCloseRequest:c,size:"small",...i,className:`confirm-dialog ${h}`,children:[d,(0,e.jsxs)("div",{className:"confirm-dialog-buttons",children:[(0,e.jsx)(fV,{label:g,onClick:()=>{j({openMenu:null}),k(!1),(0,aw.flushSync)(()=>{c()}),l?.focus()}}),(0,e.jsx)(fV,{label:f,onClick:()=>{j({openMenu:null}),k(!1),(0,aw.flushSync)(()=>{b()}),l?.focus()},actionType:"danger"})]})]})},fX=class{static has(a){try{return!!window.localStorage.getItem(a)}catch(a){return console.warn(`localStorage.getItem error: ${a.message}`),!1}}static get(a){try{let b=window.localStorage.getItem(a);return b?JSON.parse(b):null}catch(a){return console.warn(`localStorage.getItem error: ${a.message}`),null}}};(0,K.d)(fX,"set",(a,b)=>{try{return window.localStorage.setItem(a,JSON.stringify(b)),!0}catch(a){return console.warn(`localStorage.setItem error: ${a.message}`),!1}}),(0,K.d)(fX,"delete",a=>{try{window.localStorage.removeItem(a)}catch(a){console.warn(`localStorage.removeItem error: ${a.message}`)}});var fY=async a=>{let b=Math.round(8),c=Math.max(Math.round(2),2),d=(0,F.hb)(a,6),e=document.createElement("canvas");e.width=128*d[0].length+(d[0].length+1)*(2*b)-2*b,e.height=128*d.length+(d.length+1)*(2*b)-2*b;let f=e.getContext("2d");for(let[d,g]of(f.fillStyle=bN.default.white,f.fillRect(0,0,e.width,e.height),a.entries())){let a=await (0,F.pi)({elements:g.elements,files:null,maxWidthOrHeight:128}),{width:e,height:h}=a,i=Math.floor(d/6)*(128+2*b),j=d%6*(128+2*b);f.drawImage(a,j+(128-e)/2+b,i+(128-h)/2+b),f.lineWidth=c,f.strokeStyle=bN.default.gray[4],f.strokeRect(j+b/2,i+b/2,128+b,128+b)}return await (0,F.Eh)(new File([await (0,F.yh)(e)],"preview",{type:F.T.png}),{outputType:F.T.jpg,maxWidthOrHeight:5e3})},fZ=({libItem:a,appState:b,index:c,onChange:d,onRemove:f})=>{let g=(0,L.useRef)(null),h=(0,L.useRef)(null);return(0,L.useEffect)(()=>{let c=g.current;c&&(async()=>{c.innerHTML=(await (0,F.ri)({elements:a.elements,appState:{...b,viewBackgroundColor:bN.default.white,exportBackground:!0},files:null,skipInliningFonts:!0})).outerHTML})()},[a.elements,b]),(0,e.jsxs)("div",{className:"single-library-item",children:["published"===a.status&&(0,e.jsx)("span",{className:"single-library-item-status",children:c8("labels.statusPublished")}),(0,e.jsx)("div",{ref:g,className:"single-library-item__svg"}),(0,e.jsx)(de,{"aria-label":c8("buttons.remove"),type:"button",icon:F.ge,className:"single-library-item--remove",onClick:f.bind(null,a.id),title:c8("buttons.remove")}),(0,e.jsxs)("div",{style:{display:"flex",margin:"0.8rem 0",width:"100%",fontSize:"14px",fontWeight:500,flexDirection:"column"},children:[(0,e.jsxs)("label",{style:{display:"flex",justifyContent:"space-between",flexDirection:"column"},children:[(0,e.jsxs)("div",{style:{padding:"0.5em 0"},children:[(0,e.jsx)("span",{style:{fontWeight:500,color:bN.default.gray[6]},children:c8("publishDialog.itemName")}),(0,e.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,e.jsx)("input",{type:"text",ref:h,style:{width:"80%",padding:"0.2rem"},defaultValue:a.name,placeholder:"Item name",onChange:a=>{d(a.target.value,c)}})]}),(0,e.jsx)("span",{className:"error",children:a.error})]})]})},f$=({onClose:a,libraryItems:b,appState:c,onSuccess:d,onError:f,updateItemsInStorage:g,onRemove:h})=>{let i,[j,k]=(0,L.useState)({authorName:"",githubHandle:"",name:"",description:"",twitterHandle:"",website:""}),[l,m]=(0,L.useState)(!1);(0,L.useEffect)(()=>{let a=fX.get(F.Ba.PUBLISH_LIBRARY);a&&k(a)},[]);let[n,o]=(0,L.useState)(b.slice());(0,L.useEffect)(()=>{o(b.slice())},[b]);let p=a=>{k({...j,[a.target.name]:a.target.value})},q=async a=>{a.preventDefault(),m(!0);let b=[],c=!1;if(n.forEach(a=>{let d="";a.name||(d=c8("publishDialog.errors.required"),c=!0),b.push({...a,error:d})}),c){o(b),m(!1);return}let e=await fY(n),g=new Blob([JSON.stringify({type:F.V.excalidrawLibrary,version:F.qa.excalidrawLibrary,source:F.W,libraryItems:n},null,2)],{type:"application/json"}),h=new FormData;h.append("excalidrawLib",g),h.append("previewImage",e),h.append("previewImageType",e.type),h.append("title",j.name),h.append("authorName",j.authorName),h.append("githubHandle",j.githubHandle),h.append("name",j.name),h.append("description",j.description),h.append("twitterHandle",j.twitterHandle),h.append("website",j.website),fetch(`${H.a.VITE_APP_LIBRARY_BACKEND}/submit`,{method:"post",body:h}).then(a=>a.ok?a.json().then(({url:a})=>{fX.delete(F.Ba.PUBLISH_LIBRARY),d({url:a,authorName:j.authorName,items:n})}):a.json().catch(()=>{throw Error(a.statusText||"something went wrong")}).then(b=>{throw Error(b.message||a.statusText||"something went wrong")}),a=>{console.error(a),f(a),m(!1)}).catch(a=>{console.error(a),f(a),m(!1)})},r=(0,L.useCallback)(()=>{g(n),fX.set(F.Ba.PUBLISH_LIBRARY,j),a()},[n,a,g,j]),s=!!b.length,t=b.some(a=>"published"===a.status);return(0,e.jsx)(gi,{onCloseRequest:r,title:c8("publishDialog.title"),className:"publish-library",children:s?(0,e.jsxs)("form",{onSubmit:q,children:[(0,e.jsx)("div",{className:"publish-library-note",children:(0,e.jsx)(fU,{i18nKey:"publishDialog.noteDescription",link:a=>(0,e.jsx)("a",{href:"https://libraries.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:a})})}),(0,e.jsx)("span",{className:"publish-library-note",children:(0,e.jsx)(fU,{i18nKey:"publishDialog.noteGuidelines",link:a=>(0,e.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries#guidelines",target:"_blank",rel:"noopener noreferrer",children:a})})}),(0,e.jsx)("div",{className:"publish-library-note",children:c8("publishDialog.noteItems")}),t&&(0,e.jsx)("span",{className:"publish-library-note publish-library-warning",children:c8("publishDialog.republishWarning")}),(i=[],n.forEach((a,b)=>{i.push((0,e.jsx)("div",{className:"single-library-item-wrapper",children:(0,e.jsx)(fZ,{libItem:a,appState:c,index:b,onChange:(a,b)=>{let c=n.slice();c[b].name=a,o(c)},onRemove:h})},b))}),(0,e.jsx)("div",{className:"selected-library-items",children:i})),(0,e.jsxs)("div",{className:"publish-library__fields",children:[(0,e.jsxs)("label",{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("span",{children:c8("publishDialog.libraryName")}),(0,e.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,e.jsx)("input",{type:"text",name:"name",required:!0,value:j.name,onChange:p,placeholder:c8("publishDialog.placeholder.libraryName")})]}),(0,e.jsxs)("label",{style:{alignItems:"flex-start"},children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("span",{children:c8("publishDialog.libraryDesc")}),(0,e.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,e.jsx)("textarea",{name:"description",rows:4,required:!0,value:j.description,onChange:p,placeholder:c8("publishDialog.placeholder.libraryDesc")})]}),(0,e.jsxs)("label",{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("span",{children:c8("publishDialog.authorName")}),(0,e.jsx)("span",{"aria-hidden":"true",className:"required",children:"*"})]}),(0,e.jsx)("input",{type:"text",name:"authorName",required:!0,value:j.authorName,onChange:p,placeholder:c8("publishDialog.placeholder.authorName")})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:c8("publishDialog.githubUsername")}),(0,e.jsx)("input",{type:"text",name:"githubHandle",value:j.githubHandle,onChange:p,placeholder:c8("publishDialog.placeholder.githubHandle")})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:c8("publishDialog.twitterUsername")}),(0,e.jsx)("input",{type:"text",name:"twitterHandle",value:j.twitterHandle,onChange:p,placeholder:c8("publishDialog.placeholder.twitterHandle")})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:c8("publishDialog.website")}),(0,e.jsx)("input",{type:"text",name:"website",pattern:"https?://.+",title:c8("publishDialog.errors.website"),value:j.website,onChange:p,placeholder:c8("publishDialog.placeholder.website")})]}),(0,e.jsx)("span",{className:"publish-library-note",children:(0,e.jsx)(fU,{i18nKey:"publishDialog.noteLicense",link:a=>(0,e.jsx)("a",{href:"https://github.com/excalidraw/excalidraw-libraries/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:a})})})]}),(0,e.jsxs)("div",{className:"publish-library__buttons",children:[(0,e.jsx)(fV,{label:c8("buttons.cancel"),onClick:r,"data-testid":"cancel-clear-canvas-button"}),(0,e.jsx)(fV,{type:"submit",label:c8("buttons.submit"),actionType:"primary",isLoading:l})]})]}):(0,e.jsx)("p",{style:{padding:"1em",textAlign:"center",fontWeight:500},children:c8("publishDialog.atleastOneLibItem")})})},f_=({className:a="",children:b,onToggle:c,title:d,...f})=>{let g=kb(),h=(0,av.default)(`dropdown-menu-button ${a}`,"zen-mode-transition",{"dropdown-menu-button--mobile":g.editor.isMobile}).trim();return(0,e.jsx)("button",{"data-prevent-outside-click":!0,className:h,onClick:c,type:"button","data-testid":"dropdown-menu-button",title:d,...f,children:b})};f_.displayName="DropdownMenuTrigger";var f0=()=>(0,e.jsx)("div",{style:{height:"1px",backgroundColor:"var(--default-border-color)",margin:".5rem 0"}});f0.displayName="DropdownMenuSeparator";var f1=({children:a,onClickOutside:b,className:c="",onSelect:d,style:f})=>{let g=kb(),h=(0,L.useRef)(null),i=dQ({onClickOutside:b});dP(h,()=>{i.onClickOutside?.()}),(0,L.useEffect)(()=>{let a=a=>{a.key===F.hg.ESCAPE&&(a.stopImmediatePropagation(),i.onClickOutside?.())},b={capture:!0};return document.addEventListener("keydown",a,b),()=>{document.removeEventListener("keydown",a,b)}},[i]);let j=(0,av.default)(`dropdown-menu ${c}`,{"dropdown-menu--mobile":g.editor.isMobile}).trim();return(0,e.jsx)(d7.Provider,{value:{onSelect:d},children:(0,e.jsx)("div",{ref:h,className:j,style:f,"data-testid":"dropdown-menu",children:g.editor.isMobile?(0,e.jsx)(fN,{className:"dropdown-menu-container",children:a}):(0,e.jsx)(dU,{className:"dropdown-menu-container",padding:2,style:{zIndex:2},children:a})})})};f1.displayName="DropdownMenuContent";var f2=({icon:a,shortcut:b,href:c,children:d,onSelect:f,className:g="",selected:h,rel:i="noreferrer",...j})=>{let k=d9(j.onClick,f);return(0,e.jsx)("a",{...j,href:c,target:"_blank",rel:"noreferrer",className:d8(g,h),title:j.title??j["aria-label"],onClick:k,children:(0,e.jsx)(ea,{icon:a,shortcut:b,children:d})})};f2.displayName="DropdownMenuItemLink";var f3=({children:a,open:b})=>{let c=L.default.Children.toArray(a).find(a=>L.default.isValidElement(a)&&"string"!=typeof a.type&&a?.type.displayName&&"DropdownMenuTrigger"===a.type.displayName)||null,d=L.default.Children.toArray(a).find(a=>L.default.isValidElement(a)&&"string"!=typeof a.type&&a?.type.displayName&&"DropdownMenuContent"===a.type.displayName)||null;return(0,e.jsxs)(e.Fragment,{children:[c,b&&d]})};f3.Trigger=f_,f3.Content=f1,f3.Item=eb,f3.ItemLink=f2,f3.ItemCustom=({children:a,className:b="",selected:c,...d})=>(0,e.jsx)("div",{...d,className:`dropdown-menu-item-base dropdown-menu-item-custom ${b} ${c?"dropdown-menu-item--selected":""}`.trim(),children:a}),f3.Group=d6,f3.Separator=f0,f3.displayName="DropdownMenu";var f4=({setAppState:a,selectedItems:b,library:c,onRemoveFromLibrary:d,resetLibrary:f,onSelectItems:g,appState:h,className:i})=>{let j,k,l,[m]=cW(fG),[n,o]=cW(gd),[p,q]=(0,L.useState)(!1),r=!!b.length,s=r?m.libraryItems.filter(a=>b.includes(a.id)):m.libraryItems,t=r?c8("buttons.remove"):c8("buttons.resetLibrary"),[u,v]=(0,L.useState)(!1),[w,x]=(0,L.useState)(null),y=(0,L.useCallback)(()=>(0,e.jsxs)(gi,{onCloseRequest:()=>x(null),title:c8("publishSuccessDialog.title"),className:"publish-library-success",size:"small",children:[(0,e.jsx)("p",{children:(0,e.jsx)(fU,{i18nKey:"publishSuccessDialog.content",authorName:w.authorName,link:a=>(0,e.jsx)("a",{href:w?.url,target:"_blank",rel:"noopener noreferrer",children:a})})}),(0,e.jsx)(de,{type:"button",title:c8("buttons.close"),"aria-label":c8("buttons.close"),label:c8("buttons.close"),onClick:()=>x(null),"data-testid":"publish-library-success-close",className:"publish-library-success-close"})]}),[x,w]),z=async()=>{try{await c.updateLibrary({libraryItems:(0,F.fh)({description:"Excalidraw library files"}),merge:!0,openLibraryMenu:!0})}catch(b){if(b?.name==="AbortError")return void console.warn(b);a({errorMessage:c8("errors.importLibraryError")})}},A=async()=>{let b=r?s:await c.getLatestLibrary();(0,F.Nh)(b).catch(F.pb).catch(b=>{a({errorMessage:b.message})})};return(0,e.jsxs)("div",{className:(0,av.default)("library-menu-dropdown-container",i),children:[(0,e.jsxs)(f3,{open:n,children:[(0,e.jsx)(f3.Trigger,{onToggle:()=>o(!n),children:F.hd}),(0,e.jsxs)(f3.Content,{onClickOutside:()=>o(!1),onSelect:()=>o(!1),className:"library-menu",children:[!r&&(0,e.jsx)(f3.Item,{onSelect:z,icon:F.Ld,"data-testid":"lib-dropdown--load",children:c8("buttons.load")}),!!s.length&&(0,e.jsx)(f3.Item,{onSelect:A,icon:F.Ad,"data-testid":"lib-dropdown--export",children:c8("buttons.export")}),!!s.length&&(0,e.jsx)(f3.Item,{onSelect:()=>q(!0),icon:F.ud,children:t}),r&&(0,e.jsx)(f3.Item,{icon:F.Xe,onSelect:()=>v(!0),"data-testid":"lib-dropdown--remove",children:c8("buttons.publishLibrary")})]})]}),b.length>0&&(0,e.jsx)("div",{className:"library-actions-counter",children:b.length}),p&&(j=b.length?c8("alerts.removeItemsFromsLibrary",{count:b.length}):c8("alerts.resetLibrary"),k=b.length?c8("confirmDialog.removeItemsFromLib"):c8("confirmDialog.resetLibrary"),(0,e.jsx)(fW,{onConfirm:()=>{b.length?d():f(),q(!1)},onCancel:()=>{q(!1)},title:k,children:(0,e.jsx)("p",{children:j})})),u&&(0,e.jsx)(f$,{onClose:()=>v(!1),libraryItems:(l=m.libraryItems,l.filter(a=>b.includes(a.id))),appState:h,onSuccess:a=>{var d;let e;return d=m.libraryItems,v(!1),x({url:a.url,authorName:a.authorName}),void((e=d.slice()).forEach(a=>{b.includes(a.id)&&(a.status="published")}),c.setLibrary(e))},onError:a=>window.alert(a),updateItemsInStorage:()=>c.setLibrary(m.libraryItems),onRemove:a=>g(b.filter(b=>b!==a))}),w&&y()]})},f5=({selectedItems:a,onSelectItems:b,className:c})=>{let{library:d}=j9(),{clearLibraryCache:f,deleteItemsFromLibraryCache:g}=fD(),h=L.default.useContext(dN),i=kf(),[j]=cW(fG),k=async c=>{let e=c.filter(b=>!a.includes(b.id));d.setLibrary(e).catch(()=>{i({errorMessage:c8("alerts.errorRemovingFromLibrary")})}),g(a),b([])};return(0,e.jsx)(f4,{appState:h,setAppState:i,selectedItems:a,onSelectItems:b,library:d,onRemoveFromLibrary:()=>k(j.libraryItems),resetLibrary:()=>{d.resetLibrary(),f()},className:c})},f6=(0,L.memo)(({id:a,elements:b,isPending:c,onClick:d,selected:f,onToggle:g,onDrag:h,svgCache:i})=>{let j=(0,L.useRef)(null),k=((a,b,c)=>{let[d,e]=(0,L.useState)();return(0,L.useEffect)(()=>{if(b)if(a){let d=c.get(a);d?e(d):(async()=>{let d=await fC(b);d.querySelector(".style-fonts")?.remove(),d&&(c.set(a,d),e(d))})()}else(async()=>{e(await fC(b))})()},[a,b,c,e]),d})(a,b,i);(0,L.useEffect)(()=>{let a=j.current;if(a)return k&&(a.innerHTML=k.outerHTML),()=>{a.innerHTML=""}},[k]);let[l,m]=(0,L.useState)(!1),n=kb().editor.isMobile,o=c&&(0,e.jsx)("div",{className:"library-unit__adder",children:F.gd});return(0,e.jsxs)("div",{className:(0,av.default)("library-unit",{"library-unit__active":b,"library-unit--hover":b&&l,"library-unit--selected":f,"library-unit--skeleton":!k}),onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[(0,e.jsx)("div",{className:(0,av.default)("library-unit__dragger",{"library-unit__pulse":!!c}),ref:j,draggable:!!b,onClick:b||c?b=>{a&&b.shiftKey?g(a,b):d(a)}:void 0,onDragStart:b=>{a?(m(!1),h(a,b)):b.preventDefault()}}),o,a&&b&&(l||n||f)&&(0,e.jsx)(eJ,{checked:f,onChange:(b,c)=>g(a,c),className:"library-unit__checkbox"})]})}),f7=()=>(0,e.jsx)("div",{className:"library-unit library-unit--skeleton"}),f8=L.default.useTransition||function(){return[!1,(0,L.useCallback)(a=>a(),[])]},f9=({children:a})=>(0,e.jsx)("div",{className:"library-menu-items-container__grid",children:a}),ga=(0,L.memo)(({items:a,onItemSelectToggle:b,onItemDrag:c,isItemSelected:d,onClick:f,svgCache:g,itemsRenderedPerBatch:h})=>{let[,i]=f8(),[j,k]=(0,L.useState)(0);return(0,L.useEffect)(()=>{j<a.length&&i(()=>{k(j+h)})},[j,a.length,i,h]),(0,e.jsx)(e.Fragment,{children:a.map((a,h)=>h<j?(0,e.jsx)(f6,{elements:a?.elements,isPending:!a?.id&&!!a?.elements,onClick:f,svgCache:g,id:a?.id,selected:d(a.id),onToggle:b,onDrag:c},a?.id??h):(0,e.jsx)(f7,{},h))})}),gb=O(0);function gc({isLoading:a,libraryItems:b,onAddToLibrary:c,onInsertLibraryItems:d,pendingElements:f,theme:g,id:h,libraryReturnUrl:i,onSelectItems:j,selectedItems:k}){let l=(0,L.useRef)(null),m=(a=>{let[b,c]=cW(gb);return(0,L.useEffect)(()=>{let{current:b}=a;if(!b)return;let d=(0,bO.default)(()=>{let{scrollTop:a}=b;c(a)},200);return b.addEventListener("scroll",d),()=>{d.cancel(),b.removeEventListener("scroll",d)}},[a,c]),b})(l);(0,L.useEffect)(()=>{m>0&&l.current?.scrollTo(0,m)},[]);let{svgCache:n}=fD(),o=(0,L.useMemo)(()=>b.filter(a=>"published"!==a.status),[b]),p=(0,L.useMemo)(()=>b.filter(a=>"published"===a.status),[b]),q=!b.length&&!f.length,r=!f.length&&!o.length&&!p.length,[s,t]=(0,L.useState)(null),u=(0,L.useCallback)((a,b)=>{let c=!k.includes(a),d=[...o,...p];if(c){if(b.shiftKey&&s){let b=d.findIndex(a=>a.id===s),c=d.findIndex(b=>b.id===a);if(-1===b||-1===c)return void j([...k,a]);let e=(0,F.xb)(k);j(d.reduce((a,d,f)=>((f>=b&&f<=c||e.has(d.id))&&a.push(d.id),a),[]))}else j([...k,a]);t(a)}else t(null),j(k.filter(b=>b!==a))},[s,j,p,k,o]),v=(0,L.useCallback)(a=>(k.includes(a)?b.filter(a=>k.includes(a.id)):b.filter(b=>b.id===a)).map(a=>({...a,elements:(0,F.dg)(a.elements,{randomizeSeed:!0})})),[b,k]),w=(0,L.useCallback)((a,b)=>{b.dataTransfer.setData(F.T.excalidrawlib,(0,F.Mh)(v(a)))},[v]),x=(0,L.useCallback)(a=>!!a&&k.includes(a),[k]),y=(0,L.useCallback)(()=>{c(f)},[f,c]),z=(0,L.useCallback)(a=>{a&&d(v(a))},[v,d]),A=n.size>=b.length?64:17;return(0,e.jsxs)("div",{className:"library-menu-items-container",style:f.length||o.length||p.length?{justifyContent:"flex-start"}:{borderBottom:0},children:[!r&&(0,e.jsx)(f5,{selectedItems:k,onSelectItems:j,className:"library-menu-dropdown-container--in-heading"}),(0,e.jsxs)(fN,{className:"library-menu-items-container__items",align:"start",gap:1,style:{flex:p.length>0?1:"0 1 auto",marginBottom:0},ref:l,children:[(0,e.jsxs)(e.Fragment,{children:[!r&&(0,e.jsx)("div",{className:"library-menu-items-container__header",children:c8("labels.personalLib")}),a&&(0,e.jsx)("div",{style:{position:"absolute",top:"var(--container-padding-y)",right:"var(--container-padding-x)",transform:"translateY(50%)"},children:(0,e.jsx)(db,{})}),f.length||o.length?(0,e.jsxs)(f9,{children:[f.length>0&&(0,e.jsx)(ga,{itemsRenderedPerBatch:A,items:[{id:null,elements:f}],onItemSelectToggle:u,onItemDrag:w,onClick:y,isItemSelected:x,svgCache:n}),(0,e.jsx)(ga,{itemsRenderedPerBatch:A,items:o,onItemSelectToggle:u,onItemDrag:w,onClick:z,isItemSelected:x,svgCache:n})]}):(0,e.jsxs)("div",{className:"library-menu-items__no-items",children:[(0,e.jsx)("div",{className:"library-menu-items__no-items__label",children:c8("library.noItems")}),(0,e.jsx)("div",{className:"library-menu-items__no-items__hint",children:p.length>0?c8("library.hint_emptyPrivateLibrary"):c8("library.hint_emptyLibrary")})]})]}),(0,e.jsxs)(e.Fragment,{children:[(p.length>0||f.length>0||o.length>0)&&(0,e.jsx)("div",{className:"library-menu-items-container__header library-menu-items-container__header--excal",children:c8("labels.excalidrawLib")}),p.length>0?(0,e.jsx)(f9,{children:(0,e.jsx)(ga,{itemsRenderedPerBatch:A,items:p,onItemSelectToggle:u,onItemDrag:w,onClick:z,isItemSelected:x,svgCache:n})}):o.length>0?(0,e.jsx)("div",{style:{margin:"1rem 0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",fontSize:".9rem"},children:c8("library.noItems")}):null]}),q&&(0,e.jsx)(fP,{style:{padding:"16px 0",width:"100%"},id:h,libraryReturnUrl:i,theme:g,children:(0,e.jsx)(f5,{selectedItems:k,onSelectItems:j})})]})]})}var gd=O(!1),ge=({children:a})=>(0,e.jsx)("div",{className:"layer-ui__library",children:a}),gf=(0,L.memo)(({onInsertLibraryItems:a,pendingElements:b,onAddToLibrary:c,setAppState:d,libraryReturnUrl:f,library:g,id:h,theme:i,selectedItems:j,onSelectItems:k})=>{let[l]=cW(fG),m=(0,L.useCallback)(a=>{(async(a,b)=>{for(let b of(dw("element","addToLibrary","ui"),F.za))if(a.some(a=>a.type===b))return d({errorMessage:c8(`errors.libraryElementTypeError.${b}`)});let e=[{status:"unpublished",elements:a,id:(0,F.sc)(),created:Date.now()},...b];c(),g.setLibrary(e).catch(()=>{d({errorMessage:c8("alerts.errorAddingToLibrary")})})})(a,l.libraryItems)},[c,g,d,l.libraryItems]),n=(0,L.useMemo)(()=>l.libraryItems,[l]);if("loading"===l.status&&!l.isInitialized)return(0,e.jsx)(ge,{children:(0,e.jsx)("div",{className:"layer-ui__library-message",children:(0,e.jsxs)("div",{children:[(0,e.jsx)(db,{size:"2em"}),(0,e.jsx)("span",{children:c8("labels.libraryLoadingMessage")})]})})});let o=l.libraryItems.length>0||b.length>0;return(0,e.jsxs)(ge,{children:[(0,e.jsx)(gc,{isLoading:"loading"===l.status,libraryItems:n,onAddToLibrary:m,onInsertLibraryItems:a,pendingElements:b,id:h,libraryReturnUrl:f,theme:i,onSelectItems:k,selectedItems:j}),o&&(0,e.jsx)(fP,{className:"library-menu-control-buttons--at-bottom",style:{padding:"16px 12px 0 12px"},id:h,libraryReturnUrl:f,theme:i})]})}),gg=(a,b)=>({elements:a,pending:(0,F.vk)(a,{selectedElementIds:b},{includeBoundTextElement:!0,includeElementsInFrames:!0}),selectedElementIds:b}),gh=(0,L.memo)(()=>{let a=j9(),{onInsertElements:b}=a,c=ka(),d=L.default.useContext(dN),f=kf(),[g,h]=(0,L.useState)([]),i=(0,L.useMemo)(()=>a.library,[a.library]),j=((a,b)=>{let c=kd(),[d,e]=(0,L.useState)(()=>gg(c,a.selectedElementIds)),f=(0,L.useRef)(new Map);return(0,L.useEffect)(()=>{for(let a of d.pending)f.current.set(a.id,a.version)},[d.pending]),(0,L.useEffect)(()=>{"up"===b.state.cursorButton&&"selection"===b.state.activeTool.type&&e(d=>{if(!(0,F.Hb)(d.selectedElementIds,a.selectedElementIds))return f.current.clear(),gg(c,a.selectedElementIds);let e=b.scene.getNonDeletedElementsMap();for(let b of Object.keys(a.selectedElementIds)){let d=e.get(b)?.version;if(d&&d!==f.current.get(b))return gg(c,a.selectedElementIds)}return d})},[b,b.state.cursorButton,b.state.activeTool.type,a.selectedElementIds,c]),d.pending})(d,a),k=(0,L.useCallback)(a=>{b(fK(a))},[b]),l=(0,L.useCallback)(()=>{f({selectedElementIds:{},selectedGroupIds:{},activeEmbeddable:null})},[f]);return(0,e.jsx)(gf,{pendingElements:j,onInsertLibraryItems:k,onAddToLibrary:l,setAppState:f,libraryReturnUrl:c.libraryReturnUrl,library:i,id:a.id,theme:d.theme,selectedItems:g,onSelectItems:h})}),gi=a=>{let[b,c]=(()=>{let[a,b]=(0,L.useState)(null);return[a,(0,L.useCallback)(a=>b(a),[])]})(),[d]=(0,L.useState)(document.activeElement),{id:f}=kc(),g=kb().viewport.isMobile;(0,L.useEffect)(()=>{if(!b)return;let c=(0,F.Gb)(b);setTimeout(()=>{c.length>0&&!1!==a.autofocus&&(c[1]||c[0]).focus()});let d=a=>{if(a.key===F.hg.TAB){let c=(0,F.Gb)(b),{activeElement:d}=document,e=c.findIndex(a=>a===d);0===e&&a.shiftKey?(c[c.length-1].focus(),a.preventDefault()):e!==c.length-1||a.shiftKey||(c[0].focus(),a.preventDefault())}};return b.addEventListener("keydown",d),()=>b.removeEventListener("keydown",d)},[b,a.autofocus]);let h=kf(),i=cX(gd),j=()=>{h({openMenu:null}),i(!1),d.focus(),a.onCloseRequest()};return(0,e.jsx)(fA,{className:(0,av.default)("Dialog",a.className,{"Dialog--fullscreen":g}),labelledBy:"dialog-title",maxWidth:function(a){if(a&&"number"==typeof a)return a;switch(a){case"small":return 550;case"wide":return 1024;default:return 800}}(a.size),onCloseRequest:j,closeOnClickOutside:a.closeOnClickOutside,children:(0,e.jsxs)(dU,{ref:c,children:[a.title&&(0,e.jsx)("h2",{id:`${f}-dialog-title`,className:"Dialog__title",children:(0,e.jsx)("span",{className:"Dialog__titleContent",children:a.title})}),g&&(0,e.jsx)("button",{className:"Dialog__close",onClick:j,title:c8("buttons.close"),"aria-label":c8("buttons.close"),type:"button",children:F.ge}),(0,e.jsx)("div",{className:"Dialog__content",children:a.children})]})})},gj=({type:a="button",onSelect:b,selected:c,children:d,className:f="",...g})=>(0,e.jsx)("button",{onClick:(0,F.Ib)(g.onClick,a=>{b()}),type:a,className:(0,av.default)("excalidraw-button",f,{selected:c}),...g,children:d}),gk=(0,L.forwardRef)(({onChange:a,label:b,fullWidth:c,placeholder:d,readonly:f,selectOnRender:g,onKeyDown:h,isRedacted:i=!1,icon:j,className:k,...l},m)=>{let n=(0,L.useRef)(null);(0,L.useImperativeHandle)(m,()=>n.current),(0,L.useLayoutEffect)(()=>{g&&(n.current?.focus(),n.current?.select())},[g]);let[o,p]=(0,L.useState)(!1);return(0,e.jsxs)("div",{className:(0,av.default)("ExcTextField",k,{"ExcTextField--fullWidth":c,"ExcTextField--hasIcon":!!j}),onClick:()=>{n.current?.focus()},children:[j,b&&(0,e.jsx)("div",{className:"ExcTextField__label",children:b}),(0,e.jsxs)("div",{className:(0,av.default)("ExcTextField__input",{"ExcTextField__input--readonly":f}),children:[(0,e.jsx)("input",{className:(0,av.default)({"is-redacted":"value"in l&&l.value&&i&&!o}),readOnly:f,value:"value"in l?l.value:void 0,defaultValue:"defaultValue"in l?l.defaultValue:void 0,placeholder:d,ref:n,onChange:b=>a?.(b.target.value),onKeyDown:h}),i&&(0,e.jsx)(gj,{onSelect:()=>p(!o),style:{border:0,userSelect:"none"},children:o?F.mf:F.lf})]})]})}),gl={toggleTheme:[(0,F.kb)("Shift+Alt+D")],saveScene:[(0,F.kb)("CtrlOrCmd+S")],loadScene:[(0,F.kb)("CtrlOrCmd+O")],clearCanvas:[(0,F.kb)("CtrlOrCmd+Delete")],imageExport:[(0,F.kb)("CtrlOrCmd+Shift+E")],commandPalette:[(0,F.kb)("CtrlOrCmd+/"),(0,F.kb)("CtrlOrCmd+Shift+P")],cut:[(0,F.kb)("CtrlOrCmd+X")],copy:[(0,F.kb)("CtrlOrCmd+C")],paste:[(0,F.kb)("CtrlOrCmd+V")],copyStyles:[(0,F.kb)("CtrlOrCmd+Alt+C")],pasteStyles:[(0,F.kb)("CtrlOrCmd+Alt+V")],selectAll:[(0,F.kb)("CtrlOrCmd+A")],deleteSelectedElements:[(0,F.kb)("Delete")],duplicateSelection:[(0,F.kb)("CtrlOrCmd+D"),(0,F.kb)(`Alt+${c8("helpDialog.drag")}`)],sendBackward:[(0,F.kb)("CtrlOrCmd+[")],bringForward:[(0,F.kb)("CtrlOrCmd+]")],sendToBack:[F.l?(0,F.kb)("CtrlOrCmd+Alt+["):(0,F.kb)("CtrlOrCmd+Shift+[")],bringToFront:[F.l?(0,F.kb)("CtrlOrCmd+Alt+]"):(0,F.kb)("CtrlOrCmd+Shift+]")],copyAsPng:[(0,F.kb)("Shift+Alt+C")],group:[(0,F.kb)("CtrlOrCmd+G")],ungroup:[(0,F.kb)("CtrlOrCmd+Shift+G")],gridMode:[(0,F.kb)("CtrlOrCmd+'")],zenMode:[(0,F.kb)("Alt+Z")],objectsSnapMode:[(0,F.kb)("Alt+S")],stats:[(0,F.kb)("Alt+/")],addToLibrary:[],flipHorizontal:[(0,F.kb)("Shift+H")],flipVertical:[(0,F.kb)("Shift+V")],viewMode:[(0,F.kb)("Alt+R")],hyperlink:[(0,F.kb)("CtrlOrCmd+K")],toggleElementLock:[(0,F.kb)("CtrlOrCmd+Shift+L")],resetZoom:[(0,F.kb)("CtrlOrCmd+0")],zoomOut:[(0,F.kb)("CtrlOrCmd+-")],zoomIn:[(0,F.kb)("CtrlOrCmd++")],zoomToFitSelection:[(0,F.kb)("Shift+3")],zoomToFit:[(0,F.kb)("Shift+1")],zoomToFitSelectionInViewport:[(0,F.kb)("Shift+2")],toggleEraserTool:[(0,F.kb)("E")],toggleHandTool:[(0,F.kb)("H")],setFrameAsActiveTool:[(0,F.kb)("F")],saveFileToDisk:[(0,F.kb)("CtrlOrCmd+S")],saveToActiveFile:[(0,F.kb)("CtrlOrCmd+S")],toggleShortcuts:[(0,F.kb)("?")],searchMenu:[(0,F.kb)("CtrlOrCmd+F")],wrapSelectionInFrame:[]},gm=(a,b=0)=>{let c=gl[a];return c&&c.length>0?c[b]||c[0]:""},gn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),go=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,gp={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"E",æ:"e",Þ:"T",þ:"t",ß:"s",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"I",ij:"i",Œ:"E",œ:"e",ʼn:"n",ſ:"s"},gq=a=>a.replace(go,a=>gp[a]||a).replace(gn,""),gr=L.default.createContext(null),gs=as(),gt=(a,b)=>{let c=b[0]?.type||null;for(let a of b)if(a.type!==c){c=null;break}return(0,F.Wi)(a.activeTool.type)&&"image"!==a.activeTool.type&&"image"!==c&&"frame"!==c&&"magicframe"!==c||b.some(a=>(0,F.Wi)(a.type))},gu=(a,b)=>(0,F.Vi)(a.activeTool.type)||b.some(a=>(0,F.Vi)(a.type)),gv=({appState:a,elementsMap:b,renderAction:c,app:d})=>{let f=(0,F.wk)(b,a),g=!1;2===f.length&&((0,F.mc)(f[0])||(0,F.mc)(f[1]))&&(g=!0);let h=!!(a.editingTextElement||a.newElement),i=kb(),j="rtl"===document.documentElement.getAttribute("dir"),k=(0,F.Vi)(a.activeTool.type)&&!(0,F.sb)(a.currentItemBackgroundColor)||f.some(a=>(0,F.Vi)(a.type)&&!(0,F.sb)(a.backgroundColor)),l=1===f.length||g,m=!a.editingLinearElement&&1===f.length&&(0,F.cc)(f[0])&&!(0,F.ec)(f[0]),n=!a.croppingElementId&&1===f.length&&(0,F.Wb)(f[0]),o=!g&&e1(a,d);return(0,e.jsxs)("div",{className:"panelColumn",children:[(0,e.jsx)("div",{children:gt(a,f)&&c("changeStrokeColor")}),gu(a,f)&&(0,e.jsx)("div",{children:c("changeBackgroundColor")}),k&&c("changeFillStyle"),((0,F.Xi)(a.activeTool.type)||f.some(a=>(0,F.Xi)(a.type)))&&c("changeStrokeWidth"),("freedraw"===a.activeTool.type||f.some(a=>"freedraw"===a.type))&&c("changeStrokeShape"),((0,F.Yi)(a.activeTool.type)||f.some(a=>(0,F.Yi)(a.type)))&&(0,e.jsxs)(e.Fragment,{children:[c("changeStrokeStyle"),c("changeSloppiness")]}),((0,F.Zi)(a.activeTool.type)||f.some(a=>(0,F.Zi)(a.type)))&&(0,e.jsx)(e.Fragment,{children:c("changeRoundness")}),((0,F._i)(a.activeTool.type)||f.some(a=>(0,F._i)(a.type)))&&(0,e.jsx)(e.Fragment,{children:c("changeArrowType")}),("text"===a.activeTool.type||f.some(F._b))&&(0,e.jsxs)(e.Fragment,{children:[c("changeFontFamily"),c("changeFontSize"),("text"===a.activeTool.type||(0,F.Ej)(f,b))&&c("changeTextAlign")]}),(0,F.Dj)(f,b)&&c("changeVerticalAlign"),((0,F.$i)(a.activeTool.type)||f.some(a=>(0,F.$i)(a.type)))&&(0,e.jsx)(e.Fragment,{children:c("changeArrowhead")}),c("changeOpacity"),(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.layers")}),(0,e.jsxs)("div",{className:"buttonList",children:[c("sendToBack"),c("sendBackward"),c("bringForward"),c("bringToFront")]})]}),o&&!g&&(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.align")}),(0,e.jsxs)("div",{className:"buttonList",children:[j?(0,e.jsxs)(e.Fragment,{children:[c("alignRight"),c("alignHorizontallyCentered"),c("alignLeft")]}):(0,e.jsxs)(e.Fragment,{children:[c("alignLeft"),c("alignHorizontallyCentered"),c("alignRight")]}),f.length>2&&c("distributeHorizontally"),(0,e.jsx)("div",{style:{flexBasis:"100%",height:0}}),(0,e.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:"-0.5rem"},children:[c("alignTop"),c("alignVerticallyCentered"),c("alignBottom"),f.length>2&&c("distributeVertically")]})]})]}),!h&&f.length>0&&(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:c8("labels.actions")}),(0,e.jsxs)("div",{className:"buttonList",children:[!i.editor.isMobile&&c("duplicateSelection"),!i.editor.isMobile&&c("deleteSelectedElements"),c("group"),c("ungroup"),l&&c("hyperlink"),n&&c("cropEditor"),m&&c("toggleLinearEditor")]})]})]})},gw=({activeTool:a,appState:b,app:c,UIOptions:d})=>{let[f,g]=(0,L.useState)(!1),h="frame"===a.type,i="laser"===a.type,j="embeddable"===a.type,{TTDDialogTriggerTunnel:k}=L.default.useContext(gr);return(0,e.jsxs)(e.Fragment,{children:[F.rg.map(({value:f,icon:g,key:h,numericKey:i,fillable:j},k)=>{if(d.tools?.[f]===!1)return null;let l=c8(`toolBar.${f}`),m=h&&(0,F.Ya)("string"==typeof h?h:h[0]),n=m?`${m} ${c8("helpDialog.or")} ${i}`:`${i}`;return(0,e.jsx)(de,{className:(0,av.default)("Shape",{fillable:j}),type:"radio",icon:g,checked:a.type===f,name:"editor-current-shape",title:`${(0,F.Ya)(l)} \u2014 ${n}`,keyBindingLabel:i||m,"aria-label":(0,F.Ya)(l),"aria-keyshortcuts":n,"data-testid":`toolbar-${f}`,onPointerDown:({pointerType:a})=>{b.penDetected||"pen"!==a||c.togglePenMode(!0)},onChange:({pointerType:a})=>{b.activeTool.type!==f&&dw("toolbar",f,"ui"),"image"===f?c.setActiveTool({type:f,insertOnCanvasDirectly:"mouse"!==a}):c.setActiveTool({type:f})}},f)}),(0,e.jsx)("div",{className:"App-toolbar__divider"}),(0,e.jsxs)(f3,{open:f,children:[(0,e.jsx)(f3.Trigger,{className:(0,av.default)("App-toolbar__extra-tools-trigger",{"App-toolbar__extra-tools-trigger--selected":h||j||i&&!c.props.isCollaborating}),onToggle:()=>g(!f),title:c8("toolBar.extraTools"),children:F.ef}),(0,e.jsxs)(f3.Content,{onClickOutside:()=>g(!1),onSelect:()=>g(!1),className:"App-toolbar__extra-tools-dropdown",children:[(0,e.jsx)(f3.Item,{onSelect:()=>c.setActiveTool({type:"frame"}),icon:F.ff,shortcut:F.hg.F.toLocaleUpperCase(),"data-testid":"toolbar-frame",selected:h,children:c8("toolBar.frame")}),(0,e.jsx)(f3.Item,{onSelect:()=>c.setActiveTool({type:"embeddable"}),icon:F.vd,"data-testid":"toolbar-embeddable",selected:j,children:c8("toolBar.embeddable")}),(0,e.jsx)(f3.Item,{onSelect:()=>c.setActiveTool({type:"laser"}),icon:F.if,"data-testid":"toolbar-laser",selected:i,shortcut:F.hg.K.toLocaleUpperCase(),children:c8("toolBar.laser")}),(0,e.jsx)("div",{style:{margin:"6px 0",fontSize:14,fontWeight:600},children:"Generate"}),!1!==c.props.aiEnabled&&(0,e.jsx)(k.Out,{}),(0,e.jsx)(f3.Item,{onSelect:()=>c.setOpenDialog({name:"ttd",tab:"mermaid"}),icon:F.gf,"data-testid":"toolbar-embeddable",children:c8("toolBar.mermaidToExcalidraw")}),!1!==c.props.aiEnabled&&c.plugins.diagramToCode&&(0,e.jsx)(e.Fragment,{children:(0,e.jsxs)(f3.Item,{onSelect:()=>c.onMagicframeToolSelect(),icon:F.jf,"data-testid":"toolbar-magicframe",children:[c8("toolBar.magicframe"),(0,e.jsx)(f3.Item.Badge,{children:"AI"})]})})]})]})]})},gx=({renderAction:a,zoom:b})=>(0,e.jsx)(fN,{gap:1,className:F.E.ZOOM_ACTIONS,children:(0,e.jsxs)(fM,{align:"center",children:[a("zoomOut"),a("resetZoom"),a("zoomIn")]})}),gy=({renderAction:a,className:b})=>(0,e.jsxs)("div",{className:`undo-redo-buttons ${b}`,children:[(0,e.jsx)("div",{className:"undo-button-container",children:(0,e.jsx)(eu,{label:c8("buttons.undo"),children:a("undo")})}),(0,e.jsx)("div",{className:"redo-button-container",children:(0,e.jsxs)(eu,{label:c8("buttons.redo"),children:[" ",a("redo")]})})]}),gz=({actionManager:a,showExitZenModeBtn:b})=>(0,e.jsx)("button",{type:"button",className:(0,av.default)("disable-zen-mode",{"disable-zen-mode--visible":b}),onClick:()=>a.executeAction(fg),children:c8("buttons.exitZenMode")}),gA=({renderAction:a,className:b})=>(0,e.jsx)("div",{className:`finalize-button ${b}`,children:a("finalize",{size:"small"})}),gB=a=>{let b=(0,L.useRef)({userFn:a});return b.current.userFn=a,b.current.stableFn||(b.current.stableFn=(...a)=>b.current.userFn(...a)),b.current.stableFn},gC=O(null),gD=()=>{let[a,b]=cW(gC),c=kg();return a&&"clearCanvas"===a?(0,e.jsx)(fW,{onConfirm:()=>{c.executeAction(ev),b(null)},onCancel:()=>b(null),title:c8("clearCanvasDialog.title"),children:(0,e.jsxs)("p",{className:"clear-canvas__content",children:[" ",c8("alerts.clearReset")]})}):null},gE={};(0,K.c)(gE,{toggleTheme:()=>gF});var gF={...eA,category:"App",label:"Toggle theme",perform:({actionManager:a})=>{a.executeAction(eA,"commandPalette")}},gG=(0,F.$c)({name:"copyElementLink",label:"labels.copyElementLink",icon:F._e,trackEvent:{category:"element"},perform:async(a,b,c,d)=>{let e=(0,F.vk)(a,b);try{if(window.location){let c=(0,F.Zh)(e,b);return c?(await (0,F.oi)(d.props.generateLinkForSelection?d.props.generateLinkForSelection(c.id,c.type):(0,F.Yh)(c.id,c.type)),{appState:{toast:{message:c8("toast.elementLinkCopied"),closable:!0}},captureUpdate:F.Wg.EVENTUALLY}):{appState:b,elements:a,app:d,captureUpdate:F.Wg.EVENTUALLY}}}catch(a){console.error(a)}return{appState:b,elements:a,app:d,captureUpdate:F.Wg.EVENTUALLY}},predicate:(a,b)=>(0,F._h)((0,F.vk)(a,b))}),gH=(0,F.$c)({name:"linkToElement",label:"labels.linkToElement",icon:F.Pf,perform:(a,b,c,d)=>{let e=(0,F.vk)(a,b);return 1===e.length&&(0,F._h)(e)?{appState:{...b,openDialog:{name:"elementLinkSelector",sourceElementId:(0,F.vk)(a,b)[0].id}},captureUpdate:F.Wg.IMMEDIATELY}:{elements:a,appState:b,app:d,captureUpdate:F.Wg.EVENTUALLY}},predicate:(a,b,c,d)=>{let e=(0,F.vk)(a,b);return b.openDialog?.name!=="elementLinkSelector"&&1===e.length&&(0,F._h)(e)},trackEvent:!1}),gI=O(null),gJ="Export",gK="Tools",gL="Editor",gM="Elements",gN=({shortcut:a,className:b,children:c})=>{let d=a.replace("++","+$").split("+");return(0,e.jsxs)("div",{className:(0,av.default)("shortcut",b),children:[d.map((a,b)=>(0,e.jsx)("div",{className:"shortcut-wrapper",children:(0,e.jsx)("div",{className:"shortcut-key",children:"$"===a?"+":a})},a)),(0,e.jsx)("div",{className:"shortcut-desc",children:c})]})},gO=a=>!a.altKey&&a[F.hg.CTRL_OR_CMD]&&(a.shiftKey&&a.key.toLowerCase()===F.hg.P||a.key===F.hg.SLASH);function gP({customCommandPaletteItems:a}){let b=j9(),c=L.default.useContext(dN),d=kf(),f=ka(),g=kg(),[h,i]=cW(gI),[j,k]=(0,L.useState)(null),l=(0,L.useRef)(null),m=dQ({uiAppState:c,customCommandPaletteItems:a,appProps:f});(0,L.useEffect)(()=>{let{uiAppState:a,customCommandPaletteItems:c,appProps:e}=m,f=c=>{let d="";return c.label&&(d="function"==typeof c.label?c8(c.label(b.scene.getNonDeletedElements(),a,b)):c8(c.label)),d},j=c=>"function"==typeof c.icon?c.icon(a,b.scene.getNonDeletedElements()):c.icon,l=(a,b,c)=>{let d={label:f(a),icon:j(a),category:b,shortcut:gm(a.name),keywords:a.keywords,predicate:a.predicate,viewMode:a.viewMode,perform:()=>{g.executeAction(a,"commandPalette")}};return c?c(d,a):d};if(a&&b.scene&&g){let m=[g.actions.group,g.actions.ungroup,g.actions.cut,g.actions.copy,g.actions.deleteSelectedElements,g.actions.wrapSelectionInFrame,g.actions.copyStyles,g.actions.pasteStyles,g.actions.bringToFront,g.actions.bringForward,g.actions.sendBackward,g.actions.sendToBack,g.actions.alignTop,g.actions.alignBottom,g.actions.alignLeft,g.actions.alignRight,g.actions.alignVerticallyCentered,g.actions.alignHorizontallyCentered,g.actions.duplicateSelection,g.actions.flipHorizontal,g.actions.flipVertical,g.actions.zoomToFitSelection,g.actions.zoomToFitSelectionInViewport,g.actions.increaseFontSize,g.actions.decreaseFontSize,g.actions.toggleLinearEditor,g.actions.cropEditor,fw,gG,gH].map(a=>l(a,gM,(a,b)=>({...a,predicate:b.predicate?b.predicate:(a,b,c,d)=>(0,F.vk)(a,b).length>0}))),n=[g.actions.toggleHandTool,g.actions.setFrameAsActiveTool].map(a=>l(a,gK)),o=[g.actions.undo,g.actions.redo,g.actions.zoomIn,g.actions.zoomOut,g.actions.resetZoom,g.actions.zoomToFit,g.actions.zenMode,g.actions.viewMode,g.actions.gridMode,g.actions.objectsSnapMode,g.actions.toggleShortcuts,g.actions.selectAll,g.actions.toggleElementLock,g.actions.unlockAllElements,g.actions.stats].map(a=>l(a,gL)),p=[g.actions.saveToActiveFile,g.actions.saveFileToDisk,g.actions.copyAsPng,g.actions.copyAsSvg].map(a=>l(a,gJ)),q=[...m,...o,{label:f(ev),icon:j(ev),shortcut:gm(ev.name),category:gL,keywords:["delete","destroy"],viewMode:!1,perform:()=>{c_.set(gC,"clearCanvas")}},{label:c8("buttons.exportImage"),category:gJ,icon:F.Od,shortcut:gm("imageExport"),keywords:["export","image","png","jpeg","svg","clipboard","picture"],perform:()=>{d({openDialog:{name:"imageExport"}})}},...p,{label:c8("toolBar.library"),category:"App",icon:F.fd,viewMode:!1,perform:()=>{a.openSidebar?d({openSidebar:null}):d({openSidebar:{name:F.ya.name,tab:F.ya.defaultTab}})}},{label:c8("search.title"),category:"App",icon:F.pf,viewMode:!0,perform:()=>{g.executeAction(gS)}},{label:c8("labels.changeStroke"),keywords:["color","outline"],category:gM,icon:F.Nd,viewMode:!1,predicate:(a,b)=>{let c=(0,F.vk)(a,b);return c.length>0&&gt(b,c)},perform:()=>{d(a=>({openMenu:"shape"===a.openMenu?null:"shape",openPopup:"elementStroke"}))}},{label:c8("labels.changeBackground"),keywords:["color","fill"],icon:F.Nd,category:gM,viewMode:!1,predicate:(a,b)=>{let c=(0,F.vk)(a,b);return c.length>0&&gu(b,c)},perform:()=>{d(a=>({openMenu:"shape"===a.openMenu?null:"shape",openPopup:"elementBackground"}))}},{label:c8("labels.canvasBackground"),keywords:["color"],icon:F.Nd,category:gL,viewMode:!1,perform:()=>{d(a=>({openMenu:"canvas"===a.openMenu?null:"canvas",openPopup:"canvasBackground"}))}},...F.rg.reduce((a,c)=>{let{value:d,icon:f,key:g,numericKey:h}=c;if(e.UIOptions.tools?.[d]===!1)return a;let i=g&&(0,F.Ya)("string"==typeof g?g:g[0])||h,j={label:c8(`toolBar.${d}`),category:gK,shortcut:i,icon:f,keywords:["toolbar"],viewMode:!1,perform:({event:a})=>{"image"===d?b.setActiveTool({type:d,insertOnCanvasDirectly:"keydown"===a.type}):b.setActiveTool({type:d})}};return a.push(j),a},[]),...n,{label:c8("toolBar.lock"),category:gK,icon:a.activeTool.locked?F.kd:F.jd,shortcut:F.hg.Q.toLocaleUpperCase(),viewMode:!1,perform:()=>{b.toggleLock()}},{label:`${c8("labels.textToDiagram")}...`,category:gK,icon:F.of,viewMode:!1,predicate:e.aiEnabled,perform:()=>{d(a=>({...a,openDialog:{name:"ttd",tab:"text-to-diagram"}}))}},{label:`${c8("toolBar.mermaidToExcalidraw")}...`,category:gK,icon:F.gf,viewMode:!1,predicate:e.aiEnabled,perform:()=>{d(a=>({...a,openDialog:{name:"ttd",tab:"mermaid"}}))}},...c||[]].map(a=>({...a,icon:a.icon||F.tf,order:a.order??(a=>{switch(a){case"App":return 1;case gJ:return 2;case gL:return 3;case gK:return 4;case gM:return 5;case"Links":return 6;default:return 10}})(a.category),haystack:`${gq(a.label.toLocaleLowerCase())} ${a.keywords?.join(" ")||""}`}));k(q),i(q.find(a=>a.label===h?.label)??null)}},[m,b,g,k,h?.label,i,d]);let[n,o]=(0,L.useState)(""),[p,q]=(0,L.useState)(null),[r,s]=(0,L.useState)({}),t=a=>{d({openDialog:null},a),o("")},u=(a,b)=>{c.openDialog?.name==="commandPalette"&&(b.stopPropagation(),b.preventDefault(),document.body.classList.add("excalidraw-animations-disabled"),t(()=>{a.perform({actionManager:g,event:b}),i(a),requestAnimationFrame(()=>{document.body.classList.remove("excalidraw-animations-disabled")})}))},v=gB(a=>(!1!==a.viewMode||!c.viewModeEnabled)&&("function"==typeof a.predicate?a.predicate(b.scene.getNonDeletedElements(),c,f,b):void 0===a.predicate||a.predicate)),w=gB(a=>{let b=(0,F.ab)(a.target)||gO(a)||a.key===F.hg.ESCAPE;if(b&&a.key!==F.hg.ARROW_UP&&a.key!==F.hg.ARROW_DOWN&&a.key!==F.hg.ENTER)return;let c=Object.values(r).flat(),d=h&&!n&&v(h);if(a.key===F.hg.ARROW_UP){let b;a.preventDefault();let e=c.findIndex(a=>a.label===p?.label);if(d){if(0===e)return void q(h);if(p===h){let a=c[c.length-1];a&&q(a);return}}b=-1===e||0===e?c.length-1:(e-1)%c.length;let f=c[b];f&&q(f);return}if(a.key===F.hg.ARROW_DOWN){a.preventDefault();let b=c.findIndex(a=>a.label===p?.label);if(d){if(!p||b===c.length-1)return void q(h);if(p===h){let a=c[0];a&&q(a);return}}let e=(b+1)%c.length,f=c[e];f&&q(f);return}if(a.key===F.hg.ENTER&&p&&setTimeout(()=>{u(p,a)}),!b){if(a.stopPropagation(),/^[a-zA-Z0-9]$/.test(a.key))return void l?.current?.focus();a.preventDefault()}});return(0,L.useEffect)(()=>(window.addEventListener("keydown",w,{capture:!0}),()=>window.removeEventListener("keydown",w,{capture:!0})),[w]),(0,L.useEffect)(()=>{if(!j)return;let a=a=>{let b={};for(let c of a)b[c.category]?b[c.category].push(c):b[c.category]=[c];return b},b=j.filter(v).sort((a,b)=>a.order-b.order),c=!n&&h&&v(h);if(!n){s(a(c?b.filter(a=>a.label!==h?.label):b)),q(c?h:b[0]||null);return}let d=gq(n.toLocaleLowerCase().replace(/[<>_| -]/g,""));s(a(b=bP.default.filter(d,b,{extract:a=>a.haystack}).sort((a,b)=>b.score-a.score).map(a=>a.original))),q(b[0]??null)},[n,j,v,h]),(0,e.jsxs)(gi,{onCloseRequest:()=>t(),closeOnClickOutside:!0,title:!1,size:720,autofocus:!0,className:"command-palette-dialog",children:[(0,e.jsx)(gk,{value:n,placeholder:c8("commandPalette.search.placeholder"),onChange:a=>{o(a)},selectOnRender:!0,ref:l}),!b.device.viewport.isMobile&&(0,e.jsxs)("div",{className:"shortcuts-wrapper",children:[(0,e.jsx)(gN,{shortcut:"↑↓",children:c8("commandPalette.shortcuts.select")}),(0,e.jsx)(gN,{shortcut:"↵",children:c8("commandPalette.shortcuts.confirm")}),(0,e.jsx)(gN,{shortcut:(0,F.kb)("Esc"),children:c8("commandPalette.shortcuts.close")})]}),(0,e.jsxs)("div",{className:"commands",children:[h&&!n&&(0,e.jsxs)("div",{className:"command-category",children:[(0,e.jsxs)("div",{className:"command-category-title",children:[c8("commandPalette.recents"),(0,e.jsx)("div",{className:"icon",style:{marginLeft:"6px"},children:F.qf})]}),(0,e.jsx)(gQ,{command:h,isSelected:h.label===p?.label,onClick:a=>u(h,a),disabled:!v(h),onMouseMove:()=>q(h),showShortcut:!b.device.viewport.isMobile,appState:c})]}),Object.keys(r).length>0?Object.keys(r).map((a,d)=>(0,e.jsxs)("div",{className:"command-category",children:[(0,e.jsx)("div",{className:"command-category-title",children:a}),r[a].map(a=>(0,e.jsx)(gQ,{command:a,isSelected:a.label===p?.label,onClick:b=>u(a,b),onMouseMove:()=>q(a),showShortcut:!b.device.viewport.isMobile,appState:c},a.label))]},a)):j?(0,e.jsxs)("div",{className:"no-match",children:[(0,e.jsx)("div",{className:"icon",children:F.pf})," ",c8("commandPalette.search.noMatch")]}):null]})]})}Object.assign(a=>{let b=L.default.useContext(dN),c=kf();return(0,L.useEffect)(()=>{let a=a=>{gO(a)&&(a.preventDefault(),a.stopPropagation(),c(a=>{let b=a.openDialog?.name==="commandPalette"?null:{name:"commandPalette"};return b&&dw("command_palette","open","shortcut"),{openDialog:b}}))};return window.addEventListener("keydown",a,{capture:!0}),()=>window.removeEventListener("keydown",a,{capture:!0})},[c]),b.openDialog?.name!=="commandPalette"?null:(0,e.jsx)(gP,{...a})},{defaultItems:gE});var gQ=({command:a,isSelected:b,disabled:c,onMouseMove:d,onClick:f,showShortcut:g,appState:h})=>{let i=()=>{};return(0,e.jsxs)("div",{className:(0,av.default)("command-item",{"item-selected":b,"item-disabled":c}),ref:a=>{b&&!c&&a?.scrollIntoView?.({block:"nearest"})},onClick:c?i:f,onMouseMove:c?i:d,title:c?c8("commandPalette.itemNotAvailable"):"",children:[(0,e.jsxs)("div",{className:"name",children:[a.icon&&(0,e.jsx)(d_,{icon:"function"==typeof a.icon?a.icon(h):a.icon}),a.label]}),g&&a.shortcut&&(0,e.jsx)(gN,{shortcut:a.shortcut})]})},gR=(0,F.$c)({name:"toggleLinearEditor",category:gM,label:(a,b,c)=>c.scene.getSelectedElements({selectedElementIds:b.selectedElementIds})[0]?.type==="arrow"?"labels.lineEditor.editArrow":"labels.lineEditor.edit",keywords:["line"],trackEvent:{category:"element"},predicate:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b);return!!(!b.editingLinearElement&&1===e.length&&(0,F.cc)(e[0])&&!(0,F.ec)(e[0]))},perform(a,b,c,d){let e=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0})[0],f=b.editingLinearElement?.elementId===e.id?null:new F.pj(e);return{appState:{...b,editingLinearElement:f},captureUpdate:F.Wg.IMMEDIATELY}},PanelComponent:({appState:a,updateData:b,app:c})=>{let d=c8("arrow"===c.scene.getSelectedElements({selectedElementIds:a.selectedElementIds})[0].type?"labels.lineEditor.editArrow":"labels.lineEditor.edit");return(0,e.jsx)(de,{type:"button",icon:F.Hf,title:d,"aria-label":d,onClick:()=>b(null)})}}),gS=(0,F.$c)({name:"searchMenu",icon:F.pf,keywords:["search","find"],label:"search.title",viewMode:!0,trackEvent:{category:"search_menu",action:"toggle",predicate:a=>a.gridModeEnabled},perform(a,b,c,d){if(b.openSidebar?.name===F.ya.name&&b.openSidebar.tab===F.xa){let a=d.excalidrawContainerValue.container?.querySelector(`.${F.E.SEARCH_MENU_INPUT_WRAPPER} input`);return a?.matches(":focus")?{appState:{...b,openSidebar:null},captureUpdate:F.Wg.EVENTUALLY}:(a?.focus(),a?.select(),!1)}return{appState:{...b,openSidebar:{name:F.ya.name,tab:F.xa},openDialog:null},captureUpdate:F.Wg.EVENTUALLY}},checked:a=>a.gridModeEnabled,predicate:(a,b,c)=>void 0===c.gridModeEnabled,keyTest:a=>a[F.hg.CTRL_OR_CMD]&&a.key===F.hg.F}),gT=(0,F.$c)({name:"cropEditor",label:"helpDialog.cropStart",icon:F.Of,viewMode:!0,trackEvent:{category:"menu"},keywords:["image","crop"],perform(a,b,c,d){let e=d.scene.getSelectedElements({selectedElementIds:b.selectedElementIds,includeBoundTextElement:!0})[0];return{appState:{...b,isCropping:!1,croppingElementId:e.id},captureUpdate:F.Wg.IMMEDIATELY}},predicate:(a,b,c,d)=>{let e=d.scene.getSelectedElements(b);return!!(!b.croppingElementId&&1===e.length&&(0,F.Wb)(e[0]))},PanelComponent:({appState:a,updateData:b,app:c})=>{let d=c8("helpDialog.cropStart");return(0,e.jsx)(de,{type:"button",icon:F.Of,title:d,"aria-label":d,onClick:()=>b(null)})}}),gU=class{constructor(a=!0,b=!0){this.isUndoStackEmpty=a,this.isRedoStackEmpty=b}},gV=class a{constructor(){(0,K.d)(this,"onHistoryChangedEmitter",new F.Vg),(0,K.d)(this,"undoStack",[]),(0,K.d)(this,"redoStack",[])}get isUndoStackEmpty(){return 0===this.undoStack.length}get isRedoStackEmpty(){return 0===this.redoStack.length}clear(){this.undoStack.length=0,this.redoStack.length=0}record(a,b){let c=gW.create(b,a);c.isEmpty()||(this.undoStack.push(c.inverse()),c.elementsChange.isEmpty()||(this.redoStack.length=0),this.onHistoryChangedEmitter.trigger(new gU(this.isUndoStackEmpty,this.isRedoStackEmpty)))}undo(b,c,d){return this.perform(b,c,d,()=>a.pop(this.undoStack),c=>a.push(this.redoStack,c,b))}redo(b,c,d){return this.perform(b,c,d,()=>a.pop(this.redoStack),c=>a.push(this.undoStack,c,b))}perform(a,b,c,d,e){try{let f=d();if(null===f)return;let g=a,h=b,i=!1;for(;f;){try{[g,h,i]=f.applyTo(g,h,c)}finally{e(f)}if(i)break;f=d()}return[g,h]}finally{this.onHistoryChangedEmitter.trigger(new gU(this.isUndoStackEmpty,this.isRedoStackEmpty))}}static pop(a){if(!a.length)return null;let b=a.pop();return void 0!==b?b:null}static push(a,b,c){let d=b.inverse().applyLatestChanges(c);return a.push(d)}},gW=class a{constructor(a,b){this.appStateChange=a,this.elementsChange=b}static create(b,c){return new a(b,c)}inverse(){return new a(this.appStateChange.inverse(),this.elementsChange.inverse())}applyTo(a,b,c){let[d,e]=this.elementsChange.applyTo(a,c.elements),[f,g]=this.appStateChange.applyTo(b,d);return[d,f,e||g]}applyLatestChanges(b){let c=this.elementsChange.applyLatestChanges(b);return a.create(this.appStateChange,c)}isEmpty(){return this.appStateChange.isEmpty()&&this.elementsChange.isEmpty()}},gX=(a,b)=>{let[c,d]=(0,L.useState)(b);return(0,L.useEffect)(()=>{let b=a.on(a=>{d(a)});return()=>{b()}},[a]),c},gY=(a,b,c)=>{if(!b.multiElement&&!b.resizingElement&&!b.editingTextElement&&!b.newElement&&!b.selectedElementsAreBeingDragged&&!b.selectionElement&&!a.flowChartCreator.isCreatingChart){let a=c();if(!a)return{captureUpdate:F.Wg.EVENTUALLY};let[b,d]=a;return{appState:d,elements:Array.from(b.values()),captureUpdate:F.Wg.NEVER}}return{captureUpdate:F.Wg.EVENTUALLY}},gZ=(a,b,c,d,e,f)=>{if(a.trackEvent)try{"object"==typeof a.trackEvent&&(!a.trackEvent.predicate||a.trackEvent.predicate(c,d,f))&&dw(a.trackEvent.category,a.trackEvent.action||a.name,`${b} (${e.device.editor.isMobile?"mobile":"desktop"})`)}catch(a){console.error("error while logging action:",a)}},g$=class{constructor(a,b,c,d){(0,K.d)(this,"actions",{}),(0,K.d)(this,"updater"),(0,K.d)(this,"getAppState"),(0,K.d)(this,"getElementsIncludingDeleted"),(0,K.d)(this,"app"),(0,K.d)(this,"renderAction",(a,b)=>{let c=this.app.props.UIOptions.canvasActions;if(this.actions[a]&&"PanelComponent"in this.actions[a]&&(!(a in c)||c[a])){let c=this.actions[a],d=c.PanelComponent;d.displayName="PanelComponent";let f=this.getElementsIncludingDeleted(),g=this.getAppState(),h=a=>{gZ(c,"ui",g,f,this.app,a),this.updater(c.perform(this.getElementsIncludingDeleted(),this.getAppState(),a,this.app))};return(0,e.jsx)(d,{elements:this.getElementsIncludingDeleted(),appState:this.getAppState(),updateData:h,appProps:this.app.props,app:this.app,data:b})}return null}),(0,K.d)(this,"isActionEnabled",a=>{let b=this.getElementsIncludingDeleted(),c=this.getAppState();return!a.predicate||a.predicate(b,c,this.app.props,this.app)}),this.updater=b=>{if(!(0,F.Fb)(b))return a(b);b.then(b=>a(b))},this.getAppState=b,this.getElementsIncludingDeleted=c,this.app=d}registerAction(a){this.actions[a.name]=a}registerAll(a){a.forEach(a=>this.registerAction(a))}handleKeyDown(a){let b=this.app.props.UIOptions.canvasActions,c=Object.values(this.actions).sort((a,b)=>(b.keyPriority||0)-(a.keyPriority||0)).filter(c=>(!(c.name in b)||b[c.name])&&c.keyTest&&c.keyTest(a,this.getAppState(),this.getElementsIncludingDeleted(),this.app));if(1!==c.length)return c.length>1&&console.warn("Canceling as multiple actions match this shortcut",c),!1;let d=c[0];if(this.getAppState().viewModeEnabled&&!0!==d.viewMode)return!1;let e=this.getElementsIncludingDeleted(),f=this.getAppState();return gZ(d,"keyboard",f,e,this.app,null),a.preventDefault(),a.stopPropagation(),this.updater(c[0].perform(e,f,null,this.app)),!0}executeAction(a,b="api",c=null){let d=this.getElementsIncludingDeleted(),e=this.getAppState();gZ(a,b,e,d,this.app,c),this.updater(a.perform(d,e,c,this.app))}},g_=a=>{let b=Array.from(a.values());return{x:g1(b,a=>a.x)/b.length,y:g1(b,a=>a.y)/b.length}},g0=([a,b])=>Math.hypot(a.x-b.x,a.y-b.y),g1=(a,b)=>a.reduce((a,c)=>a+b(c),0),g2=({children:a,left:b,top:c,onCloseRequest:d,fitInViewport:f=!1,offsetLeft:g=0,offsetTop:h=0,viewportWidth:i=window.innerWidth,viewportHeight:j=window.innerHeight})=>{let k=(0,L.useRef)(null);(0,L.useEffect)(()=>{let a=k.current;if(!a)return;a.contains(document.activeElement)||a.focus();let b=b=>{if(b.key===F.hg.TAB){let c=(0,F.Gb)(a),{activeElement:d}=document,e=c.findIndex(a=>a===d);d===a?(b.shiftKey?c[c.length-1]?.focus():c[0].focus(),b.preventDefault(),b.stopImmediatePropagation()):0===e&&b.shiftKey?(c[c.length-1]?.focus(),b.preventDefault(),b.stopImmediatePropagation()):e!==c.length-1||b.shiftKey||(c[0]?.focus(),b.preventDefault(),b.stopImmediatePropagation())}};return a.addEventListener("keydown",b),()=>a.removeEventListener("keydown",b)},[]);let l=(0,L.useRef)(null);return(0,L.useLayoutEffect)(()=>{if(f&&k.current&&null!=c&&null!=b){let a=k.current,{width:d,height:e}=a.getBoundingClientRect();(l.current?.top!==c||l.current?.left!==b)&&(l.current={top:c,left:b},d>=i?(a.style.width=`${i}px`,a.style.left="0px",a.style.overflowX="scroll"):b+d-g>i?a.style.left=`${i-d-10}px`:a.style.left=`${b}px`,e>=j?(a.style.height=`${j-20}px`,a.style.top="10px",a.style.overflowY="scroll"):c+e-h>j?a.style.top=`${j-e}px`:a.style.top=`${c}px`)}},[c,b,f,i,j,g,h]),(0,L.useEffect)(()=>{if(d){let a=a=>{k.current?.contains(a.target)||(0,aw.unstable_batchedUpdates)(()=>d(a))};return document.addEventListener("pointerdown",a,!1),()=>document.removeEventListener("pointerdown",a,!1)}},[d]),(0,e.jsx)("div",{className:"popover",ref:k,tabIndex:-1,children:a})},g3="separator",g4=L.default.memo(({actionManager:a,items:b,top:c,left:d,onClose:f})=>{let g=ke(),h=kd(),i=b.reduce((b,c)=>(c&&(c===g3||!c.predicate||c.predicate(h,g,a.app.props,a.app))&&b.push(c),b),[]);return(0,e.jsx)(g2,{onCloseRequest:()=>{f()},top:c,left:d,fitInViewport:!0,offsetLeft:g.offsetLeft,offsetTop:g.offsetTop,viewportWidth:g.width,viewportHeight:g.height,children:(0,e.jsx)("ul",{className:"context-menu",onContextMenu:a=>a.preventDefault(),children:i.map((b,c)=>{if(b===g3)return i[c-1]&&i[c-1]!==g3?(0,e.jsx)("hr",{className:"context-menu-item-separator"},c):null;let d=b.name,j="";return b.label&&(j="function"==typeof b.label?c8(b.label(h,g,a.app)):c8(b.label)),(0,e.jsx)("li",{"data-testid":d,onClick:()=>{f(()=>{a.executeAction(b,"contextMenu")})},children:(0,e.jsxs)("button",{type:"button",className:(0,av.default)("context-menu-item",{dangerous:"deleteSelectedElements"===d,checkmark:b.checked?.(g)}),children:[(0,e.jsx)("div",{className:"context-menu-item__label",children:j}),(0,e.jsx)("kbd",{className:"context-menu-item__shortcut",children:d?gm(d):""})]})},c)})})})}),g5=({children:a,onClose:b})=>{let[c,d]=(0,L.useState)(!!a),{container:f}=kc(),g=L.default.useCallback(()=>{d(!1),b&&b(),f?.focus()},[b,f]);return(0,e.jsx)(e.Fragment,{children:c&&(0,e.jsx)(gi,{size:"small",onCloseRequest:g,title:c8("errorDialog.title"),children:(0,e.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:a})})})},g6=function({onChange:a,value:b,choices:c,name:d}){return(0,e.jsx)("div",{className:"RadioGroup",children:c.map(c=>(0,e.jsxs)("div",{className:(0,av.default)("RadioGroup__choice",{active:c.value===b}),title:c.ariaLabel,children:[(0,e.jsx)("input",{name:d,type:"radio",checked:c.value===b,onChange:()=>a(c.value),"aria-label":c.ariaLabel}),c.label]},String(c.value)))})},g7=({title:a,name:b,checked:c,onChange:d,disabled:f=!1})=>(0,e.jsx)("div",{className:(0,av.default)("Switch",{toggled:c,disabled:f}),children:(0,e.jsx)("input",{name:b,id:b,title:a,type:"checkbox",checked:c,disabled:f,onChange:()=>d(!c),onKeyDown:a=>{" "===a.key&&d(!c)}})}),g8=(0,L.forwardRef)(({children:a,icon:b,onClick:c,label:d,variant:f="filled",color:g="primary",size:h="medium",fullWidth:i,className:j,status:k},l)=>{let[m,n]=(0,L.useState)(!1),o=async a=>{let b=c?.(a);if((0,F.Fb)(b)){let a=window.setTimeout(()=>{n(!0)},50);try{await b}catch(a){if(a instanceof F.tc)console.warn(a);else throw a}finally{clearTimeout(a),n(!1)}}},p=m?"loading":k;return g="success"===p?"success":g,(0,e.jsx)("button",{className:(0,av.default)("ExcButton",`ExcButton--color-${g}`,`ExcButton--variant-${f}`,`ExcButton--size-${h}`,`ExcButton--status-${p}`,{"ExcButton--fullWidth":i},j),onClick:o,type:"button","aria-label":d,ref:l,disabled:"loading"===p||"success"===p,children:(0,e.jsxs)("div",{className:"ExcButton__contents",children:["loading"===p?(0,e.jsx)(db,{className:"ExcButton__statusIcon"}):"success"===p&&(0,e.jsx)("div",{className:"ExcButton__statusIcon",children:F.bf}),b&&(0,e.jsx)("div",{className:"ExcButton__icon","aria-hidden":!0,children:b}),"icon"!==f&&(a??d)]})})}),g9="filter"in document.createElement("canvas").getContext("2d"),ha=()=>(0,e.jsxs)("div",{children:[(0,e.jsx)("h3",{children:c8("canvasError.cannotShowPreview")}),(0,e.jsx)("p",{children:(0,e.jsx)("span",{children:c8("canvasError.canvasTooBig")})}),(0,e.jsxs)("em",{children:["(",c8("canvasError.canvasTooBigTip"),")"]})]}),hb=({appStateSnapshot:a,elementsSnapshot:b,files:c,actionManager:d,onExportImage:f,name:g})=>{let h=(0,F.tk)(b,a),[i,j]=(0,L.useState)(g),[k,l]=(0,L.useState)(h),[m,n]=(0,L.useState)(a.exportBackground),[o,p]=(0,L.useState)(a.exportWithDarkMode),[q,r]=(0,L.useState)(a.exportEmbedScene),[s,t]=(0,L.useState)(a.exportScale),u=(0,L.useRef)(null),[v,w]=(0,L.useState)(null),{onCopy:x,copyStatus:y,resetCopyStatus:z}=(()=>{let[a,b]=(0,L.useState)(null),c=(0,L.useRef)(0);return{copyStatus:a,resetCopyStatus:(0,L.useCallback)(()=>{b(null)},[]),onCopy:()=>{clearTimeout(c.current),b("success"),c.current=window.setTimeout(()=>{b(null)},2e3)}}})();(0,L.useEffect)(()=>{z()},[i,m,o,s,q,z]);let{exportedElements:A,exportingFrame:B}=eG(b,a,k);return(0,L.useEffect)(()=>{let b=u.current;if(!b)return;let d=b.offsetWidth,e=b.offsetHeight;d&&(0,F.pi)({elements:A,appState:{...a,name:i,exportBackground:m,exportWithDarkMode:o,exportScale:s,exportEmbedScene:q},files:c,exportPadding:F.ma,maxWidthOrHeight:Math.max(d,e),exportingFrame:B}).then(a=>(w(null),(0,F.yh)(a).then(()=>{b.replaceChildren(a)}).catch(a=>{throw"CANVAS_POSSIBLY_TOO_BIG"===a.name?Error(c8("canvasError.canvasTooBig")):a}))).catch(a=>{console.error(a),w(a)})},[a,c,A,B,i,m,o,s,q]),(0,e.jsxs)("div",{className:"ImageExportModal",children:[(0,e.jsx)("h3",{children:c8("imageExportDialog.header")}),(0,e.jsxs)("div",{className:"ImageExportModal__preview",children:[(0,e.jsx)("div",{className:"ImageExportModal__preview__canvas",ref:u,children:v&&(0,e.jsx)(ha,{})}),(0,e.jsx)("div",{className:"ImageExportModal__preview__filename",children:!G.supported&&(0,e.jsx)("input",{type:"text",className:"TextInput",value:i,style:{width:"30ch"},onChange:a=>{j(a.target.value),d.executeAction(eK,"ui",a.target.value)}})})]}),(0,e.jsxs)("div",{className:"ImageExportModal__settings",children:[(0,e.jsx)("h3",{children:c8("imageExportDialog.header")}),h&&(0,e.jsx)(hc,{label:c8("imageExportDialog.label.onlySelected"),name:"exportOnlySelected",children:(0,e.jsx)(g7,{name:"exportOnlySelected",checked:k,onChange:a=>{l(a)}})}),(0,e.jsx)(hc,{label:c8("imageExportDialog.label.withBackground"),name:"exportBackgroundSwitch",children:(0,e.jsx)(g7,{name:"exportBackgroundSwitch",checked:m,onChange:a=>{n(a),d.executeAction(eM,"ui",a)}})}),g9&&(0,e.jsx)(hc,{label:c8("imageExportDialog.label.darkMode"),name:"exportDarkModeSwitch",children:(0,e.jsx)(g7,{name:"exportDarkModeSwitch",checked:o,onChange:a=>{p(a),d.executeAction(eR,"ui",a)}})}),(0,e.jsx)(hc,{label:c8("imageExportDialog.label.embedScene"),tooltip:c8("imageExportDialog.tooltip.embedScene"),name:"exportEmbedSwitch",children:(0,e.jsx)(g7,{name:"exportEmbedSwitch",checked:q,onChange:a=>{r(a),d.executeAction(eN,"ui",a)}})}),(0,e.jsx)(hc,{label:c8("imageExportDialog.label.scale"),name:"exportScale",children:(0,e.jsx)(g6,{name:"exportScale",value:s,onChange:a=>{t(a),d.executeAction(eL,"ui",a)},choices:F.la.map(a=>({value:a,label:`${a}\xd7`}))})}),(0,e.jsxs)("div",{className:"ImageExportModal__settings__buttons",children:[(0,e.jsx)(g8,{className:"ImageExportModal__settings__buttons__button",label:c8("imageExportDialog.title.exportToPng"),onClick:()=>f(F.U.png,A,{exportingFrame:B}),icon:F.Ze,children:c8("imageExportDialog.button.exportToPng")}),(0,e.jsx)(g8,{className:"ImageExportModal__settings__buttons__button",label:c8("imageExportDialog.title.exportToSvg"),onClick:()=>f(F.U.svg,A,{exportingFrame:B}),icon:F.Ze,children:c8("imageExportDialog.button.exportToSvg")}),(F.ii||F.n)&&(0,e.jsx)(g8,{className:"ImageExportModal__settings__buttons__button",label:c8("imageExportDialog.title.copyPngToClipboard"),status:y,onClick:async()=>{await f(F.U.clipboard,A,{exportingFrame:B}),x()},icon:F._e,children:c8("imageExportDialog.button.copyPngToClipboard")})]})]})]})},hc=({label:a,children:b,tooltip:c,name:d})=>(0,e.jsxs)("div",{className:"ImageExportModal__settings__setting",title:a,children:[(0,e.jsxs)("label",{htmlFor:d,className:"ImageExportModal__settings__setting__label",children:[a,c&&(0,e.jsx)(eu,{label:c,long:!0,children:F.af})]}),(0,e.jsx)("div",{className:"ImageExportModal__settings__setting__content",children:b})]}),hd=({elements:a,appState:b,files:c,actionManager:d,onExportImage:f,onCloseRequest:g,name:h})=>{let[{appStateSnapshot:i,elementsSnapshot:j}]=(0,L.useState)(()=>({appStateSnapshot:(0,F.Nb)(b),elementsSnapshot:(0,F.Nb)(a)}));return(0,e.jsx)(gi,{onCloseRequest:g,size:"wide",title:!1,children:(0,e.jsx)(hb,{elementsSnapshot:j,appStateSnapshot:i,files:c,actionManager:d,onExportImage:f,name:h})})},he=({children:a,side:b,className:c})=>(0,e.jsx)("div",{className:(0,av.default)("FixedSideContainer",`FixedSideContainer_side_${b}`,c),children:a}),hf=a=>{switch(a){case F.hg.ARROW_UP:return"up";case F.hg.ARROW_DOWN:return"down";case F.hg.ARROW_RIGHT:return"right";case F.hg.ARROW_LEFT:return"left";default:return"right"}},hg=(a,b,c,d)=>{let e=[...c.values()].reduce((d,e)=>{let f;if((0,F.ec)(e)&&(f=e["predecessors"===a?"startBinding":"endBinding"])&&e["predecessors"===a?"endBinding":"startBinding"]?.elementId===b.id){let g=c.get(f.elementId);if(!g)return d;(0,F.Kb)((0,F.ic)(g),"not an ExcalidrawBindableElement");let h="predecessors"===a?e.points[e.points.length-1]:[0,0],i=(0,F.Dg)(b,(0,F.vg)(b),[h[0]+e.x,h[1]+e.y]);d.push({relative:g,heading:i})}return d},[]);switch(d){case"up":return e.filter(a=>(0,F.Cg)(a.heading,F.Bg)).map(a=>a.relative);case"down":return e.filter(a=>(0,F.Cg)(a.heading,F.zg)).map(a=>a.relative);case"right":return e.filter(a=>(0,F.Cg)(a.heading,F.yg)).map(a=>a.relative);case"left":return e.filter(a=>(0,F.Cg)(a.heading,F.Ag)).map(a=>a.relative)}},hh=(a,b,c,d,e)=>{let f,g,h,i;switch(d){case"up":f=a.x+a.width/2,g=a.y-6;break;case"down":f=a.x+a.width/2,g=a.y+a.height+6;break;case"right":f=a.x+a.width+6,g=a.y+a.height/2;break;case"left":f=a.x-6,g=a.y+a.height/2}switch(d){case"up":h=b.x+b.width/2-f,i=b.y+b.height-g+6;break;case"down":h=b.x+b.width/2-f,i=b.y-g-6;break;case"right":h=b.x-f-6,i=b.y-g+b.height/2;break;case"left":h=b.x+b.width-f+6,i=b.y-g+b.height/2}let j=(0,F.$f)({type:"arrow",x:f,y:g,startArrowhead:null,endArrowhead:e.currentItemEndArrowhead,strokeColor:a.strokeColor,strokeStyle:a.strokeStyle,strokeWidth:a.strokeWidth,opacity:a.opacity,roughness:a.roughness,points:[(0,F.Ua)(0,0),(0,F.Ua)(h,i)],elbowed:!0});(0,F.Mg)(j,a,"start",c),(0,F.Mg)(j,b,"end",c);let k=new Map;k.set(a.id,a),k.set(b.id,b),k.set(j.id,j),F.pj.movePoints(j,[{index:1,point:j.points[1]}]);let l=(0,F.ih)(j,(0,F.Sb)(new Map([...c.entries(),[a.id,a],[b.id,b],[j.id,j]])),{points:j.points});return{...j,...l}},hi=class{constructor(){(0,K.d)(this,"isExploring",!1),(0,K.d)(this,"sameLevelNodes",[]),(0,K.d)(this,"sameLevelIndex",0),(0,K.d)(this,"direction",null),(0,K.d)(this,"visitedNodes",new Set)}clear(){this.isExploring=!1,this.sameLevelNodes=[],this.sameLevelIndex=0,this.direction=null,this.visitedNodes.clear()}exploreByDirection(a,b,c){if(!(0,F.ic)(a))return null;if(c!==this.direction&&this.clear(),this.visitedNodes.has(a.id)||this.visitedNodes.add(a.id),this.isExploring&&c===this.direction&&this.sameLevelNodes.length>1)return this.sameLevelIndex=(this.sameLevelIndex+1)%this.sameLevelNodes.length,this.sameLevelNodes[this.sameLevelIndex].id;let d=[...hg("successors",a,b,c),...hg("predecessors",a,b,c)];if(d.length>0)return this.sameLevelIndex=0,this.isExploring=!0,this.sameLevelNodes=d,this.direction=c,this.visitedNodes.add(d[0].id),d[0].id;if(c===this.direction||!this.isExploring){for(let d of(this.isExploring||this.visitedNodes.add(a.id),["up","right","down","left"].filter(a=>a!==c).map(c=>[...hg("successors",a,b,c),...hg("predecessors",a,b,c)]).flat().filter(a=>!this.visitedNodes.has(a.id))))if(!this.visitedNodes.has(d.id))return this.visitedNodes.add(d.id),this.isExploring=!0,this.direction=c,d.id}return null}},hj=class{constructor(){(0,K.d)(this,"isCreatingChart",!1),(0,K.d)(this,"numberOfNodes",0),(0,K.d)(this,"direction","right"),(0,K.d)(this,"pendingNodes",null)}createNodes(a,b,c,d){if(d!==this.direction){var e,f,g,h;let i,j,k,l,m,{nextNode:n,bindingArrow:o}=(e=a,f=b,g=c,i=hg("successors",e,f,h=d),j=hg("predecessors",e,f,h),k=((a,b,c)=>{let d=100+a.width;if("up"===c||"down"===c){let d=100+a.height,e=a.x,f=a.x+a.width;if(b.every(a=>a.x+a.width<e||a.x>f))return{x:0,y:d*("up"===c?-1:1)}}else if("right"===c||"left"===c){let d=a.y,e=a.y+a.height;if(b.every(a=>a.y+a.height<d||a.y>e))return{x:(100+a.width)*("left"===c?-1:1),y:0}}if("up"===c||"down"===c){let e=(b.length,100+a.height),f=0===b.length?0:(b.length+1)%2==0?(b.length+1)/2*d:-(b.length/2*d*1);return"up"===c?{x:f,y:-1*e}:{x:f,y:e}}let e=100+a.height,f=(b.length,100+a.width),g=0===b.length?0:(b.length+1)%2==0?(b.length+1)/2*e:-(b.length/2*e*1);return"left"===c?{x:-1*f,y:g}:{x:f,y:g}})(e,[...i,...j],h),l=(0,F.Sf)({type:e.type,x:e.x+k.x,y:e.y+k.y,width:e.width,height:e.height,roundness:e.roundness,roughness:e.roughness,backgroundColor:e.backgroundColor,strokeColor:e.strokeColor,strokeWidth:e.strokeWidth,opacity:e.opacity,fillStyle:e.fillStyle,strokeStyle:e.strokeStyle}),(0,F.Kb)((0,F.lc)(l),"not an ExcalidrawFlowchartNodeElement"),m=hh(e,l,f,h,g),{nextNode:l,bindingArrow:m});this.numberOfNodes=1,this.isCreatingChart=!0,this.direction=d,this.pendingNodes=[n,o]}else{this.numberOfNodes+=1;let e=((a,b,c,d,e)=>{let f=[];for(let g=0;g<e;g++){let h,i;if("left"===d||"right"===d){let b=100*(e-1)+e*a.height,c=a.y+a.height/2-b/2,f=100+a.width;"left"===d&&(f*=-1),h=a.x+f,i=c+(100+a.height)*g}else{let b=100*(e-1)+e*a.width,c=a.x+a.width/2-b/2,f=100+a.height;"up"===d&&(f*=-1),i=a.y+f,h=c+(100+a.width)*g}let j=(0,F.Sf)({type:a.type,x:h,y:i,width:a.width,height:a.height,roundness:a.roundness,roughness:a.roughness,backgroundColor:a.backgroundColor,strokeColor:a.strokeColor,strokeWidth:a.strokeWidth,opacity:a.opacity,fillStyle:a.fillStyle,strokeStyle:a.strokeStyle});(0,F.Kb)((0,F.lc)(j),"not an ExcalidrawFlowchartNodeElement");let k=hh(a,j,b,d,c);f.push(j),f.push(k)}return f})(a,b,c,d,this.numberOfNodes);this.isCreatingChart=!0,this.direction=d,this.pendingNodes=e}if(a.frameId){let c=b.get(a.frameId);(0,F.Kb)(c&&(0,F.$b)(c),"not an ExcalidrawFrameElement"),c&&this.pendingNodes.every(a=>(0,F.xi)([a],c,b)||(0,F.yi)(a,c,b))&&(this.pendingNodes=this.pendingNodes.map(b=>(0,F.Pj)(b,{frameId:a.frameId},!1)))}}clear(){this.isCreatingChart=!1,this.pendingNodes=null,this.direction=null,this.numberOfNodes=0}},hk=({appState:a,isMobile:b,device:c,app:d})=>{let f=(({appState:a,isMobile:b,device:c,app:d})=>{let{activeTool:e,isResizing:f,isRotating:g,lastPointerDownWith:h}=a,i=null!==a.multiElement;if(a.openSidebar?.name===F.ya.name&&a.openSidebar.tab===F.xa&&a.searchMatches?.length)return c8("hints.dismissSearch");if(a.openSidebar&&!c.editor.canFitSidebar)return null;if((0,F.Gc)(a))return c8("hints.eraserRevert");if("arrow"===e.type||"line"===e.type)return i?c8("hints.linearElementMulti"):"arrow"===e.type?c8("hints.arrowTool",{arrowShortcut:(0,F.kb)("A")}):c8("hints.linearElement");if("freedraw"===e.type)return c8("hints.freeDraw");if("text"===e.type)return c8("hints.text");if("embeddable"===e.type)return c8("hints.embeddable");if("image"===a.activeTool.type&&a.pendingImageElementId)return c8("hints.placeImage");let j=d.scene.getSelectedElements(a);if(f&&"mouse"===h&&1===j.length){let a=j[0];return(0,F.cc)(a)&&2===a.points.length?c8("hints.lockAngle"):(0,F.Wb)(a)?c8("hints.resizeImage"):c8("hints.resize")}if(g&&"mouse"===h)return c8("hints.rotate");if(1===j.length&&(0,F._b)(j[0]))return c8("hints.text_selected");if(a.editingTextElement)return c8("hints.text_editing");if(a.croppingElementId)return c8("hints.leaveCropEditor");if(1===j.length&&(0,F.Wb)(j[0]))return c8("hints.enterCropEditor");if("selection"===e.type){if(a.selectionElement&&!j.length&&!a.editingTextElement&&!a.editingLinearElement)return c8("hints.deepBoxSelect");if((0,F.fj)(d)&&a.selectedElementsAreBeingDragged)return c8("hints.disableSnapping");if(!j.length&&!b)return c8("hints.canvasPanning");if(1===j.length){if((0,F.cc)(j[0]))return a.editingLinearElement?a.editingLinearElement.selectedPointsIndices?c8("hints.lineEditor_pointSelected"):c8("hints.lineEditor_nothingSelected"):c8("hints.lineEditor_info");if(!a.newElement&&!a.selectedElementsAreBeingDragged&&(0,F.jc)(j[0]))return(0,F.lc)(j[0])?(((a,b)=>{for(let[,c]of b)if("arrow"===c.type&&(c.startBinding?.elementId===a.id||c.endBinding?.elementId===a.id))return!0})(j[0],d.scene.getNonDeletedElementsMap()),[c8("hints.bindTextToElement"),c8("hints.createFlowchart")]):c8("hints.bindTextToElement")}}return null})({appState:a,isMobile:b,device:c,app:d});if(!f)return null;let g=Array.isArray(f)?f.map(a=>(0,F.kb)(a).replace(/\. ?$/,"")).join(". "):(0,F.kb)(f);return(0,e.jsx)("div",{className:"HintViewer",children:(0,e.jsx)("span",{children:g})})},hl={CHECKED:F.kd,UNCHECKED:F.jd},hm=a=>(0,e.jsxs)("label",{className:(0,av.default)("ToolIcon ToolIcon__lock","ToolIcon_size_medium",{"is-mobile":a.isMobile}),title:`${a.title} \u2014 Q`,children:[(0,e.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:a.name,onChange:a.onChange,checked:a.checked,"aria-label":a.title,"data-testid":"toolbar-lock"}),(0,e.jsx)("div",{className:"ToolIcon__icon",children:a.checked?hl.CHECKED:hl.UNCHECKED})]}),hn=({heading:a,children:b,...c})=>{let{id:d}=kc(),f=(0,e.jsx)("h2",{className:"visually-hidden",id:`${d}-${a}-title`,children:c8(`headings.${a}`)});return(0,e.jsx)("section",{...c,"aria-labelledby":`${d}-${a}-title`,children:"function"==typeof b?b(f):(0,e.jsxs)(e.Fragment,{children:[f,b]})})},ho=(a,b,c)=>{let[d,e]=[a.horizontal,a.vertical].map(a=>null!=a&&a.x<=b&&b<=a.x+a.width&&a.y<=c&&c<=a.y+a.height);return{isOverEither:d||e,isOverHorizontal:d,isOverVertical:e}},hp=a=>a.penDetected?(0,e.jsxs)("label",{className:(0,av.default)("ToolIcon ToolIcon__penMode","ToolIcon_size_medium",{"is-mobile":a.isMobile}),title:`${a.title}`,children:[(0,e.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",name:a.name,onChange:a.onChange,checked:a.checked,"aria-label":a.title}),(0,e.jsx)("div",{className:"ToolIcon__icon",children:F.od})]}):null,hq=a=>(0,e.jsx)(de,{className:(0,av.default)("Shape",{fillable:!1}),type:"radio",icon:F.Ye,name:"editor-current-shape",checked:a.checked,title:`${a.title} \u2014 H`,keyBindingLabel:a.isMobile?void 0:F.hg.H.toLocaleUpperCase(),"aria-label":`${a.title} \u2014 H`,"aria-keyshortcuts":F.hg.H,"data-testid":"toolbar-hand",onChange:()=>a.onChange?.()}),hr=({appState:a,elements:b,actionManager:c,setAppState:d,onLockToggle:f,onHandToolToggle:g,onPenModeToggle:h,renderTopRightUI:i,renderCustomStats:j,renderSidebars:k,device:l,renderWelcomeScreen:m,UIOptions:n,app:o})=>{let{WelcomeScreenCenterTunnel:p,MainMenuTunnel:q,DefaultSidebarTriggerTunnel:r}=L.default.useContext(gr);return(0,e.jsxs)(e.Fragment,{children:[k(),!a.viewModeEnabled&&a.openDialog?.name!=="elementLinkSelector"&&(0,e.jsxs)(he,{side:"top",className:"App-top-bar",children:[m&&(0,e.jsx)(p.Out,{}),(0,e.jsx)(hn,{heading:"shapes",children:b=>(0,e.jsx)(fN,{gap:4,align:"center",children:(0,e.jsxs)(fM,{gap:1,className:"App-toolbar-container",children:[(0,e.jsxs)(dU,{padding:1,className:"App-toolbar App-toolbar--mobile",children:[b,(0,e.jsx)(fM,{gap:1,children:(0,e.jsx)(gw,{appState:a,activeTool:a.activeTool,UIOptions:n,app:o})})]}),i&&i(!0,a),(0,e.jsxs)("div",{className:"mobile-misc-tools-container",children:[!a.viewModeEnabled&&a.openDialog?.name!=="elementLinkSelector"&&(0,e.jsx)(r.Out,{}),(0,e.jsx)(hp,{checked:a.penMode,onChange:()=>h(null),title:c8("toolBar.penMode"),isMobile:!0,penDetected:a.penDetected}),(0,e.jsx)(hm,{checked:a.activeTool.locked,onChange:f,title:c8("toolBar.lock"),isMobile:!0}),(0,e.jsx)(hq,{checked:(0,F.Hc)(a),onChange:()=>g(),title:c8("toolBar.hand"),isMobile:!0})]})]})})}),(0,e.jsx)(hk,{appState:a,isMobile:!0,device:l,app:o})]}),(0,e.jsx)("div",{className:"App-bottom-bar",style:{marginBottom:14,marginLeft:14,marginRight:14},children:(0,e.jsxs)(dU,{padding:0,children:["shape"===a.openMenu&&!a.viewModeEnabled&&a.openDialog?.name!=="elementLinkSelector"&&(0,F.lk)(a,b)?(0,e.jsx)(hn,{className:"App-mobile-menu",heading:"selectedShapeActions",children:(0,e.jsx)(gv,{appState:a,elementsMap:o.scene.getNonDeletedElementsMap(),renderAction:c.renderAction,app:o})}):null,(0,e.jsxs)("footer",{className:"App-toolbar",children:[a.viewModeEnabled||a.openDialog?.name==="elementLinkSelector"?(0,e.jsx)("div",{className:"App-toolbar-content",children:(0,e.jsx)(q.Out,{})}):(0,e.jsxs)("div",{className:"App-toolbar-content",children:[(0,e.jsx)(q.Out,{}),c.renderAction("toggleEditMenu"),c.renderAction(a.multiElement?"finalize":"duplicateSelection"),c.renderAction("deleteSelectedElements"),(0,e.jsxs)("div",{children:[c.renderAction("undo"),c.renderAction("redo")]})]}),a.scrolledOutside&&!a.openMenu&&!a.openSidebar&&(0,e.jsx)("button",{type:"button",className:"scroll-back-to-content",onClick:()=>{d(a=>({...(0,F.zk)(b,a)}))},children:c8("buttons.scrollBackToContent")})]})]})})]})},hs=a=>{let b=(0,L.useRef)(null),[c,d]=(0,L.useState)(null);return(0,L.useLayoutEffect)(()=>{if(!a.spreadsheet)return;let c=(0,F.gi)(a.chartType,a.spreadsheet,0,0);d(c);let e,f=b.current;return(async()=>(e=await (0,F.ei)(c,{exportBackground:!1,viewBackgroundColor:bN.default.white},null,{skipInliningFonts:!0}),e.querySelector(".style-fonts")?.remove(),f.replaceChildren(),f.appendChild(e),a.selected&&f.parentNode.focus()))(),()=>{f.replaceChildren()}},[a.spreadsheet,a.chartType,a.selected]),(0,e.jsx)("button",{type:"button",className:"ChartPreview",onClick:()=>{c&&a.onClick(a.chartType,c)},children:(0,e.jsx)("div",{ref:b})})},ht=({setAppState:a,appState:b,onClose:c})=>{let{onInsertElements:d}=j9(),f=L.default.useCallback(()=>{c&&c()},[c]),g=(b,c)=>{d(c),dw("paste","chart",b),a({currentChartType:b,pasteDialog:{shown:!1,data:null}})};return(0,e.jsx)(gi,{size:"small",onCloseRequest:f,title:c8("labels.pasteCharts"),className:"PasteChartDialog",autofocus:!1,children:(0,e.jsxs)("div",{className:"container",children:[(0,e.jsx)(hs,{chartType:"bar",spreadsheet:b.pasteDialog.data,selected:"bar"===b.currentChartType,onClick:g}),(0,e.jsx)(hs,{chartType:"line",spreadsheet:b.pasteDialog.data,selected:"line"===b.currentChartType,onClick:g})]})})},hu=()=>(0,e.jsxs)("div",{className:"HelpDialog__header",children:[(0,e.jsxs)("a",{className:"HelpDialog__btn",href:"https://docs.excalidraw.com",target:"_blank",rel:"noopener noreferrer",children:[(0,e.jsx)("div",{className:"HelpDialog__link-icon",children:F.Dd}),c8("helpDialog.documentation")]}),(0,e.jsxs)("a",{className:"HelpDialog__btn",href:"https://plus.excalidraw.com/blog",target:"_blank",rel:"noopener noreferrer",children:[(0,e.jsx)("div",{className:"HelpDialog__link-icon",children:F.Dd}),c8("helpDialog.blog")]}),(0,e.jsxs)("a",{className:"HelpDialog__btn",href:"https://github.com/excalidraw/excalidraw/issues",target:"_blank",rel:"noopener noreferrer",children:[(0,e.jsx)("div",{className:"HelpDialog__link-icon",children:F.Ed}),c8("helpDialog.github")]}),(0,e.jsxs)("a",{className:"HelpDialog__btn",href:"https://youtube.com/@excalidraw",target:"_blank",rel:"noopener noreferrer",children:[(0,e.jsx)("div",{className:"HelpDialog__link-icon",children:F.Ff}),"YouTube"]})]}),hv=a=>(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("h3",{children:a.title}),(0,e.jsx)("div",{className:"HelpDialog__islands-container",children:a.children})]}),hw=a=>(0,e.jsxs)("div",{className:`HelpDialog__island ${a.className}`,children:[(0,e.jsx)("h4",{className:"HelpDialog__island-title",children:a.caption}),(0,e.jsx)("div",{className:"HelpDialog__island-content",children:a.children})]}),hx=({label:a,shortcuts:b,isOr:c=!0})=>{let d=b.map(a=>(a.endsWith("++")?[...a.slice(0,-2).split("+"),"+"]:a.split("+")).map(a=>(0,e.jsx)(hy,{children:a.replace(/\b[a-z]\b/,a=>a.toUpperCase())},a)));return(0,e.jsxs)("div",{className:"HelpDialog__shortcut",children:[(0,e.jsx)("div",{children:a}),(0,e.jsx)("div",{className:"HelpDialog__key-container",children:[...function*(a,b){let c=!0;for(let d of a)c||(yield b),c=!1,yield d}(d,c?c8("helpDialog.or"):null)]})]})},hy=a=>(0,e.jsx)("kbd",{className:"HelpDialog__key",...a}),hz=({onClose:a})=>{let b=L.default.useCallback(()=>{a&&a()},[a]);return(0,e.jsx)(e.Fragment,{children:(0,e.jsxs)(gi,{onCloseRequest:b,title:c8("helpDialog.title"),className:"HelpDialog",children:[(0,e.jsx)(hu,{}),(0,e.jsxs)(hv,{title:c8("helpDialog.shortcuts"),children:[(0,e.jsxs)(hw,{className:"HelpDialog__island--tools",caption:c8("helpDialog.tools"),children:[(0,e.jsx)(hx,{label:c8("toolBar.hand"),shortcuts:[F.hg.H]}),(0,e.jsx)(hx,{label:c8("toolBar.selection"),shortcuts:[F.hg.V,F.hg[1]]}),(0,e.jsx)(hx,{label:c8("toolBar.rectangle"),shortcuts:[F.hg.R,F.hg[2]]}),(0,e.jsx)(hx,{label:c8("toolBar.diamond"),shortcuts:[F.hg.D,F.hg[3]]}),(0,e.jsx)(hx,{label:c8("toolBar.ellipse"),shortcuts:[F.hg.O,F.hg[4]]}),(0,e.jsx)(hx,{label:c8("toolBar.arrow"),shortcuts:[F.hg.A,F.hg[5]]}),(0,e.jsx)(hx,{label:c8("toolBar.line"),shortcuts:[F.hg.L,F.hg[6]]}),(0,e.jsx)(hx,{label:c8("toolBar.freedraw"),shortcuts:[F.hg.P,F.hg[7]]}),(0,e.jsx)(hx,{label:c8("toolBar.text"),shortcuts:[F.hg.T,F.hg[8]]}),(0,e.jsx)(hx,{label:c8("toolBar.image"),shortcuts:[F.hg[9]]}),(0,e.jsx)(hx,{label:c8("toolBar.eraser"),shortcuts:[F.hg.E,F.hg[0]]}),(0,e.jsx)(hx,{label:c8("toolBar.frame"),shortcuts:[F.hg.F]}),(0,e.jsx)(hx,{label:c8("toolBar.laser"),shortcuts:[F.hg.K]}),(0,e.jsx)(hx,{label:c8("labels.eyeDropper"),shortcuts:[F.hg.I,"Shift+S","Shift+G"]}),(0,e.jsx)(hx,{label:c8("helpDialog.editLineArrowPoints"),shortcuts:[(0,F.kb)("CtrlOrCmd+Enter")]}),(0,e.jsx)(hx,{label:c8("helpDialog.editText"),shortcuts:[(0,F.kb)("Enter")]}),(0,e.jsx)(hx,{label:c8("helpDialog.textNewLine"),shortcuts:[(0,F.kb)("Enter"),(0,F.kb)("Shift+Enter")]}),(0,e.jsx)(hx,{label:c8("helpDialog.textFinish"),shortcuts:[(0,F.kb)("Esc"),(0,F.kb)("CtrlOrCmd+Enter")]}),(0,e.jsx)(hx,{label:c8("helpDialog.curvedArrow"),shortcuts:["A",c8("helpDialog.click"),c8("helpDialog.click"),c8("helpDialog.click")],isOr:!1}),(0,e.jsx)(hx,{label:c8("helpDialog.curvedLine"),shortcuts:["L",c8("helpDialog.click"),c8("helpDialog.click"),c8("helpDialog.click")],isOr:!1}),(0,e.jsx)(hx,{label:c8("helpDialog.cropStart"),shortcuts:[c8("helpDialog.doubleClick"),(0,F.kb)("Enter")],isOr:!0}),(0,e.jsx)(hx,{label:c8("helpDialog.cropFinish"),shortcuts:[(0,F.kb)("Enter"),(0,F.kb)("Escape")],isOr:!0}),(0,e.jsx)(hx,{label:c8("toolBar.lock"),shortcuts:[F.hg.Q]}),(0,e.jsx)(hx,{label:c8("helpDialog.preventBinding"),shortcuts:[(0,F.kb)("CtrlOrCmd")]}),(0,e.jsx)(hx,{label:c8("toolBar.link"),shortcuts:[(0,F.kb)("CtrlOrCmd+K")]})]}),(0,e.jsxs)(hw,{className:"HelpDialog__island--view",caption:c8("helpDialog.view"),children:[(0,e.jsx)(hx,{label:c8("buttons.zoomIn"),shortcuts:[(0,F.kb)("CtrlOrCmd++")]}),(0,e.jsx)(hx,{label:c8("buttons.zoomOut"),shortcuts:[(0,F.kb)("CtrlOrCmd+-")]}),(0,e.jsx)(hx,{label:c8("buttons.resetZoom"),shortcuts:[(0,F.kb)("CtrlOrCmd+0")]}),(0,e.jsx)(hx,{label:c8("helpDialog.zoomToFit"),shortcuts:["Shift+1"]}),(0,e.jsx)(hx,{label:c8("helpDialog.zoomToSelection"),shortcuts:["Shift+2"]}),(0,e.jsx)(hx,{label:c8("helpDialog.movePageUpDown"),shortcuts:["PgUp/PgDn"]}),(0,e.jsx)(hx,{label:c8("helpDialog.movePageLeftRight"),shortcuts:["Shift+PgUp/PgDn"]}),(0,e.jsx)(hx,{label:c8("buttons.zenMode"),shortcuts:[(0,F.kb)("Alt+Z")]}),(0,e.jsx)(hx,{label:c8("buttons.objectsSnapMode"),shortcuts:[(0,F.kb)("Alt+S")]}),(0,e.jsx)(hx,{label:c8("labels.toggleGrid"),shortcuts:[(0,F.kb)("CtrlOrCmd+'")]}),(0,e.jsx)(hx,{label:c8("labels.viewMode"),shortcuts:[(0,F.kb)("Alt+R")]}),(0,e.jsx)(hx,{label:c8("labels.toggleTheme"),shortcuts:[(0,F.kb)("Alt+Shift+D")]}),(0,e.jsx)(hx,{label:c8("stats.fullTitle"),shortcuts:[(0,F.kb)("Alt+/")]}),(0,e.jsx)(hx,{label:c8("search.title"),shortcuts:[gm("searchMenu")]}),(0,e.jsx)(hx,{label:c8("commandPalette.title"),shortcuts:F.n?[gm("commandPalette")]:[gm("commandPalette"),gm("commandPalette",1)]})]}),(0,e.jsxs)(hw,{className:"HelpDialog__island--editor",caption:c8("helpDialog.editor"),children:[(0,e.jsx)(hx,{label:c8("helpDialog.createFlowchart"),shortcuts:[(0,F.kb)("CtrlOrCmd+Arrow Key")],isOr:!0}),(0,e.jsx)(hx,{label:c8("helpDialog.navigateFlowchart"),shortcuts:[(0,F.kb)("Alt+Arrow Key")],isOr:!0}),(0,e.jsx)(hx,{label:c8("labels.moveCanvas"),shortcuts:[(0,F.kb)(`Space+${c8("helpDialog.drag")}`),(0,F.kb)(`Wheel+${c8("helpDialog.drag")}`)],isOr:!0}),(0,e.jsx)(hx,{label:c8("buttons.clearReset"),shortcuts:[(0,F.kb)("CtrlOrCmd+Delete")]}),(0,e.jsx)(hx,{label:c8("labels.delete"),shortcuts:[(0,F.kb)("Delete")]}),(0,e.jsx)(hx,{label:c8("labels.cut"),shortcuts:[(0,F.kb)("CtrlOrCmd+X")]}),(0,e.jsx)(hx,{label:c8("labels.copy"),shortcuts:[(0,F.kb)("CtrlOrCmd+C")]}),(0,e.jsx)(hx,{label:c8("labels.paste"),shortcuts:[(0,F.kb)("CtrlOrCmd+V")]}),(0,e.jsx)(hx,{label:c8("labels.pasteAsPlaintext"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+V")]}),(0,e.jsx)(hx,{label:c8("labels.selectAll"),shortcuts:[(0,F.kb)("CtrlOrCmd+A")]}),(0,e.jsx)(hx,{label:c8("labels.multiSelect"),shortcuts:[(0,F.kb)(`Shift+${c8("helpDialog.click")}`)]}),(0,e.jsx)(hx,{label:c8("helpDialog.deepSelect"),shortcuts:[(0,F.kb)(`CtrlOrCmd+${c8("helpDialog.click")}`)]}),(0,e.jsx)(hx,{label:c8("helpDialog.deepBoxSelect"),shortcuts:[(0,F.kb)(`CtrlOrCmd+${c8("helpDialog.drag")}`)]}),(F.ii||F.n)&&(0,e.jsx)(hx,{label:c8("labels.copyAsPng"),shortcuts:[(0,F.kb)("Shift+Alt+C")]}),(0,e.jsx)(hx,{label:c8("labels.copyStyles"),shortcuts:[(0,F.kb)("CtrlOrCmd+Alt+C")]}),(0,e.jsx)(hx,{label:c8("labels.pasteStyles"),shortcuts:[(0,F.kb)("CtrlOrCmd+Alt+V")]}),(0,e.jsx)(hx,{label:c8("labels.sendToBack"),shortcuts:[F.l?(0,F.kb)("CtrlOrCmd+Alt+["):(0,F.kb)("CtrlOrCmd+Shift+[")]}),(0,e.jsx)(hx,{label:c8("labels.bringToFront"),shortcuts:[F.l?(0,F.kb)("CtrlOrCmd+Alt+]"):(0,F.kb)("CtrlOrCmd+Shift+]")]}),(0,e.jsx)(hx,{label:c8("labels.sendBackward"),shortcuts:[(0,F.kb)("CtrlOrCmd+[")]}),(0,e.jsx)(hx,{label:c8("labels.bringForward"),shortcuts:[(0,F.kb)("CtrlOrCmd+]")]}),(0,e.jsx)(hx,{label:c8("labels.alignTop"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+Up")]}),(0,e.jsx)(hx,{label:c8("labels.alignBottom"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+Down")]}),(0,e.jsx)(hx,{label:c8("labels.alignLeft"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+Left")]}),(0,e.jsx)(hx,{label:c8("labels.alignRight"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+Right")]}),(0,e.jsx)(hx,{label:c8("labels.duplicateSelection"),shortcuts:[(0,F.kb)("CtrlOrCmd+D"),(0,F.kb)(`Alt+${c8("helpDialog.drag")}`)]}),(0,e.jsx)(hx,{label:c8("helpDialog.toggleElementLock"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+L")]}),(0,e.jsx)(hx,{label:c8("buttons.undo"),shortcuts:[(0,F.kb)("CtrlOrCmd+Z")]}),(0,e.jsx)(hx,{label:c8("buttons.redo"),shortcuts:F.m?[(0,F.kb)("CtrlOrCmd+Y"),(0,F.kb)("CtrlOrCmd+Shift+Z")]:[(0,F.kb)("CtrlOrCmd+Shift+Z")]}),(0,e.jsx)(hx,{label:c8("labels.group"),shortcuts:[(0,F.kb)("CtrlOrCmd+G")]}),(0,e.jsx)(hx,{label:c8("labels.ungroup"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+G")]}),(0,e.jsx)(hx,{label:c8("labels.flipHorizontal"),shortcuts:[(0,F.kb)("Shift+H")]}),(0,e.jsx)(hx,{label:c8("labels.flipVertical"),shortcuts:[(0,F.kb)("Shift+V")]}),(0,e.jsx)(hx,{label:c8("labels.showStroke"),shortcuts:[(0,F.kb)("S")]}),(0,e.jsx)(hx,{label:c8("labels.showBackground"),shortcuts:[(0,F.kb)("G")]}),(0,e.jsx)(hx,{label:c8("labels.showFonts"),shortcuts:[(0,F.kb)("Shift+F")]}),(0,e.jsx)(hx,{label:c8("labels.decreaseFontSize"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+<")]}),(0,e.jsx)(hx,{label:c8("labels.increaseFontSize"),shortcuts:[(0,F.kb)("CtrlOrCmd+Shift+>")]})]})]})]})})},hA=({shouldWrap:a,children:b,username:c})=>a?(0,e.jsx)(eu,{label:c||"Unknown user",children:b}):(0,e.jsx)(e.Fragment,{children:b}),hB=({actionManager:a,collaborator:b,socketId:c,withName:d=!1,shouldWrapWithTooltip:f=!1,isBeingFollowed:g})=>{let h=a.renderAction("goToCollaborator",{socketId:c,collaborator:b,withName:d,isBeingFollowed:g});return(0,e.jsx)(hA,{username:b.username,shouldWrap:f,children:h},c)},hC=["avatarUrl","id","socketId","username","isInCall","isSpeaking","isMuted"],hD=L.default.memo(({className:a,mobile:b,collaborators:c,userToFollow:d})=>{let f=kg(),g=new Map;c.forEach((a,b)=>{let c=a.id||b;g.set(c,{...a,socketId:b})});let h=Array.from(g.values()).filter(a=>a.username?.trim()),[i,j]=L.default.useState(""),k=h.filter(a=>a.username?.toLowerCase().includes(i)),l=L.default.useRef(null);(0,L.useLayoutEffect)(()=>{if(l.current){let a=a=>{n(Math.max(1,Math.min(8,Math.floor(a/38))))};if(a(l.current.clientWidth),!F.r)return;let b=new ResizeObserver(b=>{for(let c of b){let{width:b}=c.contentRect;a(b)}});return b.observe(l.current),()=>{b.disconnect()}}},[]);let[m,n]=L.default.useState(4),o=h.slice(0,m-1).map(a=>hB({actionManager:f,collaborator:a,socketId:a.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:a.socketId===d}));return b?(0,e.jsx)("div",{className:(0,av.default)("UserList UserList_mobile",a),children:h.map(a=>hB({actionManager:f,collaborator:a,socketId:a.socketId,shouldWrapWithTooltip:!0,isBeingFollowed:a.socketId===d}))}):(0,e.jsx)("div",{className:"UserList__wrapper",ref:l,children:(0,e.jsxs)("div",{className:(0,av.default)("UserList",a),style:{"--max-avatars":m},children:[o,h.length>m-1&&(0,e.jsxs)(bx,{children:[(0,e.jsxs)(bA,{className:"UserList__more",children:["+",h.length-m+1]}),(0,e.jsx)(bG,{style:{zIndex:2,width:"15rem",textAlign:"left"},align:"end",sideOffset:10,children:(0,e.jsxs)(dU,{padding:2,children:[h.length>=8&&(0,e.jsx)(d4,{placeholder:c8("quickSearch.placeholder"),onChange:j}),(0,e.jsx)(d5,{className:"dropdown-menu UserList__collaborators",placeholder:c8("userList.empty"),children:k.length>0?[(0,e.jsx)("div",{className:"hint",children:c8("userList.hint.text")}),k.map(a=>hB({actionManager:f,collaborator:a,socketId:a.socketId,withName:!0,isBeingFollowed:a.socketId===d}))]:[]}),(0,e.jsx)(bL,{width:20,height:10,style:{fill:"var(--popup-bg-color)",filter:"drop-shadow(rgba(0, 0, 0, 0.05) 0px 3px 2px)"}})]})})]})]})})},(a,b)=>{if(a.collaborators.size!==b.collaborators.size||a.mobile!==b.mobile||a.className!==b.className||a.userToFollow!==b.userToFollow)return!1;let c=b.collaborators.keys();for(let[d,e]of a.collaborators){let a=b.collaborators.get(d);if(!a||d!==c.next().value||!(0,F.Hb)(e,a,hC))return!1}return!0}),hE=({children:a,color:b})=>(0,e.jsx)("div",{className:"Card",style:{"--card-color":"primary"===b?"var(--color-primary)":bN.default[b][7],"--card-color-darker":"primary"===b?"var(--color-primary-darker)":bN.default[b][8],"--card-color-darkest":"primary"===b?"var(--color-primary-darkest)":bN.default[b][9]},children:a}),hF=({elements:a,appState:b,setAppState:c,files:d,actionManager:f,exportOpts:g,canvas:h,onCloseRequest:i})=>{let{onExportToBackend:j}=g;return(0,e.jsx)("div",{className:"ExportDialog ExportDialog--json",children:(0,e.jsxs)("div",{className:"ExportDialog-cards",children:[g.saveFileToDisk&&(0,e.jsxs)(hE,{color:"lime",children:[(0,e.jsx)("div",{className:"Card-icon",children:F.Pd}),(0,e.jsx)("h2",{children:c8("exportDialog.disk_title")}),(0,e.jsxs)("div",{className:"Card-details",children:[c8("exportDialog.disk_details"),!G.supported&&f.renderAction("changeProjectName")]}),(0,e.jsx)(de,{className:"Card-button",type:"button",title:c8("exportDialog.disk_button"),"aria-label":c8("exportDialog.disk_button"),showAriaLabel:!0,onClick:()=>{f.executeAction(eP,"ui")}})]}),j&&(0,e.jsxs)(hE,{color:"pink",children:[(0,e.jsx)("div",{className:"Card-icon",children:F.Id}),(0,e.jsx)("h2",{children:c8("exportDialog.link_title")}),(0,e.jsx)("div",{className:"Card-details",children:c8("exportDialog.link_details")}),(0,e.jsx)(de,{className:"Card-button",type:"button",title:c8("exportDialog.link_button"),"aria-label":c8("exportDialog.link_button"),showAriaLabel:!0,onClick:async()=>{try{dw("export","link",`ui (${(0,F.Eb)()})`),await j(a,b,d),i()}catch(a){c({errorMessage:a.message})}}})]}),g.renderCustomUI&&g.renderCustomUI(a,b,d,h)]})})},hG=({elements:a,appState:b,files:c,actionManager:d,exportOpts:f,canvas:g,setAppState:h})=>{let i=L.default.useCallback(()=>{h({openDialog:null})},[h]);return(0,e.jsx)(e.Fragment,{children:b.openDialog?.name==="jsonExport"&&(0,e.jsx)(gi,{onCloseRequest:i,title:c8("buttons.export"),children:(0,e.jsx)(hF,{elements:a,appState:b,setAppState:h,files:c,actionManager:d,onCloseRequest:i,exportOpts:f,canvas:g})})})},hH=a=>(0,e.jsx)("button",{className:"help-icon",onClick:a.onClick,type:"button",title:`${c8("helpDialog.title")} \u2014 ?`,"aria-label":c8("helpDialog.title"),children:F.Bd}),hI=({appState:a,actionManager:b,showExitZenModeBtn:c,renderWelcomeScreen:d})=>{let{FooterCenterTunnel:f,WelcomeScreenHelpHintTunnel:g}=L.default.useContext(gr),h=kb(),i=!a.viewModeEnabled&&a.multiElement&&h.isTouchScreen;return(0,e.jsxs)("footer",{role:"contentinfo",className:"layer-ui__wrapper__footer App-menu App-menu_bottom",children:[(0,e.jsx)("div",{className:(0,av.default)("layer-ui__wrapper__footer-left zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":a.zenModeEnabled}),children:(0,e.jsx)(fN,{gap:2,children:(0,e.jsxs)(hn,{heading:"canvasActions",children:[(0,e.jsx)(gx,{renderAction:b.renderAction,zoom:a.zoom}),!a.viewModeEnabled&&(0,e.jsx)(gy,{renderAction:b.renderAction,className:(0,av.default)("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-bottom":a.zenModeEnabled})}),i&&(0,e.jsx)(gA,{renderAction:b.renderAction,className:(0,av.default)("zen-mode-transition",{"layer-ui__wrapper__footer-left--transition-left":a.zenModeEnabled})})]})})}),(0,e.jsx)(f.Out,{}),(0,e.jsx)("div",{className:(0,av.default)("layer-ui__wrapper__footer-right zen-mode-transition",{"transition-right":a.zenModeEnabled}),children:(0,e.jsxs)("div",{style:{position:"relative"},children:[d&&(0,e.jsx)(g.Out,{}),(0,e.jsx)(hH,{onClick:()=>b.executeAction(eV)})]})}),(0,e.jsx)(gz,{actionManager:b,showExitZenModeBtn:c})]})};hI.displayName="Footer";var hJ=L.default.createContext({}),hK=({children:a,className:b})=>{let c=kb(),d=(0,L.useContext)(hJ),f=!!(c.editor.canFitSidebar&&d.shouldRenderDockButton);return(0,e.jsxs)("div",{className:(0,av.default)("sidebar__header",b),"data-testid":"sidebar-header",children:[a,(0,e.jsxs)("div",{className:"sidebar__header__buttons",children:[f&&(0,e.jsx)(eu,{label:c8("labels.sidebarLock"),children:(0,e.jsx)(gj,{onSelect:()=>d.onDock?.(!d.docked),selected:!!d.docked,className:"sidebar__dock","data-testid":"sidebar-dock","aria-label":c8("labels.sidebarLock"),children:F.id})}),(0,e.jsx)(gj,{"data-testid":"sidebar-close",className:"sidebar__close",onSelect:d.onCloseRequest,"aria-label":c8("buttons.close"),children:F.ge})]})]})};hK.displayName="SidebarHeader";var hL=({name:a,tab:b,icon:c,title:d,children:f,onToggle:g,className:h,style:i})=>{let j=kf(),k=L.default.useContext(dN);return(0,e.jsxs)("label",{title:d,className:"sidebar-trigger__label-element",children:[(0,e.jsx)("input",{className:"ToolIcon_type_checkbox",type:"checkbox",onChange:c=>{document.querySelector(".layer-ui__wrapper")?.classList.remove("animate");let d=c.target.checked;j({openSidebar:d?{name:a,tab:b}:null}),g?.(d)},checked:k.openSidebar?.name===a,"aria-label":d,"aria-keyshortcuts":"0"}),(0,e.jsxs)("div",{className:(0,av.default)("sidebar-trigger",h),style:i,children:[c&&(0,e.jsx)("div",{children:c}),f&&(0,e.jsx)("div",{className:"sidebar-trigger__label",children:f})]})]})};hL.displayName="SidebarTrigger";var hM=({children:a,...b})=>(0,e.jsx)(cE,{className:"sidebar-triggers",...b,children:a});hM.displayName="SidebarTabTriggers";var hN=({children:a,tab:b,onSelect:c,...d})=>(0,e.jsx)(cF,{value:b,asChild:!0,onSelect:c,children:(0,e.jsx)("button",{type:"button",className:"excalidraw-button sidebar-tab-trigger",...d,children:a})});hN.displayName="SidebarTabTrigger";var hO=({children:a,...b})=>{let c=L.default.useContext(dN),d=kf();if(!c.openSidebar)return null;let{name:f}=c.openSidebar;return(0,e.jsx)(cD,{className:"sidebar-tabs-root",value:c.openSidebar.tab,onValueChange:a=>d(b=>({...b,openSidebar:{...b.openSidebar,name:f,tab:a}})),...b,children:a})};hO.displayName="SidebarTabs";var hP=({tab:a,children:b,...c})=>(0,e.jsx)(cG,{...c,value:a,"data-testid":a,children:b});hP.displayName="SidebarTab";var hQ=O(!1),hR=(0,L.forwardRef)(({name:a,children:b,onDock:c,docked:d,className:f,...g},h)=>{H.a.DEV&&c&&null==d&&console.warn("Sidebar: `docked` must be set when `onDock` is supplied for the sidebar to be user-dockable. To hide this message, either pass `docked` or remove `onDock`");let i=kf(),j=cX(hQ);(0,L.useLayoutEffect)(()=>(j(!!d),()=>{j(!1)}),[j,d]);let k=(0,L.useRef)({});k.current.onCloseRequest=()=>{i({openSidebar:null})},k.current.onDock=a=>c?.(a),k.current=(0,F.Db)(k.current,{docked:d,shouldRenderDockButton:!!c&&null!=d});let l=(0,L.useRef)(null);(0,L.useImperativeHandle)(h,()=>l.current);let m=kb(),n=(0,L.useCallback)(()=>{document.querySelector(".Dialog")||i({openSidebar:null})},[i]);return dP(l,(0,L.useCallback)(a=>{a.target.closest(".sidebar-trigger")||d&&m.editor.canFitSidebar||n()},[n,d,m.editor.canFitSidebar])),(0,L.useEffect)(()=>{let a=a=>{a.key!==F.hg.ESCAPE||d&&m.editor.canFitSidebar||n()};return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)}},[n,d,m.editor.canFitSidebar]),(0,e.jsx)(dU,{...g,className:(0,av.default)("sidebar",{"sidebar--docked":d},f),ref:l,children:(0,e.jsx)(hJ.Provider,{value:k.current,children:b})})});hR.displayName="SidebarInner";var hS=Object.assign((0,L.forwardRef)((a,b)=>{let c=L.default.useContext(dN),{onStateChange:d}=a,e=(0,L.useRef)(c.openSidebar);(0,L.useEffect)(()=>{(c.openSidebar||e?.current?.name!==a.name)&&(c.openSidebar?.name!==a.name||e?.current?.name===a.name)&&e.current?.name!==a.name||c.openSidebar===e.current||d?.(c.openSidebar?.name!==a.name?null:c.openSidebar),e.current=c.openSidebar},[c.openSidebar,d,a.name]);let[f,g]=(0,L.useState)(!1);return(0,L.useLayoutEffect)(()=>(g(!0),()=>g(!1)),[]),f&&c.openSidebar?.name===a.name?(0,L.createElement)(hR,{...a,ref:b,key:a.name}):null}),{Header:hK,TabTriggers:hM,TabTrigger:hN,Tabs:hO,Tab:hP,Trigger:hL});hS.displayName="Sidebar";var hT={};(0,K.c)(hT,{ChangeCanvasBackground:()=>h3,ClearCanvas:()=>h1,CommandPalette:()=>h$,Export:()=>h4,Help:()=>h0,LiveCollaborationTrigger:()=>h6,LoadScene:()=>hX,SaveAsImage:()=>hZ,SaveToActiveFile:()=>hY,SearchMenu:()=>h_,Socials:()=>h5,ToggleTheme:()=>h2});var hU=O({active:!1});async function hV({title:a,description:b,actionLabel:c,color:d}){return new Promise(e=>{c_.set(hU,{active:!0,onConfirm:()=>e(!0),onClose:()=>e(!1),onReject:()=>e(!1),title:a,description:b,actionLabel:c,color:d})})}var hW=({value:a,shortcut:b,onChange:c,choices:d,children:f,name:g})=>{let h=kb();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"dropdown-menu-item-base dropdown-menu-item-bare",children:[(0,e.jsx)("label",{className:"dropdown-menu-item__text",htmlFor:g,children:f}),(0,e.jsx)(g6,{name:g,value:a,onChange:c,choices:d})]}),b&&!h.editor.isMobile&&(0,e.jsx)("div",{className:"dropdown-menu-item__shortcut dropdown-menu-item__shortcut--orphaned",children:b})]})};hW.displayName="DropdownMenuItemContentRadio";var hX=()=>{let{t:a}=da(),b=kg(),c=kd();return b.isActionEnabled(eQ)?(0,e.jsx)(eb,{icon:F.Ld,onSelect:async()=>{(!c.length||await hV({title:a("overwriteConfirm.modal.loadFromFile.title"),actionLabel:a("overwriteConfirm.modal.loadFromFile.button"),color:"warning",description:(0,e.jsx)(fU,{i18nKey:"overwriteConfirm.modal.loadFromFile.description",bold:a=>(0,e.jsx)("strong",{children:a}),br:()=>(0,e.jsx)("br",{})})}))&&b.executeAction(eQ)},"data-testid":"load-button",shortcut:gm("loadScene"),"aria-label":a("buttons.load"),children:a("buttons.load")}):null};hX.displayName="LoadScene";var hY=()=>{let{t:a}=da(),b=kg();return b.isActionEnabled(eO)?(0,e.jsx)(eb,{shortcut:gm("saveScene"),"data-testid":"save-button",onSelect:()=>b.executeAction(eO),icon:F.Jd,"aria-label":`${a("buttons.save")}`,children:`${a("buttons.save")}`}):null};hY.displayName="SaveToActiveFile";var hZ=()=>{let a=kf(),{t:b}=da();return(0,e.jsx)(eb,{icon:F.Od,"data-testid":"image-export-button",onSelect:()=>a({openDialog:{name:"imageExport"}}),shortcut:gm("imageExport"),"aria-label":b("buttons.exportImage"),children:b("buttons.exportImage")})};hZ.displayName="SaveAsImage";var h$=a=>{let b=kf(),{t:c}=da();return(0,e.jsx)(eb,{icon:F.tf,"data-testid":"command-palette-button",onSelect:()=>{dw("command_palette","open","menu"),b({openDialog:{name:"commandPalette"}})},shortcut:gm("commandPalette"),"aria-label":c("commandPalette.title"),className:a?.className,children:c("commandPalette.title")})};h$.displayName="CommandPalette";var h_=a=>{let{t:b}=da(),c=kg();return(0,e.jsx)(eb,{icon:F.pf,"data-testid":"search-menu-button",onSelect:()=>{c.executeAction(gS)},shortcut:gm("searchMenu"),"aria-label":b("search.title"),className:a?.className,children:b("search.title")})};h_.displayName="SearchMenu";var h0=()=>{let{t:a}=da(),b=kg();return(0,e.jsx)(eb,{"data-testid":"help-menu-item",icon:F.Bd,onSelect:()=>b.executeAction(eV),shortcut:"?","aria-label":a("helpDialog.title"),children:a("helpDialog.title")})};h0.displayName="Help";var h1=()=>{let{t:a}=da(),b=cX(gC);return kg().isActionEnabled(ev)?(0,e.jsx)(eb,{icon:F.ud,onSelect:()=>b("clearCanvas"),"data-testid":"clear-canvas-button","aria-label":a("buttons.clearReset"),children:a("buttons.clearReset")}):null};h1.displayName="ClearCanvas";var h2=a=>{let{t:b}=da(),c=L.default.useContext(dN),d=kg(),f=gm("toggleTheme");return d.isActionEnabled(eA)?a?.allowSystemTheme?(0,e.jsx)(hW,{name:"theme",value:a.theme,onChange:b=>a.onSelect(b),choices:[{value:F.G.LIGHT,label:F.yd,ariaLabel:`${b("buttons.lightMode")} - ${f}`},{value:F.G.DARK,label:F.xd,ariaLabel:`${b("buttons.darkMode")} - ${f}`},{value:"system",label:F.Ef,ariaLabel:b("buttons.systemMode")}],children:b("labels.theme")}):(0,e.jsx)(eb,{onSelect:b=>{if(b.preventDefault(),!a?.onSelect)return d.executeAction(eA);a.onSelect(c.theme===F.G.DARK?F.G.LIGHT:F.G.DARK)},icon:c.theme===F.G.DARK?F.yd:F.xd,"data-testid":"toggle-dark-mode",shortcut:f,"aria-label":b(c.theme===F.G.DARK?"buttons.lightMode":"buttons.darkMode"),children:b(c.theme===F.G.DARK?"buttons.lightMode":"buttons.darkMode")}):null};h2.displayName="ToggleTheme";var h3=()=>{let{t:a}=da(),b=L.default.useContext(dN),c=kg(),d=ka();return b.viewModeEnabled||!d.UIOptions.canvasActions.changeViewBackgroundColor?null:(0,e.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,e.jsx)("div",{"data-testid":"canvas-background-label",style:{fontSize:".75rem",marginBottom:".5rem"},children:a("labels.canvasBackground")}),(0,e.jsx)("div",{style:{padding:"0 0.625rem"},children:c.renderAction("changeViewBackgroundColor")})]})};h3.displayName="ChangeCanvasBackground";var h4=()=>{let{t:a}=da(),b=kf();return(0,e.jsx)(eb,{icon:F.Ad,onSelect:()=>{b({openDialog:{name:"jsonExport"}})},"data-testid":"json-export-button","aria-label":a("buttons.export"),children:a("buttons.export")})};h4.displayName="Export";var h5=()=>{let{t:a}=da();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(f2,{icon:F.Ed,href:"https://github.com/excalidraw/excalidraw","aria-label":"GitHub",children:"GitHub"}),(0,e.jsx)(f2,{icon:F.Gd,href:"https://x.com/excalidraw","aria-label":"X",children:a("labels.followUs")}),(0,e.jsx)(f2,{icon:F.Fd,href:"https://discord.gg/UexuTaE","aria-label":"Discord",children:a("labels.discordChat")})]})};h5.displayName="Socials";var h6=({onSelect:a,isCollaborating:b})=>{let{t:c}=da();return(0,e.jsx)(eb,{"data-testid":"collab-button",icon:F.fe,className:(0,av.default)({"active-collab":b}),onSelect:a,children:c("labels.liveCollaboration")})};h6.displayName="LiveCollaborationTrigger";var h7=(a,b)=>{let c=O(0),d=a=>{let{tunnelsJotai:{useAtom:d}}=L.default.useContext(gr),[,f]=d(c),g=(0,L.useRef)({preferHost:!1,counter:0});return(0,L.useLayoutEffect)(()=>{let a=g.current;return f(b=>{let c=b+1;return a.counter=c,c}),()=>{f(b=>{let c=b-1;return a.counter=c,c||(a.preferHost=!1),c})}},[f]),a.__fallback||(g.current.preferHost=!0),!g.current.counter&&a.__fallback&&g.current.preferHost||g.current.counter>1&&a.__fallback?null:(0,e.jsx)(b,{...a})};return d.displayName=a,d},h8=Object.assign(h7("MainMenu",({children:a,onSelect:b})=>{let{MainMenuTunnel:c}=L.default.useContext(gr),d=kb(),f=L.default.useContext(dN),g=kf(),h=d.editor.isMobile?void 0:()=>g({openMenu:null});return(0,e.jsx)(c.In,{children:(0,e.jsxs)(f3,{open:"canvas"===f.openMenu,children:[(0,e.jsx)(f3.Trigger,{onToggle:()=>{g({openMenu:"canvas"===f.openMenu?null:"canvas"})},"data-testid":"main-menu-trigger",className:"main-menu-trigger",children:F.zd}),(0,e.jsxs)(f3.Content,{onClickOutside:h,onSelect:(0,F.Ib)(b,()=>{g({openMenu:null})}),children:[a,d.editor.isMobile&&f.collaborators.size>0&&(0,e.jsxs)("fieldset",{className:"UserList-Wrapper",children:[(0,e.jsx)("legend",{children:c8("labels.collaborators")}),(0,e.jsx)(hD,{mobile:!0,collaborators:f.collaborators,userToFollow:f.userToFollow?.socketId||null})]})]})]})})}),{Trigger:f3.Trigger,Item:f3.Item,ItemLink:f3.ItemLink,ItemCustom:f3.ItemCustom,Group:f3.Group,Separator:f3.Separator,DefaultItems:hT}),h9=({title:a,children:b,actionLabel:c,onClick:d})=>(0,e.jsxs)("div",{className:"OverwriteConfirm__Actions__Action",children:[(0,e.jsx)("h4",{children:a}),(0,e.jsx)("div",{className:"OverwriteConfirm__Actions__Action__content",children:b}),(0,e.jsx)(g8,{variant:"outlined",color:"muted",label:c,size:"large",fullWidth:!0,onClick:d})]}),ia=Object.assign(({children:a})=>(0,e.jsx)("div",{className:"OverwriteConfirm__Actions",children:a}),{ExportToImage:()=>{let{t:a}=da(),b=kg(),c=kf();return(0,e.jsx)(h9,{title:a("overwriteConfirm.action.exportToImage.title"),actionLabel:a("overwriteConfirm.action.exportToImage.button"),onClick:()=>{b.executeAction(eN,"ui",!0),c({openDialog:{name:"imageExport"}})},children:a("overwriteConfirm.action.exportToImage.description")})},SaveToDisk:()=>{let{t:a}=da(),b=kg();return(0,e.jsx)(h9,{title:a("overwriteConfirm.action.saveToDisk.title"),actionLabel:a("overwriteConfirm.action.saveToDisk.button"),onClick:()=>{b.executeAction(eP,"ui")},children:a("overwriteConfirm.action.saveToDisk.description")})}}),ib=Object.assign(h7("OverwriteConfirmDialog",({children:a})=>{let{OverwriteConfirmDialogTunnel:b}=L.default.useContext(gr),[c,d]=cW(hU);return c.active?(0,e.jsx)(b.In,{children:(0,e.jsx)(gi,{onCloseRequest:()=>{c.onClose(),d(a=>({...a,active:!1}))},title:!1,size:916,children:(0,e.jsxs)("div",{className:"OverwriteConfirm",children:[(0,e.jsx)("h3",{children:c.title}),(0,e.jsxs)("div",{className:`OverwriteConfirm__Description OverwriteConfirm__Description--color-${c.color}`,children:[(0,e.jsx)("div",{className:"OverwriteConfirm__Description__icon",children:F.cf}),(0,e.jsx)("div",{children:c.description}),(0,e.jsx)("div",{className:"OverwriteConfirm__Description__spacer"}),(0,e.jsx)(g8,{color:c.color,size:"large",label:c.actionLabel,onClick:()=>{c.onConfirm(),d(a=>({...a,active:!1}))}})]}),(0,e.jsx)(ia,{children:a})]})})}):null}),{Actions:ia,Action:h9}),ic=O(""),id=O(null),ie=()=>{let a=j9(),b=kf(),c=(0,L.useRef)(null),[d,f]=cW(ic),g=d.trim(),[h,i]=(0,L.useState)(!1),[j,k]=(0,L.useState)({nonce:null,items:[]}),l=(0,L.useRef)(null),m=(0,L.useRef)(void 0),[n,o]=cW(id),p=a.scene.getNonDeletedElementsMap();(0,L.useEffect)(()=>{h||(g!==l.current||a.scene.getSceneNonce()!==m.current)&&(l.current=null,ik(g,a,(c,d)=>{k({nonce:(0,F.rc)(),items:c}),l.current=g,m.current=a.scene.getSceneNonce(),b({searchMatches:c.map(a=>({id:a.textElement.id,focus:!1,matchedLines:a.matchedLines}))})}))},[h,g,p,a,b,o,m]);let q=()=>{j.items.length>0&&o(a=>null===a?0:(a+1)%j.items.length)},r=()=>{j.items.length>0&&o(a=>null===a?0:a-1<0?j.items.length-1:a-1)};(0,L.useEffect)(()=>{b(a=>({searchMatches:a.searchMatches.map((a,b)=>b===n?{...a,focus:!0}:{...a,focus:!1})}))},[n,b]),(0,L.useEffect)(()=>{if(j.items.length>0&&null!==n){let b=j.items[n];if(b){let c=a.state.zoom.value,d=(0,F.Xf)({text:b.searchQuery,x:b.textElement.x+(b.matchedLines[0]?.offsetX??0),y:b.textElement.y+(b.matchedLines[0]?.offsetY??0),width:b.matchedLines[0]?.width,height:b.matchedLines[0]?.height,fontSize:b.textElement.fontSize,fontFamily:b.textElement.fontFamily}),e=b.textElement.fontSize,f=e*c<14;if(!(0,F.Uj)([d],a.canvas.width/window.devicePixelRatio,a.canvas.height/window.devicePixelRatio,{offsetLeft:a.state.offsetLeft,offsetTop:a.state.offsetTop,scrollX:a.state.scrollX,scrollY:a.state.scrollY,zoom:a.state.zoom},a.scene.getNonDeletedElementsMap(),a.getEditorUIOffsets())||f){let b;b=f?e>=14?{fitToContent:!0}:{fitToViewport:!0,maxZoom:(0,F.Ja)(14/e,1)}:{fitToContent:!0},a.scrollToContent(d,{animate:!0,duration:300,...b,canvasOffsets:a.getEditorUIOffsets()})}}}},[n,j,a]),(0,L.useEffect)(()=>()=>{o(null),l.current=null,m.current=void 0,b({searchMatches:[]}),i(!1)},[b,o]);let s=dQ({goToNextItem:q,goToPreviousItem:r,searchMatches:j});(0,L.useEffect)(()=>(0,F.Pb)(window,"keydown",d=>{if(d.key===F.hg.ESCAPE&&!a.state.openDialog&&!a.state.openPopup){d.preventDefault(),d.stopPropagation(),b({openSidebar:null});return}d[F.hg.CTRL_OR_CMD]&&d.key===F.hg.F&&(d.preventDefault(),d.stopPropagation(),c.current?.matches(":focus")?b({openSidebar:null}):(a.state.openDialog&&b({openDialog:null}),c.current?.focus(),c.current?.select())),d.target instanceof HTMLElement&&d.target.closest(".layer-ui__search")&&s.searchMatches.items.length&&(d.key===F.hg.ENTER&&(d.stopPropagation(),s.goToNextItem()),d.key===F.hg.ARROW_UP?(d.stopPropagation(),s.goToPreviousItem()):d.key===F.hg.ARROW_DOWN&&(d.stopPropagation(),s.goToNextItem()))},{capture:!0,passive:!1}),[b,s,a]);let t=`${j.items.length} ${1===j.items.length?c8("search.singleResult"):c8("search.multipleResults")}`;return(0,e.jsxs)("div",{className:"layer-ui__search",children:[(0,e.jsx)("div",{className:"layer-ui__search-header",children:(0,e.jsx)(gk,{className:F.E.SEARCH_MENU_INPUT_WRAPPER,value:d,ref:c,placeholder:c8("search.placeholder"),icon:F.pf,onChange:c=>{f(c),i(!0);let d=c.trim();ik(d,a,(c,e)=>{k({nonce:(0,F.rc)(),items:c}),o(e),l.current=d,m.current=a.scene.getSceneNonce(),b({searchMatches:c.map(a=>({id:a.textElement.id,focus:!1,matchedLines:a.matchedLines}))}),i(!1)})},selectOnRender:!0})}),(0,e.jsxs)("div",{className:"layer-ui__search-count",children:[j.items.length>0&&(0,e.jsxs)(e.Fragment,{children:[null!==n&&n>-1?(0,e.jsxs)("div",{children:[n+1," / ",t]}):(0,e.jsx)("div",{children:t}),(0,e.jsxs)("div",{className:"result-nav",children:[(0,e.jsx)(gj,{onSelect:()=>{q()},className:"result-nav-btn",children:F.Lf}),(0,e.jsx)(gj,{onSelect:()=>{r()},className:"result-nav-btn",children:F.Nf})]})]}),0===j.items.length&&g&&l.current&&(0,e.jsx)("div",{style:{margin:"1rem auto"},children:c8("search.noMatch")})]}),(0,e.jsx)(ih,{matches:j,onItemClick:o,focusIndex:n,searchQuery:g})]})},ig=a=>{let b=[a.preview.moreBefore?"...":"",a.preview.previewText.slice(0,a.preview.indexInSearchQuery),a.preview.previewText.slice(a.preview.indexInSearchQuery,a.preview.indexInSearchQuery+a.searchQuery.length),a.preview.previewText.slice(a.preview.indexInSearchQuery+a.searchQuery.length),a.preview.moreAfter?"...":""];return(0,e.jsx)("div",{tabIndex:-1,className:(0,av.default)("layer-ui__result-item",{active:a.highlighted}),onClick:a.onClick,ref:b=>{a.highlighted&&b?.scrollIntoView({behavior:"auto",block:"nearest"})},children:(0,e.jsx)("div",{className:"preview-text",children:b.flatMap((a,b)=>(0,e.jsx)(L.Fragment,{children:2===b?(0,e.jsx)("b",{children:a}):a},b))})})},ih=(0,L.memo)(a=>(0,e.jsx)("div",{className:"layer-ui__search-result-container",children:a.matches.items.map((b,c)=>(0,e.jsx)(ig,{searchQuery:a.searchQuery,preview:b.preview,highlighted:c===a.focusIndex,onClick:()=>a.onItemClick(c)},b.textElement.id+b.index))}),(a,b)=>a.matches.nonce===b.matches.nonce&&a.focusIndex===b.focusIndex),ii=(a,b,c)=>{let d=a.slice(0,b),e=d.split(/\s+/),f=d.endsWith(" "),g=e.length-2-1-!f,h=e.slice(g<=0?0:g).join(" ")+(f?" ":"");h=h.length>20?h.slice(-20):h;let i=a.slice(b+c.length),j=i.split(/\s+/),k=!i.startsWith(" "),l=k?6:5,m=(k?"":" ")+j.slice(0,l).join(" ");return{indexInSearchQuery:h.length,previewText:h+c+m,moreBefore:g>0,moreAfter:j.length>l}},ij=(a,b,c)=>{let d=((a,b)=>{let c=a.split(`