@modern-admin/web 0.6.0 → 0.8.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 (316) hide show
  1. package/dist/config/runtime-config.d.ts +31 -3
  2. package/dist/config/vite.d.ts +14 -0
  3. package/dist/config/vite.js +2 -2
  4. package/dist/lib/index.js +6 -2
  5. package/dist/lib/runtime-config.d.ts +31 -3
  6. package/dist/standalone/assets/{action-component-host-8DE4kuUJ.js → action-component-host-BhkBbvy5.js} +1 -2
  7. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.br +0 -0
  8. package/dist/standalone/assets/action-component-host-BhkBbvy5.js.gz +0 -0
  9. package/dist/standalone/assets/{action-page-D6BbXzUo.js → action-page-cwWF8qzs.js} +1 -2
  10. package/dist/standalone/assets/action-page-cwWF8qzs.js.br +0 -0
  11. package/dist/standalone/assets/action-page-cwWF8qzs.js.gz +0 -0
  12. package/dist/standalone/assets/{ai-assistant-widget-BORa8_hT.js → ai-assistant-widget-DaFf7V1n.js} +1 -2
  13. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.br +0 -0
  14. package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.gz +0 -0
  15. package/dist/standalone/assets/arrow-left-yVCaEJJu.js +1 -2
  16. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js +1 -0
  17. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.br +0 -0
  18. package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.gz +0 -0
  19. package/dist/standalone/assets/badge-CdW_Z0lB.js +1 -2
  20. package/dist/standalone/assets/bot-CuDPD_ZU.js +1 -2
  21. package/dist/standalone/assets/{cache-page-CBKj7WFq.js → cache-page-Ddt6pCFn.js} +1 -2
  22. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.br +0 -0
  23. package/dist/standalone/assets/cache-page-Ddt6pCFn.js.gz +0 -0
  24. package/dist/standalone/assets/calendar-p3BEC7Ac.js +1 -0
  25. package/dist/standalone/assets/calendar-p3BEC7Ac.js.br +0 -0
  26. package/dist/standalone/assets/calendar-p3BEC7Ac.js.gz +0 -0
  27. package/dist/standalone/assets/card-BYbadRar.js +1 -2
  28. package/dist/standalone/assets/card-BYbadRar.js.br +0 -0
  29. package/dist/standalone/assets/card-BYbadRar.js.gz +0 -0
  30. package/dist/standalone/assets/chart-widget-DFq9o29S.js +1 -0
  31. package/dist/standalone/assets/chart-widget-DFq9o29S.js.br +0 -0
  32. package/dist/standalone/assets/chart-widget-DFq9o29S.js.gz +0 -0
  33. package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js +1 -2
  34. package/dist/standalone/assets/circle-alert-D1sKnXtO.js +1 -2
  35. package/dist/standalone/assets/clock-B9qbSr_k.js +1 -2
  36. package/dist/standalone/assets/{command-BAXXxf0P.js → command-Cv4kMka4.js} +1 -2
  37. package/dist/standalone/assets/command-Cv4kMka4.js.br +0 -0
  38. package/dist/standalone/assets/command-Cv4kMka4.js.gz +0 -0
  39. package/dist/standalone/assets/copy-5fb4qj-_.js +1 -2
  40. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js +1 -2
  41. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.br +0 -0
  42. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.gz +0 -0
  43. package/dist/standalone/assets/date-picker-BfxB3e8W.js +1 -0
  44. package/dist/standalone/assets/date-picker-BfxB3e8W.js.br +0 -0
  45. package/dist/standalone/assets/date-picker-BfxB3e8W.js.gz +0 -0
  46. package/dist/standalone/assets/dist-CiXwD0ML.js +1 -2
  47. package/dist/standalone/assets/dist-CiXwD0ML.js.br +0 -0
  48. package/dist/standalone/assets/dist-CiXwD0ML.js.gz +0 -0
  49. package/dist/standalone/assets/dist-DPxQeZn3.js +1 -2
  50. package/dist/standalone/assets/dist-DPxQeZn3.js.br +0 -0
  51. package/dist/standalone/assets/dist-DPxQeZn3.js.gz +0 -0
  52. package/dist/standalone/assets/{dist-COXu-_Zv.js → dist-DfV3IWyn.js} +1 -2
  53. package/dist/standalone/assets/dist-DfV3IWyn.js.br +0 -0
  54. package/dist/standalone/assets/dist-DfV3IWyn.js.gz +0 -0
  55. package/dist/standalone/assets/edit-page-VPFbqPNP.js +1 -0
  56. package/dist/standalone/assets/edit-page-VPFbqPNP.js.br +0 -0
  57. package/dist/standalone/assets/edit-page-VPFbqPNP.js.gz +0 -0
  58. package/dist/standalone/assets/ellipsis-BRmOlhsy.js +1 -2
  59. package/dist/standalone/assets/{empty-DMs98grx.js → empty-BR6YtCo2.js} +1 -2
  60. package/dist/standalone/assets/empty-BR6YtCo2.js.br +0 -0
  61. package/dist/standalone/assets/empty-BR6YtCo2.js.gz +0 -0
  62. package/dist/standalone/assets/file-text-MQF--yeB.js +1 -2
  63. package/dist/standalone/assets/floating-layer-BcTp2AMB.js +1 -2
  64. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.br +0 -0
  65. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.gz +0 -0
  66. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js +1 -0
  67. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.br +0 -0
  68. package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.gz +0 -0
  69. package/dist/standalone/assets/{heavy-fields-LnhreUPp.js → heavy-fields-i9EcYH8r.js} +26 -27
  70. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.br +0 -0
  71. package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.gz +0 -0
  72. package/dist/standalone/assets/{home-page-DiDOzuic.js → home-page-9caZ0Yg1.js} +3 -4
  73. package/dist/standalone/assets/home-page-9caZ0Yg1.js.br +0 -0
  74. package/dist/standalone/assets/home-page-9caZ0Yg1.js.gz +0 -0
  75. package/dist/standalone/assets/hooks-Djo7VZHf.js +185 -0
  76. package/dist/standalone/assets/hooks-Djo7VZHf.js.br +0 -0
  77. package/dist/standalone/assets/hooks-Djo7VZHf.js.gz +0 -0
  78. package/dist/standalone/assets/{icon-registry-s31CNk7M.js → icon-registry-BCvzitKu.js} +1 -2
  79. package/dist/standalone/assets/icon-registry-BCvzitKu.js.br +0 -0
  80. package/dist/standalone/assets/icon-registry-BCvzitKu.js.gz +0 -0
  81. package/dist/standalone/assets/index-SG_6EpY3.js +14 -0
  82. package/dist/standalone/assets/index-SG_6EpY3.js.br +0 -0
  83. package/dist/standalone/assets/index-SG_6EpY3.js.gz +0 -0
  84. package/dist/standalone/assets/info-ChwYoM77.js +1 -2
  85. package/dist/standalone/assets/{json-editor-BD0UhGOT.js → json-editor-TAtTB6fV.js} +1 -2
  86. package/dist/standalone/assets/json-editor-TAtTB6fV.js.br +0 -0
  87. package/dist/standalone/assets/json-editor-TAtTB6fV.js.gz +0 -0
  88. package/dist/standalone/assets/key-BzJFbNbz.js +1 -2
  89. package/dist/standalone/assets/key-round-oSqmVdkQ.js +1 -2
  90. package/dist/standalone/assets/minimize-2-iWv98HjE.js +1 -2
  91. package/dist/standalone/assets/palette-jgTV28yN.js +1 -2
  92. package/dist/standalone/assets/pencil-kFOObGrY.js +1 -2
  93. package/dist/standalone/assets/pipette-roLBCmPv.js +1 -2
  94. package/dist/standalone/assets/pipette-roLBCmPv.js.br +0 -0
  95. package/dist/standalone/assets/pipette-roLBCmPv.js.gz +0 -0
  96. package/dist/standalone/assets/plus-D7PHzena.js +1 -2
  97. package/dist/standalone/assets/property-renderer-KXwrRQgq.js +3 -0
  98. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.br +0 -0
  99. package/dist/standalone/assets/property-renderer-KXwrRQgq.js.gz +0 -0
  100. package/dist/standalone/assets/reference-BibBrgjx.js +1 -0
  101. package/dist/standalone/assets/reference-BibBrgjx.js.br +0 -0
  102. package/dist/standalone/assets/reference-BibBrgjx.js.gz +0 -0
  103. package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js +1 -2
  104. package/dist/standalone/assets/{revisions-button-Csueldv_.js → revisions-button-B6PmW0BY.js} +1 -2
  105. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.br +0 -0
  106. package/dist/standalone/assets/revisions-button-B6PmW0BY.js.gz +0 -0
  107. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js +1 -2
  108. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.br +0 -0
  109. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.gz +0 -0
  110. package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js +1 -2
  111. package/dist/standalone/assets/save-BkkrgP5Q.js +1 -2
  112. package/dist/standalone/assets/schemas-ByMQmMCS.js +1 -2
  113. package/dist/standalone/assets/schemas-ByMQmMCS.js.br +0 -0
  114. package/dist/standalone/assets/schemas-ByMQmMCS.js.gz +0 -0
  115. package/dist/standalone/assets/{select-BOe2daO9.js → select-Bs49X1wg.js} +1 -2
  116. package/dist/standalone/assets/select-Bs49X1wg.js.br +0 -0
  117. package/dist/standalone/assets/select-Bs49X1wg.js.gz +0 -0
  118. package/dist/standalone/assets/send-Bzb_4uMT.js +1 -2
  119. package/dist/standalone/assets/settings-page-CSb9z_qM.js +1 -0
  120. package/dist/standalone/assets/settings-page-CSb9z_qM.js.br +0 -0
  121. package/dist/standalone/assets/settings-page-CSb9z_qM.js.gz +0 -0
  122. package/dist/standalone/assets/{show-page-CDgUXhsx.js → show-page-DsBH63Hr.js} +1 -2
  123. package/dist/standalone/assets/show-page-DsBH63Hr.js.br +0 -0
  124. package/dist/standalone/assets/show-page-DsBH63Hr.js.gz +0 -0
  125. package/dist/standalone/assets/sparkles-1tT0H4n4.js +1 -2
  126. package/dist/standalone/assets/square-pen-ZvVEwkzw.js +1 -2
  127. package/dist/standalone/assets/table-RI-lM4fw.js +1 -2
  128. package/dist/standalone/assets/table-RI-lM4fw.js.br +0 -0
  129. package/dist/standalone/assets/table-RI-lM4fw.js.gz +0 -0
  130. package/dist/standalone/assets/{tabs-Bj4gQaH2.js → tabs-XOuUmhl0.js} +1 -2
  131. package/dist/standalone/assets/tabs-XOuUmhl0.js.br +0 -0
  132. package/dist/standalone/assets/tabs-XOuUmhl0.js.gz +0 -0
  133. package/dist/standalone/assets/textarea-C2w7TG3h.js +1 -2
  134. package/dist/standalone/assets/trash-2-BIJVpWxv.js +1 -2
  135. package/dist/standalone/assets/triangle-alert-yljVpQCM.js +1 -2
  136. package/dist/standalone/assets/undo-2-CnH3ScKE.js +1 -2
  137. package/dist/standalone/assets/undo-2-CnH3ScKE.js.br +0 -0
  138. package/dist/standalone/assets/undo-2-CnH3ScKE.js.gz +0 -0
  139. package/dist/standalone/assets/upload-DrfB-4bU.js +1 -2
  140. package/dist/standalone/assets/upload-DrfB-4bU.js.br +0 -0
  141. package/dist/standalone/assets/upload-DrfB-4bU.js.gz +0 -0
  142. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js +1 -2
  143. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.br +0 -0
  144. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.gz +0 -0
  145. package/dist/standalone/assets/{useQueries-DNUnShBb.js → useQueries-BIIIiVKJ.js} +1 -2
  146. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.br +0 -0
  147. package/dist/standalone/assets/useQueries-BIIIiVKJ.js.gz +0 -0
  148. package/dist/standalone/assets/{user-directory-BvmDzxsG.js → user-directory-Cs4iA6fu.js} +2 -3
  149. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.br +0 -0
  150. package/dist/standalone/assets/user-directory-Cs4iA6fu.js.gz +0 -0
  151. package/dist/standalone/assets/uuid-DLSnbsz2.js +1 -2
  152. package/dist/standalone/assets/wand-sparkles-DwseTI5T.js +1 -2
  153. package/dist/standalone/assets/wizard-create-page-px1E35D5.js +1 -0
  154. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.br +0 -0
  155. package/dist/standalone/assets/wizard-create-page-px1E35D5.js.gz +0 -0
  156. package/dist/standalone/assets/x-c-gfVPJa.js +1 -2
  157. package/dist/standalone/assets/zap-BxPAEPtJ.js +1 -2
  158. package/dist/standalone/assets/zod-CL5c4fuD.js +1 -0
  159. package/dist/standalone/assets/zod-CL5c4fuD.js.br +0 -0
  160. package/dist/standalone/assets/zod-CL5c4fuD.js.gz +0 -0
  161. package/dist/standalone/index.html +6 -6
  162. package/dist/standalone/index.html.br +0 -0
  163. package/dist/standalone/index.html.gz +0 -0
  164. package/package.json +6 -5
  165. package/src/app.tsx +4 -0
  166. package/src/runtime-config.ts +31 -3
  167. package/src/vite.ts +16 -1
  168. package/dist/lib/app.d.ts.map +0 -1
  169. package/dist/lib/index.d.ts.map +0 -1
  170. package/dist/lib/index.js.map +0 -1
  171. package/dist/lib/mount.d.ts.map +0 -1
  172. package/dist/lib/runtime-config.d.ts.map +0 -1
  173. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.br +0 -0
  174. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.gz +0 -0
  175. package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.map +0 -1
  176. package/dist/standalone/assets/action-page-D6BbXzUo.js.br +0 -0
  177. package/dist/standalone/assets/action-page-D6BbXzUo.js.gz +0 -0
  178. package/dist/standalone/assets/action-page-D6BbXzUo.js.map +0 -1
  179. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.br +0 -0
  180. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.gz +0 -0
  181. package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.map +0 -1
  182. package/dist/standalone/assets/arrow-left-yVCaEJJu.js.map +0 -1
  183. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js +0 -2
  184. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.br +0 -0
  185. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.gz +0 -0
  186. package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.map +0 -1
  187. package/dist/standalone/assets/badge-CdW_Z0lB.js.map +0 -1
  188. package/dist/standalone/assets/bot-CuDPD_ZU.js.map +0 -1
  189. package/dist/standalone/assets/cache-page-CBKj7WFq.js.br +0 -0
  190. package/dist/standalone/assets/cache-page-CBKj7WFq.js.gz +0 -0
  191. package/dist/standalone/assets/cache-page-CBKj7WFq.js.map +0 -1
  192. package/dist/standalone/assets/calendar-BuLRvNBg.js +0 -2
  193. package/dist/standalone/assets/calendar-BuLRvNBg.js.br +0 -0
  194. package/dist/standalone/assets/calendar-BuLRvNBg.js.gz +0 -0
  195. package/dist/standalone/assets/calendar-BuLRvNBg.js.map +0 -1
  196. package/dist/standalone/assets/card-BYbadRar.js.map +0 -1
  197. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js +0 -2
  198. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.br +0 -0
  199. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.gz +0 -0
  200. package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.map +0 -1
  201. package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js.map +0 -1
  202. package/dist/standalone/assets/circle-alert-D1sKnXtO.js.map +0 -1
  203. package/dist/standalone/assets/clock-B9qbSr_k.js.map +0 -1
  204. package/dist/standalone/assets/command-BAXXxf0P.js.br +0 -0
  205. package/dist/standalone/assets/command-BAXXxf0P.js.gz +0 -0
  206. package/dist/standalone/assets/command-BAXXxf0P.js.map +0 -1
  207. package/dist/standalone/assets/copy-5fb4qj-_.js.map +0 -1
  208. package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.map +0 -1
  209. package/dist/standalone/assets/date-picker-Bxv-yrWf.js +0 -2
  210. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.br +0 -0
  211. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.gz +0 -0
  212. package/dist/standalone/assets/date-picker-Bxv-yrWf.js.map +0 -1
  213. package/dist/standalone/assets/dist-COXu-_Zv.js.br +0 -0
  214. package/dist/standalone/assets/dist-COXu-_Zv.js.gz +0 -0
  215. package/dist/standalone/assets/dist-COXu-_Zv.js.map +0 -1
  216. package/dist/standalone/assets/dist-CiXwD0ML.js.map +0 -1
  217. package/dist/standalone/assets/dist-DPxQeZn3.js.map +0 -1
  218. package/dist/standalone/assets/edit-page-Dm638D2J.js +0 -2
  219. package/dist/standalone/assets/edit-page-Dm638D2J.js.br +0 -0
  220. package/dist/standalone/assets/edit-page-Dm638D2J.js.gz +0 -0
  221. package/dist/standalone/assets/edit-page-Dm638D2J.js.map +0 -1
  222. package/dist/standalone/assets/ellipsis-BRmOlhsy.js.map +0 -1
  223. package/dist/standalone/assets/empty-DMs98grx.js.br +0 -0
  224. package/dist/standalone/assets/empty-DMs98grx.js.gz +0 -0
  225. package/dist/standalone/assets/empty-DMs98grx.js.map +0 -1
  226. package/dist/standalone/assets/file-text-MQF--yeB.js.map +0 -1
  227. package/dist/standalone/assets/floating-layer-BcTp2AMB.js.map +0 -1
  228. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js +0 -2
  229. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.br +0 -0
  230. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.gz +0 -0
  231. package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.map +0 -1
  232. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.br +0 -0
  233. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.gz +0 -0
  234. package/dist/standalone/assets/heavy-fields-LnhreUPp.js.map +0 -1
  235. package/dist/standalone/assets/home-page-DiDOzuic.js.br +0 -0
  236. package/dist/standalone/assets/home-page-DiDOzuic.js.gz +0 -0
  237. package/dist/standalone/assets/home-page-DiDOzuic.js.map +0 -1
  238. package/dist/standalone/assets/hooks-BiOfAnEq.js +0 -186
  239. package/dist/standalone/assets/hooks-BiOfAnEq.js.br +0 -0
  240. package/dist/standalone/assets/hooks-BiOfAnEq.js.gz +0 -0
  241. package/dist/standalone/assets/hooks-BiOfAnEq.js.map +0 -1
  242. package/dist/standalone/assets/icon-registry-s31CNk7M.js.br +0 -0
  243. package/dist/standalone/assets/icon-registry-s31CNk7M.js.gz +0 -0
  244. package/dist/standalone/assets/icon-registry-s31CNk7M.js.map +0 -1
  245. package/dist/standalone/assets/index-CASCzvYu.js +0 -15
  246. package/dist/standalone/assets/index-CASCzvYu.js.br +0 -0
  247. package/dist/standalone/assets/index-CASCzvYu.js.gz +0 -0
  248. package/dist/standalone/assets/index-CASCzvYu.js.map +0 -1
  249. package/dist/standalone/assets/info-ChwYoM77.js.map +0 -1
  250. package/dist/standalone/assets/json-editor-BD0UhGOT.js.br +0 -0
  251. package/dist/standalone/assets/json-editor-BD0UhGOT.js.gz +0 -0
  252. package/dist/standalone/assets/json-editor-BD0UhGOT.js.map +0 -1
  253. package/dist/standalone/assets/key-BzJFbNbz.js.map +0 -1
  254. package/dist/standalone/assets/key-round-oSqmVdkQ.js.map +0 -1
  255. package/dist/standalone/assets/minimize-2-iWv98HjE.js.map +0 -1
  256. package/dist/standalone/assets/palette-jgTV28yN.js.map +0 -1
  257. package/dist/standalone/assets/pencil-kFOObGrY.js.map +0 -1
  258. package/dist/standalone/assets/pipette-roLBCmPv.js.map +0 -1
  259. package/dist/standalone/assets/plus-D7PHzena.js.map +0 -1
  260. package/dist/standalone/assets/property-renderer-ClrVnSny.js +0 -4
  261. package/dist/standalone/assets/property-renderer-ClrVnSny.js.br +0 -0
  262. package/dist/standalone/assets/property-renderer-ClrVnSny.js.gz +0 -0
  263. package/dist/standalone/assets/property-renderer-ClrVnSny.js.map +0 -1
  264. package/dist/standalone/assets/reference-BMbhUBHD.js +0 -2
  265. package/dist/standalone/assets/reference-BMbhUBHD.js.br +0 -0
  266. package/dist/standalone/assets/reference-BMbhUBHD.js.gz +0 -0
  267. package/dist/standalone/assets/reference-BMbhUBHD.js.map +0 -1
  268. package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js.map +0 -1
  269. package/dist/standalone/assets/revisions-button-Csueldv_.js.br +0 -0
  270. package/dist/standalone/assets/revisions-button-Csueldv_.js.gz +0 -0
  271. package/dist/standalone/assets/revisions-button-Csueldv_.js.map +0 -1
  272. package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.map +0 -1
  273. package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js.map +0 -1
  274. package/dist/standalone/assets/save-BkkrgP5Q.js.map +0 -1
  275. package/dist/standalone/assets/schemas-ByMQmMCS.js.map +0 -1
  276. package/dist/standalone/assets/select-BOe2daO9.js.br +0 -0
  277. package/dist/standalone/assets/select-BOe2daO9.js.gz +0 -0
  278. package/dist/standalone/assets/select-BOe2daO9.js.map +0 -1
  279. package/dist/standalone/assets/send-Bzb_4uMT.js.map +0 -1
  280. package/dist/standalone/assets/settings-page-BmphreWj.js +0 -2
  281. package/dist/standalone/assets/settings-page-BmphreWj.js.br +0 -0
  282. package/dist/standalone/assets/settings-page-BmphreWj.js.gz +0 -0
  283. package/dist/standalone/assets/settings-page-BmphreWj.js.map +0 -1
  284. package/dist/standalone/assets/show-page-CDgUXhsx.js.br +0 -0
  285. package/dist/standalone/assets/show-page-CDgUXhsx.js.gz +0 -0
  286. package/dist/standalone/assets/show-page-CDgUXhsx.js.map +0 -1
  287. package/dist/standalone/assets/sparkles-1tT0H4n4.js.map +0 -1
  288. package/dist/standalone/assets/square-pen-ZvVEwkzw.js.map +0 -1
  289. package/dist/standalone/assets/table-RI-lM4fw.js.map +0 -1
  290. package/dist/standalone/assets/tabs-Bj4gQaH2.js.br +0 -0
  291. package/dist/standalone/assets/tabs-Bj4gQaH2.js.gz +0 -0
  292. package/dist/standalone/assets/tabs-Bj4gQaH2.js.map +0 -1
  293. package/dist/standalone/assets/textarea-C2w7TG3h.js.map +0 -1
  294. package/dist/standalone/assets/trash-2-BIJVpWxv.js.map +0 -1
  295. package/dist/standalone/assets/triangle-alert-yljVpQCM.js.map +0 -1
  296. package/dist/standalone/assets/undo-2-CnH3ScKE.js.map +0 -1
  297. package/dist/standalone/assets/upload-DrfB-4bU.js.map +0 -1
  298. package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.map +0 -1
  299. package/dist/standalone/assets/useQueries-DNUnShBb.js.br +0 -0
  300. package/dist/standalone/assets/useQueries-DNUnShBb.js.gz +0 -0
  301. package/dist/standalone/assets/useQueries-DNUnShBb.js.map +0 -1
  302. package/dist/standalone/assets/user-directory-BvmDzxsG.js.br +0 -0
  303. package/dist/standalone/assets/user-directory-BvmDzxsG.js.gz +0 -0
  304. package/dist/standalone/assets/user-directory-BvmDzxsG.js.map +0 -1
  305. package/dist/standalone/assets/uuid-DLSnbsz2.js.map +0 -1
  306. package/dist/standalone/assets/wand-sparkles-DwseTI5T.js.map +0 -1
  307. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js +0 -2
  308. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.br +0 -0
  309. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.gz +0 -0
  310. package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.map +0 -1
  311. package/dist/standalone/assets/x-c-gfVPJa.js.map +0 -1
  312. package/dist/standalone/assets/zap-BxPAEPtJ.js.map +0 -1
  313. package/dist/standalone/assets/zod-2-ubQvxh.js +0 -2
  314. package/dist/standalone/assets/zod-2-ubQvxh.js.br +0 -0
  315. package/dist/standalone/assets/zod-2-ubQvxh.js.gz +0 -0
  316. package/dist/standalone/assets/zod-2-ubQvxh.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"mappings":"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E,IAAK,GACL,IAAK,IACL,IAAK,IACH,GACE,EACA,EACA,EACA,EACA,CACF,EACA,GAA0B,EAAG,CAAY,EACzC,MACF,IAAK,IACH,MACF,IAAK,IACH,IAAI,EAAW,EAAa,UACnB,EAAa,gBAAtB,MAaM,EAAS,aAAe,EAC1B,GACE,EACA,EACA,EACA,EACA,CACF,GAnBA,EAAS,YAAc,EACrB,GACE,EACA,EACA,EACA,EACA,CACF,EACA,GACE,EACA,CACF,EASN,GACE,EAAQ,MACR,GACE,EAAa,UACb,CACF,EACF,MACF,IAAK,IACH,GACE,EACA,EACA,EACA,EACA,CACF,EACA,GACE,EAAQ,MACR,GAA8B,EAAa,UAAW,CAAY,EACpE,MACF,QACE,GACE,EACA,EACA,EACA,EACA,CACF,CACJ,CACA,EAAc,EAAY,OAC5B,CACF,CACA,SAAS,GACP,EACA,EACA,CACA,GAAI,EAAY,aAAe,MAC7B,IAAK,EAAc,EAAY,MAAgB,IAAT,MAAwB,CAC5D,IAAI,EAAe,EACjB,EAAe,EACf,EAAQ,EAAa,MACvB,OAAQ,EAAa,IAArB,CACE,IAAK,IACH,GAAwC,EAAc,CAAY,EAClE,EAAQ,MACN,GACE,EAAa,UACb,CACF,EACF,MACF,IAAK,IACH,GAAwC,EAAc,CAAY,EAClE,EAAQ,MACN,GAA8B,EAAa,UAAW,CAAY,EACpE,MACF,QACE,GAAwC,EAAc,CAAY,CACtE,CACA,EAAc,EAAY,OAC5B,CACJ,CACA,IAAI,GAAsB,KAC1B,SAAS,GACP,EACA,EACA,EACA,CACA,GAAI,EAAY,aAAe,GAC7B,IAAK,EAAc,EAAY,MAAgB,IAAT,MACpC,GACE,EACA,EACA,CACF,EACG,EAAc,EAAY,OACnC,CACA,SAAS,GACP,EACA,EACA,EACA,CACA,OAAQ,EAAM,IAAd,CACE,IAAK,IACH,GACE,EACA,EACA,CACF,EACA,EAAM,MAAQ,IACH,EAAM,gBAAf,MACA,GACE,EACA,GACA,EAAM,cACN,EAAM,aACR,EACF,MACF,IAAK,GACH,GACE,EACA,EACA,CACF,EACA,MACF,IAAK,GACL,IAAK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Aa,EAAO,MACnC,IAAK,GACH,GACE,EACA,EACA,GACA,CAAC,EACH,EACA,MAAM,EACR,IAAK,GACH,GAAsC,KACtC,MACF,IAAK,GACL,IAAK,GACH,MACF,QACE,MAAM,MAAM,EAAuB,GAAG,CAAC,CAC3C,CACA,IACG,EAAQ,YAAc,IACrB,EAAa,GAA+B,IAAM,GAAI,EACxD,GAAK,GACL,CAOA,GANA,GACE,EACA,EACA,GACA,CAAC,EACH,EACU,GAAa,EAAiB,EAAG,CAAC,CAAC,IAAzC,EAA4C,MAAM,EACtD,GAAsB,EACtB,EAAgB,cAAgB,GAC9B,GAAoB,KAClB,KACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,YACA,GACA,CACF,EACA,CACF,EACA,MAAM,CACR,CACA,GACE,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,KACA,GACA,CACF,CACF,CAEF,KACF,OAAS,GACT,GAAsB,CAAa,CACrC,CACA,SAAS,GACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CAGA,GAFA,EAAK,cAAgB,GACrB,EAAwB,EAAa,aAEnC,EAAwB,OACV,EAAwB,WAAtC,SACA,CACA,EAAwB,CACtB,YAAa,KACb,MAAO,EACP,SAAU,EACV,SAAU,EACV,gBAAiB,CAAC,EAClB,iBAAkB,CAAC,EACnB,yBAA0B,CAAC,EAC3B,UAAW,EACb,EACA,GACE,EACA,EACA,CACF,EACA,IAAI,GACD,EAAQ,YAAc,EACnB,GAA+B,GAAI,GAClC,EAAQ,WAAa,EACpB,GAAiC,GAAI,EACrC,EAKR,GAJA,EAAgB,GACd,EACA,CACF,EACa,IAAT,KAAwB,CAC1B,GAAsB,EACtB,EAAK,oBAAsB,EACzB,GAAW,KACT,KACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KACA,EACA,CACF,CACF,EACA,GAAkB,EAAM,EAAO,EAAa,CAAC,CAAwB,EACrE,MACF,CACF,CACA,GACE,E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,UACL,IAAK,QACL,IAAK,WACL,IAAK,0BACL,IAAK,wBACL,IAAK,iBACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,aACL,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,YACH,GAAwB,OAAO,GAAtB,YAA4C,OAAO,GAApB,SACpC,EAAW,aAAa,EAAK,EAAE,EAC/B,EAAW,gBAAgB,CAAG,EAClC,MACF,IAAK,UACL,IAAK,WACH,CAAC,IAAM,EACH,EAAW,aAAa,EAAK,EAAE,EAC/B,CAAC,IAAM,GACG,GAAR,MACe,OAAO,GAAtB,YACa,OAAO,GAApB,SACA,EAAW,aAAa,EAAK,CAAK,EAClC,EAAW,gBAAgB,CAAG,EACpC,MACF,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACK,GAAR,MACe,OAAO,GAAtB,YACa,OAAO,GAApB,UACA,CAAC,MAAM,CAAK,GACZ,GAAK,EACD,EAAW,aAAa,EAAK,CAAK,EAClC,EAAW,gBAAgB,CAAG,EAClC,MACF,IAAK,UACL,IAAK,QACK,GAAR,MACe,OAAO,GAAtB,YACa,OAAO,GAApB,UACA,MAAM,CAAK,EACP,EAAW,gBAAgB,CAAG,EAC9B,EAAW,aAAa,EAAK,CAAK,EACtC,MACF,IAAK,UACH,EAA0B,eAAgB,CAAU,EACpD,EAA0B,SAAU,CAAU,EAC9C,GAAqB,EAAY,UAAW,CAAK,EACjD,MACF,IAAK,eACH,GACE,EACA,+BACA,gBACA,CACF,EACA,MACF,IAAK,eACH,GACE,EACA,+BACA,gBACA,CACF,EACA,MACF,IAAK,YACH,GACE,EACA,+BACA,aACA,CACF,EACA,MACF,IAAK,YACH,GACE,EACA,+BACA,aACA,CACF,EACA,MACF,IAAK,aACH,GACE,EACA,+BACA,cACA,CACF,EACA,MACF,IAAK,YACH,GACE,EACA,+BACA,aACA,CACF,EACA,MACF,IAAK,UACH,GACE,EACA,uCACA,WACA,CACF,EACA,MACF,IAAK,UACH,GACE,EACA,uCACA,WACA,CACF,EACA,MACF,I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","names":["__iconNode","Menu","__defProp","Root","Label","__name","Avatar","AvatarImage","AvatarFallback","Separator","ScrollArea","Fragment","React2","subscribe","Collection","useCollection","createCollectionScope","ITEM_NAME","useIsHydrated","wrapArray","focusFirst","AlertDialog","DialogPrimitive.Root","DialogPrimitive.Trigger","AlertDialogPortal","DialogPrimitive.Portal","AlertDialogOverlay","DialogPrimitive.Overlay","AlertDialogContent","DialogPrimitive.Content","AlertDialogTitle","DialogPrimitive.Title","AlertDialogDescription","DialogPrimitive.Description","AlertDialogAction","DialogPrimitive.Close","AlertDialogCancel","Root2","Portal2","Content2","usePopperScope","PopperPrimitive.Root","PopperPrimitive.Anchor","PORTAL_NAME","PortalProvider","usePortalContext","PortalPrimitive","CONTENT_NAME","RemoveScroll","RovingFocusGroup.Root","PopperPrimitive.Content","RovingFocusGroup.Item","isPointInPolygon","Root3","Portal","Item2","DropdownMenu","MenuPrimitive.Root","TRIGGER_NAME","DropdownMenuTrigger","MenuPrimitive.Anchor","DropdownMenuPortal","MenuPrimitive.Portal","DropdownMenuContent","MenuPrimitive.Content","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioItem","MenuPrimitive.RadioItem","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuSub","MenuPrimitive.Sub","DropdownMenuSubTrigger","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Trigger","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","VisuallyHiddenPrimitive.Root","Toaster","trimPathRight","encode","decode","useCallback","useSyncExternalStoreWithSelector","useNavigate","Link","jsx","withNativeBlob","withNativeArrayBuffer","isView","lookup","globalThis","Socket","DEFAULT_TRANSPORTS","RESERVED_EVENTS","parser","Engine"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,32,34,35,36,38,40,43,44,46,48,49,51,58,59,60,61,62,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146],"sources":["../../../../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js","../../../../../node_modules/.bun/scheduler@0.27.0/node_modules/scheduler/index.js","../../../../../node_modules/.bun/react-dom@19.2.8+0f58469d5b3bd39f/node_modules/react-dom/cjs/react-dom-client.production.js","../../../../../node_modules/.bun/react-dom@19.2.8+0f58469d5b3bd39f/node_modules/react-dom/client.js","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/check.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/chevron-down.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/chevron-left.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/chevron-right.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/circle.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/database.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/eye-off.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/eye.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/gauge.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/globe.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/house.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/keyboard.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/languages.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/loader-circle.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/log-out.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/log-in.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/menu.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/monitor.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/moon.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/panel-left.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/rotate-ccw-clock.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/search.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/settings.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/sun.mjs","../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/user.mjs","../../../../ui/src/lib/theme.ts","../../../../ui/src/components/input.tsx","../../../../ui/src/components/password-input.tsx","../../../../../node_modules/.bun/@radix-ui+react-label@2.1.15+c32617ced709d283/node_modules/@radix-ui/react-label/dist/index.mjs","../../../../ui/src/components/label.tsx","../../../../../node_modules/.bun/@radix-ui+number@1.1.3/node_modules/@radix-ui/number/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-visually-hidden@1.2.11+c32617ced709d283/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-avatar@1.2.6+c32617ced709d283/node_modules/@radix-ui/react-avatar/dist/index.mjs","../../../../ui/src/components/avatar.tsx","../../../../../node_modules/.bun/@radix-ui+react-separator@1.1.15+c32617ced709d283/node_modules/@radix-ui/react-separator/dist/index.mjs","../../../../ui/src/components/separator.tsx","../../../../../node_modules/.bun/@radix-ui+react-scroll-area@1.2.18+c32617ced709d283/node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../../../ui/src/components/scroll-area.tsx","../../../../ui/src/components/skeleton.tsx","../../../../../node_modules/.bun/@radix-ui+react-use-is-hydrated@0.1.3+03aa47d54245a271/node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-roving-focus@1.1.19+c32617ced709d283/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../../ui/src/components/dialog.tsx","../../../../../node_modules/.bun/@radix-ui+react-alert-dialog@1.1.23+c32617ced709d283/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../../../ui/src/components/alert-dialog.tsx","../../../../../node_modules/.bun/@radix-ui+react-menu@2.1.24+c32617ced709d283/node_modules/@radix-ui/react-menu/dist/index.mjs","../../../../../node_modules/.bun/@radix-ui+react-dropdown-menu@2.1.24+c32617ced709d283/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../../../../ui/src/components/dropdown-menu.tsx","../../../../../node_modules/.bun/@radix-ui+react-tooltip@1.2.16+c32617ced709d283/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../../../ui/src/components/tooltip.tsx","../../../../ui/src/components/kbd.tsx","../../../../ui/src/components/keyboard-shortcuts-help.tsx","../../../../ui/src/components/field.tsx","../../../../ui/src/components/sheet.tsx","../../../../ui/src/components/sidebar.tsx","../../../../../node_modules/.bun/use-sync-external-store@1.6.0+0f58469d5b3bd39f/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../../../../node_modules/.bun/use-sync-external-store@1.6.0+0f58469d5b3bd39f/node_modules/use-sync-external-store/shim/index.js","../../../../../node_modules/.bun/use-sync-external-store@1.6.0+0f58469d5b3bd39f/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../../../../node_modules/.bun/use-sync-external-store@1.6.0+0f58469d5b3bd39f/node_modules/use-sync-external-store/shim/with-selector.js","../../../../../node_modules/.bun/sonner@2.0.8+8fa0c0869acb2741/node_modules/sonner/dist/index.mjs","../../../../ui/src/components/sonner.tsx","../../../../react/src/extension-registry.ts","../../../../react/src/notify.tsx","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/utils.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/utils.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/invariant.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/lru-cache.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/path.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/not-found.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/scroll-restoration.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/qss.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/searchParams.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/root.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/redirect.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/rewrite.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/stores.js","../../../../../node_modules/.bun/@tanstack+history@1.162.1/node_modules/@tanstack/history/dist/esm/index.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/router.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/load-client.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/link.js","../../../../../node_modules/.bun/@tanstack+router-core@1.171.24/node_modules/@tanstack/router-core/dist/esm/route.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/ClientOnly.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/matchContext.js","../../../../../node_modules/.bun/@tanstack+store@0.9.3/node_modules/@tanstack/store/dist/esm/alien.js","../../../../../node_modules/.bun/@tanstack+store@0.9.3/node_modules/@tanstack/store/dist/esm/atom.js","../../../../../node_modules/.bun/@tanstack+react-store@0.9.3+005eabf3d8b6ef06/node_modules/@tanstack/react-store/dist/esm/useStore.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useParams.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useNavigate.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useRouteContext.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/link.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/route.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/not-found.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/SafeFragment.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/Match.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/Transitioner.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/Matches.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/routerStores.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/router.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/RouterProvider.js","../../../../../node_modules/.bun/@tanstack+react-router@1.170.29+005eabf3d8b6ef06/node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../../../react/src/router.tsx","../../../../react/src/dialogs.tsx","../../../../react/src/hotkey-registry.tsx","../../../../react/src/use-hotkey.ts","../../../../react/src/hotkey-help.tsx","../../../../react/src/header-controls.tsx","../../../../react/src/realtime.ts","../../../../../node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/esm/commons.js","../../../../../node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../../../../node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../../../../node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../../../../node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/esm/index.js","../../../../../node_modules/.bun/@socket.io+component-emitter@3.1.2/node_modules/@socket.io/component-emitter/lib/esm/index.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/globals.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/util.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/transport.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/transports/polling.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/transports/polling-xhr.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/transports/websocket.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/transports/index.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/transports/webtransport.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/socket.js","../../../../../node_modules/.bun/engine.io-client@6.6.6/node_modules/engine.io-client/build/esm/index.js","../../../../../node_modules/.bun/socket.io-client@4.8.3/node_modules/socket.io-client/build/esm/url.js","../../../../../node_modules/.bun/socket.io-parser@4.2.6/node_modules/socket.io-parser/build/esm/is-binary.js","../../../../../node_modules/.bun/socket.io-parser@4.2.6/node_modules/socket.io-parser/build/esm/binary.js","../../../../../node_modules/.bun/socket.io-parser@4.2.6/node_modules/socket.io-parser/build/esm/index.js","../../../../../node_modules/.bun/socket.io-client@4.8.3/node_modules/socket.io-client/build/esm/on.js","../../../../../node_modules/.bun/socket.io-client@4.8.3/node_modules/socket.io-client/build/esm/socket.js","../../../../../node_modules/.bun/socket.io-client@4.8.3/node_modules/socket.io-client/build/esm/contrib/backo2.js","../../../../../node_modules/.bun/socket.io-client@4.8.3/node_modules/socket.io-client/build/esm/manager.js","../../../../../node_modules/.bun/socket.io-client@4.8.3/node_modules/socket.io-client/build/esm/index.js","../../../../react/src/realtime-socket.ts","../../../../react/src/pages/login-page.tsx","../../../../react/src/admin-router.tsx","../../../../react/src/nav-icon.tsx","../../../../react/src/admin-app.tsx","../../../src/app.tsx","../../../src/mount.tsx","../../../src/runtime-config.ts","../../../src/standalone.tsx"],"sourcesContent":["/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.8\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.8\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.8\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.8\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.8\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]];\nconst ChevronLeft = createLucideIcon(\"chevron-left\", __iconNode);\n\nexport { __iconNode, ChevronLeft as default };\n//# sourceMappingURL=chevron-left.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"ellipse\", { cx: \"12\", cy: \"5\", rx: \"9\", ry: \"3\", key: \"msslwz\" }],\n [\"path\", { d: \"M3 5V19A9 3 0 0 0 21 19V5\", key: \"1wlel7\" }],\n [\"path\", { d: \"M3 12A9 3 0 0 0 21 12\", key: \"mv7ke4\" }]\n];\nconst Database = createLucideIcon(\"database\", __iconNode);\n\nexport { __iconNode, Database as default };\n//# sourceMappingURL=database.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode);\n\nexport { __iconNode, EyeOff as default };\n//# sourceMappingURL=eye-off.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Eye = createLucideIcon(\"eye\", __iconNode);\n\nexport { __iconNode, Eye as default };\n//# sourceMappingURL=eye.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m12 14 4-4\", key: \"9kzdfg\" }],\n [\"path\", { d: \"M3.34 19a10 10 0 1 1 17.32 0\", key: \"19p75a\" }]\n];\nconst Gauge = createLucideIcon(\"gauge\", __iconNode);\n\nexport { __iconNode, Gauge as default };\n//# sourceMappingURL=gauge.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\", key: \"13o1zl\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }]\n];\nconst Globe = createLucideIcon(\"globe\", __iconNode);\n\nexport { __iconNode, Globe as default };\n//# sourceMappingURL=globe.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\", key: \"5wwlr5\" }],\n [\n \"path\",\n {\n d: \"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\",\n key: \"r6nss1\"\n }\n ]\n];\nconst House = createLucideIcon(\"house\", __iconNode);\n\nexport { __iconNode, House as default };\n//# sourceMappingURL=house.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M10 8h.01\", key: \"1r9ogq\" }],\n [\"path\", { d: \"M12 12h.01\", key: \"1mp3jc\" }],\n [\"path\", { d: \"M14 8h.01\", key: \"1primd\" }],\n [\"path\", { d: \"M16 12h.01\", key: \"1l6xoz\" }],\n [\"path\", { d: \"M18 8h.01\", key: \"emo2bl\" }],\n [\"path\", { d: \"M6 8h.01\", key: \"x9i8wu\" }],\n [\"path\", { d: \"M7 16h10\", key: \"wp8him\" }],\n [\"path\", { d: \"M8 12h.01\", key: \"czm47f\" }],\n [\"rect\", { width: \"20\", height: \"16\", x: \"2\", y: \"4\", rx: \"2\", key: \"18n3k1\" }]\n];\nconst Keyboard = createLucideIcon(\"keyboard\", __iconNode);\n\nexport { __iconNode, Keyboard as default };\n//# sourceMappingURL=keyboard.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m5 8 6 6\", key: \"1wu5hv\" }],\n [\"path\", { d: \"m4 14 6-6 2-3\", key: \"1k1g8d\" }],\n [\"path\", { d: \"M2 5h12\", key: \"or177f\" }],\n [\"path\", { d: \"M7 2h1\", key: \"1t2jsx\" }],\n [\"path\", { d: \"m22 22-5-10-5 10\", key: \"don7ne\" }],\n [\"path\", { d: \"M14 18h6\", key: \"1m8k6r\" }]\n];\nconst Languages = createLucideIcon(\"languages\", __iconNode);\n\nexport { __iconNode, Languages as default };\n//# sourceMappingURL=languages.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m10 17 5-5-5-5\", key: \"1bsop3\" }],\n [\"path\", { d: \"M15 12H3\", key: \"6jk70r\" }],\n [\"path\", { d: \"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\", key: \"u53s6r\" }]\n];\nconst LogIn = createLucideIcon(\"log-in\", __iconNode);\n\nexport { __iconNode, LogIn as default };\n//# sourceMappingURL=log-in.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M4 5h16\", key: \"1tepv9\" }],\n [\"path\", { d: \"M4 12h16\", key: \"1lakjw\" }],\n [\"path\", { d: \"M4 19h16\", key: \"1djgab\" }]\n];\nconst Menu = createLucideIcon(\"menu\", __iconNode);\n\nexport { __iconNode, Menu as default };\n//# sourceMappingURL=menu.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"20\", height: \"14\", x: \"2\", y: \"3\", rx: \"2\", key: \"48i651\" }],\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"21\", y2: \"21\", key: \"1svkeh\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"17\", y2: \"21\", key: \"vw1qmm\" }]\n];\nconst Monitor = createLucideIcon(\"monitor\", __iconNode);\n\nexport { __iconNode, Monitor as default };\n//# sourceMappingURL=monitor.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\",\n key: \"kfwtm\"\n }\n ]\n];\nconst Moon = createLucideIcon(\"moon\", __iconNode);\n\nexport { __iconNode, Moon as default };\n//# sourceMappingURL=moon.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n];\nconst PanelLeft = createLucideIcon(\"panel-left\", __iconNode);\n\nexport { __iconNode, PanelLeft as default };\n//# sourceMappingURL=panel-left.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }],\n [\"path\", { d: \"M12 7v5l4 2\", key: \"1fdv2h\" }]\n];\nconst RotateCcwClock = createLucideIcon(\"rotate-ccw-clock\", __iconNode);\n\nexport { __iconNode, RotateCcwClock as default };\n//# sourceMappingURL=rotate-ccw-clock.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m21 21-4.34-4.34\", key: \"14j7rj\" }],\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }]\n];\nconst Search = createLucideIcon(\"search\", __iconNode);\n\nexport { __iconNode, Search as default };\n//# sourceMappingURL=search.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\",\n key: \"1i5ecw\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Settings = createLucideIcon(\"settings\", __iconNode);\n\nexport { __iconNode, Settings as default };\n//# sourceMappingURL=settings.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n];\nconst Sun = createLucideIcon(\"sun\", __iconNode);\n\nexport { __iconNode, Sun as default };\n//# sourceMappingURL=sun.mjs.map\n","/**\n * @license lucide-react v1.31.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\", key: \"975kel\" }],\n [\"circle\", { cx: \"12\", cy: \"7\", r: \"4\", key: \"17ys0d\" }]\n];\nconst User = createLucideIcon(\"user\", __iconNode);\n\nexport { __iconNode, User as default };\n//# sourceMappingURL=user.mjs.map\n","// Tiny theme toggle helper — flips `.dark` on the document root and\n// persists the preference. The actual tokens live in styles.css.\n\nexport type ThemeMode = 'light' | 'dark' | 'system'\n\nconst STORAGE_KEY = 'modern-admin:theme'\n\nconst prefersDark = (): boolean => {\n if (typeof window === 'undefined' || !window.matchMedia) return false\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nconst applyClass = (dark: boolean): void => {\n if (typeof document === 'undefined') return\n document.documentElement.classList.toggle('dark', dark)\n}\n\n/** Returns the persisted theme, or 'system' when nothing was saved. */\nexport const readThemeMode = (): ThemeMode => {\n if (typeof localStorage === 'undefined') return 'system'\n const v = localStorage.getItem(STORAGE_KEY)\n return v === 'light' || v === 'dark' || v === 'system' ? v : 'system'\n}\n\n/** Persist a theme choice and apply it immediately. */\nexport const setThemeMode = (mode: ThemeMode): void => {\n if (typeof localStorage !== 'undefined') localStorage.setItem(STORAGE_KEY, mode)\n applyClass(mode === 'dark' || (mode === 'system' && prefersDark()))\n}\n\n/**\n * Initialize the theme on app boot. Call once in your client entry. The\n * returned function unsubscribes from system preference changes.\n */\nexport const initTheme = (): (() => void) => {\n const mode = readThemeMode()\n applyClass(mode === 'dark' || (mode === 'system' && prefersDark()))\n if (typeof window === 'undefined' || !window.matchMedia) return () => {}\n const media = window.matchMedia('(prefers-color-scheme: dark)')\n const listener = (e: MediaQueryListEvent): void => {\n if (readThemeMode() === 'system') applyClass(e.matches)\n }\n media.addEventListener('change', listener)\n return () => media.removeEventListener('change', listener)\n}\n","import * as React from 'react'\nimport { X } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * When provided, a clear button (×) is rendered on the right side of the\n * input whenever it has a non-empty value. The button is hidden when the\n * input is disabled or the value is empty.\n */\n onClear?: () => void\n /** aria-label for the clear button. Defaults to \"Clear\". */\n clearLabel?: string\n}\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, onClear, clearLabel, ...props }, ref) => {\n const showClear = !!onClear && !!props.value && !props.disabled\n\n const input = (\n <input\n type={type ?? 'text'}\n ref={ref}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n // Hide native number-input spinner buttons (Firefox + WebKit/Blink).\n '[appearance:textfield] [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none',\n // Search fields use the component's accessible clear button instead\n // of WebKit's native cancel control.\n type === 'search' && '[&::-webkit-search-cancel-button]:appearance-none',\n showClear && 'pr-8',\n className,\n )}\n {...props}\n />\n )\n\n if (!onClear) return input\n\n return (\n <div className=\"relative\">\n {input}\n {showClear && (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label={clearLabel ?? 'Clear'}\n onClick={onClear}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 rounded-sm p-0.5 text-muted-foreground opacity-50 hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <X className=\"size-3.5\" />\n </button>\n )}\n </div>\n )\n },\n)\nInput.displayName = 'Input'\n","// Password field with a built-in show/hide toggle. Drops in anywhere a\n// regular <Input type=\"password\" /> would — it forwards refs and accepts\n// the same props (the `type` prop is intentionally ignored).\n\nimport * as React from 'react'\nimport { Eye, EyeOff } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\n\nexport interface PasswordInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n /** Accessible label for the visibility toggle button. */\n toggleLabel?: { show: string; hide: string }\n}\n\nexport const PasswordInput = React.forwardRef<HTMLInputElement, PasswordInputProps>(\n ({ className, toggleLabel, disabled, ...props }, ref) => {\n const [revealed, setRevealed] = React.useState(false)\n const labels = toggleLabel ?? { show: 'Show password', hide: 'Hide password' }\n return (\n <div className=\"relative\">\n <input\n ref={ref}\n type={revealed ? 'text' : 'password'}\n disabled={disabled}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-background pl-3 pr-10 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => setRevealed((v) => !v)}\n disabled={disabled}\n aria-label={revealed ? labels.hide : labels.show}\n aria-pressed={revealed}\n className=\"absolute inset-y-0 right-0 flex w-9 cursor-pointer items-center justify-center rounded-r-md text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {revealed ? (\n <EyeOff className=\"size-4\" aria-hidden=\"true\" />\n ) : (\n <Eye className=\"size-4\" aria-hidden=\"true\" />\n )}\n </button>\n </div>\n )\n },\n)\nPasswordInput.displayName = 'PasswordInput'\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar Label = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function Label2(props, forwardedRef) {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n }, \"Label\")\n);\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils.js'\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n)\n\nexport const Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n__name(clamp, \"clamp\");\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar VisuallyHidden = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function VisuallyHidden2(props, forwardedRef) {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }, \"VisuallyHidden\")\n);\nvar Root = VisuallyHidden;\nexport {\n Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/avatar.tsx\nimport * as React from \"react\";\nimport { IS_DEVELOPMENT } from \"@radix-ui/primitive/is-development\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\nvar STATIC_IMAGE_COUNT_STATE = [\n 0,\n () => void 0\n];\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar Avatar = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Avatar2(props, forwardedRef) {\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState(\"idle\");\n const [imageCount, setImageCount] = useImageCount();\n return /* @__PURE__ */ jsx(\n AvatarProvider,\n {\n scope: __scopeAvatar,\n imageLoadingStatus,\n setImageLoadingStatus,\n imageCount,\n setImageCount,\n children: /* @__PURE__ */ jsx(Primitive.span, { ...avatarProps, ref: forwardedRef })\n }\n );\n }, \"Avatar\")\n);\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function AvatarImage2(props, forwardedRef) {\n const { __scopeAvatar, src, onLoadingStatusChange, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n useUpdateImageCount(context.setImageCount);\n const imageLoadingStatus = useImageLoadingStatus(src, {\n referrerPolicy: imageProps.referrerPolicy,\n crossOrigin: imageProps.crossOrigin,\n loadingStatus: context.imageLoadingStatus,\n setLoadingStatus: context.setImageLoadingStatus\n });\n const handleLoadingStatusChange = useCallbackRef((status) => {\n onLoadingStatusChange?.(status);\n });\n const loadingStatusRef = React.useRef(imageLoadingStatus);\n useLayoutEffect(() => {\n const previousLoadingStatus = loadingStatusRef.current;\n loadingStatusRef.current = imageLoadingStatus;\n if (imageLoadingStatus !== previousLoadingStatus) {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n return imageLoadingStatus === \"loaded\" ? /* @__PURE__ */ jsx(Primitive.img, { ...imageProps, ref: forwardedRef, src }) : null;\n }, \"AvatarImage\")\n);\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallback = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function AvatarFallback2(props, forwardedRef) {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = React.useState(delayMs === void 0);\n React.useEffect(() => {\n if (delayMs !== void 0) {\n const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n return () => window.clearTimeout(timerId);\n }\n }, [delayMs]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ jsx(Primitive.span, { ...fallbackProps, ref: forwardedRef }) : null;\n }, \"AvatarFallback\")\n);\nfunction useImageLoadingStatus(src, {\n loadingStatus,\n setLoadingStatus,\n referrerPolicy,\n crossOrigin\n}) {\n useLayoutEffect(() => {\n if (!src) {\n setLoadingStatus(\"error\");\n return;\n }\n const image = new window.Image();\n const handleLoad = /* @__PURE__ */ __name((event) => {\n const image2 = event.currentTarget;\n setLoadingStatus(getImageLoadingStatus(image2));\n }, \"handleLoad\");\n const handleError = /* @__PURE__ */ __name(() => setLoadingStatus(\"error\"), \"handleError\");\n image.addEventListener(\"load\", handleLoad);\n image.addEventListener(\"error\", handleError);\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n image.crossOrigin = crossOrigin ?? null;\n image.src = src;\n setLoadingStatus(getImageLoadingStatus(image));\n return () => {\n image.removeEventListener(\"load\", handleLoad);\n image.removeEventListener(\"error\", handleError);\n setLoadingStatus(\"idle\");\n };\n }, [src, crossOrigin, referrerPolicy, setLoadingStatus]);\n return loadingStatus;\n}\n__name(useImageLoadingStatus, \"useImageLoadingStatus\");\nfunction getImageLoadingStatus(image) {\n return image.complete ? image.naturalWidth > 0 ? \"loaded\" : \"error\" : \"loading\";\n}\n__name(getImageLoadingStatus, \"getImageLoadingStatus\");\nfunction useImageCount() {\n let state = STATIC_IMAGE_COUNT_STATE;\n if (IS_DEVELOPMENT) {\n state = React.useState(0);\n const [imageCount] = state;\n const hasWarnedRef = React.useRef(false);\n React.useEffect(() => {\n if (imageCount > 1 && !hasWarnedRef.current) {\n hasWarnedRef.current = true;\n console.warn(\n \"Avatar: Only one `Avatar.Image` component should be rendered per `Avatar.Root`, but multiple were detected. This will lead to unexpected behavior.\"\n );\n }\n }, [imageCount]);\n }\n return state;\n}\n__name(useImageCount, \"useImageCount\");\nfunction useUpdateImageCount(setImageCount) {\n if (IS_DEVELOPMENT) {\n React.useEffect(() => {\n setImageCount((imageCount) => imageCount + 1);\n return () => {\n setImageCount((imageCount) => imageCount - 1);\n };\n }, [setImageCount]);\n }\n}\n__name(useUpdateImageCount, \"useUpdateImageCount\");\nexport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n AvatarFallback as Fallback,\n AvatarImage as Image,\n Avatar as Root,\n createAvatarScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as AvatarPrimitive from '@radix-ui/react-avatar'\nimport { cn } from '../lib/utils.js'\n\nexport const Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn('relative flex h-9 w-9 shrink-0 overflow-hidden rounded-full', className)}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nexport const AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn('aspect-square h-full w-full', className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nexport const AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n 'flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground',\n className,\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function Separator2(props, forwardedRef) {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n }, \"Separator\")\n);\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\n__name(isValidOrientation, \"isValidOrientation\");\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\nimport { cn } from '../lib/utils.js'\n\nexport const Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className,\n )}\n {...props}\n />\n))\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n__name(useStateMachine, \"useStateMachine\");\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = /* @__PURE__ */ React2.forwardRef(\n /* @__PURE__ */ __name(function ScrollArea2(props, forwardedRef) {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, setScrollArea);\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n \"--radix-scroll-area-corner-width\": cornerWidth + \"px\",\n \"--radix-scroll-area-corner-height\": cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }, \"ScrollArea\")\n);\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = /* @__PURE__ */ React2.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function ScrollAreaViewport2(props, forwardedRef) {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(ScrollAreaViewportStyle, { nonce }),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }, \"ScrollAreaViewport\")\n);\nvar ScrollAreaViewportStyle = /* @__PURE__ */ React2.memo(\n /* @__PURE__ */ __name(function ScrollAreaViewportStyle2({ nonce }) {\n return /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n );\n }, \"ScrollAreaViewportStyle\"),\n (prevProps, nextProps) => prevProps.nonce === nextProps.nonce\n);\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = /* @__PURE__ */ React2.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function ScrollAreaScrollbar2(props, forwardedRef) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef, \"data-state\": \"visible\" }) : null;\n }, \"ScrollAreaScrollbar\")\n);\nvar ScrollAreaScrollbarHover = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarHover2(props, forwardedRef) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = /* @__PURE__ */ __name(() => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n }, \"handlePointerEnter\");\n const handlePointerLeave = /* @__PURE__ */ __name(() => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n }, \"handlePointerLeave\");\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n}, \"ScrollAreaScrollbarHover\"));\nvar ScrollAreaScrollbarScroll = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarScroll2(props, forwardedRef) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = /* @__PURE__ */ __name(() => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n }, \"handleScroll\");\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n}, \"ScrollAreaScrollbarScroll\"));\nvar ScrollAreaScrollbarAuto = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarAuto2(props, forwardedRef) {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n}, \"ScrollAreaScrollbarAuto\"));\nvar ScrollAreaScrollbarVisible = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarVisible2(props, forwardedRef) {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: /* @__PURE__ */ __name((thumb) => thumbRef.current = thumb, \"onThumbChange\"),\n onThumbPointerUp: /* @__PURE__ */ __name(() => pointerOffsetRef.current = 0, \"onThumbPointerUp\"),\n onThumbPointerDown: /* @__PURE__ */ __name((pointerPos) => pointerOffsetRef.current = pointerPos, \"onThumbPointerDown\")\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n __name(getScrollPosition, \"getScrollPosition\");\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n}, \"ScrollAreaScrollbarVisible\"));\nvar ScrollAreaScrollbarX = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarX2(props, forwardedRef) {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n \"--radix-scroll-area-thumb-width\": getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n}, \"ScrollAreaScrollbarX\"));\nvar ScrollAreaScrollbarY = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarY2(props, forwardedRef) {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n \"--radix-scroll-area-thumb-height\": getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n}, \"ScrollAreaScrollbarY\"));\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarImpl2(props, forwardedRef) {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, setScrollbar);\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n __name(handleDragScroll, \"handleDragScroll\");\n React2.useEffect(() => {\n const handleWheel = /* @__PURE__ */ __name((event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n }, \"handleWheel\");\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n}, \"ScrollAreaScrollbarImpl\"));\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = /* @__PURE__ */ React2.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function ScrollAreaThumb2(props, forwardedRef) {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }, \"ScrollAreaThumb\")\n);\nvar ScrollAreaThumbImpl = /* @__PURE__ */ React2.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function ScrollAreaThumbImpl2(props, forwardedRef) {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(forwardedRef, scrollbarContext.onThumbChange);\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = /* @__PURE__ */ __name(() => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n }, \"handleScroll\");\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }, \"ScrollAreaThumbImpl\")\n);\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = /* @__PURE__ */ React2.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function ScrollAreaCorner2(props, forwardedRef) {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }, \"ScrollAreaCorner\")\n);\nvar ScrollAreaCornerImpl = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaCornerImpl2(props, forwardedRef) {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n const { onCornerWidthChange, onCornerHeightChange } = context;\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n React2.useEffect(() => {\n return () => {\n onCornerWidthChange(0);\n onCornerHeightChange(0);\n };\n }, [onCornerWidthChange, onCornerHeightChange]);\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n}, \"ScrollAreaCornerImpl\"));\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\n__name(toInt, \"toInt\");\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\n__name(getThumbRatio, \"getThumbRatio\");\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\n__name(getThumbSize, \"getThumbSize\");\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\n__name(getScrollPositionFromPointer, \"getScrollPositionFromPointer\");\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n__name(getThumbOffsetFromScroll, \"getThumbOffsetFromScroll\");\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n__name(linearScale, \"linearScale\");\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n__name(isScrollingWithinScrollbarBounds, \"isScrollingWithinScrollbarBounds\");\nvar addUnlinkedScrollListener = /* @__PURE__ */ __name((node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (/* @__PURE__ */ __name((function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n }), \"loop\"))();\n return () => window.cancelAnimationFrame(rAF);\n}, \"addUnlinkedScrollListener\");\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\n__name(useDebounceCallback, \"useDebounceCallback\");\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n__name(useResizeObserver, \"useResizeObserver\");\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\nimport { cn } from '../lib/utils.js'\n\nexport const ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nexport const ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n","import * as React from 'react'\nimport { cn } from '../lib/utils.js'\n\nexport function Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactElement {\n // `data-slot` follows the convention the rest of the primitives use and\n // gives callers (and tests) a way to tell placeholder content apart from\n // real content — visually they are indistinguishable by design.\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('animate-pulse rounded-md bg-muted', className)}\n {...props}\n />\n )\n}\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-is-hydrated.tsx\nimport * as React2 from \"react\";\n\n// src/use-is-hydrated-legacy.ts\nimport * as React from \"react\";\nvar _isHydrated = false;\nfunction useIsHydrated() {\n const [isHydrated, setIsHydrated] = React.useState(_isHydrated);\n React.useEffect(() => {\n if (!_isHydrated) {\n _isHydrated = true;\n setIsHydrated(true);\n }\n }, []);\n return isHydrated;\n}\n__name(useIsHydrated, \"useIsHydrated\");\n\n// src/use-is-hydrated.tsx\nvar useReactSyncExternalStore = React2[\" useSyncExternalStore \".trim().toString()];\nfunction subscribe() {\n return () => {\n };\n}\n__name(subscribe, \"subscribe\");\nfunction useIsHydratedModern() {\n return useReactSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\n__name(useIsHydratedModern, \"useIsHydratedModern\");\nvar useIsHydrated2 = typeof useReactSyncExternalStore === \"function\" ? useIsHydratedModern : useIsHydrated;\nexport {\n useIsHydrated2 as useIsHydrated\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useIsHydrated } from \"@radix-ui/react-use-is-hydrated\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function RovingFocusGroup2(props, forwardedRef) {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }, \"RovingFocusGroup\")\n);\nvar RovingFocusGroupImpl = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function RovingFocusGroupImpl2(props, forwardedRef) {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n}, \"RovingFocusGroupImpl\"));\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function RovingFocusGroupItem2(props, forwardedRef) {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n const isHydrated = useIsHydrated();\n useLayoutEffect(() => {\n if (!isHydrated || !focusable) {\n return;\n }\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }, [isHydrated, focusable, onFocusableItemAdd, onFocusableItemRemove]);\n React.useEffect(() => {\n if (isHydrated || !focusable) {\n return;\n }\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }, [isHydrated, focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }, \"RovingFocusGroupItem\")\n);\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\n__name(getDirectionAwareKey, \"getDirectionAwareKey\");\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n__name(getFocusIntent, \"getFocusIntent\");\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n__name(focusFirst, \"focusFirst\");\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n__name(wrapArray, \"wrapArray\");\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\nimport { LayerContainerProvider, mergeRefs } from '../lib/floating-layer.js'\n\nexport const Dialog = DialogPrimitive.Root\nexport const DialogTrigger = DialogPrimitive.Trigger\nexport const DialogPortal = DialogPrimitive.Portal\nexport const DialogClose = DialogPrimitive.Close\n\nexport const DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nexport const DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n // Nested popovers/selects portal into this node rather than `document.body`\n // so `react-remove-scroll` (which Radix wraps modal content in) lets touch\n // gestures scroll them on mobile. See lib/floating-layer.tsx.\n const [content, setContent] = React.useState<HTMLElement | null>(null)\n const composedRef = React.useMemo(() => mergeRefs(ref, setContent), [ref])\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={composedRef}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg',\n className,\n )}\n {...props}\n >\n <LayerContainerProvider container={content}>{children}</LayerContainerProvider>\n <DialogPrimitive.Close className=\"absolute right-4 top-4 cursor-pointer rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n})\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nexport const DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactElement => (\n <div\n className={cn('flex flex-col gap-1.5 text-center sm:text-left', className)}\n {...props}\n />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nexport const DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactElement => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nexport const DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nexport const DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = /* @__PURE__ */ __name((props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n}, \"AlertDialog\");\nvar AlertDialogTrigger = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogTrigger2(props, forwardedRef) {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }, \"AlertDialogTrigger\")\n);\nvar AlertDialogPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n}, \"AlertDialogPortal\");\nvar AlertDialogOverlay = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogOverlay2(props, forwardedRef) {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }, \"AlertDialogOverlay\")\n);\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogContent2(props, forwardedRef) {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsx(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children\n }\n ) });\n }, \"AlertDialogContent\")\n);\nvar AlertDialogTitle = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogTitle2(props, forwardedRef) {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }, \"AlertDialogTitle\")\n);\nvar AlertDialogDescription = React.forwardRef(/* @__PURE__ */ __name(function AlertDialogDescription2(props, forwardedRef) {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n}, \"AlertDialogDescription\"));\nvar AlertDialogAction = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogAction2(props, forwardedRef) {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }, \"AlertDialogAction\")\n);\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogCancel2(props, forwardedRef) {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }, \"AlertDialogCancel\")\n);\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'\nimport { buttonVariants } from './button.js'\nimport { cn } from '../lib/utils.js'\nimport { LayerContainerProvider, mergeRefs } from '../lib/floating-layer.js'\n\nexport const AlertDialog = AlertDialogPrimitive.Root\nexport const AlertDialogTrigger = AlertDialogPrimitive.Trigger\nexport const AlertDialogPortal = AlertDialogPrimitive.Portal\n\nexport const AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nexport const AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n // Nested popovers/selects portal into this node rather than `document.body`\n // so `react-remove-scroll` (which Radix wraps modal content in) lets touch\n // gestures scroll them on mobile. See lib/floating-layer.tsx.\n const [content, setContent] = React.useState<HTMLElement | null>(null)\n const composedRef = React.useMemo(() => mergeRefs(ref, setContent), [ref])\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={composedRef}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg',\n className,\n )}\n {...props}\n >\n <LayerContainerProvider container={content}>{children}</LayerContainerProvider>\n </AlertDialogPrimitive.Content>\n </AlertDialogPortal>\n )\n})\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nexport const AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactElement => (\n <div\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n)\nAlertDialogHeader.displayName = 'AlertDialogHeader'\n\nexport const AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactElement => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-2', className)}\n {...props}\n />\n)\nAlertDialogFooter.displayName = 'AlertDialogFooter'\n\nexport const AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold', className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nexport const AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\n\nexport const AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action> & {\n variant?: 'default' | 'destructive'\n }\n>(({ className, variant = 'default', ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants({ variant }), className)}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nexport const AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = /* @__PURE__ */ __name((props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = /* @__PURE__ */ __name(() => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n }, \"handleKeyDown\");\n const handlePointer = /* @__PURE__ */ __name(() => isUsingKeyboardRef.current = false, \"handlePointer\");\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n React.useEffect(() => {\n if (!open) {\n return;\n }\n const handleBlur = /* @__PURE__ */ __name(() => handleOpenChange(false), \"handleBlur\");\n window.addEventListener(\"blur\", handleBlur);\n return () => window.removeEventListener(\"blur\", handleBlur);\n }, [open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n}, \"Menu\");\nvar MenuAnchor = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuAnchor2(props, forwardedRef) {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }, \"MenuAnchor\")\n);\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n}, \"MenuPortal\");\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuContent2(props, forwardedRef) {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }, \"MenuContent\")\n);\nvar MenuRootContentModal = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function MenuRootContentModal2(props, forwardedRef) {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }, \"MenuRootContentModal\")\n);\nvar MenuRootContentNonModal = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function MenuRootContentNonModal2(props, forwardedRef) {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n}, \"MenuRootContentNonModal\"));\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function MenuContentImpl2(props, forwardedRef) {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = /* @__PURE__ */ __name((key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (/* @__PURE__ */ __name((function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n }), \"updateSearch\"))(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n }, \"handleTypeaheadSearch\");\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }, \"MenuContentImpl\")\n);\nvar MenuGroup = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuGroup2(props, forwardedRef) {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }, \"MenuGroup\")\n);\nvar MenuLabel = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuLabel2(props, forwardedRef) {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }, \"MenuLabel\")\n);\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function MenuItem2(props, forwardedRef) {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = /* @__PURE__ */ __name(() => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n }, \"handleSelect\");\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled || event.target !== event.currentTarget) {\n return;\n }\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (isTypingAhead && event.key === \" \") {\n return;\n }\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }, \"MenuItem\")\n);\nvar MenuItemImpl = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuItemImpl2(props, forwardedRef) {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }, \"MenuItemImpl\")\n);\nvar MenuCheckboxItem = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function MenuCheckboxItem2(props, forwardedRef) {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }, \"MenuCheckboxItem\")\n);\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: /* @__PURE__ */ __name(() => {\n }, \"onValueChange\") }\n);\nvar MenuRadioGroup = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuRadioGroup2(props, forwardedRef) {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }, \"MenuRadioGroup\")\n);\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuRadioItem2(props, forwardedRef) {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }, \"MenuRadioItem\")\n);\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function MenuItemIndicator2(props, forwardedRef) {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }, \"MenuItemIndicator\")\n);\nvar MenuSeparator = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuSeparator2(props, forwardedRef) {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }, \"MenuSeparator\")\n);\nvar MenuArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuArrow2(props, forwardedRef) {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }, \"MenuArrow\")\n);\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = /* @__PURE__ */ __name((props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n}, \"MenuSub\");\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuSubTrigger2(props, forwardedRef) {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n const composedRefs = useComposedRefs(forwardedRef, subContext.onTriggerChange);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? subContext.contentId : void 0,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composedRefs,\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (props.disabled || event.target !== event.currentTarget) {\n return;\n }\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (isTypingAhead && event.key === \" \") {\n return;\n }\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }, \"MenuSubTrigger\")\n);\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function MenuSubContent2(props, forwardedRef) {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, align = \"start\", ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align,\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }, \"MenuSubContent\")\n);\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\n__name(getOpenState, \"getOpenState\");\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\n__name(isIndeterminate, \"isIndeterminate\");\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\n__name(getCheckedState, \"getCheckedState\");\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n__name(focusFirst, \"focusFirst\");\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n__name(wrapArray, \"wrapArray\");\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\n__name(getNextMatch, \"getNextMatch\");\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\n__name(isPointInPolygon, \"isPointInPolygon\");\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\n__name(isPointerInGraceArea, \"isPointerInGraceArea\");\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\n__name(whenMouse, \"whenMouse\");\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = /* @__PURE__ */ __name((props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DROPDOWN_MENU_NAME\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n}, \"DropdownMenu\");\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function DropdownMenuTrigger2(props, forwardedRef) {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composedRefs,\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }, \"DropdownMenuTrigger\")\n);\nvar DropdownMenuPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n}, \"DropdownMenuPortal\");\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function DropdownMenuContent2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }, \"DropdownMenuContent\")\n);\nvar DropdownMenuGroup = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function DropdownMenuGroup2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }, \"DropdownMenuGroup\")\n);\nvar DropdownMenuLabel = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function DropdownMenuLabel2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }, \"DropdownMenuLabel\")\n);\nvar DropdownMenuItem = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function DropdownMenuItem2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }, \"DropdownMenuItem\")\n);\nvar DropdownMenuCheckboxItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuCheckboxItem2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n}, \"DropdownMenuCheckboxItem\"));\nvar DropdownMenuRadioGroup = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuRadioGroup2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n}, \"DropdownMenuRadioGroup\"));\nvar DropdownMenuRadioItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuRadioItem2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n}, \"DropdownMenuRadioItem\"));\nvar DropdownMenuItemIndicator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuItemIndicator2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n}, \"DropdownMenuItemIndicator\"));\nvar DropdownMenuSeparator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuSeparator2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n}, \"DropdownMenuSeparator\"));\nvar DropdownMenuArrow = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function DropdownMenuArrow2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }, \"DropdownMenuArrow\")\n);\nvar DropdownMenuSub = /* @__PURE__ */ __name((props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: \"DropdownMenuSub\"\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n}, \"DropdownMenuSub\");\nvar DropdownMenuSubTrigger = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuSubTrigger2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n}, \"DropdownMenuSubTrigger\"));\nvar DropdownMenuSubContent = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DropdownMenuSubContent2(props, forwardedRef) {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n}, \"DropdownMenuSubContent\"));\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { Check, ChevronRight, Circle } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\nimport { usePortalContainer, useViewportCollisionPadding } from '../lib/floating-layer.js'\n\nexport const DropdownMenu = DropdownMenuPrimitive.Root\nexport const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\nexport const DropdownMenuGroup = DropdownMenuPrimitive.Group\nexport const DropdownMenuSub = DropdownMenuPrimitive.Sub\nexport const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\n/** Same as the Radix portal, but defaults its target to the enclosing\n * Dialog/Sheet content — see lib/floating-layer.tsx for why that matters on\n * touch devices. Used by call sites that portal submenus themselves. */\nexport const DropdownMenuPortal = ({\n container,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>): React.ReactElement => {\n const portalContainer = usePortalContainer()\n return <DropdownMenuPrimitive.Portal container={container ?? portalContainer} {...props} />\n}\nDropdownMenuPortal.displayName = 'DropdownMenuPortal'\n\nexport const DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',\n inset && 'pl-8',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName\n\nexport const DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, collisionPadding, ...props }, ref) => {\n const viewportPadding = useViewportCollisionPadding()\n return (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n collisionPadding={collisionPadding ?? viewportPadding}\n className={cn(\n 'z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n )\n})\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName\n\nexport interface DropdownMenuContentProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> {\n /** Override the portal target. Defaults to the enclosing Dialog/Sheet\n * content (so touch-scroll works inside it) or `document.body`. */\n container?: HTMLElement | null\n}\n\nexport const DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n DropdownMenuContentProps\n>(({ className, sideOffset = 4, collisionPadding, container, ...props }, ref) => {\n const portalContainer = usePortalContainer()\n const viewportPadding = useViewportCollisionPadding()\n return (\n <DropdownMenuPrimitive.Portal container={container ?? portalContainer}>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n collisionPadding={collisionPadding ?? viewportPadding}\n className={cn(\n 'z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n})\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nexport const DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n inset && 'pl-8',\n className,\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nexport const DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName\n\nexport const DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nexport const DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nexport const DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nexport const DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>): React.ReactElement => (\n <span\n className={cn('ml-auto text-xs tracking-widest opacity-60', className)}\n {...props}\n />\n)\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut'\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = /* @__PURE__ */ __name((props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [skipDelayDuration]),\n onClose: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n}, \"TooltipProvider\");\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = /* @__PURE__ */ __name((props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const [contentIdState, setContentId] = React.useState(void 0);\n const generatedContentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: /* @__PURE__ */ __name((open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n }, \"onChange\"),\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n const contentId = contentIdState ?? generatedContentId;\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n setContentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n}, \"Tooltip\");\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipTrigger2(props, forwardedRef) {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }, \"TooltipTrigger\")\n);\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n}, \"TooltipPortal\");\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipContent2(props, forwardedRef) {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }, \"TooltipContent\")\n);\nvar TooltipContentHoverable = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function TooltipContentHoverable2(props, forwardedRef) {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, content), \"handleTriggerLeave\");\n const handleContentLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, trigger), \"handleContentLeave\");\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = /* @__PURE__ */ __name((event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n }, \"handleTrackPointerGrace\");\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n}, \"TooltipContentHoverable\"));\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function TooltipContentImpl2(props, forwardedRef) {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n id: idProp,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = /* @__PURE__ */ __name((event) => {\n if (event.target instanceof Node && event.target.contains(context.trigger)) {\n onClose();\n }\n }, \"handleScroll\");\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n const { setContentId } = context;\n useLayoutEffect(() => {\n setContentId(idProp);\n return () => {\n setContentId(void 0);\n };\n }, [idProp, setContentId]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n role: ariaLabel ? void 0 : \"tooltip\",\n id: ariaLabel ? void 0 : context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n ariaLabel ? /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel }) : null\n ]\n }\n )\n }\n );\n }, \"TooltipContentImpl\")\n);\nvar TooltipArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipArrow2(props, forwardedRef) {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }, \"TooltipArrow\")\n);\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\n__name(getExitSideFromRect, \"getExitSideFromRect\");\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\n__name(getPaddedExitPoints, \"getPaddedExitPoints\");\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\n__name(getPointsFromRect, \"getPointsFromRect\");\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\n__name(isPointInPolygon, \"isPointInPolygon\");\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\n__name(getHull, \"getHull\");\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\n__name(getHullPresorted, \"getHullPresorted\");\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\nimport { cn } from '../lib/utils.js'\nimport { usePortalContainer, useViewportCollisionPadding } from '../lib/floating-layer.js'\n\nexport const TooltipProvider = TooltipPrimitive.Provider\nexport const Tooltip = TooltipPrimitive.Root\nexport const TooltipTrigger = TooltipPrimitive.Trigger\n\nexport interface TooltipContentProps\n extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {\n /** Override the portal target. Defaults to the enclosing Dialog/Sheet\n * content, or `document.body`. */\n container?: HTMLElement | null\n}\n\nexport const TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(({ className, sideOffset = 4, collisionPadding, container, ...props }, ref) => {\n const portalContainer = usePortalContainer()\n const viewportPadding = useViewportCollisionPadding()\n return (\n <TooltipPrimitive.Portal container={container ?? portalContainer}>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n collisionPadding={collisionPadding ?? viewportPadding}\n className={cn(\n 'z-50 overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n )\n})\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n","import * as React from 'react'\nimport { cn } from '../lib/utils.js'\n\n/**\n * Single keyboard key glyph. Renders a `<kbd>` styled like a typical\n * key cap. Compose multiple `<Kbd>` siblings to spell out a chord:\n * `<Kbd>Ctrl</Kbd>+<Kbd>S</Kbd>`. The cap uses `bg-muted` /\n * `text-foreground/80` so it reads well on any neutral surface\n * (cards, popovers, tooltips).\n */\nexport const Kbd = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement>\n>(({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n 'inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium text-foreground/80 shadow-[0_1px_0_0_var(--border)]',\n className,\n )}\n {...props}\n />\n))\nKbd.displayName = 'Kbd'\n\n/**\n * Resolve the platform-appropriate label for the primary modifier\n * key. Renders `⌘` on macOS / iOS, `Ctrl` everywhere else.\n */\nexport function getModKeyLabel(): string {\n if (typeof navigator === 'undefined') return 'Ctrl'\n const platform = navigator.platform || ''\n const ua = navigator.userAgent || ''\n return /Mac|iPhone|iPad|iPod/i.test(platform) || /Mac/i.test(ua) ? '⌘' : 'Ctrl'\n}\n","// Presentational dialog that lists keyboard shortcuts. Pass `items`;\n// each entry's `keys` is a `+`-separated combo string (e.g. `mod+s`)\n// and gets rendered as <Kbd> caps. `mod` resolves to ⌘ on macOS / Ctrl\n// elsewhere via `getModKeyLabel()`. Items can optionally be grouped via\n// `group` and the dialog sorts groups in insertion order.\n\nimport * as React from 'react'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from './dialog.js'\nimport { Kbd, getModKeyLabel } from './kbd.js'\n\nexport interface KeyboardShortcutItem {\n /** Combo in `useHotkey` syntax, e.g. `mod+s`, `shift+/`, `esc`. */\n keys: string\n description: string\n group?: string\n}\n\nexport interface KeyboardShortcutsHelpProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n items: KeyboardShortcutItem[]\n title?: React.ReactNode\n description?: React.ReactNode\n emptyMessage?: React.ReactNode\n}\n\nfunction chordParts(combo: string, modLabel: string): string[] {\n // Pick the first alternative (`a|b`) — the help dialog shows one\n // canonical chord per entry.\n const first = combo.split('|')[0] ?? ''\n return first\n .split('+')\n .map((s) => s.trim().toLowerCase())\n .filter(Boolean)\n .map((p) => {\n if (p === 'mod' || p === 'ctrl' || p === 'meta' || p === 'cmd') return modLabel\n if (p === 'shift') return 'Shift'\n if (p === 'alt' || p === 'option') return 'Alt'\n if (p === 'esc' || p === 'escape') return 'Esc'\n if (p === 'space' || p === ' ' || p === 'spacebar') return 'Space'\n if (p === 'enter' || p === 'return') return 'Enter'\n if (p === 'tab') return 'Tab'\n if (p === 'backspace') return '⌫'\n if (p === 'delete' || p === 'del') return 'Del'\n if (p === 'arrowup') return '↑'\n if (p === 'arrowdown') return '↓'\n if (p === 'arrowleft') return '←'\n if (p === 'arrowright') return '→'\n if (p.length === 1) return p.toUpperCase()\n return p.charAt(0).toUpperCase() + p.slice(1)\n })\n}\n\nexport function KeyboardShortcutsHelp({\n open,\n onOpenChange,\n items,\n title,\n description,\n emptyMessage,\n}: KeyboardShortcutsHelpProps): React.ReactElement {\n const modLabel = getModKeyLabel()\n\n // Group preserving insertion order.\n const groups = React.useMemo(() => {\n const m = new Map<string, KeyboardShortcutItem[]>()\n for (const it of items) {\n const key = it.group ?? ''\n const list = m.get(key)\n if (list) list.push(it)\n else m.set(key, [it])\n }\n return Array.from(m.entries())\n }, [items])\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n {/* aria-describedby={undefined} explicitly suppresses Radix's missing-\n description warning for dialogs where no <DialogDescription> is\n rendered. When `description` is provided the prop is omitted so\n Radix can wire its context-based aria-describedby automatically. */}\n <DialogContent\n className=\"max-w-md\"\n {...(!description ? { 'aria-describedby': undefined } : {})}\n >\n <DialogHeader>\n <DialogTitle>{title ?? 'Keyboard shortcuts'}</DialogTitle>\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n {items.length === 0 ? (\n <p className=\"text-sm text-muted-foreground\">\n {emptyMessage ?? 'No shortcuts available on this screen.'}\n </p>\n ) : (\n <div className=\"flex flex-col gap-4\">\n {groups.map(([groupName, list]) => (\n <div key={groupName || '__default__'} className=\"flex flex-col gap-2\">\n {groupName && (\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {groupName}\n </h3>\n )}\n <ul className=\"flex flex-col divide-y divide-border rounded-md border border-border\">\n {list.map((it, idx) => (\n <li\n key={`${it.keys}:${idx}`}\n className=\"flex items-center justify-between gap-3 px-3 py-2\"\n >\n <span className=\"text-sm\">{it.description}</span>\n <span className=\"inline-flex shrink-0 items-center gap-1\">\n {chordParts(it.keys, modLabel).map((part, i, arr) => (\n <React.Fragment key={i}>\n <Kbd>{part}</Kbd>\n {i < arr.length - 1 && (\n <span className=\"text-muted-foreground\">+</span>\n )}\n </React.Fragment>\n ))}\n </span>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n )}\n </DialogContent>\n </Dialog>\n )\n}\n","// shadcn-style Field — composable form-field layout primitives.\n// Pure layout; no react-hook-form binding here. Pair with FormField from\n// `./form.js` when wiring to RHF, or use standalone for lightweight forms.\n//\n// Conventions match the canonical shadcn `field` recipe:\n// <Field>\n// <FieldLabel>…</FieldLabel>\n// <Input />\n// <FieldDescription>…</FieldDescription>\n// <FieldError>…</FieldError>\n// </Field>\n//\n// <FieldGroup>…</FieldGroup>\n// <FieldSet><FieldLegend/><FieldGroup/></FieldSet>\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils.js'\nimport { Label } from './label.js'\n\nconst fieldVariants = cva('group/field flex w-full', {\n variants: {\n orientation: {\n vertical: 'flex-col gap-2',\n horizontal: 'flex-row items-center gap-3',\n responsive: 'flex-col gap-2 sm:flex-row sm:items-center sm:gap-3',\n },\n },\n defaultVariants: { orientation: 'vertical' },\n})\n\nexport interface FieldProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof fieldVariants> {\n /** Render with a custom element via Radix Slot. */\n asChild?: boolean\n}\n\nexport const Field = React.forwardRef<HTMLDivElement, FieldProps>(\n ({ className, orientation, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div'\n return (\n <Comp\n ref={ref}\n data-slot=\"field\"\n data-orientation={orientation ?? 'vertical'}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n },\n)\nField.displayName = 'Field'\n\nexport const FieldLabel = React.forwardRef<\n React.ElementRef<typeof Label>,\n React.ComponentPropsWithoutRef<typeof Label>\n>(({ className, ...props }, ref) => (\n <Label\n ref={ref}\n data-slot=\"field-label\"\n className={cn(\n 'group-data-[invalid=true]/field:text-destructive flex items-center gap-2 text-sm font-medium leading-none',\n className,\n )}\n {...props}\n />\n))\nFieldLabel.displayName = 'FieldLabel'\n\nexport const FieldDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"field-description\"\n className={cn('text-sm text-muted-foreground leading-snug', className)}\n {...props}\n />\n))\nFieldDescription.displayName = 'FieldDescription'\n\nexport const FieldError = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement> & { errors?: ReadonlyArray<string | undefined> }\n>(({ className, children, errors, ...props }, ref) => {\n const list = errors?.filter((e): e is string => Boolean(e))\n const body = list && list.length > 0 ? list.join(', ') : children\n if (!body) return null\n return (\n <p\n ref={ref}\n data-slot=\"field-error\"\n className={cn('text-sm font-medium text-destructive', className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFieldError.displayName = 'FieldError'\n\nexport const FieldGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"field-group\"\n role=\"group\"\n className={cn('flex flex-col gap-5', className)}\n {...props}\n />\n ),\n)\nFieldGroup.displayName = 'FieldGroup'\n\nexport const FieldSet = React.forwardRef<HTMLFieldSetElement, React.FieldsetHTMLAttributes<HTMLFieldSetElement>>(\n ({ className, ...props }, ref) => (\n <fieldset\n ref={ref}\n data-slot=\"field-set\"\n className={cn('flex flex-col gap-4 rounded-lg border border-border p-4', className)}\n {...props}\n />\n ),\n)\nFieldSet.displayName = 'FieldSet'\n\nexport const FieldLegend = React.forwardRef<\n HTMLLegendElement,\n React.HTMLAttributes<HTMLLegendElement>\n>(({ className, ...props }, ref) => (\n <legend\n ref={ref}\n data-slot=\"field-legend\"\n className={cn('px-1 text-sm font-medium leading-none', className)}\n {...props}\n />\n))\nFieldLegend.displayName = 'FieldLegend'\n\nexport const FieldSeparator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"field-separator\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn('h-px w-full bg-border', className)}\n {...props}\n />\n ),\n)\nFieldSeparator.displayName = 'FieldSeparator'\n\n/** Wrapper for label + description + control + error stacked vertically. */\nexport const FieldContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"field-content\"\n className={cn('flex min-w-0 flex-col gap-1.5', className)}\n {...props}\n />\n ),\n)\nFieldContent.displayName = 'FieldContent'\n","// shadcn-style Sheet — side-anchored Dialog. Built on @radix-ui/react-dialog,\n// shares the same primitive as <Dialog>. Variants: top / bottom / left / right.\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\nimport { LayerContainerProvider, mergeRefs } from '../lib/floating-layer.js'\n\nexport const Sheet = SheetPrimitive.Root\nexport const SheetTrigger = SheetPrimitive.Trigger\nexport const SheetClose = SheetPrimitive.Close\nexport const SheetPortal = SheetPrimitive.Portal\n\nexport const SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: { side: 'right' },\n },\n)\n\nexport interface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {\n /** Set to true to suppress the built-in absolute close button (e.g. when\n * the consumer renders its own close control inside the header). */\n hideCloseButton?: boolean\n}\n\nexport const SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, hideCloseButton, ...props }, ref) => {\n // Nested popovers/selects portal into this node rather than `document.body`\n // so `react-remove-scroll` (which Radix wraps modal content in) lets touch\n // gestures scroll them on mobile. See lib/floating-layer.tsx.\n const [content, setContent] = React.useState<HTMLElement | null>(null)\n const composedRef = React.useMemo(() => mergeRefs(ref, setContent), [ref])\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={composedRef}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <LayerContainerProvider container={content}>{children}</LayerContainerProvider>\n {!hideCloseButton && (\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n})\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nexport const SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement => (\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n)\nSheetHeader.displayName = 'SheetHeader'\n\nexport const SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nSheetFooter.displayName = 'SheetFooter'\n\nexport const SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-foreground', className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nexport const SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n","// shadcn-style Sidebar — collapsible side navigation built on Sheet (mobile)\n// + a CSS-variable-driven layout (desktop). Composed of Provider/Sidebar/\n// Inset + Group/Menu primitives. Faithful port of the canonical recipe at\n// https://ui.shadcn.com/docs/components/sidebar with two project-specific\n// tweaks: state is persisted in localStorage instead of cookies (so the\n// component works in non-SSR Vite apps without server plumbing), and the\n// `width-mobile`/`width-icon` CSS variables are exposed via the @theme\n// block in styles.css. All other class names match the upstream component.\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { PanelLeft } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\nimport { Button } from './button.js'\nimport { Input } from './input.js'\nimport { Separator } from './separator.js'\nimport { Sheet, SheetContent, SheetDescription, SheetTitle } from './sheet.js'\nimport { Skeleton } from './skeleton.js'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip.js'\n\nconst SIDEBAR_STATE_KEY = 'sidebar:state'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\n\ninterface SidebarContextValue {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen(open: boolean): void\n openMobile: boolean\n setOpenMobile(open: boolean): void\n isMobile: boolean\n toggleSidebar(): void\n}\n\nconst SidebarContext = React.createContext<SidebarContextValue | null>(null)\n\nexport function useSidebar(): SidebarContextValue {\n const ctx = React.useContext(SidebarContext)\n if (!ctx) throw new Error('useSidebar must be used within <SidebarProvider>')\n return ctx\n}\n\nfunction useIsMobile(breakpoint = 768): boolean {\n const [isMobile, setIsMobile] = React.useState(false)\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${breakpoint - 1}px)`)\n const update = (): void => setIsMobile(mql.matches)\n update()\n mql.addEventListener('change', update)\n return () => mql.removeEventListener('change', update)\n }, [breakpoint])\n return isMobile\n}\n\nexport interface SidebarProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?(open: boolean): void\n}\n\nexport const SidebarProvider = React.forwardRef<HTMLDivElement, SidebarProviderProps>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n const [_open, _setOpen] = React.useState(() => {\n if (typeof localStorage === 'undefined') return defaultOpen\n const v = localStorage.getItem(SIDEBAR_STATE_KEY)\n return v == null ? defaultOpen : v === 'true'\n })\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((v: boolean) => boolean)) => {\n const next = typeof value === 'function' ? value(open) : value\n if (setOpenProp) setOpenProp(next)\n else _setOpen(next)\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(SIDEBAR_STATE_KEY, String(next))\n }\n },\n [setOpenProp, open],\n )\n\n const toggleSidebar = React.useCallback(() => {\n if (isMobile) setOpenMobile((v) => !v)\n else setOpen((v) => !v)\n }, [isMobile, setOpen])\n\n React.useEffect(() => {\n const onKey = (e: KeyboardEvent): void => {\n if (\n e.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (e.metaKey || e.ctrlKey) &&\n !e.shiftKey &&\n !e.altKey\n ) {\n e.preventDefault()\n toggleSidebar()\n }\n }\n window.addEventListener('keydown', onKey)\n return () => window.removeEventListener('keydown', onKey)\n }, [toggleSidebar])\n\n const state: 'expanded' | 'collapsed' = open ? 'expanded' : 'collapsed'\n\n const value = React.useMemo<SidebarContextValue>(\n () => ({\n state,\n open,\n setOpen,\n openMobile,\n setOpenMobile,\n isMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, openMobile, isMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={value}>\n <TooltipProvider delayDuration={0}>\n <div\n ref={ref}\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-muted',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n },\n)\nSidebarProvider.displayName = 'SidebarProvider'\n\nexport interface SidebarLabels {\n /** Visually-hidden Sheet title on mobile. Default: 'Sidebar'. */\n sidebarTitle?: string\n /** Visually-hidden Sheet description on mobile. Default: 'Navigation menu'. */\n navigationMenu?: string\n}\n\nexport interface SidebarProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n labels?: SidebarLabels\n}\n\nconst defaultSidebarLabels: Required<SidebarLabels> = {\n sidebarTitle: 'Sidebar',\n navigationMenu: 'Navigation menu',\n}\n\nexport const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n (\n { side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, labels, ...props },\n ref,\n ) => {\n const l = { ...defaultSidebarLabels, ...labels }\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex h-full w-[var(--sidebar-width)] flex-col bg-card text-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n side={side}\n className=\"w-[var(--sidebar-width)] bg-card p-0 text-foreground [&>button]:hidden\"\n style={{ '--sidebar-width': SIDEBAR_WIDTH_MOBILE } as React.CSSProperties}\n >\n <SheetTitle className=\"sr-only\">{l.sidebarTitle}</SheetTitle>\n <SheetDescription className=\"sr-only\">{l.navigationMenu}</SheetDescription>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* Spacer that takes up width in flow */}\n <div\n className={cn(\n 'relative h-svh w-[var(--sidebar-width)] bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]',\n )}\n />\n {/* Actual sidebar — fixed-positioned, width animated */}\n <div\n className={cn(\n 'fixed inset-y-0 z-40 hidden h-svh w-[var(--sidebar-width)] transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\n : 'group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)] group-data-[side=left]:border-r group-data-[side=right]:border-l border-border',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className={cn(\n 'flex h-full w-full flex-col bg-card group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-border group-data-[variant=floating]:shadow',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n },\n)\nSidebar.displayName = 'Sidebar'\n\nexport interface SidebarTriggerProps extends React.ComponentPropsWithoutRef<typeof Button> {\n /** Visually-hidden trigger label for screen readers. Default: 'Toggle sidebar'. */\n toggleSidebarLabel?: string\n}\n\nexport const SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n SidebarTriggerProps\n>(({ className, onClick, toggleSidebarLabel = 'Toggle sidebar', ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(e) => {\n onClick?.(e)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft className=\"size-4\" />\n <span className=\"sr-only\">{toggleSidebarLabel}</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = 'SidebarTrigger'\n\nexport interface SidebarRailProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** aria-label / title for screen readers. Default: 'Toggle sidebar'. */\n toggleSidebarLabel?: string\n}\n\nexport const SidebarRail = React.forwardRef<\n HTMLButtonElement,\n SidebarRailProps\n>(({ className, toggleSidebarLabel = 'Toggle sidebar', ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n return (\n <button\n ref={ref}\n type=\"button\"\n data-sidebar=\"rail\"\n aria-label={toggleSidebarLabel}\n tabIndex={-1}\n onClick={toggleSidebar}\n title={toggleSidebarLabel}\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-card',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n )\n})\nSidebarRail.displayName = 'SidebarRail'\n\nexport const SidebarInset = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n))\nSidebarInset.displayName = 'SidebarInset'\n\nexport const SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentPropsWithoutRef<typeof Input>\n>(({ className, ...props }, ref) => (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn('h-8 w-full bg-background shadow-none focus-visible:ring-2', className)}\n {...props}\n />\n))\nSidebarInput.displayName = 'SidebarInput'\n\nexport const SidebarHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n ),\n)\nSidebarHeader.displayName = 'SidebarHeader'\n\nexport const SidebarFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n ),\n)\nSidebarFooter.displayName = 'SidebarFooter'\n\nexport const SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentPropsWithoutRef<typeof Separator>\n>(({ className, ...props }, ref) => (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-border', className)}\n {...props}\n />\n))\nSidebarSeparator.displayName = 'SidebarSeparator'\n\nexport const SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex py-2 min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n))\nSidebarContent.displayName = 'SidebarContent'\n\nexport const SidebarGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col px-2 py-1', className)}\n {...props}\n />\n ),\n)\nSidebarGroup.displayName = 'SidebarGroup'\n\nexport const SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { asChild?: boolean }\n>(({ className, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div'\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-muted-foreground outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = 'SidebarGroupLabel'\n\nexport const SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { asChild?: boolean }\n>(({ className, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 cursor-pointer items-center justify-center rounded-md p-0 text-muted-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = 'SidebarGroupAction'\n\nexport const SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n))\nSidebarGroupContent.displayName = 'SidebarGroupContent'\n\nexport const SidebarMenu = React.forwardRef<HTMLUListElement, React.HTMLAttributes<HTMLUListElement>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n ),\n)\nSidebarMenu.displayName = 'SidebarMenu'\n\nexport const SidebarMenuItem = React.forwardRef<HTMLLIElement, React.HTMLAttributes<HTMLLIElement>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n ),\n)\nSidebarMenuItem.displayName = 'SidebarMenuItem'\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full cursor-pointer items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-ring transition-[width,height,padding] hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 active:bg-accent active:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-accent data-[active=true]:font-medium data-[active=true]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:hover:text-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-accent hover:text-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--border))] hover:bg-accent hover:text-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: { variant: 'default', size: 'default' },\n },\n)\n\nexport interface SidebarMenuButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof sidebarMenuButtonVariants> {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n}\n\nexport const SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n ({ asChild, isActive, variant, size, tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n const { isMobile, state } = useSidebar()\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size ?? 'default'}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n if (!tooltip) return button\n const tooltipProps = typeof tooltip === 'string' ? { children: tooltip } : tooltip\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltipProps} />\n </Tooltip>\n )\n },\n)\nSidebarMenuButton.displayName = 'SidebarMenuButton'\n\nexport const SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { asChild?: boolean; showOnHover?: boolean }\n>(({ className, asChild, showOnHover, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 cursor-pointer items-center justify-center rounded-md p-0 text-muted-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = 'SidebarMenuAction'\n\nexport const SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-muted-foreground',\n 'peer-hover/menu-button:text-accent-foreground peer-data-[active=true]/menu-button:text-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n))\nSidebarMenuBadge.displayName = 'SidebarMenuBadge'\n\nexport const SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { showIcon?: boolean }\n>(({ className, showIcon = false, ...props }, ref) => {\n const id = React.useId()\n // Derive a stable per-instance pseudo-random width (50%..90%) from useId so\n // skeleton rows visually vary without violating component purity.\n const width = React.useMemo(() => {\n let h = 0\n for (let i = 0; i < id.length; i++) h = (h * 31 + id.charCodeAt(i)) | 0\n return `${50 + (Math.abs(h) % 40)}%`\n }, [id])\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[var(--skeleton-width)] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={{ '--skeleton-width': width } as React.CSSProperties}\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton'\n\nexport const SidebarMenuSub = React.forwardRef<HTMLUListElement, React.HTMLAttributes<HTMLUListElement>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n)\nSidebarMenuSub.displayName = 'SidebarMenuSub'\n\nexport const SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.HTMLAttributes<HTMLLIElement>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />,\n)\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem'\n\nexport const SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n }\n>(({ asChild, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px cursor-pointer items-center gap-2 overflow-hidden rounded-md px-2 text-sm text-foreground outline-none ring-ring hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 active:bg-accent active:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted-foreground',\n 'data-[active=true]:bg-accent data-[active=true]:text-accent-foreground',\n size === 'sm' && 'text-xs',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton'\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst getAsset = (type)=>{\n switch(type){\n case 'success':\n return SuccessIcon;\n case 'info':\n return InfoIcon;\n case 'warning':\n return WarningIcon;\n case 'error':\n return ErrorIcon;\n default:\n return null;\n }\n};\nconst bars = Array(12).fill(0);\nconst Loader = ({ visible, className })=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: [\n 'sonner-loading-wrapper',\n className\n ].filter(Boolean).join(' '),\n \"data-visible\": visible\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-spinner\"\n }, bars.map((_, i)=>/*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-loading-bar\",\n key: `spinner-bar-${i}`\n }))));\n};\nconst SuccessIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\",\n \"aria-hidden\": \"true\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n clipRule: \"evenodd\"\n}));\nconst WarningIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\",\n \"aria-hidden\": \"true\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n clipRule: \"evenodd\"\n}));\nconst InfoIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\",\n \"aria-hidden\": \"true\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n clipRule: \"evenodd\"\n}));\nconst ErrorIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\",\n \"aria-hidden\": \"true\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n}));\nconst CloseIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"12\",\n height: \"12\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n \"aria-hidden\": \"true\"\n}, /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst useIsDocumentHidden = ()=>{\n const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);\n React.useEffect(()=>{\n const callback = ()=>{\n setIsDocumentHidden(document.hidden);\n };\n document.addEventListener('visibilitychange', callback);\n return ()=>document.removeEventListener('visibilitychange', callback);\n }, []);\n return isDocumentHidden;\n};\n\nlet toastsCounter = 1;\n// Amount of toasts kept in `toast.getHistory()`. Dismissed toasts above this limit are\n// dropped so long-running apps don't hold on to them (and their JSX) forever.\nconst MAX_HISTORY_SIZE = 100;\n// A toast keeps the id it was given, otherwise it gets the next one from the counter.\n// `custom` needs the same id `create` would pick, as it hands it to the JSX callback.\nconst getToastId = (data)=>{\n var _data_id;\n return typeof (data == null ? void 0 : data.id) === 'number' || (data == null ? void 0 : (_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;\n};\nclass Observer {\n constructor(){\n // We use arrow functions to maintain the correct `this` reference\n this.subscribe = (subscriber)=>{\n this.subscribers.push(subscriber);\n // A toast can be created before the `Toaster` had a chance to subscribe, e.g. when it's\n // called in an effect of a component rendered above the `Toaster`. Replay whatever is\n // still active so it doesn't get lost.\n this.getActiveToasts().forEach((toast)=>subscriber(toast));\n return ()=>{\n const index = this.subscribers.indexOf(subscriber);\n this.subscribers.splice(index, 1);\n };\n };\n this.publish = (data)=>{\n this.subscribers.forEach((subscriber)=>subscriber(data));\n };\n this.addToast = (data)=>{\n this.publish(data);\n this.toasts = [\n ...this.toasts,\n data\n ];\n this.trimHistory();\n };\n // Keeps the history bounded without ever dropping a toast that's still on screen.\n this.trimHistory = ()=>{\n let toRemove = this.toasts.length - MAX_HISTORY_SIZE;\n if (toRemove <= 0) return;\n this.toasts = this.toasts.filter((toast)=>{\n if (toRemove > 0 && this.dismissedToasts.has(toast.id)) {\n this.dismissedToasts.delete(toast.id);\n toRemove--;\n return false;\n }\n return true;\n });\n };\n this.create = (data)=>{\n const { message, ...rest } = data;\n const id = getToastId(data);\n // A dismissal that hasn't reached the subscribers yet gets cancelled: the toast is still\n // on screen, so this is an update of it rather than a new toast. Without this, creating a\n // toast right after dismissing the same id (React's double effect in StrictMode does\n // exactly that) would have the pending dismissal remove the toast that just got created.\n const pendingDismissal = this.pendingDismissals.get(id);\n if (pendingDismissal !== undefined) {\n cancelAnimationFrame(pendingDismissal);\n this.pendingDismissals.delete(id);\n this.dismissedToasts.delete(id);\n }\n const wasDismissed = this.dismissedToasts.has(id);\n const dismissible = data.dismissible === undefined ? true : data.dismissible;\n if (wasDismissed) {\n this.dismissedToasts.delete(id);\n // The previous toast with this id is gone, so this is a brand new toast. Drop the old\n // one instead of merging into it, otherwise its props (e.g. `action`) leak into the new one.\n this.toasts = this.toasts.filter((toast)=>toast.id !== id);\n }\n const alreadyExists = wasDismissed ? undefined : this.toasts.find((toast)=>{\n return toast.id === id;\n });\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast)=>{\n if (toast.id === id) {\n this.publish({\n ...toast,\n ...data,\n id,\n title: message\n });\n return {\n ...toast,\n ...data,\n id,\n dismissible,\n title: message\n };\n }\n return toast;\n });\n } else {\n this.addToast({\n title: message,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n };\n this.dismiss = (id)=>{\n if (id === undefined || id === null) {\n this.getActiveToasts().forEach((toast)=>{\n this.dismissedToasts.add(toast.id);\n this.subscribers.forEach((subscriber)=>subscriber({\n id: toast.id,\n dismiss: true\n }));\n });\n return id;\n }\n this.dismissedToasts.add(id);\n const alreadyPending = this.pendingDismissals.get(id);\n if (alreadyPending !== undefined) {\n cancelAnimationFrame(alreadyPending);\n }\n this.pendingDismissals.set(id, requestAnimationFrame(()=>{\n this.pendingDismissals.delete(id);\n this.subscribers.forEach((subscriber)=>subscriber({\n id,\n dismiss: true\n }));\n }));\n return id;\n };\n this.message = (message, data)=>{\n // `type: undefined` resets the type when this updates a toast that had one, e.g. turning\n // a loading toast into a plain one.\n return this.create({\n ...data,\n message,\n type: undefined\n });\n };\n this.error = (message, data)=>{\n return this.create({\n ...data,\n message,\n type: 'error'\n });\n };\n this.success = (message, data)=>{\n return this.create({\n ...data,\n type: 'success',\n message\n });\n };\n this.info = (message, data)=>{\n return this.create({\n ...data,\n type: 'info',\n message\n });\n };\n this.warning = (message, data)=>{\n return this.create({\n ...data,\n type: 'warning',\n message\n });\n };\n this.loading = (message, data)=>{\n return this.create({\n ...data,\n type: 'loading',\n message\n });\n };\n this.promise = (promise, data)=>{\n if (!data) {\n // Nothing to show\n return;\n }\n let id = undefined;\n if (data.loading !== undefined) {\n id = this.create({\n ...data,\n promise,\n type: 'loading',\n message: data.loading,\n description: typeof data.description !== 'function' ? data.description : undefined\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== undefined;\n let result;\n const originalPromise = p.then(async (response)=>{\n result = [\n 'resolve',\n response\n ];\n const isReactElementResponse = React.isValidElement(response);\n if (isReactElementResponse) {\n shouldDismiss = false;\n this.create({\n id,\n type: 'default',\n message: response\n });\n } else if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === 'function' ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (response instanceof Error) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(response) : data.error;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (data.success !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.success === 'function' ? await data.success(response) : data.success;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'success',\n description,\n ...toastSettings\n });\n }\n }).catch(async (error)=>{\n result = [\n 'reject',\n error\n ];\n if (data.error !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(error) : data.error;\n const description = typeof data.description === 'function' ? await data.description(error) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n }\n }).finally(()=>{\n if (shouldDismiss) {\n // Toast is still in load state (and will be indefinitely — dismiss it)\n this.dismiss(id);\n id = undefined;\n }\n data.finally == null ? void 0 : data.finally.call(data);\n });\n const unwrap = ()=>new Promise((resolve, reject)=>originalPromise.then(()=>result[0] === 'reject' ? reject(result[1]) : resolve(result[1])).catch(reject));\n if (typeof id !== 'string' && typeof id !== 'number') {\n // cannot Object.assign on undefined\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n };\n this.custom = (jsx, data)=>{\n const id = getToastId(data);\n // A custom toast has no type, so it resets the one of the toast it replaces\n this.create({\n ...data,\n jsx: jsx(id),\n id,\n type: undefined\n });\n return id;\n };\n this.getActiveToasts = ()=>{\n return this.toasts.filter((toast)=>!this.dismissedToasts.has(toast.id));\n };\n this.subscribers = [];\n this.toasts = [];\n this.dismissedToasts = new Set();\n this.pendingDismissals = new Map();\n }\n}\nconst ToastState = new Observer();\n// bind this to the toast function\nconst toastFunction = (message, data)=>{\n return ToastState.message(message, data);\n};\nconst isHttpResponse = (data)=>{\n return data && typeof data === 'object' && 'ok' in data && typeof data.ok === 'boolean' && 'status' in data && typeof data.status === 'number';\n};\nconst basicToast = toastFunction;\nconst getHistory = ()=>ToastState.toasts;\nconst getToasts = ()=>ToastState.getActiveToasts();\n// We use `Object.assign` to maintain the correct types as we would lose them otherwise\nconst toast = Object.assign(basicToast, {\n success: ToastState.success,\n info: ToastState.info,\n warning: ToastState.warning,\n error: ToastState.error,\n custom: ToastState.custom,\n message: ToastState.message,\n promise: ToastState.promise,\n dismiss: ToastState.dismiss,\n loading: ToastState.loading\n}, {\n getHistory,\n getToasts\n});\n\n__insertCSS(\"[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--normal-text);background:var(--normal-bg);border:1px solid var(--normal-border);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\");\n\nfunction isAction(action) {\n return action.label !== undefined;\n}\n\n// Visible toasts amount\nconst VISIBLE_TOASTS_AMOUNT = 3;\n// Viewport padding\nconst VIEWPORT_OFFSET = '24px';\n// Mobile viewport padding\nconst MOBILE_VIEWPORT_OFFSET = '16px';\n// Default lifetime of a toasts (in ms)\nconst TOAST_LIFETIME = 4000;\n// Default toast width\nconst TOAST_WIDTH = 356;\n// Default gap between toasts\nconst GAP = 14;\n// Threshold to dismiss a toast\nconst SWIPE_THRESHOLD = 45;\n// Equal to exit animation duration\nconst TIME_BEFORE_UNMOUNT = 200;\nfunction cn(...classes) {\n return classes.filter(Boolean).join(' ');\n}\nfunction getDefaultSwipeDirections(position) {\n const [y, x] = position.split('-');\n const directions = [];\n if (y) {\n directions.push(y);\n }\n if (x) {\n directions.push(x);\n }\n return directions;\n}\nconst Toast = (props)=>{\n var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;\n const { invert: ToasterInvert, toast, unstyled, interacting, setHeights, visibleToasts, heights, index, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = '', descriptionClassName = '', duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = 'Close toast' } = props;\n const [swipeDirection, setSwipeDirection] = React.useState(null);\n const [swipeOutDirection, setSwipeOutDirection] = React.useState(null);\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swiping, setSwiping] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [isSwiped, setIsSwiped] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const [initialHeight, setInitialHeight] = React.useState(0);\n const remainingTime = React.useRef(toast.duration || durationFromToaster || TOAST_LIFETIME);\n const dragStartTime = React.useRef(null);\n const toastRef = React.useRef(null);\n const isFront = index === 0;\n const isVisible = index + 1 <= visibleToasts;\n const toastType = toast.type;\n // Toasts created with `toast()` have no type, `classNames.default` is the key for those.\n const toastTypeKey = toastType != null ? toastType : 'default';\n const dismissible = toast.dismissible !== false;\n const toastClassname = toast.className || '';\n const toastDescriptionClassname = toast.descriptionClassName || '';\n // Height index is used to calculate the offset as it gets updated before the toast array, which means we can calculate the new layout faster.\n const heightIndex = React.useMemo(()=>heights.findIndex((height)=>height.toastId === toast.id) || 0, [\n heights,\n toast.id\n ]);\n const closeButton = React.useMemo(()=>{\n var _toast_closeButton;\n return (_toast_closeButton = toast.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;\n }, [\n toast.closeButton,\n closeButtonFromToaster\n ]);\n const duration = React.useMemo(()=>toast.duration || durationFromToaster || TOAST_LIFETIME, [\n toast.duration,\n durationFromToaster\n ]);\n const closeTimerStartTimeRef = React.useRef(0);\n const offset = React.useRef(0);\n const lastCloseTimerStartTimeRef = React.useRef(0);\n const pointerStartRef = React.useRef(null);\n const [y, x] = position.split('-');\n const toastsHeightBefore = React.useMemo(()=>{\n return heights.reduce((prev, curr, reducerIndex)=>{\n // Calculate offset up until current toast\n if (reducerIndex >= heightIndex) {\n return prev;\n }\n return prev + curr.height;\n }, 0);\n }, [\n heights,\n heightIndex\n ]);\n const isDocumentHidden = useIsDocumentHidden();\n const swipeDirections = React.useMemo(()=>{\n var _props_swipeDirections;\n return (_props_swipeDirections = props.swipeDirections) != null ? _props_swipeDirections : getDefaultSwipeDirections(position);\n }, [\n props.swipeDirections,\n position\n ]);\n const invert = toast.invert || ToasterInvert;\n const disabled = toastType === 'loading';\n offset.current = React.useMemo(()=>heightIndex * gap + toastsHeightBefore, [\n heightIndex,\n toastsHeightBefore\n ]);\n React.useEffect(()=>{\n remainingTime.current = duration;\n }, [\n duration\n ]);\n React.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n setMounted(true);\n }, []);\n React.useEffect(()=>{\n const toastNode = toastRef.current;\n if (toastNode) {\n const height = toastNode.getBoundingClientRect().height;\n // Add toast height to heights array after the toast is mounted\n setInitialHeight(height);\n setHeights((h)=>[\n {\n toastId: toast.id,\n height,\n position: toast.position\n },\n ...h\n ]);\n return ()=>setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n }\n }, [\n setHeights,\n toast.id\n ]);\n React.useLayoutEffect(()=>{\n // Keep height up to date with the content in case it updates\n if (!mounted) return;\n const toastNode = toastRef.current;\n const originalHeight = toastNode.style.height;\n toastNode.style.height = 'auto';\n const newHeight = toastNode.getBoundingClientRect().height;\n toastNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights)=>{\n const alreadyExists = heights.find((height)=>height.toastId === toast.id);\n if (!alreadyExists) {\n return [\n {\n toastId: toast.id,\n height: newHeight,\n position: toast.position\n },\n ...heights\n ];\n } else {\n return heights.map((height)=>height.toastId === toast.id ? {\n ...height,\n height: newHeight\n } : height);\n }\n });\n }, [\n mounted,\n toast.title,\n toast.description,\n setHeights,\n toast.id,\n toast.jsx,\n toast.action,\n toast.cancel\n ]);\n const deleteToast = React.useCallback(()=>{\n // Save the offset for the exit swipe animation\n setRemoved(true);\n setOffsetBeforeRemove(offset.current);\n setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n setTimeout(()=>{\n removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n toast,\n removeToast,\n setHeights,\n offset\n ]);\n React.useEffect(()=>{\n if (toast.promise && toastType === 'loading' || toast.duration === Infinity || toast.type === 'loading') return;\n let timeoutId;\n // Pause the timer on each hover\n const pauseTimer = ()=>{\n if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {\n // Get the elapsed time since the timer started\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n remainingTime.current = remainingTime.current - elapsedTime;\n }\n lastCloseTimerStartTimeRef.current = new Date().getTime();\n };\n const startTimer = ()=>{\n // setTimeout(, Infinity) behaves as if the delay is 0.\n // As a result, the toast would be closed immediately, giving the appearance that it was never rendered.\n // See: https://github.com/denysdovhan/wtfjs?tab=readme-ov-file#an-infinite-timeout\n if (remainingTime.current === Infinity) return;\n closeTimerStartTimeRef.current = new Date().getTime();\n // Let the toast know it has started\n timeoutId = setTimeout(()=>{\n toast.onAutoClose == null ? void 0 : toast.onAutoClose.call(toast, toast);\n deleteToast();\n }, remainingTime.current);\n };\n if (expanded || interacting || isDocumentHidden) {\n pauseTimer();\n } else {\n startTimer();\n }\n return ()=>clearTimeout(timeoutId);\n }, [\n expanded,\n interacting,\n toast,\n toastType,\n isDocumentHidden,\n deleteToast\n ]);\n React.useEffect(()=>{\n if (toast.delete) {\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n }\n }, [\n deleteToast,\n toast.delete\n ]);\n function getLoadingIcon() {\n var _toast_classNames;\n if (icons == null ? void 0 : icons.loading) {\n var _toast_classNames1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1.loader, 'sonner-loader'),\n \"data-visible\": toastType === 'loading'\n }, icons.loading);\n }\n return /*#__PURE__*/ React.createElement(Loader, {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.loader),\n visible: toastType === 'loading'\n });\n }\n const icon = toast.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);\n var _toast_richColors, _icons_close;\n return /*#__PURE__*/ React.createElement(\"li\", {\n tabIndex: 0,\n ref: toastRef,\n className: cn(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames[toastTypeKey], toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1[toastTypeKey]),\n \"data-sonner-toast\": \"\",\n \"data-rich-colors\": (_toast_richColors = toast.richColors) != null ? _toast_richColors : defaultRichColors,\n \"data-styled\": !Boolean(toast.jsx || toast.unstyled || unstyled),\n \"data-mounted\": mounted,\n \"data-promise\": Boolean(toast.promise),\n \"data-swiped\": isSwiped,\n \"data-removed\": removed,\n \"data-visible\": isVisible,\n \"data-y-position\": y,\n \"data-x-position\": x,\n \"data-index\": index,\n \"data-front\": isFront,\n \"data-swiping\": swiping,\n \"data-dismissible\": dismissible,\n \"data-type\": toastType,\n \"data-invert\": invert,\n \"data-swipe-out\": swipeOut,\n \"data-swipe-direction\": swipeOutDirection,\n \"data-expanded\": Boolean(expanded || expandByDefault && mounted),\n \"data-testid\": toast.testId,\n style: {\n '--index': index,\n '--toasts-before': index,\n '--z-index': toasts.length - index,\n '--offset': `${removed ? offsetBeforeRemove : offset.current}px`,\n '--initial-height': expandByDefault ? 'auto' : `${initialHeight}px`,\n ...style,\n ...toast.style\n },\n onDragEnd: ()=>{\n setSwiping(false);\n setSwipeDirection(null);\n pointerStartRef.current = null;\n },\n onPointerDown: (event)=>{\n if (event.button === 2) return; // Return early on right click\n if (disabled || !dismissible) return;\n dragStartTime.current = new Date();\n setOffsetBeforeRemove(offset.current);\n // Ensure we maintain correct pointer capture even when going outside of the toast (e.g. when swiping)\n event.target.setPointerCapture(event.pointerId);\n if (event.target.tagName === 'BUTTON') return;\n setSwiping(true);\n pointerStartRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n },\n onPointerUp: ()=>{\n var _toastRef_current, _toastRef_current1, _dragStartTime_current;\n if (swipeOut || !dismissible) return;\n pointerStartRef.current = null;\n const swipeAmountX = Number(((_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.getPropertyValue('--swipe-amount-x').replace('px', '')) || 0);\n const swipeAmountY = Number(((_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.getPropertyValue('--swipe-amount-y').replace('px', '')) || 0);\n const timeTaken = new Date().getTime() - ((_dragStartTime_current = dragStartTime.current) == null ? void 0 : _dragStartTime_current.getTime());\n const swipeAmount = swipeDirection === 'x' ? swipeAmountX : swipeAmountY;\n const velocity = Math.abs(swipeAmount) / timeTaken;\n // Movement towards a direction that isn't allowed is dampened, not blocked, so a fast\n // flick can still pass the velocity check. Only dismiss if the direction is allowed.\n const isAllowedDirection = swipeDirection === 'x' ? swipeDirections.includes(swipeAmountX > 0 ? 'right' : 'left') : swipeDirections.includes(swipeAmountY > 0 ? 'bottom' : 'top');\n if (isAllowedDirection && (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11)) {\n setOffsetBeforeRemove(offset.current);\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n if (swipeDirection === 'x') {\n setSwipeOutDirection(swipeAmountX > 0 ? 'right' : 'left');\n } else {\n setSwipeOutDirection(swipeAmountY > 0 ? 'down' : 'up');\n }\n deleteToast();\n setSwipeOut(true);\n return;\n } else {\n var _toastRef_current2, _toastRef_current3;\n (_toastRef_current2 = toastRef.current) == null ? void 0 : _toastRef_current2.style.setProperty('--swipe-amount-x', `0px`);\n (_toastRef_current3 = toastRef.current) == null ? void 0 : _toastRef_current3.style.setProperty('--swipe-amount-y', `0px`);\n }\n setIsSwiped(false);\n setSwiping(false);\n setSwipeDirection(null);\n },\n onPointerMove: (event)=>{\n var _window_getSelection, // Apply transform using both x and y values\n _toastRef_current, _toastRef_current1;\n if (!pointerStartRef.current || !dismissible) return;\n const isHighlighted = ((_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString().length) > 0;\n if (isHighlighted) return;\n const yDelta = event.clientY - pointerStartRef.current.y;\n const xDelta = event.clientX - pointerStartRef.current.x;\n // Determine swipe direction if not already locked\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? 'x' : 'y');\n }\n let swipeAmount = {\n x: 0,\n y: 0\n };\n const getDampening = (delta)=>{\n const factor = Math.abs(delta) / 20;\n return 1 / (1.5 + factor);\n };\n // Only apply swipe in the locked direction\n if (swipeDirection === 'y') {\n // Handle vertical swipes\n if (swipeDirections.includes('top') || swipeDirections.includes('bottom')) {\n if (swipeDirections.includes('top') && yDelta < 0 || swipeDirections.includes('bottom') && yDelta > 0) {\n swipeAmount.y = yDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = yDelta * getDampening(yDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;\n }\n }\n } else if (swipeDirection === 'x') {\n // Handle horizontal swipes\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n if (swipeDirections.includes('left') && xDelta < 0 || swipeDirections.includes('right') && xDelta > 0) {\n swipeAmount.x = xDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = xDelta * getDampening(xDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;\n }\n }\n }\n if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {\n setIsSwiped(true);\n }\n (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty('--swipe-amount-x', `${swipeAmount.x}px`);\n (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty('--swipe-amount-y', `${swipeAmount.y}px`);\n }\n }, closeButton && !toast.jsx && toastType !== 'loading' ? /*#__PURE__*/ React.createElement(\"button\", {\n \"aria-label\": closeButtonAriaLabel,\n \"data-disabled\": disabled,\n \"data-close-button\": true,\n onClick: disabled || !dismissible ? ()=>{} : ()=>{\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n },\n className: cn(classNames == null ? void 0 : classNames.closeButton, toast == null ? void 0 : (_toast_classNames2 = toast.classNames) == null ? void 0 : _toast_classNames2.closeButton)\n }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast.icon || toast.promise) && toast.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast.icon) ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-icon\": \"\",\n className: cn(classNames == null ? void 0 : classNames.icon, toast == null ? void 0 : (_toast_classNames3 = toast.classNames) == null ? void 0 : _toast_classNames3.icon)\n }, toastType === 'loading' ? toast.icon || getLoadingIcon() : toast.promise ? getLoadingIcon() : null, toastType !== 'loading' ? icon : null) : null, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-content\": \"\",\n className: cn(classNames == null ? void 0 : classNames.content, toast == null ? void 0 : (_toast_classNames4 = toast.classNames) == null ? void 0 : _toast_classNames4.content)\n }, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-title\": \"\",\n className: cn(classNames == null ? void 0 : classNames.title, toast == null ? void 0 : (_toast_classNames5 = toast.classNames) == null ? void 0 : _toast_classNames5.title)\n }, toast.jsx ? toast.jsx : typeof toast.title === 'function' ? toast.title() : toast.title), toast.description ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-description\": \"\",\n className: cn(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast == null ? void 0 : (_toast_classNames6 = toast.classNames) == null ? void 0 : _toast_classNames6.description)\n }, typeof toast.description === 'function' ? toast.description() : toast.description) : null), /*#__PURE__*/ React.isValidElement(toast.cancel) ? toast.cancel : toast.cancel && isAction(toast.cancel) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-cancel\": true,\n style: toast.cancelButtonStyle || cancelButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.cancel)) return;\n if (!dismissible) return;\n toast.cancel.onClick == null ? void 0 : toast.cancel.onClick.call(toast.cancel, event);\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.cancelButton, toast == null ? void 0 : (_toast_classNames7 = toast.classNames) == null ? void 0 : _toast_classNames7.cancelButton)\n }, toast.cancel.label) : null, /*#__PURE__*/ React.isValidElement(toast.action) ? toast.action : toast.action && isAction(toast.action) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-action\": true,\n style: toast.actionButtonStyle || actionButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.action)) return;\n toast.action.onClick == null ? void 0 : toast.action.onClick.call(toast.action, event);\n if (event.defaultPrevented) return;\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.actionButton, toast == null ? void 0 : (_toast_classNames8 = toast.classNames) == null ? void 0 : _toast_classNames8.actionButton)\n }, toast.action.label) : null);\n};\nfunction getDocumentDirection() {\n if (typeof window === 'undefined') return 'ltr';\n if (typeof document === 'undefined') return 'ltr'; // For Fresh purpose\n const dirAttribute = document.documentElement.getAttribute('dir');\n if (dirAttribute === 'auto' || !dirAttribute) {\n return window.getComputedStyle(document.documentElement).direction;\n }\n return dirAttribute;\n}\nfunction assignOffset(defaultOffset, mobileOffset) {\n const styles = {};\n [\n defaultOffset,\n mobileOffset\n ].forEach((offset, index)=>{\n const isMobile = index === 1;\n const prefix = isMobile ? '--mobile-offset' : '--offset';\n const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n function assignAll(offset) {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n styles[`${prefix}-${key}`] = typeof offset === 'number' ? `${offset}px` : offset;\n });\n }\n if (typeof offset === 'number' || typeof offset === 'string') {\n assignAll(offset);\n } else if (typeof offset === 'object') {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n if (offset[key] === undefined) {\n styles[`${prefix}-${key}`] = defaultValue;\n } else {\n styles[`${prefix}-${key}`] = typeof offset[key] === 'number' ? `${offset[key]}px` : offset[key];\n }\n });\n } else {\n assignAll(defaultValue);\n }\n });\n return styles;\n}\nfunction useSonner() {\n const [activeToasts, setActiveToasts] = React.useState([]);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>toasts.filter((t)=>t.id !== toast.id));\n });\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, []);\n return {\n toasts: activeToasts\n };\n}\nconst Toaster = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {\n const { id, invert, position = 'bottom-right', hotkey = [\n 'altKey',\n 'KeyT'\n ], expand, closeButton, className, offset, mobileOffset, theme = 'light', richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, customAriaLabel, containerAriaLabel = 'Notifications' } = props;\n const [toasts, setToasts] = React.useState([]);\n const filteredToasts = React.useMemo(()=>{\n if (id) {\n return toasts.filter((toast)=>toast.toasterId === id);\n }\n return toasts.filter((toast)=>!toast.toasterId);\n }, [\n toasts,\n id\n ]);\n const possiblePositions = React.useMemo(()=>{\n return Array.from(new Set([\n position\n ].concat(filteredToasts.filter((toast)=>toast.position).map((toast)=>toast.position))));\n }, [\n filteredToasts,\n position\n ]);\n const [heights, setHeights] = React.useState([]);\n const [expanded, setExpanded] = React.useState(false);\n const [interacting, setInteracting] = React.useState(false);\n const [actualTheme, setActualTheme] = React.useState(theme !== 'system' ? theme : typeof window !== 'undefined' ? window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : 'light');\n const listRef = React.useRef(null);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const lastFocusedElementRef = React.useRef(null);\n const isFocusWithinRef = React.useRef(false);\n const removeToast = React.useCallback((toastToRemove)=>{\n setToasts((toasts)=>{\n var _toasts_find;\n if (!((_toasts_find = toasts.find((toast)=>toast.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts.filter(({ id })=>id !== toastToRemove.id);\n });\n }, []);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n // Prevent batching of other state updates\n requestAnimationFrame(()=>{\n setToasts((toasts)=>toasts.map((t)=>t.id === toast.id ? {\n ...t,\n delete: true\n } : t));\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, []);\n React.useEffect(()=>{\n if (theme !== 'system') {\n setActualTheme(theme);\n return;\n }\n if (theme === 'system') {\n // check if current preference is dark\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n // it's currently dark\n setActualTheme('dark');\n } else {\n // it's not dark\n setActualTheme('light');\n }\n }\n if (typeof window === 'undefined') return;\n const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n try {\n // Chrome & Firefox\n darkMediaQuery.addEventListener('change', ({ matches })=>{\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n });\n } catch (error) {\n // Safari < 14\n darkMediaQuery.addListener(({ matches })=>{\n try {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n }, [\n theme\n ]);\n React.useEffect(()=>{\n // Ensure expanded is always false when no toasts are present / only one left\n if (toasts.length <= 1) {\n setExpanded(false);\n }\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n const handleKeyDown = (event)=>{\n var _listRef_current;\n const isHotkeyPressed = hotkey.length > 0 && hotkey.every((key)=>event[key] || event.code === key);\n if (isHotkeyPressed) {\n var _listRef_current1;\n setExpanded(true);\n (_listRef_current1 = listRef.current) == null ? void 0 : _listRef_current1.focus();\n }\n if (event.code === 'Escape' && (document.activeElement === listRef.current || ((_listRef_current = listRef.current) == null ? void 0 : _listRef_current.contains(document.activeElement)))) {\n setExpanded(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown);\n }, [\n hotkey\n ]);\n React.useEffect(()=>{\n if (listRef.current) {\n return ()=>{\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n isFocusWithinRef.current = false;\n }\n };\n }\n }, [\n listRef.current\n ]);\n return(// Remove item from normal navigation flow, only available via hotkey\n /*#__PURE__*/ React.createElement(\"section\", {\n ref: ref,\n \"aria-label\": customAriaLabel != null ? customAriaLabel : `${containerAriaLabel} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions text\",\n \"aria-atomic\": \"false\",\n suppressHydrationWarning: true,\n \"data-react-aria-top-layer\": true\n }, possiblePositions.map((position, index)=>{\n var _heights_;\n const [y, x] = position.split('-');\n if (!filteredToasts.length) return null;\n return /*#__PURE__*/ React.createElement(\"ol\", {\n key: position,\n dir: dir === 'auto' ? getDocumentDirection() : dir,\n tabIndex: -1,\n ref: listRef,\n className: className,\n \"data-sonner-toaster\": true,\n \"data-sonner-theme\": actualTheme,\n \"data-y-position\": y,\n \"data-x-position\": x,\n style: {\n '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,\n '--width': `${TOAST_WIDTH}px`,\n '--gap': `${gap}px`,\n ...style,\n ...assignOffset(offset, mobileOffset)\n },\n onBlur: (event)=>{\n if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {\n isFocusWithinRef.current = false;\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n }\n }\n },\n onFocus: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n if (!isFocusWithinRef.current) {\n isFocusWithinRef.current = true;\n lastFocusedElementRef.current = event.relatedTarget;\n }\n },\n onMouseEnter: ()=>setExpanded(true),\n onMouseMove: ()=>setExpanded(true),\n onMouseLeave: ()=>{\n // Avoid setting expanded to false when interacting with a toast, e.g. swiping\n if (!interacting) {\n setExpanded(false);\n }\n },\n onDragEnd: ()=>setExpanded(false),\n onPointerDown: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n setInteracting(true);\n },\n onPointerUp: ()=>setInteracting(false)\n }, filteredToasts.filter((toast)=>!toast.position && index === 0 || toast.position === position).map((toast, index)=>{\n var _toastOptions_duration, _toastOptions_closeButton;\n return /*#__PURE__*/ React.createElement(Toast, {\n key: toast.id,\n icons: icons,\n index: index,\n toast: toast,\n defaultRichColors: richColors,\n duration: (_toastOptions_duration = toastOptions == null ? void 0 : toastOptions.duration) != null ? _toastOptions_duration : duration,\n className: toastOptions == null ? void 0 : toastOptions.className,\n descriptionClassName: toastOptions == null ? void 0 : toastOptions.descriptionClassName,\n invert: invert,\n visibleToasts: visibleToasts,\n closeButton: (_toastOptions_closeButton = toastOptions == null ? void 0 : toastOptions.closeButton) != null ? _toastOptions_closeButton : closeButton,\n interacting: interacting,\n position: position,\n style: toastOptions == null ? void 0 : toastOptions.style,\n unstyled: toastOptions == null ? void 0 : toastOptions.unstyled,\n classNames: toastOptions == null ? void 0 : toastOptions.classNames,\n cancelButtonStyle: toastOptions == null ? void 0 : toastOptions.cancelButtonStyle,\n actionButtonStyle: toastOptions == null ? void 0 : toastOptions.actionButtonStyle,\n closeButtonAriaLabel: toastOptions == null ? void 0 : toastOptions.closeButtonAriaLabel,\n removeToast: removeToast,\n toasts: filteredToasts.filter((t)=>t.position == toast.position),\n heights: heights.filter((h)=>h.position == toast.position),\n setHeights: setHeights,\n expandByDefault: expand,\n gap: gap,\n expanded: expanded,\n swipeDirections: props.swipeDirections\n });\n }));\n })));\n});\n\nexport { Toaster, toast, useSonner };\n","import * as React from 'react'\nimport { Toaster as SonnerToaster, toast } from 'sonner'\n\nexport type ToasterProps = React.ComponentProps<typeof SonnerToaster>\n\nconst useDocumentTheme = (): 'light' | 'dark' => {\n const [theme, setTheme] = React.useState<'light' | 'dark'>(() =>\n typeof document !== 'undefined' && document.documentElement.classList.contains('dark')\n ? 'dark'\n : 'light',\n )\n React.useEffect(() => {\n const el = document.documentElement\n const observer = new MutationObserver(() => {\n setTheme(el.classList.contains('dark') ? 'dark' : 'light')\n })\n observer.observe(el, { attributes: true, attributeFilter: ['class'] })\n return () => observer.disconnect()\n }, [])\n return theme\n}\n\nexport const Toaster = ({ ...props }: ToasterProps): React.ReactElement => {\n const theme = useDocumentTheme()\n return (\n <SonnerToaster\n theme={theme}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton:\n 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton:\n 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',\n },\n }}\n {...props}\n />\n )\n}\n\nexport { toast }\n","// UI Extension Registry — lets Pro plugins add sidebar items, settings\n// sections, custom property renderers, and full-page routes without\n// modifying `packages/react` directly.\n//\n// Usage: call `register*` functions during module initialisation (before\n// `<AdminApp>` renders). Every consumer of `@modern-admin/react` can import\n// and call these helpers; the registry is a process-global singleton.\n//\n// Design notes:\n// • Module-global (not React-context-based) so registration can happen in\n// plain JS outside any component tree.\n// • Idempotent: re-registering the same `key` is silently ignored so hot-\n// reload doesn't produce duplicates.\n// • Zero external runtime deps — only imports prop-type interfaces from\n// `./types.ts` which is already bundled.\n\nimport type * as React from 'react'\nimport type { PropertyDisplayProps, PropertyEditorProps } from './types.js'\n\n// ─── Extension shapes ─────────────────────────────────────────────────────────\n\n/**\n * Extra navigation item rendered in the sidebar below the built-in entries\n * (Home, Audit Log) and above the resource list.\n */\nexport interface SidebarExtension {\n /** Stable unique key (e.g. `'rbac'`). Duplicate keys are silently ignored. */\n key: string\n /** Label rendered next to the icon in the sidebar. */\n label: string\n /** Lucide-compatible icon component. */\n icon: React.ComponentType<{ className?: string }>\n /**\n * Extension route key — navigates to `/ext/<extensionKey>` within the\n * admin shell (i.e., `{ name: 'extension', key: extensionKey }`).\n * Must match the `key` of a corresponding `registerExtensionRoute` call\n * so the router can render the right component.\n */\n extensionKey: string\n /**\n * Optional capability gate. When set, the item is rendered only when\n * `features[featureGate] === true` in the admin config (i.e. the backend\n * has explicitly enabled the subsystem). Leave unset to always show.\n */\n featureGate?: string\n}\n\n/**\n * Extra section added to the Settings page navigation. The consumer's\n * `component` is rendered as the main content area when the section is active.\n */\nexport interface SettingsExtension {\n /**\n * Unique section key (appears in the URL as `/settings/<key>`). Must be\n * URL-safe (no slashes, encodes cleanly). Duplicate keys are ignored.\n */\n key: string\n /**\n * i18n translation key for the section label shown in the settings nav\n * (e.g. `'rbac:settings.title'`). Falls back to `key` if the key is missing\n * from the active locale.\n */\n labelKey: string\n /** Lucide-compatible icon component shown next to the label. */\n icon: React.ComponentType<{ className?: string }>\n /**\n * Component rendered as the main content when this section is active.\n * It receives no props — read what you need via hooks or internal state.\n */\n component: React.ComponentType\n}\n\n/**\n * Custom property type renderer pair. When registered for `type`, the\n * built-in `PropertyDisplay` and `PropertyEditor` switches fall through\n * to this extension instead of rendering the default plain-text fallback.\n */\nexport interface PropertyExtension {\n /** Renders a read-only value cell (list / show view). */\n display: React.ComponentType<PropertyDisplayProps>\n /** Renders an editable form field (edit / new view). */\n editor: React.ComponentType<PropertyEditorProps>\n}\n\n/**\n * Full-page route rendered inside the authenticated admin shell at the\n * reserved path `/ext/<key>`.\n */\nexport interface RouteExtension {\n /**\n * URL-safe key (no slashes). The route becomes `/ext/<key>`. Must be\n * unique — duplicate keys are silently ignored.\n */\n key: string\n /** Component rendered as the page content inside the shell layout. */\n component: React.ComponentType\n}\n\n// ─── Internal registry ────────────────────────────────────────────────────────\n\ninterface RegistryData {\n sidebarItems: SidebarExtension[]\n settingsSections: SettingsExtension[]\n propertyEditors: Map<string, PropertyExtension>\n routes: RouteExtension[]\n}\n\nconst registry: RegistryData = {\n sidebarItems: [],\n settingsSections: [],\n propertyEditors: new Map(),\n routes: [],\n}\n\n// ─── Registration API ─────────────────────────────────────────────────────────\n\n/**\n * Register a sidebar navigation item for an extension page.\n * Call this during module initialisation, before `<AdminApp>` renders.\n * Re-registering the same `key` is a no-op.\n */\nexport function registerSidebarItem(ext: SidebarExtension): void {\n if (!registry.sidebarItems.find((e) => e.key === ext.key)) {\n registry.sidebarItems.push(ext)\n }\n}\n\n/**\n * Register a custom section in the Settings page.\n * Call this during module initialisation, before `<AdminApp>` renders.\n * Re-registering the same `key` is a no-op.\n */\nexport function registerSettingsSection(ext: SettingsExtension): void {\n if (!registry.settingsSections.find((e) => e.key === ext.key)) {\n registry.settingsSections.push(ext)\n }\n}\n\n/**\n * Register a custom property type renderer (display + editor pair).\n * When `property.type === type`, the built-in switch delegates to this\n * extension instead of the plain-text fallback.\n * Re-registering the same `type` overwrites the previous entry.\n */\nexport function registerPropertyExtension(type: string, ext: PropertyExtension): void {\n registry.propertyEditors.set(type, ext)\n}\n\n/**\n * Register a full-page extension route at `/ext/<key>` inside the admin\n * shell. A matching `SidebarExtension` with `extensionKey === key` provides\n * the navigation entry.\n * Re-registering the same `key` is a no-op.\n */\nexport function registerExtensionRoute(ext: RouteExtension): void {\n if (!registry.routes.find((r) => r.key === ext.key)) {\n registry.routes.push(ext)\n }\n}\n\n// ─── Accessors (consumed by shell components at render time) ──────────────────\n\n/** Returns all registered sidebar extensions in registration order. */\nexport function getSidebarExtensions(): SidebarExtension[] {\n return registry.sidebarItems\n}\n\n/** Returns all registered settings sections in registration order. */\nexport function getSettingsSectionExtensions(): SettingsExtension[] {\n return registry.settingsSections\n}\n\n/**\n * Returns the registered property extension for `type`, or `undefined` if\n * no extension covers it (fall through to plain-text).\n */\nexport function getPropertyExtension(type: string): PropertyExtension | undefined {\n return registry.propertyEditors.get(type)\n}\n\n/** Returns the registered route extension for `key`, or `undefined`. */\nexport function getRouteExtension(key: string): RouteExtension | undefined {\n return registry.routes.find((r) => r.key === key)\n}\n\n/**\n * Clears all registrations.\n * @internal For unit tests only — do not call in production code.\n */\nexport function _resetExtensionRegistry(): void {\n registry.sidebarItems = []\n registry.settingsSections = []\n registry.propertyEditors.clear()\n registry.routes = []\n}\n","// Global, i18n-aware toast notifications.\n//\n// `useNotify()` returns a typed surface that translates message keys before\n// handing them to sonner. Mount `<NotifyToaster />` once at the app root —\n// it wraps the shadcn-flavoured `<Toaster />` with sensible defaults.\n// Helpers also accept raw strings (already-translated) for cases where the\n// caller has the literal text on hand (server error messages, etc.).\n\nimport * as React from 'react'\nimport { Toaster, toast, type ToasterProps } from '@modern-admin/ui'\nimport { useI18n } from './i18n.js'\n\nexport interface NotifyMessage {\n /** i18n key, e.g. 'toast:saved' */\n key?: string\n /** Already-translated literal text (used as-is when present). */\n message?: string\n /** Interpolation params for the `key` lookup. */\n params?: Record<string, unknown>\n /** Optional secondary line. */\n description?: string\n}\n\ntype Input = string | NotifyMessage\n\ninterface NotifyApi {\n success(input: Input, opts?: { description?: string }): void\n error(input: Input, opts?: { description?: string }): void\n info(input: Input, opts?: { description?: string }): void\n warning(input: Input, opts?: { description?: string }): void\n /** Show loading -> success/error around a promise. Strings are raw text;\n * use `{ key: 'namespace:key' }` for translation. */\n promise<T>(\n p: Promise<T>,\n messages: { loading: Input; success: Input | ((value: T) => Input); error: Input | ((err: unknown) => Input) },\n ): Promise<T>\n /** Escape hatch for callers that want raw sonner access. */\n raw: typeof toast\n}\n\n/** The global toaster. Mount once near the root of the admin shell. */\nexport function NotifyToaster(props: ToasterProps): React.ReactElement {\n return <Toaster richColors closeButton position=\"top-right\" {...props} />\n}\n\n/** Hook returning a translation-aware notification surface. */\nexport function useNotify(): NotifyApi {\n const { t } = useI18n()\n\n const resolve = React.useCallback(\n (input: Input): { title: string; description?: string } => {\n if (typeof input === 'string') return { title: input }\n const title = input.key ? t(input.key, input.params) : (input.message ?? '')\n return input.description ? { title, description: input.description } : { title }\n },\n [t],\n )\n\n return React.useMemo<NotifyApi>(\n () => ({\n success: (input, opts) => {\n const r = resolve(input)\n toast.success(r.title, { description: opts?.description ?? r.description })\n },\n error: (input, opts) => {\n const r = resolve(input)\n toast.error(r.title, { description: opts?.description ?? r.description })\n },\n info: (input, opts) => {\n const r = resolve(input)\n toast.info(r.title, { description: opts?.description ?? r.description })\n },\n warning: (input, opts) => {\n const r = resolve(input)\n toast.warning(r.title, { description: opts?.description ?? r.description })\n },\n promise: (p, messages) => {\n toast.promise(p, {\n loading: resolve(messages.loading).title,\n success: (value) => {\n const m = typeof messages.success === 'function' ? messages.success(value) : messages.success\n return resolve(m).title\n },\n error: (err) => {\n const m = typeof messages.error === 'function' ? messages.error(err) : messages.error\n return resolve(m).title\n },\n })\n return p\n },\n raw: toast,\n }),\n [resolve],\n )\n}\n","\"use client\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\n/**\n* React.use if available (React 19+), undefined otherwise.\n* Use dynamic lookup to avoid Webpack compilation errors with React 18.\n*/\nvar reactUse = React$1[\"use\"];\nvar useLayoutEffect = isServer ?? typeof window === \"undefined\" ? React$1.useEffect : React$1.useLayoutEffect;\n/**\n* React hook to wrap `IntersectionObserver`.\n*\n* This hook will create an `IntersectionObserver` and observe the ref passed to it.\n*\n* When the intersection changes, the callback will be called with the `IntersectionObserverEntry`.\n*\n* @param ref - The ref to observe\n* @param callback - The callback to call when the intersection changes\n* @param disabled - Whether observation is disabled\n* @returns The IntersectionObserver instance\n* @example\n* ```tsx\n* const MyComponent = () => {\n* const ref = React.useRef<HTMLDivElement>(null)\n* useIntersectionObserver(\n* ref,\n* (entry) => { doSomething(entry) },\n* false\n* )\n* return <div ref={ref} />\n* ```\n*/\nfunction useIntersectionObserver(ref, callback, disabled) {\n\tReact$1.useEffect(() => {\n\t\tif (!ref.current || disabled || typeof IntersectionObserver !== \"function\") return () => callback();\n\t\tconst observer = new IntersectionObserver((entries) => {\n\t\t\tcallback(entries.pop());\n\t\t}, { rootMargin: \"100px\" });\n\t\tobserver.observe(ref.current);\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t\tcallback();\n\t\t};\n\t}, [\n\t\tcallback,\n\t\tdisabled,\n\t\tref\n\t]);\n}\n/**\n* React hook to take a `React.ForwardedRef` and returns a `ref` that can be used on a DOM element.\n*\n* @param ref - The forwarded ref\n* @returns The inner ref returned by `useRef`\n* @example\n* ```tsx\n* const MyComponent = React.forwardRef((props, ref) => {\n* const innerRef = useForwardedRef(ref)\n* return <div ref={innerRef} />\n* })\n* ```\n*/\nfunction useForwardedRef(ref) {\n\tconst innerRef = React$1.useRef(null);\n\tReact$1.useImperativeHandle(ref, () => innerRef.current, []);\n\treturn innerRef;\n}\n//#endregion\nexport { reactUse, useForwardedRef, useIntersectionObserver, useLayoutEffect };\n\n//# sourceMappingURL=utils.js.map","import { isServer } from \"@tanstack/router-core/isServer\";\n//#region src/utils.ts\n/**\n* Return the last element of an array.\n* Intended for non-empty arrays used within router internals.\n*/\nfunction last(arr) {\n\treturn arr[arr.length - 1];\n}\n/**\n* Apply a value-or-updater to a previous value.\n* Accepts either a literal value or a function of the previous value.\n*/\nfunction functionalUpdate(updater, previous) {\n\tif (typeof updater === \"function\") return updater(previous);\n\treturn updater;\n}\nconst hasOwn = Object.prototype.hasOwnProperty;\nconst isEnumerable = Object.prototype.propertyIsEnumerable;\nfunction hasKeys(obj) {\n\tfor (const key in obj) if (hasOwn.call(obj, key)) return true;\n\treturn false;\n}\nconst createNull = () => Object.create(null);\nconst nullReplaceEqualDeep = (prev, next) => replaceEqualDeep(prev, next, createNull);\n/**\n* This function returns `prev` if `_next` is deeply equal.\n* If not, it will replace any deeply equal children of `b` with those of `a`.\n* This can be used for structural sharing between immutable JSON values for example.\n* Do not use this with signals\n*/\nfunction replaceEqualDeep(prev, _next, _makeObj = () => ({}), _depth = 0) {\n\tif (isServer) return _next;\n\tif (prev === _next) return prev;\n\tif (_depth > 500) return _next;\n\tconst next = _next;\n\tconst array = isPlainArray(prev) && isPlainArray(next);\n\tif (!array && !(isPlainObject(prev) && isPlainObject(next))) return next;\n\tconst prevItems = array ? prev : getEnumerableOwnKeys(prev);\n\tif (!prevItems) return next;\n\tconst nextItems = array ? next : getEnumerableOwnKeys(next);\n\tif (!nextItems) return next;\n\tconst prevSize = prevItems.length;\n\tconst nextSize = nextItems.length;\n\tconst copy = array ? new Array(nextSize) : _makeObj();\n\tlet equalItems = 0;\n\tfor (let i = 0; i < nextSize; i++) {\n\t\tconst key = array ? i : nextItems[i];\n\t\tconst p = prev[key];\n\t\tconst n = next[key];\n\t\tif (p === n) {\n\t\t\tcopy[key] = p;\n\t\t\tif (array ? i < prevSize : hasOwn.call(prev, key)) equalItems++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (p === null || n === null || typeof p !== \"object\" || typeof n !== \"object\") {\n\t\t\tcopy[key] = n;\n\t\t\tcontinue;\n\t\t}\n\t\tconst v = replaceEqualDeep(p, n, _makeObj, _depth + 1);\n\t\tcopy[key] = v;\n\t\tif (v === p) equalItems++;\n\t}\n\treturn prevSize === nextSize && equalItems === prevSize ? prev : copy;\n}\n/**\n* Equivalent to `Reflect.ownKeys`, but ensures that objects are \"clone-friendly\":\n* will return false if object has any non-enumerable properties.\n*\n* Optimized for the common case where objects have no symbol properties.\n*/\nfunction getEnumerableOwnKeys(o) {\n\tconst keys = Object.keys(o);\n\tif (keys.length !== Object.getOwnPropertyNames(o).length) return false;\n\tconst symbols = Object.getOwnPropertySymbols(o);\n\tif (symbols.length === 0) return keys;\n\tfor (const symbol of symbols) {\n\t\tif (!isEnumerable.call(o, symbol)) return false;\n\t\tkeys.push(symbol);\n\t}\n\treturn keys;\n}\nfunction isPlainObject(o) {\n\tif (!hasObjectPrototype(o)) return false;\n\tconst ctor = o.constructor;\n\tif (typeof ctor === \"undefined\") return true;\n\tconst prot = ctor.prototype;\n\tif (!hasObjectPrototype(prot)) return false;\n\tif (!prot.hasOwnProperty(\"isPrototypeOf\")) return false;\n\treturn true;\n}\nfunction hasObjectPrototype(o) {\n\treturn Object.prototype.toString.call(o) === \"[object Object]\";\n}\n/**\n* Check if a value is a \"plain\" array (no extra enumerable keys).\n*/\nfunction isPlainArray(value) {\n\treturn Array.isArray(value) && value.length === Object.keys(value).length;\n}\n/**\n* Perform a deep equality check with options for partial comparison and\n* ignoring `undefined` values. Optimized for router state comparisons.\n*/\nfunction deepEqual(a, b, opts) {\n\tif (a === b) return true;\n\tif (typeof a !== typeof b) return false;\n\tif (Array.isArray(a) && Array.isArray(b)) {\n\t\tif (a.length !== b.length) return false;\n\t\tfor (let i = 0, l = a.length; i < l; i++) if (!deepEqual(a[i], b[i], opts)) return false;\n\t\treturn true;\n\t}\n\tif (isPlainObject(a) && isPlainObject(b)) {\n\t\tconst ignoreUndefined = opts?.ignoreUndefined ?? true;\n\t\tif (opts?.partial) {\n\t\t\tfor (const k in b) if (!ignoreUndefined || b[k] !== void 0) {\n\t\t\t\tif (!deepEqual(a[k], b[k], opts)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\tlet aCount = 0;\n\t\tif (!ignoreUndefined) aCount = Object.keys(a).length;\n\t\telse for (const k in a) if (a[k] !== void 0) aCount++;\n\t\tlet bCount = 0;\n\t\tfor (const k in b) if (!ignoreUndefined || b[k] !== void 0) {\n\t\t\tbCount++;\n\t\t\tif (bCount > aCount || !deepEqual(a[k], b[k], opts)) return false;\n\t\t}\n\t\treturn aCount === bCount;\n\t}\n\treturn false;\n}\n/**\n* Create a promise with exposed resolve/reject and status fields.\n* Useful for coordinating async router lifecycle operations.\n*/\nfunction createControlledPromise(onResolve) {\n\tlet resolveLoadPromise;\n\tlet rejectLoadPromise;\n\tconst controlledPromise = new Promise((resolve, reject) => {\n\t\tresolveLoadPromise = resolve;\n\t\trejectLoadPromise = reject;\n\t});\n\tcontrolledPromise.status = \"pending\";\n\tcontrolledPromise.resolve = (value) => {\n\t\tcontrolledPromise.status = \"resolved\";\n\t\tcontrolledPromise.value = value;\n\t\tresolveLoadPromise(value);\n\t\tonResolve?.(value);\n\t};\n\tcontrolledPromise.reject = (e) => {\n\t\tcontrolledPromise.status = \"rejected\";\n\t\trejectLoadPromise(e);\n\t};\n\treturn controlledPromise;\n}\n/**\n* Heuristically detect dynamic import \"module not found\" errors\n* across major browsers for lazy route component handling.\n*/\nfunction isModuleNotFoundError(error) {\n\tif (typeof error?.message !== \"string\") return false;\n\treturn error.message.startsWith(\"Failed to fetch dynamically imported module\") || error.message.startsWith(\"error loading dynamically imported module\") || error.message.startsWith(\"Importing a module script failed\");\n}\nfunction findLast(array, predicate) {\n\tfor (let i = array.length - 1; i >= 0; i--) {\n\t\tconst item = array[i];\n\t\tif (predicate(item)) return item;\n\t}\n}\n/**\n* Re-encode characters that are unsafe in URL paths.\n* Includes ASCII control characters (0x00-0x1F, 0x7F) and a subset of the\n* WHATWG URL \"path percent-encode set\" (\", <, >, `, {, }).\n*\n* Space (0x20) is intentionally excluded — decodeURI decodes %20 to space\n* and the router stores decoded spaces in location.pathname. The existing\n* encodePathLikeUrl already handles re-encoding spaces for outgoing URLs.\n*\n* These characters are decoded by decodeURI but must remain percent-encoded\n* in paths to match how upstream layers (CDNs, edge middleware, browsers)\n* interpret the URL, preventing infinite redirect loops and path mismatches.\n*/\nconst PATH_UNSAFE_RE = /[\\x00-\\x1f\\x7f\"<>`{}]/g;\nfunction sanitizePathSegment(segment) {\n\treturn segment.replace(PATH_UNSAFE_RE, (ch) => \"%\" + ch.charCodeAt(0).toString(16).toUpperCase().padStart(2, \"0\"));\n}\nfunction decodeSegment(segment) {\n\tlet decoded;\n\ttry {\n\t\tdecoded = decodeURI(segment);\n\t} catch {\n\t\tdecoded = segment.replaceAll(/%[0-9A-F]{2}/gi, (match) => {\n\t\t\ttry {\n\t\t\t\treturn decodeURI(match);\n\t\t\t} catch {\n\t\t\t\treturn match;\n\t\t\t}\n\t\t});\n\t}\n\treturn sanitizePathSegment(decoded);\n}\n/**\n* Default list of URL protocols to allow in links, redirects, and navigation.\n* Any absolute URL protocol not in this list is treated as dangerous by default.\n*/\nconst DEFAULT_PROTOCOL_ALLOWLIST = [\n\t\"http:\",\n\t\"https:\",\n\t\"mailto:\",\n\t\"tel:\"\n];\n/**\n* Check if a URL string uses a protocol that is not in the allowlist.\n* Returns true for blocked protocols like javascript:, blob:, data:, etc.\n*\n* The URL constructor correctly normalizes:\n* - Mixed case (JavaScript: → javascript:)\n* - Whitespace/control characters (java\\nscript: → javascript:)\n* - Leading whitespace\n*\n* For relative URLs (no protocol), returns false (safe).\n*\n* @param url - The URL string to check\n* @param allowlist - Set of protocols to allow\n* @returns true if the URL uses a protocol that is not allowed\n*/\nfunction isDangerousProtocol(url, allowlist) {\n\tif (!url) return false;\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\treturn !allowlist.has(parsed.protocol);\n\t} catch {\n\t\treturn false;\n\t}\n}\nconst HTML_ESCAPE_LOOKUP = {\n\t\"&\": \"\\\\u0026\",\n\t\">\": \"\\\\u003e\",\n\t\"<\": \"\\\\u003c\",\n\t\"\\u2028\": \"\\\\u2028\",\n\t\"\\u2029\": \"\\\\u2029\"\n};\nconst HTML_ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\n/**\n* Escape HTML special characters in a string to prevent XSS attacks\n* when embedding strings in script tags during SSR.\n*\n* This is essential for preventing XSS vulnerabilities when user-controlled\n* content is embedded in inline scripts.\n*/\nfunction escapeHtml(str) {\n\treturn str.replace(HTML_ESCAPE_REGEX, (match) => HTML_ESCAPE_LOOKUP[match]);\n}\nfunction decodePath(path) {\n\tif (!path) return {\n\t\tpath,\n\t\thandledProtocolRelativeURL: false\n\t};\n\tif (!/[%\\\\\\x00-\\x1f\\x7f]/.test(path) && !path.startsWith(\"//\")) return {\n\t\tpath,\n\t\thandledProtocolRelativeURL: false\n\t};\n\tconst re = /%25|%5C/gi;\n\tlet cursor = 0;\n\tlet result = \"\";\n\tlet match;\n\twhile (null !== (match = re.exec(path))) {\n\t\tresult += decodeSegment(path.slice(cursor, match.index)) + match[0];\n\t\tcursor = re.lastIndex;\n\t}\n\tresult = result + decodeSegment(cursor ? path.slice(cursor) : path);\n\tlet handledProtocolRelativeURL = false;\n\tif (result.startsWith(\"//\")) {\n\t\thandledProtocolRelativeURL = true;\n\t\tresult = \"/\" + result.replace(/^\\/+/, \"\");\n\t}\n\treturn {\n\t\tpath: result,\n\t\thandledProtocolRelativeURL\n\t};\n}\n/**\n* Encodes a path the same way `new URL()` would, but without the overhead of full URL parsing.\n*\n* This function encodes:\n* - Whitespace characters (spaces → %20, tabs → %09, etc.)\n* - Non-ASCII/Unicode characters (emojis, accented characters, etc.)\n*\n* It preserves:\n* - Already percent-encoded sequences (won't double-encode %2F, %25, etc.)\n* - ASCII special characters valid in URL paths (@, $, &, +, etc.)\n* - Forward slashes as path separators\n*\n* Used to generate proper href values for SSR without constructing URL objects.\n*\n* @example\n* encodePathLikeUrl('/path/file name.pdf') // '/path/file%20name.pdf'\n* encodePathLikeUrl('/path/日本語') // '/path/%E6%97%A5%E6%9C%AC%E8%AA%9E'\n* encodePathLikeUrl('/path/already%20encoded') // '/path/already%20encoded' (preserved)\n*/\nfunction encodePathLikeUrl(path) {\n\tif (!/\\s|[^\\u0000-\\u007F]/.test(path)) return path;\n\treturn path.replace(/\\s|[^\\u0000-\\u007F]/gu, encodeURIComponent);\n}\n/**\n* Builds the dev-mode CSS styles URL for route-scoped CSS collection.\n* Used by HeadContent components in all framework implementations to construct\n* the URL for the `/@tanstack-start/styles.css` endpoint.\n*\n* @param basepath - The router's basepath (may or may not have leading slash)\n* @param routeIds - Array of matched route IDs to include in the CSS collection\n* @returns The full URL path for the dev styles CSS endpoint\n*/\nfunction buildDevStylesUrl(basepath, routeIds) {\n\tconst trimmedBasepath = basepath.replace(/^\\/+|\\/+$/g, \"\");\n\treturn `${trimmedBasepath === \"\" ? \"\" : `/${trimmedBasepath}`}/@tanstack-start/styles.css?routes=${encodeURIComponent(routeIds.join(\",\"))}`;\n}\nfunction arraysEqual(a, b) {\n\tif (a === b) return true;\n\tif (a.length !== b.length) return false;\n\tfor (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;\n\treturn true;\n}\n//#endregion\nexport { DEFAULT_PROTOCOL_ALLOWLIST, arraysEqual, buildDevStylesUrl, createControlledPromise, decodePath, deepEqual, encodePathLikeUrl, escapeHtml, findLast, functionalUpdate, hasKeys, hasOwn, isDangerousProtocol, isModuleNotFoundError, isPlainArray, isPlainObject, last, nullReplaceEqualDeep, replaceEqualDeep };\n\n//# sourceMappingURL=utils.js.map","//#region src/invariant.ts\nfunction invariant() {\n\tthrow new Error(\"Invariant failed\");\n}\n//#endregion\nexport { invariant };\n\n//# sourceMappingURL=invariant.js.map","//#region src/lru-cache.ts\nfunction createLRUCache(max) {\n\tconst cache = /* @__PURE__ */ new Map();\n\tlet oldest;\n\tlet newest;\n\tconst touch = (entry) => {\n\t\tif (!entry.next) return;\n\t\tif (!entry.prev) {\n\t\t\tentry.next.prev = void 0;\n\t\t\toldest = entry.next;\n\t\t\tentry.next = void 0;\n\t\t\tif (newest) {\n\t\t\t\tentry.prev = newest;\n\t\t\t\tnewest.next = entry;\n\t\t\t}\n\t\t} else {\n\t\t\tentry.prev.next = entry.next;\n\t\t\tentry.next.prev = entry.prev;\n\t\t\tentry.next = void 0;\n\t\t\tif (newest) {\n\t\t\t\tnewest.next = entry;\n\t\t\t\tentry.prev = newest;\n\t\t\t}\n\t\t}\n\t\tnewest = entry;\n\t};\n\treturn {\n\t\tget(key) {\n\t\t\tconst entry = cache.get(key);\n\t\t\tif (!entry) return void 0;\n\t\t\ttouch(entry);\n\t\t\treturn entry.value;\n\t\t},\n\t\tset(key, value) {\n\t\t\tif (cache.size >= max && oldest) {\n\t\t\t\tconst toDelete = oldest;\n\t\t\t\tcache.delete(toDelete.key);\n\t\t\t\tif (toDelete.next) {\n\t\t\t\t\toldest = toDelete.next;\n\t\t\t\t\ttoDelete.next.prev = void 0;\n\t\t\t\t}\n\t\t\t\tif (toDelete === newest) newest = void 0;\n\t\t\t}\n\t\t\tconst existing = cache.get(key);\n\t\t\tif (existing) {\n\t\t\t\texisting.value = value;\n\t\t\t\ttouch(existing);\n\t\t\t} else {\n\t\t\t\tconst entry = {\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tprev: newest\n\t\t\t\t};\n\t\t\t\tif (newest) newest.next = entry;\n\t\t\t\tnewest = entry;\n\t\t\t\tif (!oldest) oldest = entry;\n\t\t\t\tcache.set(key, entry);\n\t\t\t}\n\t\t},\n\t\tclear() {\n\t\t\tcache.clear();\n\t\t\toldest = void 0;\n\t\t\tnewest = void 0;\n\t\t}\n\t};\n}\n//#endregion\nexport { createLRUCache };\n\n//# sourceMappingURL=lru-cache.js.map","import { last } from \"./utils.js\";\nimport { invariant } from \"./invariant.js\";\nimport { createLRUCache } from \"./lru-cache.js\";\nconst SEGMENT_TYPE_INDEX = 4;\nconst SEGMENT_TYPE_PATHLESS = 5;\n/**\n* Populates the `output` array with the parsed representation of the given `segment` string.\n*\n* Usage:\n* ```ts\n* let output\n* let cursor = 0\n* while (cursor < path.length) {\n* output = parseSegment(path, cursor, output)\n* const end = output[5]\n* cursor = end + 1\n* ```\n*\n* `output` is stored outside to avoid allocations during repeated calls. It doesn't need to be typed\n* or initialized, it will be done automatically.\n*/\nfunction parseSegment(path, start, output = new Uint16Array(6)) {\n\tconst next = path.indexOf(\"/\", start);\n\tconst end = next === -1 ? path.length : next;\n\tconst part = path.substring(start, end);\n\tif (!part || !part.includes(\"$\")) {\n\t\toutput[0] = 0;\n\t\toutput[1] = start;\n\t\toutput[2] = start;\n\t\toutput[3] = end;\n\t\toutput[4] = end;\n\t\toutput[5] = end;\n\t\treturn output;\n\t}\n\tif (part === \"$\") {\n\t\tconst total = path.length;\n\t\toutput[0] = 2;\n\t\toutput[1] = start;\n\t\toutput[2] = start;\n\t\toutput[3] = total;\n\t\toutput[4] = total;\n\t\toutput[5] = total;\n\t\treturn output;\n\t}\n\tif (part.charCodeAt(0) === 36) {\n\t\toutput[0] = 1;\n\t\toutput[1] = start;\n\t\toutput[2] = start + 1;\n\t\toutput[3] = end;\n\t\toutput[4] = end;\n\t\toutput[5] = end;\n\t\treturn output;\n\t}\n\tconst openBrace = part.indexOf(\"{\");\n\tlet closeBrace;\n\tif (openBrace !== -1 && openBrace + 1 < part.length && (closeBrace = part.indexOf(\"}\", openBrace)) !== -1) {\n\t\tconst firstChar = part.charCodeAt(openBrace + 1);\n\t\tif (firstChar === 45) {\n\t\t\tif (openBrace + 2 < part.length && part.charCodeAt(openBrace + 2) === 36) {\n\t\t\t\tconst paramStart = openBrace + 3;\n\t\t\t\tconst paramEnd = closeBrace;\n\t\t\t\tif (paramStart < paramEnd) {\n\t\t\t\t\toutput[0] = 3;\n\t\t\t\t\toutput[1] = start + openBrace;\n\t\t\t\t\toutput[2] = start + paramStart;\n\t\t\t\t\toutput[3] = start + paramEnd;\n\t\t\t\t\toutput[4] = start + closeBrace + 1;\n\t\t\t\t\toutput[5] = end;\n\t\t\t\t\treturn output;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (firstChar === 36) {\n\t\t\tconst dollarPos = openBrace + 1;\n\t\t\tconst afterDollar = openBrace + 2;\n\t\t\tif (afterDollar === closeBrace) {\n\t\t\t\toutput[0] = 2;\n\t\t\t\toutput[1] = start + openBrace;\n\t\t\t\toutput[2] = start + dollarPos;\n\t\t\t\toutput[3] = start + afterDollar;\n\t\t\t\toutput[4] = start + closeBrace + 1;\n\t\t\t\toutput[5] = path.length;\n\t\t\t\treturn output;\n\t\t\t}\n\t\t\toutput[0] = 1;\n\t\t\toutput[1] = start + openBrace;\n\t\t\toutput[2] = start + afterDollar;\n\t\t\toutput[3] = start + closeBrace;\n\t\t\toutput[4] = start + closeBrace + 1;\n\t\t\toutput[5] = end;\n\t\t\treturn output;\n\t\t}\n\t}\n\toutput[0] = 0;\n\toutput[1] = start;\n\toutput[2] = start;\n\toutput[3] = end;\n\toutput[4] = end;\n\toutput[5] = end;\n\treturn output;\n}\n/**\n* Recursively parses the segments of the given route tree and populates a segment trie.\n*\n* @param data A reusable Uint16Array for parsing segments. (non important, we're just avoiding allocations)\n* @param route The current route to parse.\n* @param start The starting index for parsing within the route's full path.\n* @param node The current segment node in the trie to populate.\n* @param onRoute Callback invoked for each route processed.\n*/\nfunction parseSegments(defaultCaseSensitive, data, route, start, node, depth, dynamicListsToSort, onRoute) {\n\tonRoute?.(route);\n\tlet cursor = start;\n\t{\n\t\tconst path = route.fullPath ?? route.from;\n\t\tconst options = route.options;\n\t\tconst length = path.length;\n\t\tconst caseSensitive = options?.caseSensitive ?? defaultCaseSensitive;\n\t\tconst parseParams = options?.params?.parse ?? options?.parseParams;\n\t\twhile (cursor < length) {\n\t\t\tconst segment = parseSegment(path, cursor, data);\n\t\t\tlet nextNode;\n\t\t\tconst start = cursor;\n\t\t\tconst end = segment[5];\n\t\t\tcursor = end + 1;\n\t\t\tdepth++;\n\t\t\tconst kind = segment[0];\n\t\t\tswitch (kind) {\n\t\t\t\tcase 0: {\n\t\t\t\t\tconst value = path.substring(segment[2], segment[3]);\n\t\t\t\t\tlet name = value;\n\t\t\t\t\tlet staticChildren;\n\t\t\t\t\tif (caseSensitive) staticChildren = node.static ??= /* @__PURE__ */ new Map();\n\t\t\t\t\telse {\n\t\t\t\t\t\tname = value.toLowerCase();\n\t\t\t\t\t\tstaticChildren = node.staticInsensitive ??= /* @__PURE__ */ new Map();\n\t\t\t\t\t}\n\t\t\t\t\tconst existingNode = staticChildren.get(name);\n\t\t\t\t\tif (existingNode) nextNode = existingNode;\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst next = createStaticNode(path);\n\t\t\t\t\t\tnext.parent = node;\n\t\t\t\t\t\tnext.depth = depth;\n\t\t\t\t\t\tnextNode = next;\n\t\t\t\t\t\tstaticChildren.set(name, next);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 1:\n\t\t\t\tcase 3:\n\t\t\t\tcase 2: {\n\t\t\t\t\tconst prefix_raw = path.substring(start, segment[1]);\n\t\t\t\t\tconst suffix_raw = path.substring(segment[4], end);\n\t\t\t\t\tconst actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n\t\t\t\t\tconst prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n\t\t\t\t\tconst suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n\t\t\t\t\tconst siblings = kind === 1 ? node.dynamic : kind === 3 ? node.optional : node.wildcard;\n\t\t\t\t\tconst existingNode = kind !== 2 && !parseParams && siblings?.find((s) => !s.parse && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix);\n\t\t\t\t\tif (existingNode) nextNode = existingNode;\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst next = createDynamicNode(kind, path, actuallyCaseSensitive, prefix, suffix);\n\t\t\t\t\t\tnextNode = next;\n\t\t\t\t\t\tnext.parent = node;\n\t\t\t\t\t\tnext.depth = depth;\n\t\t\t\t\t\tlet nodes;\n\t\t\t\t\t\tif (kind === 1) nodes = node.dynamic ??= [];\n\t\t\t\t\t\telse if (kind === 3) nodes = node.optional ??= [];\n\t\t\t\t\t\telse nodes = node.wildcard ??= [];\n\t\t\t\t\t\tnodes.push(next);\n\t\t\t\t\t\tif (nodes.length === 2) dynamicListsToSort?.push(nodes);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tnode = nextNode;\n\t\t}\n\t\tif (parseParams && route.children && !route.isRoot && route.id && route.id.charCodeAt(route.id.lastIndexOf(\"/\") + 1) === 95) {\n\t\t\tconst pathlessNode = createStaticNode(path);\n\t\t\tpathlessNode.kind = SEGMENT_TYPE_PATHLESS;\n\t\t\tpathlessNode.parent = node;\n\t\t\tdepth++;\n\t\t\tpathlessNode.depth = depth;\n\t\t\tnode.pathless ??= [];\n\t\t\tnode.pathless.push(pathlessNode);\n\t\t\tnode = pathlessNode;\n\t\t}\n\t\tconst isLeaf = (route.path || !route.children) && !route.isRoot;\n\t\tif (isLeaf && path.endsWith(\"/\")) {\n\t\t\tconst indexNode = createStaticNode(path);\n\t\t\tindexNode.kind = SEGMENT_TYPE_INDEX;\n\t\t\tindexNode.parent = node;\n\t\t\tdepth++;\n\t\t\tindexNode.depth = depth;\n\t\t\tnode.index = indexNode;\n\t\t\tnode = indexNode;\n\t\t}\n\t\tnode.parse = parseParams ?? null;\n\t\tnode.priority = options?.params?.priority ?? 0;\n\t\tif (isLeaf && !node.route) {\n\t\t\tnode.route = route;\n\t\t\tnode.fullPath = path;\n\t\t}\n\t}\n\tif (route.children) for (const child of route.children) parseSegments(defaultCaseSensitive, data, child, cursor, node, depth, dynamicListsToSort, onRoute);\n}\nfunction sortDynamic(a, b) {\n\tif (a.parse && !b.parse) return -1;\n\tif (!a.parse && b.parse) return 1;\n\tif (a.parse && b.parse && (a.priority || b.priority)) return b.priority - a.priority;\n\tif (a.prefix && b.prefix && a.prefix !== b.prefix) {\n\t\tif (a.prefix.startsWith(b.prefix)) return -1;\n\t\tif (b.prefix.startsWith(a.prefix)) return 1;\n\t}\n\tif (a.suffix && b.suffix && a.suffix !== b.suffix) {\n\t\tif (a.suffix.endsWith(b.suffix)) return -1;\n\t\tif (b.suffix.endsWith(a.suffix)) return 1;\n\t}\n\tif (a.prefix && !b.prefix) return -1;\n\tif (!a.prefix && b.prefix) return 1;\n\tif (a.suffix && !b.suffix) return -1;\n\tif (!a.suffix && b.suffix) return 1;\n\tif (a.caseSensitive && !b.caseSensitive) return -1;\n\tif (!a.caseSensitive && b.caseSensitive) return 1;\n\treturn 0;\n}\nfunction createStaticNode(fullPath) {\n\treturn {\n\t\tkind: 0,\n\t\tdepth: 0,\n\t\tpathless: null,\n\t\tindex: null,\n\t\tstatic: null,\n\t\tstaticInsensitive: null,\n\t\tdynamic: null,\n\t\toptional: null,\n\t\twildcard: null,\n\t\troute: null,\n\t\tfullPath,\n\t\tparent: null,\n\t\tparse: null,\n\t\tpriority: 0\n\t};\n}\n/**\n* Keys must be declared in the same order as in `SegmentNode` type,\n* to ensure they are represented as the same object class in the engine.\n*/\nfunction createDynamicNode(kind, fullPath, caseSensitive, prefix, suffix) {\n\treturn {\n\t\tkind,\n\t\tdepth: 0,\n\t\tpathless: null,\n\t\tindex: null,\n\t\tstatic: null,\n\t\tstaticInsensitive: null,\n\t\tdynamic: null,\n\t\toptional: null,\n\t\twildcard: null,\n\t\troute: null,\n\t\tfullPath,\n\t\tparent: null,\n\t\tparse: null,\n\t\tpriority: 0,\n\t\tcaseSensitive,\n\t\tprefix,\n\t\tsuffix\n\t};\n}\nfunction processRouteMasks(routeList, processedTree) {\n\tconst segmentTree = createStaticNode(\"/\");\n\tconst data = new Uint16Array(6);\n\tconst dynamicListsToSort = [];\n\tfor (const route of routeList) parseSegments(false, data, route, 1, segmentTree, 0, dynamicListsToSort);\n\tfor (const nodes of dynamicListsToSort) nodes.sort(sortDynamic);\n\tprocessedTree.masksTree = segmentTree;\n\tprocessedTree.flatCache = createLRUCache(1e3);\n}\n/**\n* Take an arbitrary list of routes, create a tree from them (if it hasn't been created already), and match a path against it.\n*/\nfunction findFlatMatch(path, processedTree) {\n\tpath ||= \"/\";\n\tconst cached = processedTree.flatCache.get(path);\n\tif (cached) return cached;\n\tconst result = findMatch(path, processedTree.masksTree);\n\tprocessedTree.flatCache.set(path, result);\n\treturn result;\n}\n/**\n* @deprecated keep until v2 so that `router.matchRoute` can keep not caring about the actual route tree\n*/\nfunction findSingleMatch(from, caseSensitive, fuzzy, path, processedTree) {\n\tfrom ||= \"/\";\n\tpath ||= \"/\";\n\tconst key = caseSensitive ? `case\\0${from}` : from;\n\tlet tree = processedTree.singleCache.get(key);\n\tif (!tree) {\n\t\ttree = createStaticNode(\"/\");\n\t\tparseSegments(caseSensitive, new Uint16Array(6), { from }, 1, tree, 0);\n\t\tprocessedTree.singleCache.set(key, tree);\n\t}\n\treturn findMatch(path, tree, fuzzy);\n}\nfunction findRouteMatch(path, processedTree, fuzzy = false) {\n\tconst key = fuzzy ? path : `nofuzz\\0${path}`;\n\tconst cached = processedTree.matchCache.get(key);\n\tif (cached !== void 0) return cached;\n\tpath ||= \"/\";\n\tlet result;\n\ttry {\n\t\tresult = findMatch(path, processedTree.segmentTree, fuzzy);\n\t} catch (err) {\n\t\tif (err instanceof URIError) result = null;\n\t\telse throw err;\n\t}\n\tif (result) result.branch = buildRouteBranch(result.route);\n\tprocessedTree.matchCache.set(key, result);\n\treturn result;\n}\n/** Trim trailing slashes (except preserving root '/'). */\nfunction trimPathRight(path) {\n\treturn path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\n/**\n* Processes a route tree into a segment trie for efficient path matching.\n* Also builds lookup maps for routes by ID and by trimmed full path.\n*/\nfunction processRouteTree(routeTree, caseSensitive = false, initRoute) {\n\tconst segmentTree = createStaticNode(routeTree.fullPath);\n\tconst data = new Uint16Array(6);\n\tconst dynamicListsToSort = [];\n\tconst routesById = {};\n\tconst routesByPath = {};\n\tlet index = 0;\n\tparseSegments(caseSensitive, data, routeTree, 1, segmentTree, 0, dynamicListsToSort, (route) => {\n\t\tinitRoute?.(route, index);\n\t\tif (route.id in routesById) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") throw new Error(`Invariant failed: Duplicate routes found with id: ${String(route.id)}`);\n\t\t\tinvariant();\n\t\t}\n\t\troutesById[route.id] = route;\n\t\tif (index !== 0 && route.path) {\n\t\t\tconst trimmedFullPath = trimPathRight(route.fullPath);\n\t\t\tif (!routesByPath[trimmedFullPath] || route.fullPath.endsWith(\"/\")) routesByPath[trimmedFullPath] = route;\n\t\t}\n\t\tindex++;\n\t});\n\tfor (const nodes of dynamicListsToSort) nodes.sort(sortDynamic);\n\treturn {\n\t\tprocessedTree: {\n\t\t\tsegmentTree,\n\t\t\tsingleCache: createLRUCache(1e3),\n\t\t\tmatchCache: createLRUCache(1e3),\n\t\t\tflatCache: null,\n\t\t\tmasksTree: null\n\t\t},\n\t\troutesById,\n\t\troutesByPath\n\t};\n}\nfunction findMatch(path, segmentTree, fuzzy = false) {\n\tconst parts = path.split(\"/\");\n\tconst leaf = getNodeMatch(path, parts, segmentTree, fuzzy);\n\tif (!leaf) return null;\n\tconst [rawParams] = extractParams(path, parts, leaf);\n\treturn {\n\t\troute: leaf.node.route,\n\t\trawParams\n\t};\n}\n/**\n* This function is \"resumable\":\n* - the `leaf` input can contain `extract` and `rawParams` properties from a previous `extractParams` call\n* - the returned `state` can be passed back as `extract` in a future call to continue extracting params from where we left off\n*\n* Inputs are *not* mutated.\n*/\nfunction extractParams(path, parts, leaf) {\n\tconst list = buildBranch(leaf.node);\n\tlet nodeParts = null;\n\tconst rawParams = Object.create(null);\n\t/** which segment of the path we're currently processing */\n\tlet partIndex = leaf.extract?.part ?? 0;\n\t/** which node of the route tree branch we're currently processing */\n\tlet nodeIndex = leaf.extract?.node ?? 0;\n\t/** index of the 1st character of the segment we're processing in the path string */\n\tlet pathIndex = leaf.extract?.path ?? 0;\n\t/** which fullPath segment we're currently processing */\n\tlet segmentCount = leaf.extract?.segment ?? 0;\n\tfor (; nodeIndex < list.length; partIndex++, nodeIndex++, pathIndex++, segmentCount++) {\n\t\tconst node = list[nodeIndex];\n\t\tif (node.kind === SEGMENT_TYPE_INDEX) break;\n\t\tif (node.kind === SEGMENT_TYPE_PATHLESS) {\n\t\t\tsegmentCount--;\n\t\t\tpartIndex--;\n\t\t\tpathIndex--;\n\t\t\tcontinue;\n\t\t}\n\t\tconst part = parts[partIndex];\n\t\tconst currentPathIndex = pathIndex;\n\t\tif (part) pathIndex += part.length;\n\t\tif (node.kind === 1) {\n\t\t\tnodeParts ??= leaf.node.fullPath.split(\"/\");\n\t\t\tconst nodePart = nodeParts[segmentCount];\n\t\t\tconst preLength = node.prefix?.length ?? 0;\n\t\t\tif (nodePart.charCodeAt(preLength) === 123) {\n\t\t\t\tconst sufLength = node.suffix?.length ?? 0;\n\t\t\t\tconst name = nodePart.substring(preLength + 2, nodePart.length - sufLength - 1);\n\t\t\t\tconst value = part.substring(preLength, part.length - sufLength);\n\t\t\t\trawParams[name] = decodeURIComponent(value);\n\t\t\t} else {\n\t\t\t\tconst name = nodePart.substring(1);\n\t\t\t\trawParams[name] = decodeURIComponent(part);\n\t\t\t}\n\t\t} else if (node.kind === 3) {\n\t\t\tif (leaf.skipped & 1 << nodeIndex) {\n\t\t\t\tpartIndex--;\n\t\t\t\tpathIndex = currentPathIndex - 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnodeParts ??= leaf.node.fullPath.split(\"/\");\n\t\t\tconst nodePart = nodeParts[segmentCount];\n\t\t\tconst preLength = node.prefix?.length ?? 0;\n\t\t\tconst sufLength = node.suffix?.length ?? 0;\n\t\t\tconst name = nodePart.substring(preLength + 3, nodePart.length - sufLength - 1);\n\t\t\tconst value = node.suffix || node.prefix ? part.substring(preLength, part.length - sufLength) : part;\n\t\t\tif (value) rawParams[name] = decodeURIComponent(value);\n\t\t} else if (node.kind === 2) {\n\t\t\tconst n = node;\n\t\t\tconst value = path.substring(currentPathIndex + (n.prefix?.length ?? 0), path.length - (n.suffix?.length ?? 0));\n\t\t\tconst splat = decodeURIComponent(value);\n\t\t\trawParams[\"*\"] = splat;\n\t\t\trawParams._splat = splat;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (leaf.rawParams) Object.assign(rawParams, leaf.rawParams);\n\treturn [rawParams, {\n\t\tpart: partIndex,\n\t\tnode: nodeIndex,\n\t\tpath: pathIndex,\n\t\tsegment: segmentCount\n\t}];\n}\nfunction buildRouteBranch(route) {\n\tconst list = [route];\n\twhile (route.parentRoute) {\n\t\troute = route.parentRoute;\n\t\tlist.push(route);\n\t}\n\tlist.reverse();\n\treturn list;\n}\nfunction buildBranch(node) {\n\tconst list = Array(node.depth + 1);\n\tdo {\n\t\tlist[node.depth] = node;\n\t\tnode = node.parent;\n\t} while (node);\n\treturn list;\n}\nfunction getNodeMatch(path, parts, segmentTree, fuzzy) {\n\tif (path === \"/\" && segmentTree.index) return {\n\t\tnode: segmentTree.index,\n\t\tskipped: 0\n\t};\n\tconst trailingSlash = !last(parts);\n\tconst pathIsIndex = trailingSlash && path !== \"/\";\n\tconst partsLength = parts.length - (trailingSlash ? 1 : 0);\n\tconst stack = [{\n\t\tnode: segmentTree,\n\t\tindex: 1,\n\t\tskipped: 0,\n\t\tstatics: 0,\n\t\tdynamics: 0,\n\t\toptionals: 0\n\t}];\n\tlet bestFuzzy = null;\n\tlet bestMatch = null;\n\twhile (stack.length) {\n\t\tconst frame = stack.pop();\n\t\tconst { node, index, skipped, statics, dynamics, optionals } = frame;\n\t\tlet { extract, rawParams } = frame;\n\t\tif (node.kind === 2 && node.route && !isFrameMoreSpecific(bestMatch, frame)) continue;\n\t\tif (node.parse) {\n\t\t\tif (!validateParseParams(path, parts, frame)) continue;\n\t\t\trawParams = frame.rawParams;\n\t\t\textract = frame.extract;\n\t\t}\n\t\tif (fuzzy && node.route && node.kind !== SEGMENT_TYPE_INDEX && isFrameMoreSpecific(bestFuzzy, frame)) bestFuzzy = frame;\n\t\tconst isBeyondPath = index === partsLength;\n\t\tif (isBeyondPath) {\n\t\t\tif (node.route && (!pathIsIndex || node.kind === SEGMENT_TYPE_INDEX || node.kind === 2) && isFrameMoreSpecific(bestMatch, frame)) bestMatch = frame;\n\t\t\tif (!node.optional && !node.wildcard && !node.index && !node.pathless) continue;\n\t\t}\n\t\tconst part = isBeyondPath ? void 0 : parts[index];\n\t\tlet lowerPart;\n\t\tif (isBeyondPath && node.index) {\n\t\t\tconst indexFrame = {\n\t\t\t\tnode: node.index,\n\t\t\t\tindex,\n\t\t\t\tskipped,\n\t\t\t\tstatics,\n\t\t\t\tdynamics,\n\t\t\t\toptionals,\n\t\t\t\textract,\n\t\t\t\trawParams\n\t\t\t};\n\t\t\tlet indexValid = true;\n\t\t\tif (node.index.parse) {\n\t\t\t\tif (!validateParseParams(path, parts, indexFrame)) indexValid = false;\n\t\t\t}\n\t\t\tif (indexValid) {\n\t\t\t\tif (!dynamics && !optionals && !skipped && isPerfectStaticMatch(statics, partsLength)) return indexFrame;\n\t\t\t\tif (isFrameMoreSpecific(bestMatch, indexFrame)) bestMatch = indexFrame;\n\t\t\t}\n\t\t}\n\t\tif (node.wildcard) for (let i = node.wildcard.length - 1; i >= 0; i--) {\n\t\t\tconst segment = node.wildcard[i];\n\t\t\tconst { prefix, suffix } = segment;\n\t\t\tif (prefix) {\n\t\t\t\tif (isBeyondPath) continue;\n\t\t\t\tif (!(segment.caseSensitive ? part : lowerPart ??= part.toLowerCase()).startsWith(prefix)) continue;\n\t\t\t}\n\t\t\tif (suffix) {\n\t\t\t\tif (isBeyondPath) continue;\n\t\t\t\tconst end = parts.slice(index).join(\"/\").slice(-suffix.length);\n\t\t\t\tif ((segment.caseSensitive ? end : end.toLowerCase()) !== suffix) continue;\n\t\t\t}\n\t\t\tstack.push({\n\t\t\t\tnode: segment,\n\t\t\t\tindex: partsLength,\n\t\t\t\tskipped,\n\t\t\t\tstatics,\n\t\t\t\tdynamics,\n\t\t\t\toptionals,\n\t\t\t\textract,\n\t\t\t\trawParams\n\t\t\t});\n\t\t}\n\t\tif (node.optional) {\n\t\t\tconst nextSkipped = skipped | 1 << node.depth + 1;\n\t\t\tfor (let i = node.optional.length - 1; i >= 0; i--) {\n\t\t\t\tconst segment = node.optional[i];\n\t\t\t\tstack.push({\n\t\t\t\t\tnode: segment,\n\t\t\t\t\tindex,\n\t\t\t\t\tskipped: nextSkipped,\n\t\t\t\t\tstatics,\n\t\t\t\t\tdynamics,\n\t\t\t\t\toptionals,\n\t\t\t\t\textract,\n\t\t\t\t\trawParams\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!isBeyondPath) for (let i = node.optional.length - 1; i >= 0; i--) {\n\t\t\t\tconst segment = node.optional[i];\n\t\t\t\tconst { prefix, suffix } = segment;\n\t\t\t\tif (prefix || suffix) {\n\t\t\t\t\tconst casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n\t\t\t\t\tif (prefix && !casePart.startsWith(prefix)) continue;\n\t\t\t\t\tif (suffix && !casePart.endsWith(suffix)) continue;\n\t\t\t\t}\n\t\t\t\tstack.push({\n\t\t\t\t\tnode: segment,\n\t\t\t\t\tindex: index + 1,\n\t\t\t\t\tskipped,\n\t\t\t\t\tstatics,\n\t\t\t\t\tdynamics,\n\t\t\t\t\toptionals: optionals + segmentScore(partsLength, index),\n\t\t\t\t\textract,\n\t\t\t\t\trawParams\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (!isBeyondPath && node.dynamic && part) for (let i = node.dynamic.length - 1; i >= 0; i--) {\n\t\t\tconst segment = node.dynamic[i];\n\t\t\tconst { prefix, suffix } = segment;\n\t\t\tif (prefix || suffix) {\n\t\t\t\tconst casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n\t\t\t\tif (prefix && !casePart.startsWith(prefix)) continue;\n\t\t\t\tif (suffix && !casePart.endsWith(suffix)) continue;\n\t\t\t}\n\t\t\tstack.push({\n\t\t\t\tnode: segment,\n\t\t\t\tindex: index + 1,\n\t\t\t\tskipped,\n\t\t\t\tstatics,\n\t\t\t\tdynamics: dynamics + segmentScore(partsLength, index),\n\t\t\t\toptionals,\n\t\t\t\textract,\n\t\t\t\trawParams\n\t\t\t});\n\t\t}\n\t\tif (!isBeyondPath && node.staticInsensitive) {\n\t\t\tconst match = node.staticInsensitive.get(lowerPart ??= part.toLowerCase());\n\t\t\tif (match) stack.push({\n\t\t\t\tnode: match,\n\t\t\t\tindex: index + 1,\n\t\t\t\tskipped,\n\t\t\t\tstatics: statics + segmentScore(partsLength, index),\n\t\t\t\tdynamics,\n\t\t\t\toptionals,\n\t\t\t\textract,\n\t\t\t\trawParams\n\t\t\t});\n\t\t}\n\t\tif (!isBeyondPath && node.static) {\n\t\t\tconst match = node.static.get(part);\n\t\t\tif (match) stack.push({\n\t\t\t\tnode: match,\n\t\t\t\tindex: index + 1,\n\t\t\t\tskipped,\n\t\t\t\tstatics: statics + segmentScore(partsLength, index),\n\t\t\t\tdynamics,\n\t\t\t\toptionals,\n\t\t\t\textract,\n\t\t\t\trawParams\n\t\t\t});\n\t\t}\n\t\tif (node.pathless) for (let i = node.pathless.length - 1; i >= 0; i--) {\n\t\t\tconst segment = node.pathless[i];\n\t\t\tstack.push({\n\t\t\t\tnode: segment,\n\t\t\t\tindex,\n\t\t\t\tskipped,\n\t\t\t\tstatics,\n\t\t\t\tdynamics,\n\t\t\t\toptionals,\n\t\t\t\textract,\n\t\t\t\trawParams\n\t\t\t});\n\t\t}\n\t}\n\tif (bestMatch) return bestMatch;\n\tif (fuzzy && bestFuzzy) {\n\t\tlet sliceIndex = bestFuzzy.index;\n\t\tfor (let i = 0; i < bestFuzzy.index; i++) sliceIndex += parts[i].length;\n\t\tconst splat = sliceIndex === path.length ? \"/\" : path.slice(sliceIndex);\n\t\tbestFuzzy.rawParams ??= Object.create(null);\n\t\tbestFuzzy.rawParams[\"**\"] = decodeURIComponent(splat);\n\t\treturn bestFuzzy;\n\t}\n\treturn null;\n}\nfunction segmentScore(partsLength, index) {\n\treturn 2 ** (partsLength - index - 1);\n}\nfunction isPerfectStaticMatch(statics, partsLength) {\n\treturn statics === 2 ** (partsLength - 1) - 1;\n}\nfunction validateParseParams(path, parts, frame) {\n\tlet rawParams;\n\tlet state;\n\ttry {\n\t\t[rawParams, state] = extractParams(path, parts, frame);\n\t} catch {\n\t\treturn null;\n\t}\n\tframe.rawParams = rawParams;\n\tframe.extract = state;\n\tif (!frame.node.parse) return true;\n\ttry {\n\t\tif (frame.node.parse(rawParams) === false) return null;\n\t} catch {}\n\treturn true;\n}\nfunction isFrameMoreSpecific(prev, next) {\n\tif (!prev) return true;\n\treturn next.statics > prev.statics || next.statics === prev.statics && (next.dynamics > prev.dynamics || next.dynamics === prev.dynamics && (next.optionals > prev.optionals || next.optionals === prev.optionals && ((next.node.kind === SEGMENT_TYPE_INDEX) > (prev.node.kind === SEGMENT_TYPE_INDEX) || next.node.kind === SEGMENT_TYPE_INDEX === (prev.node.kind === SEGMENT_TYPE_INDEX) && next.node.depth > prev.node.depth)));\n}\n//#endregion\nexport { buildRouteBranch, findFlatMatch, findRouteMatch, findSingleMatch, parseSegment, processRouteMasks, processRouteTree };\n\n//# sourceMappingURL=new-process-route-tree.js.map","import { last } from \"./utils.js\";\nimport { parseSegment } from \"./new-process-route-tree.js\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\n//#region src/path.ts\n/** Join path segments, cleaning duplicate slashes between parts. */\nfunction joinPaths(paths) {\n\treturn cleanPath(paths.filter((val) => {\n\t\treturn val !== void 0;\n\t}).join(\"/\"));\n}\n/** Remove repeated slashes from a path string. */\nfunction cleanPath(path) {\n\treturn path.replace(/\\/{2,}/g, \"/\");\n}\n/** Trim leading slashes (except preserving root '/'). */\nfunction trimPathLeft(path) {\n\treturn path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\n/** Trim trailing slashes (except preserving root '/'). */\nfunction trimPathRight(path) {\n\tconst len = path.length;\n\treturn len > 1 && path[len - 1] === \"/\" ? path.replace(/\\/{1,}$/, \"\") : path;\n}\n/** Trim both leading and trailing slashes. */\nfunction trimPath(path) {\n\treturn trimPathRight(trimPathLeft(path));\n}\n/** Remove a trailing slash from value when appropriate for comparisons. */\nfunction removeTrailingSlash(value, basepath) {\n\tif (value?.endsWith(\"/\") && value !== \"/\" && value !== `${basepath}/`) return value.slice(0, -1);\n\treturn value;\n}\n/**\n* Compare two pathnames for exact equality after normalizing trailing slashes\n* relative to the provided `basepath`.\n*/\nfunction exactPathTest(pathName1, pathName2, basepath) {\n\treturn removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\n/**\n* Resolve a destination path against a base, honoring trailing-slash policy\n* and supporting relative segments (`.`/`..`) and absolute `to` values.\n*/\nfunction resolvePath({ base, to, trailingSlash = \"never\", cache }) {\n\tconst isBase = to === \".\";\n\tconst isAbsolute = to.startsWith(\"/\");\n\tlet key;\n\tif (cache) {\n\t\tkey = isAbsolute ? to : isBase ? base : base + \"\\0\" + to;\n\t\tconst cached = cache.get(key);\n\t\tif (cached) return cached;\n\t}\n\tlet baseSegments;\n\tif (isBase) baseSegments = base.split(\"/\");\n\telse if (isAbsolute) baseSegments = to.split(\"/\");\n\telse {\n\t\tbaseSegments = base.split(\"/\");\n\t\twhile (baseSegments.length > 1 && last(baseSegments) === \"\") baseSegments.pop();\n\t\tconst toSegments = to.split(\"/\");\n\t\tfor (let index = 0, length = toSegments.length; index < length; index++) {\n\t\t\tconst value = toSegments[index];\n\t\t\tif (value === \"\") {\n\t\t\t\tif (!index) baseSegments = [value];\n\t\t\t\telse if (index === length - 1) baseSegments.push(value);\n\t\t\t} else if (value === \"..\") if (baseSegments.length > 1) baseSegments.pop();\n\t\t\telse baseSegments = [\"\"];\n\t\t\telse if (value === \".\") {} else baseSegments.push(value);\n\t\t}\n\t}\n\tif (baseSegments.length > 1) {\n\t\tif (last(baseSegments) === \"\") {\n\t\t\tif (trailingSlash === \"never\") baseSegments.pop();\n\t\t} else if (trailingSlash === \"always\") baseSegments.push(\"\");\n\t}\n\tconst result = cleanPath(baseSegments.join(\"/\")) || \"/\";\n\tif (key && cache) cache.set(key, result);\n\treturn result;\n}\n/**\n* Create a pre-compiled decode config from allowed characters.\n* This should be called once at router initialization.\n*/\nfunction compileDecodeCharMap(pathParamsAllowedCharacters) {\n\tconst charMap = new Map(pathParamsAllowedCharacters.map((char) => [encodeURIComponent(char), char]));\n\tconst pattern = Array.from(charMap.keys()).map((key) => key.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n\tconst regex = new RegExp(pattern, \"g\");\n\treturn (encoded) => encoded.replace(regex, (match) => charMap.get(match) ?? match);\n}\nfunction encodeParam(key, params, decoder) {\n\tconst value = params[key];\n\tif (typeof value !== \"string\") return value;\n\tif (key === \"_splat\") {\n\t\tif (/^[a-zA-Z0-9\\-._~!/]*$/.test(value)) return value;\n\t\treturn value.split(\"/\").map((segment) => encodePathParam(segment, decoder)).join(\"/\");\n\t} else return encodePathParam(value, decoder);\n}\n/**\n* Interpolate params and wildcards into a route path template.\n*\n* - Encodes params safely (configurable allowed characters)\n* - Supports `{-$optional}` segments, `{prefix{$id}suffix}` and `{$}` wildcards\n*/\nfunction interpolatePath({ path, params, decoder, ...rest }) {\n\tlet isMissingParams = false;\n\tconst usedParams = Object.create(null);\n\tif (!path || path === \"/\") return {\n\t\tinterpolatedPath: \"/\",\n\t\tusedParams,\n\t\tisMissingParams\n\t};\n\tif (!path.includes(\"$\")) return {\n\t\tinterpolatedPath: path,\n\t\tusedParams,\n\t\tisMissingParams\n\t};\n\tif (isServer ?? rest.server) {\n\t\tif (path.indexOf(\"{\") === -1) {\n\t\t\tconst length = path.length;\n\t\t\tlet cursor = 0;\n\t\t\tlet joined = \"\";\n\t\t\twhile (cursor < length) {\n\t\t\t\twhile (cursor < length && path.charCodeAt(cursor) === 47) cursor++;\n\t\t\t\tif (cursor >= length) break;\n\t\t\t\tconst start = cursor;\n\t\t\t\tlet end = path.indexOf(\"/\", cursor);\n\t\t\t\tif (end === -1) end = length;\n\t\t\t\tcursor = end;\n\t\t\t\tconst part = path.substring(start, end);\n\t\t\t\tif (!part) continue;\n\t\t\t\tif (part.charCodeAt(0) === 36) if (part.length === 1) {\n\t\t\t\t\tconst splat = params._splat;\n\t\t\t\t\tusedParams._splat = splat;\n\t\t\t\t\tusedParams[\"*\"] = splat;\n\t\t\t\t\tif (!splat) {\n\t\t\t\t\t\tisMissingParams = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst value = encodeParam(\"_splat\", params, decoder);\n\t\t\t\t\tjoined += \"/\" + value;\n\t\t\t\t} else {\n\t\t\t\t\tconst key = part.substring(1);\n\t\t\t\t\tif (!isMissingParams && !(key in params)) isMissingParams = true;\n\t\t\t\t\tusedParams[key] = params[key];\n\t\t\t\t\tconst value = encodeParam(key, params, decoder) ?? \"undefined\";\n\t\t\t\t\tjoined += \"/\" + value;\n\t\t\t\t}\n\t\t\t\telse joined += \"/\" + part;\n\t\t\t}\n\t\t\tif (path.endsWith(\"/\")) joined += \"/\";\n\t\t\treturn {\n\t\t\t\tusedParams,\n\t\t\t\tinterpolatedPath: joined || \"/\",\n\t\t\t\tisMissingParams\n\t\t\t};\n\t\t}\n\t}\n\tconst length = path.length;\n\tlet cursor = 0;\n\tlet segment;\n\tlet joined = \"\";\n\twhile (cursor < length) {\n\t\tconst start = cursor;\n\t\tsegment = parseSegment(path, start, segment);\n\t\tconst end = segment[5];\n\t\tcursor = end + 1;\n\t\tif (start === end) continue;\n\t\tconst kind = segment[0];\n\t\tif (kind === 0) {\n\t\t\tjoined += \"/\" + path.substring(start, end);\n\t\t\tcontinue;\n\t\t}\n\t\tif (kind === 2) {\n\t\t\tconst splat = params._splat;\n\t\t\tusedParams._splat = splat;\n\t\t\tusedParams[\"*\"] = splat;\n\t\t\tconst prefix = path.substring(start, segment[1]);\n\t\t\tconst suffix = path.substring(segment[4], end);\n\t\t\tif (!splat) {\n\t\t\t\tisMissingParams = true;\n\t\t\t\tif (prefix || suffix) joined += \"/\" + prefix + suffix;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst value = encodeParam(\"_splat\", params, decoder);\n\t\t\tjoined += \"/\" + prefix + value + suffix;\n\t\t\tcontinue;\n\t\t}\n\t\tif (kind === 1) {\n\t\t\tconst key = path.substring(segment[2], segment[3]);\n\t\t\tif (!isMissingParams && !(key in params)) isMissingParams = true;\n\t\t\tusedParams[key] = params[key];\n\t\t\tconst prefix = path.substring(start, segment[1]);\n\t\t\tconst suffix = path.substring(segment[4], end);\n\t\t\tconst value = encodeParam(key, params, decoder) ?? \"undefined\";\n\t\t\tjoined += \"/\" + prefix + value + suffix;\n\t\t\tcontinue;\n\t\t}\n\t\tif (kind === 3) {\n\t\t\tconst key = path.substring(segment[2], segment[3]);\n\t\t\tconst valueRaw = params[key];\n\t\t\tif (valueRaw == null) continue;\n\t\t\tusedParams[key] = valueRaw;\n\t\t\tconst prefix = path.substring(start, segment[1]);\n\t\t\tconst suffix = path.substring(segment[4], end);\n\t\t\tconst value = encodeParam(key, params, decoder) ?? \"\";\n\t\t\tjoined += \"/\" + prefix + value + suffix;\n\t\t\tcontinue;\n\t\t}\n\t}\n\tif (path.endsWith(\"/\")) joined += \"/\";\n\treturn {\n\t\tusedParams,\n\t\tinterpolatedPath: joined || \"/\",\n\t\tisMissingParams\n\t};\n}\nfunction encodePathParam(value, decoder) {\n\tconst encoded = encodeURIComponent(value);\n\treturn decoder?.(encoded) ?? encoded;\n}\n//#endregion\nexport { cleanPath, compileDecodeCharMap, exactPathTest, interpolatePath, joinPaths, removeTrailingSlash, resolvePath, trimPath, trimPathLeft, trimPathRight };\n\n//# sourceMappingURL=path.js.map","//#region src/not-found.ts\n/**\n* Create a not-found error object recognized by TanStack Router.\n*\n* Throw this from loaders/actions to trigger the nearest `notFoundComponent`.\n* Use `routeId` to target a specific route's not-found boundary. If `throw`\n* is true, the error is thrown instead of returned.\n*\n* @param options Optional settings including `routeId`, `headers`, and `throw`.\n* @returns A not-found error object that can be thrown or returned.\n* @link https://tanstack.com/router/latest/docs/router/framework/react/api/router/notFoundFunction\n*/\nfunction notFound(options = {}) {\n\toptions.isNotFound = true;\n\tif (options.throw) throw options;\n\treturn options;\n}\n/** Determine if a value is a TanStack Router not-found error. */\nfunction isNotFound(obj) {\n\treturn obj?.isNotFound === true;\n}\n//#endregion\nexport { isNotFound, notFound };\n\n//# sourceMappingURL=not-found.js.map","import { isServer } from \"@tanstack/router-core/isServer\";\n//#region src/scroll-restoration.ts\nfunction getSafeSessionStorage() {\n\ttry {\n\t\treturn sessionStorage;\n\t} catch {\n\t\treturn;\n\t}\n}\nconst storageKey = \"tsr-scroll-restoration-v1_3\";\nconst safeSessionStorage = getSafeSessionStorage();\nfunction createScrollRestorationCache() {\n\ttry {\n\t\treturn JSON.parse(safeSessionStorage?.getItem(\"tsr-scroll-restoration-v1_3\") || \"{}\");\n\t} catch {\n\t\treturn {};\n\t}\n}\nfunction persistScrollRestorationCache() {\n\ttry {\n\t\tsafeSessionStorage?.setItem(storageKey, JSON.stringify(scrollRestorationCache));\n\t} catch {\n\t\tif (process.env.NODE_ENV !== \"production\") console.warn(\"[ts-router] Could not persist scroll restoration state to sessionStorage.\");\n\t}\n}\nconst scrollRestorationCache = /* @__PURE__ */ createScrollRestorationCache();\nconst scrollRestorationIdAttribute = \"data-scroll-restoration-id\";\n/**\n* The default `getKey` function for `useScrollRestoration`.\n* It returns the `key` from the location state or the `href` of the location.\n*\n* The `location.href` is used as a fallback to support the use case where the location state is not available like the initial render.\n*/\nconst defaultGetScrollRestorationKey = (location) => {\n\treturn location.state.__TSR_key || location.href;\n};\nfunction getScrollRestorationSelector(element) {\n\tconst attrId = element.getAttribute(scrollRestorationIdAttribute);\n\tif (attrId) return `[${scrollRestorationIdAttribute}=\"${attrId}\"]`;\n\tlet selector = \"\";\n\tlet el = element;\n\tlet parent;\n\twhile (parent = el.parentNode) {\n\t\tlet index = 1;\n\t\tlet sibling = el;\n\t\twhile (sibling = sibling.previousElementSibling) index++;\n\t\tconst part = `${el.localName}:nth-child(${index})`;\n\t\tselector = selector ? `${part} > ${selector}` : part;\n\t\tel = parent;\n\t}\n\treturn selector;\n}\nfunction getElementScrollRestorationEntry(router, options) {\n\tconst entries = scrollRestorationCache[(options.getKey || defaultGetScrollRestorationKey)(router.latestLocation)];\n\tif (!entries) return;\n\tif (options.id) return entries[`[${scrollRestorationIdAttribute}=\"${options.id}\"]`];\n\tconst element = options.getElement?.();\n\tif (!element) return;\n\treturn entries[element === window ? windowScrollTarget : getScrollRestorationSelector(element)];\n}\nlet ignoreScroll = false;\nconst windowScrollTarget = \"window\";\nfunction getElement(selector) {\n\ttry {\n\t\treturn typeof selector === \"function\" ? selector() : document.querySelector(selector);\n\t} catch {}\n}\nfunction getScrollToTopElements(scrollToTopSelectors) {\n\tconst elements = /* @__PURE__ */ new Set();\n\tfor (const selector of scrollToTopSelectors) {\n\t\tif (selector === windowScrollTarget) continue;\n\t\tconst element = getElement(selector);\n\t\tif (element) elements.add(element);\n\t}\n\treturn elements;\n}\nfunction setupScrollRestoration(router, force) {\n\tconst shouldSetupScrollRestoration = force ?? router.options.scrollRestoration;\n\tconst scroll = router._scroll;\n\tif (shouldSetupScrollRestoration) scroll.restoring = true;\n\tif (isServer ?? router.isServer) return;\n\tconst getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n\tconst trackedScrollTargets = /* @__PURE__ */ new Set();\n\tconst snapshotCurrentScrollTargets = (restoreKey) => {\n\t\tconst keyEntry = scrollRestorationCache[restoreKey] ||= {};\n\t\tfor (const target of trackedScrollTargets) if (target === document) keyEntry[windowScrollTarget] = {\n\t\t\tscrollX,\n\t\t\tscrollY\n\t\t};\n\t\telse if (target.isConnected) keyEntry[getScrollRestorationSelector(target)] = {\n\t\t\tscrollX: target.scrollLeft,\n\t\t\tscrollY: target.scrollTop\n\t\t};\n\t};\n\tif (shouldSetupScrollRestoration && !scroll.restoration) {\n\t\tscroll.restoration = true;\n\t\tignoreScroll = false;\n\t\thistory.scrollRestoration = \"manual\";\n\t\tdocument.addEventListener(\"scroll\", (event) => {\n\t\t\tif (ignoreScroll) return;\n\t\t\ttrackedScrollTargets.add(event.target);\n\t\t}, true);\n\t\trouter.subscribe(\"onBeforeLoad\", (event) => {\n\t\t\tif (event.fromLocation) snapshotCurrentScrollTargets(getKey(event.fromLocation));\n\t\t\ttrackedScrollTargets.clear();\n\t\t});\n\t\taddEventListener(\"pagehide\", () => {\n\t\t\tsnapshotCurrentScrollTargets(getKey(router.stores.resolvedLocation.get() ?? router.stores.location.get()));\n\t\t\tpersistScrollRestorationCache();\n\t\t});\n\t}\n\tif (scroll.reset) return;\n\tscroll.reset = true;\n\trouter.subscribe(\"onRendered\", (event) => {\n\t\tconst behavior = router.options.scrollRestorationBehavior;\n\t\tconst scrollToTopSelectors = router.options.scrollToTopSelectors;\n\t\tconst shouldResetScroll = scroll.next;\n\t\tconst hashNavigation = scroll.hash;\n\t\tlet scrollToTopElements;\n\t\ttrackedScrollTargets.clear();\n\t\tscroll.next = true;\n\t\tscroll.hash = false;\n\t\tif (typeof router.options.scrollRestoration === \"function\" && !router.options.scrollRestoration({ location: router.latestLocation })) return;\n\t\tconst cacheKey = getKey(event.toLocation);\n\t\tconst fromCacheKey = event.fromLocation && getKey(event.fromLocation);\n\t\tif (scroll.restoring && fromCacheKey && fromCacheKey !== cacheKey) {\n\t\t\tconst fromElementEntries = scrollRestorationCache[fromCacheKey];\n\t\t\tif (fromElementEntries) {\n\t\t\t\tlet toElementEntries = scrollRestorationCache[cacheKey];\n\t\t\t\tfor (const elementSelector in fromElementEntries) {\n\t\t\t\t\tif (elementSelector === windowScrollTarget) {\n\t\t\t\t\t\tif (shouldResetScroll) continue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst element = getElement(elementSelector);\n\t\t\t\t\t\tif (!element) continue;\n\t\t\t\t\t\tif (shouldResetScroll && scrollToTopSelectors) {\n\t\t\t\t\t\t\tscrollToTopElements ??= getScrollToTopElements(scrollToTopSelectors);\n\t\t\t\t\t\t\tif (scrollToTopElements.has(element)) continue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!toElementEntries) toElementEntries = scrollRestorationCache[cacheKey] = {};\n\t\t\t\t\ttoElementEntries[elementSelector] ??= fromElementEntries[elementSelector];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tignoreScroll = true;\n\t\ttry {\n\t\t\tconst hash = event.toLocation.hash;\n\t\t\tconst hashScrollIntoViewOptions = event.toLocation.state.__hashScrollIntoViewOptions ?? true;\n\t\t\tlet windowRestored = false;\n\t\t\tif (shouldResetScroll) {\n\t\t\t\tif (!hash && scrollToTopSelectors) scrollToTopElements ??= getScrollToTopElements(scrollToTopSelectors);\n\t\t\t\tconst skipWindowRestore = hash && hashScrollIntoViewOptions && hashNavigation;\n\t\t\t\tconst elementEntries = scroll.restoring ? scrollRestorationCache[cacheKey] : void 0;\n\t\t\t\tif (elementEntries) for (const elementSelector in elementEntries) {\n\t\t\t\t\tconst { scrollX, scrollY } = elementEntries[elementSelector];\n\t\t\t\t\tif (elementSelector === windowScrollTarget) {\n\t\t\t\t\t\tif (skipWindowRestore) continue;\n\t\t\t\t\t\tscrollTo({\n\t\t\t\t\t\t\ttop: scrollY,\n\t\t\t\t\t\t\tleft: scrollX,\n\t\t\t\t\t\t\tbehavior\n\t\t\t\t\t\t});\n\t\t\t\t\t\twindowRestored = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst element = getElement(elementSelector);\n\t\t\t\t\t\tif (element) {\n\t\t\t\t\t\t\telement.scrollLeft = scrollX;\n\t\t\t\t\t\t\telement.scrollTop = scrollY;\n\t\t\t\t\t\t\tscrollToTopElements?.delete(element);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!hash) {\n\t\t\t\t\tconst scrollOptions = {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tbehavior\n\t\t\t\t\t};\n\t\t\t\t\tif (!windowRestored) scrollTo(scrollOptions);\n\t\t\t\t\tif (scrollToTopElements) for (const element of scrollToTopElements) element.scrollTo(scrollOptions);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!windowRestored && hash && hashScrollIntoViewOptions) document.getElementById(hash)?.scrollIntoView(hashScrollIntoViewOptions);\n\t\t} finally {\n\t\t\tignoreScroll = false;\n\t\t}\n\t});\n}\n//#endregion\nexport { defaultGetScrollRestorationKey, getElementScrollRestorationEntry, setupScrollRestoration, storageKey };\n\n//# sourceMappingURL=scroll-restoration.js.map","//#region src/qss.ts\n/**\n* Program is a reimplementation of the `qss` package:\n* Copyright (c) Luke Edwards luke.edwards05@gmail.com, MIT License\n* https://github.com/lukeed/qss/blob/master/license.md\n*\n* This reimplementation uses modern browser APIs\n* (namely URLSearchParams) and TypeScript while still\n* maintaining the original functionality and interface.\n*\n* Update: this implementation has also been mangled to\n* fit exactly our use-case (single value per key in encoding).\n*/\n/**\n* Encodes an object into a query string.\n* @param obj - The object to encode into a query string.\n* @param stringify - An optional custom stringify function.\n* @returns The encoded query string.\n* @example\n* ```\n* // Example input: encode({ token: 'foo', key: 'value' })\n* // Expected output: \"token=foo&key=value\"\n* ```\n*/\nfunction encode(obj, stringify = String) {\n\tconst result = new URLSearchParams();\n\tfor (const key in obj) {\n\t\tconst val = obj[key];\n\t\tif (val !== void 0) result.set(key, stringify(val));\n\t}\n\treturn result.toString();\n}\n/**\n* Converts a string value to its appropriate type (string, number, boolean).\n* @param mix - The string value to convert.\n* @returns The converted value.\n* @example\n* // Example input: toValue(\"123\")\n* // Expected output: 123\n*/\nfunction toValue(str) {\n\tif (!str) return \"\";\n\tif (str === \"false\") return false;\n\tif (str === \"true\") return true;\n\treturn +str * 0 === 0 && +str + \"\" === str ? +str : str;\n}\n/**\n* Decodes a query string into an object.\n* @param str - The query string to decode.\n* @returns The decoded key-value pairs in an object format.\n* @example\n* // Example input: decode(\"token=foo&key=value\")\n* // Expected output: { \"token\": \"foo\", \"key\": \"value\" }\n*/\nfunction decode(str) {\n\tconst searchParams = new URLSearchParams(str);\n\tconst result = Object.create(null);\n\tfor (const [key, value] of searchParams.entries()) {\n\t\tconst previousValue = result[key];\n\t\tif (previousValue == null) result[key] = toValue(value);\n\t\telse if (Array.isArray(previousValue)) previousValue.push(toValue(value));\n\t\telse result[key] = [previousValue, toValue(value)];\n\t}\n\treturn result;\n}\n//#endregion\nexport { decode, encode };\n\n//# sourceMappingURL=qss.js.map","import { decode, encode } from \"./qss.js\";\n//#region src/searchParams.ts\nconst jsonStart = /^(?:\\s|[\"[{\\d-]|fa|nu|tr)/;\n/** Default `parseSearch` that strips leading '?' and JSON-parses values. */\nconst defaultParseSearch = parseSearchWith(JSON.parse);\n/** Default `stringifySearch` using JSON.stringify for complex values. */\nconst defaultStringifySearch = stringifySearchWith(JSON.stringify, JSON.parse);\n/**\n* Build a `parseSearch` function using a provided JSON-like parser.\n*\n* The returned function strips a leading `?`, decodes values, and attempts to\n* JSON-parse string values using the given `parser`.\n*\n* @param parser Function to parse a string value (e.g. `JSON.parse`).\n* @returns A `parseSearch` function compatible with `Router` options.\n* @link https://tanstack.com/router/latest/docs/framework/react/guide/custom-search-param-serialization\n*/\nfunction parseSearchWith(parser) {\n\treturn (searchStr) => {\n\t\tif (searchStr[0] === \"?\") searchStr = searchStr.substring(1);\n\t\tconst query = decode(searchStr);\n\t\tfor (const key in query) {\n\t\t\tconst value = query[key];\n\t\t\tif (typeof value === \"string\") try {\n\t\t\t\tquery[key] = parser(value);\n\t\t\t} catch (_err) {}\n\t\t}\n\t\treturn query;\n\t};\n}\n/**\n* Build a `stringifySearch` function using a provided serializer.\n*\n* Non-primitive values are serialized with `stringify`. If a `parser` is\n* supplied, string values that are parseable are re-serialized to ensure\n* symmetry with `parseSearch`.\n*\n* @param stringify Function to serialize a value (e.g. `JSON.stringify`).\n* @param parser Optional parser to detect parseable strings.\n* @returns A `stringifySearch` function compatible with `Router` options.\n* @link https://tanstack.com/router/latest/docs/framework/react/guide/custom-search-param-serialization\n*/\nfunction stringifySearchWith(stringify, parser) {\n\tconst isJsonParser = parser === JSON.parse;\n\tfunction stringifyValue(val) {\n\t\tif (val && typeof val === \"object\") try {\n\t\t\treturn stringify(val);\n\t\t} catch (_err) {}\n\t\telse if (parser && typeof val === \"string\") {\n\t\t\tif (isJsonParser && !jsonStart.test(val)) return val;\n\t\t\ttry {\n\t\t\t\tparser(val);\n\t\t\t\treturn stringify(val);\n\t\t\t} catch (_err) {}\n\t\t}\n\t\treturn val;\n\t}\n\treturn (search) => {\n\t\tconst searchStr = encode(search, stringifyValue);\n\t\treturn searchStr ? `?${searchStr}` : \"\";\n\t};\n}\n//#endregion\nexport { defaultParseSearch, defaultStringifySearch, parseSearchWith, stringifySearchWith };\n\n//# sourceMappingURL=searchParams.js.map","//#region src/root.ts\n/** Stable identifier used for the root route in a route tree. */\nconst rootRouteId = \"__root__\";\n//#endregion\nexport { rootRouteId };\n\n//# sourceMappingURL=root.js.map","//#region src/redirect.ts\n/**\n* Create a redirect Response understood by TanStack Router.\n*\n* Use from route `loader`/`beforeLoad` or server functions to trigger a\n* navigation. If `throw: true` is set, the redirect is thrown instead of\n* returned. When an absolute `href` is supplied and `reloadDocument` is not\n* set, a full-document navigation is inferred.\n*\n* @param opts Options for the redirect. Common fields:\n* - `href`: absolute URL for external redirects; infers `reloadDocument`.\n* - `statusCode`: HTTP status code to use (defaults to 307).\n* - `headers`: additional headers to include on the Response.\n* - Standard navigation options like `to`, `params`, `search`, `replace`,\n* and `reloadDocument` for internal redirects.\n* @returns A Response augmented with router navigation options.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/redirectFunction\n*/\nfunction redirect(opts) {\n\topts.statusCode = opts.statusCode || opts.code || 307;\n\tif (!opts._builtLocation && !opts.reloadDocument && typeof opts.href === \"string\") try {\n\t\tnew URL(opts.href);\n\t\topts.reloadDocument = true;\n\t} catch {}\n\tconst headers = new Headers(opts.headers);\n\tif (opts.href && headers.get(\"Location\") === null) headers.set(\"Location\", opts.href);\n\tconst response = new Response(null, {\n\t\tstatus: opts.statusCode,\n\t\theaders\n\t});\n\tresponse.options = opts;\n\tif (opts.throw) throw response;\n\treturn response;\n}\n/** Check whether a value is a TanStack Router redirect Response. */\n/** Check whether a value is a TanStack Router redirect Response. */\nfunction isRedirect(obj) {\n\treturn obj instanceof Response && !!obj.options;\n}\n/** True if value is a redirect with a resolved `href` location. */\n/** True if value is a redirect with a resolved `href` location. */\nfunction isResolvedRedirect(obj) {\n\treturn isRedirect(obj) && !!obj.options.href;\n}\n/** Parse a serialized redirect object back into a redirect Response. */\n/** Parse a serialized redirect object back into a redirect Response. */\nfunction parseRedirect(obj) {\n\tif (obj !== null && typeof obj === \"object\" && obj.isSerializedRedirect) return redirect(obj);\n}\n//#endregion\nexport { isRedirect, isResolvedRedirect, parseRedirect, redirect };\n\n//# sourceMappingURL=redirect.js.map","import { joinPaths, trimPath } from \"./path.js\";\n//#region src/rewrite.ts\n/** Compose multiple rewrite pairs into a single in/out rewrite. */\nfunction composeRewrites(rewrites) {\n\treturn {\n\t\tinput: ({ url }) => {\n\t\t\tfor (const rewrite of rewrites) url = executeRewriteInput(rewrite, url);\n\t\t\treturn url;\n\t\t},\n\t\toutput: ({ url }) => {\n\t\t\tfor (let i = rewrites.length - 1; i >= 0; i--) url = executeRewriteOutput(rewrites[i], url);\n\t\t\treturn url;\n\t\t}\n\t};\n}\n/** Create a rewrite pair that strips/adds a basepath on input/output. */\nfunction rewriteBasepath(opts) {\n\tconst trimmedBasepath = trimPath(opts.basepath);\n\tconst normalizedBasepath = `/${trimmedBasepath}`;\n\tconst checkBasepath = opts.caseSensitive ? normalizedBasepath : normalizedBasepath.toLowerCase();\n\tconst checkBasepathWithSlash = `${checkBasepath}/`;\n\treturn {\n\t\tinput: ({ url }) => {\n\t\t\tconst pathname = opts.caseSensitive ? url.pathname : url.pathname.toLowerCase();\n\t\t\tif (pathname === checkBasepath) url.pathname = \"/\";\n\t\t\telse if (pathname.startsWith(checkBasepathWithSlash)) url.pathname = url.pathname.slice(normalizedBasepath.length);\n\t\t\treturn url;\n\t\t},\n\t\toutput: ({ url }) => {\n\t\t\turl.pathname = joinPaths([\n\t\t\t\t\"/\",\n\t\t\t\ttrimmedBasepath,\n\t\t\t\turl.pathname\n\t\t\t]);\n\t\t\treturn url;\n\t\t}\n\t};\n}\n/** Execute a location input rewrite if provided. */\nfunction executeRewriteInput(rewrite, url) {\n\tconst res = rewrite?.input?.({ url });\n\tif (res) {\n\t\tif (typeof res === \"string\") return new URL(res);\n\t\telse if (res instanceof URL) return res;\n\t}\n\treturn url;\n}\n/** Execute a location output rewrite if provided. */\nfunction executeRewriteOutput(rewrite, url) {\n\tconst res = rewrite?.output?.({ url });\n\tif (res) {\n\t\tif (typeof res === \"string\") return new URL(res);\n\t\telse if (res instanceof URL) return res;\n\t}\n\treturn url;\n}\n//#endregion\nexport { composeRewrites, executeRewriteInput, executeRewriteOutput, rewriteBasepath };\n\n//# sourceMappingURL=rewrite.js.map","import { arraysEqual, functionalUpdate } from \"./utils.js\";\n//#region src/stores.ts\n/** SSR non-reactive createMutableStore */\nfunction createNonReactiveMutableStore(initialValue) {\n\tlet value = initialValue;\n\treturn {\n\t\tget() {\n\t\t\treturn value;\n\t\t},\n\t\tset(nextOrUpdater) {\n\t\t\tvalue = functionalUpdate(nextOrUpdater, value);\n\t\t}\n\t};\n}\n/** SSR non-reactive createReadonlyStore */\nfunction createNonReactiveReadonlyStore(read) {\n\treturn { get() {\n\t\treturn read();\n\t} };\n}\nfunction createRouterStores(initialLocation, config) {\n\tconst { createMutableStore, createReadonlyStore, batch } = config;\n\tconst byRoute = /* @__PURE__ */ new Map();\n\tconst status = createMutableStore(\"idle\");\n\tconst location = createMutableStore(initialLocation);\n\tconst resolvedLocation = createMutableStore(void 0);\n\tconst ids = createMutableStore([]);\n\tconst matches = createReadonlyStore(() => ids.get().map((id) => byRoute.get(id).get()));\n\tconst __store = createReadonlyStore(() => ({\n\t\tstatus: status.get(),\n\t\tisLoading: status.get() === \"pending\",\n\t\tmatches: matches.get(),\n\t\tlocation: location.get(),\n\t\tresolvedLocation: resolvedLocation.get()\n\t}));\n\tfunction getMatchStore(routeId) {\n\t\tlet matchStore = byRoute.get(routeId);\n\t\tif (!matchStore) {\n\t\t\tmatchStore = createMutableStore(void 0);\n\t\t\tbyRoute.set(routeId, matchStore);\n\t\t}\n\t\treturn matchStore;\n\t}\n\tconst store = {\n\t\tstatus,\n\t\tlocation,\n\t\tresolvedLocation,\n\t\tids,\n\t\tmatches,\n\t\tbyRoute,\n\t\t__store,\n\t\tgetMatchStore,\n\t\tsetMatches\n\t};\n\tfunction setMatches(nextMatches) {\n\t\tconst previousIds = ids.get();\n\t\tconst nextIds = nextMatches.map((match) => match.routeId);\n\t\tbatch(() => {\n\t\t\tif (!arraysEqual(previousIds, nextIds)) ids.set(nextIds);\n\t\t\tfor (const id of previousIds) if (!nextIds.includes(id)) byRoute.get(id).set(() => void 0);\n\t\t\tfor (const nextMatch of nextMatches) {\n\t\t\t\tconst matchStore = getMatchStore(nextMatch.routeId);\n\t\t\t\tif (matchStore.get() !== nextMatch) matchStore.set(nextMatch);\n\t\t\t}\n\t\t});\n\t}\n\treturn store;\n}\n//#endregion\nexport { createNonReactiveMutableStore, createNonReactiveReadonlyStore, createRouterStores };\n\n//# sourceMappingURL=stores.js.map","//#region src/index.ts\nvar stateIndexKey = \"__TSR_index\";\nvar popStateEvent = \"popstate\";\nvar beforeUnloadEvent = \"beforeunload\";\nfunction createHistory(opts) {\n\tlet location = opts.getLocation();\n\tconst subscribers = /* @__PURE__ */ new Set();\n\tconst notify = (action) => {\n\t\tlocation = opts.getLocation();\n\t\tsubscribers.forEach((subscriber) => subscriber({\n\t\t\tlocation,\n\t\t\taction\n\t\t}));\n\t};\n\tconst handleIndexChange = (action) => {\n\t\tif (opts.notifyOnIndexChange ?? true) notify(action);\n\t\telse location = opts.getLocation();\n\t};\n\tconst tryNavigation = async ({ task, navigateOpts, ...actionInfo }) => {\n\t\tif (navigateOpts?.ignoreBlocker ?? false) {\n\t\t\ttask();\n\t\t\treturn;\n\t\t}\n\t\tconst blockers = opts.getBlockers?.() ?? [];\n\t\tconst isPushOrReplace = actionInfo.type === \"PUSH\" || actionInfo.type === \"REPLACE\";\n\t\tif (typeof document !== \"undefined\" && blockers.length && isPushOrReplace) for (const blocker of blockers) {\n\t\t\tconst nextLocation = parseHref(actionInfo.path, actionInfo.state);\n\t\t\tif (await blocker.blockerFn({\n\t\t\t\tcurrentLocation: location,\n\t\t\t\tnextLocation,\n\t\t\t\taction: actionInfo.type\n\t\t\t})) {\n\t\t\t\topts.onBlocked?.();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\ttask();\n\t};\n\treturn {\n\t\tget location() {\n\t\t\treturn location;\n\t\t},\n\t\tget length() {\n\t\t\treturn opts.getLength();\n\t\t},\n\t\tsubscribers,\n\t\tsubscribe: (cb) => {\n\t\t\tsubscribers.add(cb);\n\t\t\treturn () => {\n\t\t\t\tsubscribers.delete(cb);\n\t\t\t};\n\t\t},\n\t\tpush: (path, state, navigateOpts) => {\n\t\t\tconst currentIndex = location.state[stateIndexKey];\n\t\t\tstate = assignKeyAndIndex(currentIndex + 1, state);\n\t\t\ttryNavigation({\n\t\t\t\ttask: () => {\n\t\t\t\t\topts.pushState(path, state);\n\t\t\t\t\tnotify({ type: \"PUSH\" });\n\t\t\t\t},\n\t\t\t\tnavigateOpts,\n\t\t\t\ttype: \"PUSH\",\n\t\t\t\tpath,\n\t\t\t\tstate\n\t\t\t});\n\t\t},\n\t\treplace: (path, state, navigateOpts) => {\n\t\t\tconst currentIndex = location.state[stateIndexKey];\n\t\t\tstate = assignKeyAndIndex(currentIndex, state);\n\t\t\ttryNavigation({\n\t\t\t\ttask: () => {\n\t\t\t\t\topts.replaceState(path, state);\n\t\t\t\t\tnotify({ type: \"REPLACE\" });\n\t\t\t\t},\n\t\t\t\tnavigateOpts,\n\t\t\t\ttype: \"REPLACE\",\n\t\t\t\tpath,\n\t\t\t\tstate\n\t\t\t});\n\t\t},\n\t\tgo: (index, navigateOpts) => {\n\t\t\ttryNavigation({\n\t\t\t\ttask: () => {\n\t\t\t\t\topts.go(index);\n\t\t\t\t\thandleIndexChange({\n\t\t\t\t\t\ttype: \"GO\",\n\t\t\t\t\t\tindex\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tnavigateOpts,\n\t\t\t\ttype: \"GO\"\n\t\t\t});\n\t\t},\n\t\tback: (navigateOpts) => {\n\t\t\ttryNavigation({\n\t\t\t\ttask: () => {\n\t\t\t\t\topts.back(navigateOpts?.ignoreBlocker ?? false);\n\t\t\t\t\thandleIndexChange({ type: \"BACK\" });\n\t\t\t\t},\n\t\t\t\tnavigateOpts,\n\t\t\t\ttype: \"BACK\"\n\t\t\t});\n\t\t},\n\t\tforward: (navigateOpts) => {\n\t\t\ttryNavigation({\n\t\t\t\ttask: () => {\n\t\t\t\t\topts.forward(navigateOpts?.ignoreBlocker ?? false);\n\t\t\t\t\thandleIndexChange({ type: \"FORWARD\" });\n\t\t\t\t},\n\t\t\t\tnavigateOpts,\n\t\t\t\ttype: \"FORWARD\"\n\t\t\t});\n\t\t},\n\t\tcanGoBack: () => location.state[stateIndexKey] !== 0,\n\t\tcreateHref: (str) => opts.createHref(str),\n\t\tblock: (blocker) => {\n\t\t\tif (!opts.setBlockers) return () => {};\n\t\t\tconst blockers = opts.getBlockers?.() ?? [];\n\t\t\topts.setBlockers([...blockers, blocker]);\n\t\t\treturn () => {\n\t\t\t\tconst blockers = opts.getBlockers?.() ?? [];\n\t\t\t\topts.setBlockers?.(blockers.filter((b) => b !== blocker));\n\t\t\t};\n\t\t},\n\t\tflush: () => opts.flush?.(),\n\t\tdestroy: () => opts.destroy?.(),\n\t\tnotify\n\t};\n}\nfunction assignKeyAndIndex(index, state) {\n\tif (!state) state = {};\n\tconst key = createRandomKey();\n\treturn {\n\t\t...state,\n\t\tkey,\n\t\t__TSR_key: key,\n\t\t[stateIndexKey]: index\n\t};\n}\n/**\n* Creates a history object that can be used to interact with the browser's\n* navigation. This is a lightweight API wrapping the browser's native methods.\n* It is designed to work with TanStack Router, but could be used as a standalone API as well.\n* IMPORTANT: This API implements history throttling via a microtask to prevent\n* excessive calls to the history API. In some browsers, calling history.pushState or\n* history.replaceState in quick succession can cause the browser to ignore subsequent\n* calls. This API smooths out those differences and ensures that your application\n* state will *eventually* match the browser state. In most cases, this is not a problem,\n* but if you need to ensure that the browser state is up to date, you can use the\n* `history.flush` method to immediately flush all pending state changes to the browser URL.\n* @param opts\n* @param opts.getHref A function that returns the current href (path + search + hash)\n* @param opts.createHref A function that takes a path and returns a href (path + search + hash)\n* @returns A history instance\n*/\nfunction createBrowserHistory(opts) {\n\tconst win = opts?.window ?? (typeof document !== \"undefined\" ? window : void 0);\n\tconst originalPushState = win.history.pushState;\n\tconst originalReplaceState = win.history.replaceState;\n\tlet blockers = [];\n\tconst _getBlockers = () => blockers;\n\tconst _setBlockers = (newBlockers) => blockers = newBlockers;\n\tconst createHref = opts?.createHref ?? ((path) => path);\n\tconst parseLocation = opts?.parseLocation ?? (() => parseHref(`${win.location.pathname}${win.location.search}${win.location.hash}`, win.history.state));\n\tif (!win.history.state?.__TSR_key && !win.history.state?.key) {\n\t\tconst addedKey = createRandomKey();\n\t\twin.history.replaceState({\n\t\t\t[stateIndexKey]: 0,\n\t\t\tkey: addedKey,\n\t\t\t__TSR_key: addedKey\n\t\t}, \"\");\n\t}\n\tlet currentLocation = parseLocation();\n\tlet rollbackLocation;\n\tlet nextPopIsGo = false;\n\tlet ignoreNextPop = false;\n\tlet skipBlockerNextPop = false;\n\tlet ignoreNextBeforeUnload = false;\n\tconst getLocation = () => currentLocation;\n\tlet next;\n\tconst flush = () => {\n\t\tif (!next) return;\n\t\thistory._ignoreSubscribers = true;\n\t\t(next[2] ? win.history.pushState : win.history.replaceState)(next[1], \"\", next[0]);\n\t\thistory._ignoreSubscribers = false;\n\t\tnext = void 0;\n\t\trollbackLocation = void 0;\n\t};\n\tconst queueHistoryAction = (isPush, destHref, state) => {\n\t\tconst href = createHref(destHref);\n\t\tconst hasPendingAction = !!next;\n\t\tif (!hasPendingAction) rollbackLocation = currentLocation;\n\t\tcurrentLocation = parseHref(destHref, state);\n\t\tnext = [\n\t\t\thref,\n\t\t\tstate,\n\t\t\tnext?.[2] || isPush\n\t\t];\n\t\tif (!hasPendingAction) queueMicrotask(() => flush());\n\t};\n\tconst onPushPop = (type) => {\n\t\tcurrentLocation = parseLocation();\n\t\thistory.notify({ type });\n\t};\n\tconst onPushPopEvent = async () => {\n\t\tif (ignoreNextPop) {\n\t\t\tignoreNextPop = false;\n\t\t\treturn;\n\t\t}\n\t\tconst nextLocation = parseLocation();\n\t\tconst delta = nextLocation.state[stateIndexKey] - currentLocation.state[stateIndexKey];\n\t\tconst isForward = delta === 1;\n\t\tconst isBack = delta === -1;\n\t\tconst isGo = !isForward && !isBack || nextPopIsGo;\n\t\tnextPopIsGo = false;\n\t\tconst action = isGo ? \"GO\" : isBack ? \"BACK\" : \"FORWARD\";\n\t\tconst notify = isGo ? {\n\t\t\ttype: \"GO\",\n\t\t\tindex: delta\n\t\t} : { type: isBack ? \"BACK\" : \"FORWARD\" };\n\t\tif (skipBlockerNextPop) skipBlockerNextPop = false;\n\t\telse {\n\t\t\tconst blockers = _getBlockers();\n\t\t\tif (typeof document !== \"undefined\" && blockers.length) {\n\t\t\t\tfor (const blocker of blockers) if (await blocker.blockerFn({\n\t\t\t\t\tcurrentLocation,\n\t\t\t\t\tnextLocation,\n\t\t\t\t\taction\n\t\t\t\t})) {\n\t\t\t\t\tignoreNextPop = true;\n\t\t\t\t\twin.history.go(1);\n\t\t\t\t\thistory.notify(notify);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcurrentLocation = parseLocation();\n\t\thistory.notify(notify);\n\t};\n\tconst onBeforeUnload = (e) => {\n\t\tif (ignoreNextBeforeUnload) {\n\t\t\tignoreNextBeforeUnload = false;\n\t\t\treturn;\n\t\t}\n\t\tlet shouldBlock = false;\n\t\tconst blockers = _getBlockers();\n\t\tif (typeof document !== \"undefined\" && blockers.length) for (const blocker of blockers) {\n\t\t\tconst shouldHaveBeforeUnload = blocker.enableBeforeUnload ?? true;\n\t\t\tif (shouldHaveBeforeUnload === true) {\n\t\t\t\tshouldBlock = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (typeof shouldHaveBeforeUnload === \"function\" && shouldHaveBeforeUnload() === true) {\n\t\t\t\tshouldBlock = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (shouldBlock) {\n\t\t\te.preventDefault();\n\t\t\treturn e.returnValue = \"\";\n\t\t}\n\t};\n\tconst history = createHistory({\n\t\tgetLocation,\n\t\tgetLength: () => win.history.length,\n\t\tpushState: (href, state) => queueHistoryAction(true, href, state),\n\t\treplaceState: (href, state) => queueHistoryAction(false, href, state),\n\t\tback: (ignoreBlocker) => {\n\t\t\tif (ignoreBlocker) skipBlockerNextPop = true;\n\t\t\tignoreNextBeforeUnload = true;\n\t\t\treturn win.history.back();\n\t\t},\n\t\tforward: (ignoreBlocker) => {\n\t\t\tif (ignoreBlocker) skipBlockerNextPop = true;\n\t\t\tignoreNextBeforeUnload = true;\n\t\t\twin.history.forward();\n\t\t},\n\t\tgo: (n) => {\n\t\t\tnextPopIsGo = true;\n\t\t\twin.history.go(n);\n\t\t},\n\t\tcreateHref: (href) => createHref(href),\n\t\tflush,\n\t\tdestroy: () => {\n\t\t\twin.history.pushState = originalPushState;\n\t\t\twin.history.replaceState = originalReplaceState;\n\t\t\twin.removeEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });\n\t\t\twin.removeEventListener(popStateEvent, onPushPopEvent);\n\t\t},\n\t\tonBlocked: () => {\n\t\t\tif (rollbackLocation && currentLocation !== rollbackLocation) currentLocation = rollbackLocation;\n\t\t},\n\t\tgetBlockers: _getBlockers,\n\t\tsetBlockers: _setBlockers,\n\t\tnotifyOnIndexChange: false\n\t});\n\twin.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });\n\twin.addEventListener(popStateEvent, onPushPopEvent);\n\twin.history.pushState = function(...args) {\n\t\tconst res = originalPushState.apply(win.history, args);\n\t\tif (!history._ignoreSubscribers) onPushPop(\"PUSH\");\n\t\treturn res;\n\t};\n\twin.history.replaceState = function(...args) {\n\t\tconst res = originalReplaceState.apply(win.history, args);\n\t\tif (!history._ignoreSubscribers) onPushPop(\"REPLACE\");\n\t\treturn res;\n\t};\n\treturn history;\n}\n/**\n* Create a hash-based history implementation.\n* Useful for static hosts or environments without server URL rewriting.\n* @link https://tanstack.com/router/latest/docs/framework/react/guide/history-types\n*/\nfunction createHashHistory(opts) {\n\tconst win = opts?.window ?? (typeof document !== \"undefined\" ? window : void 0);\n\treturn createBrowserHistory({\n\t\twindow: win,\n\t\tparseLocation: () => {\n\t\t\tconst hashSplit = win.location.hash.split(\"#\").slice(1);\n\t\t\tconst pathPart = hashSplit[0] ?? \"/\";\n\t\t\tconst searchPart = win.location.search;\n\t\t\tconst hashEntries = hashSplit.slice(1);\n\t\t\treturn parseHref(`${pathPart}${searchPart}${hashEntries.length === 0 ? \"\" : `#${hashEntries.join(\"#\")}`}`, win.history.state);\n\t\t},\n\t\tcreateHref: (href) => `${win.location.pathname}${win.location.search}#${href}`\n\t});\n}\n/**\n* Create an in-memory history implementation.\n* Ideal for server rendering, tests, and non-DOM environments.\n* @link https://tanstack.com/router/latest/docs/framework/react/guide/history-types\n*/\nfunction createMemoryHistory(opts = { initialEntries: [\"/\"] }) {\n\tconst entries = opts.initialEntries;\n\tlet index = opts.initialIndex ? Math.min(Math.max(opts.initialIndex, 0), entries.length - 1) : entries.length - 1;\n\tconst states = entries.map((_entry, index) => assignKeyAndIndex(index, void 0));\n\tconst getLocation = () => parseHref(entries[index], states[index]);\n\tlet blockers = [];\n\tconst _getBlockers = () => blockers;\n\tconst _setBlockers = (newBlockers) => blockers = newBlockers;\n\treturn createHistory({\n\t\tgetLocation,\n\t\tgetLength: () => entries.length,\n\t\tpushState: (path, state) => {\n\t\t\tif (index < entries.length - 1) {\n\t\t\t\tentries.splice(index + 1);\n\t\t\t\tstates.splice(index + 1);\n\t\t\t}\n\t\t\tstates.push(state);\n\t\t\tentries.push(path);\n\t\t\tindex = Math.max(entries.length - 1, 0);\n\t\t},\n\t\treplaceState: (path, state) => {\n\t\t\tstates[index] = state;\n\t\t\tentries[index] = path;\n\t\t},\n\t\tback: () => {\n\t\t\tindex = Math.max(index - 1, 0);\n\t\t},\n\t\tforward: () => {\n\t\t\tindex = Math.min(index + 1, entries.length - 1);\n\t\t},\n\t\tgo: (n) => {\n\t\t\tindex = Math.min(Math.max(index + n, 0), entries.length - 1);\n\t\t},\n\t\tcreateHref: (path) => path,\n\t\tgetBlockers: _getBlockers,\n\t\tsetBlockers: _setBlockers\n\t});\n}\n/**\n* Sanitize a path to prevent open redirect vulnerabilities.\n* Removes control characters and collapses leading double slashes.\n*/\nfunction sanitizePath(path) {\n\tlet sanitized = path.replace(/[\\x00-\\x1f\\x7f]/g, \"\");\n\tif (sanitized.startsWith(\"//\")) sanitized = \"/\" + sanitized.replace(/^\\/+/, \"\");\n\treturn sanitized;\n}\nfunction parseHref(href, state) {\n\tconst sanitizedHref = sanitizePath(href);\n\tconst hashIndex = sanitizedHref.indexOf(\"#\");\n\tconst searchIndex = sanitizedHref.indexOf(\"?\");\n\tconst addedKey = createRandomKey();\n\treturn {\n\t\thref: sanitizedHref,\n\t\tpathname: sanitizedHref.substring(0, hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : sanitizedHref.length),\n\t\thash: hashIndex > -1 ? sanitizedHref.substring(hashIndex) : \"\",\n\t\tsearch: searchIndex > -1 ? sanitizedHref.slice(searchIndex, hashIndex === -1 ? void 0 : hashIndex) : \"\",\n\t\tstate: state || {\n\t\t\t[stateIndexKey]: 0,\n\t\t\tkey: addedKey,\n\t\t\t__TSR_key: addedKey\n\t\t}\n\t};\n}\nfunction createRandomKey() {\n\treturn (Math.random() + 1).toString(36).substring(7);\n}\n//#endregion\nexport { createBrowserHistory, createHashHistory, createHistory, createMemoryHistory, parseHref };\n\n//# sourceMappingURL=index.js.map","import { DEFAULT_PROTOCOL_ALLOWLIST, decodePath, deepEqual, encodePathLikeUrl, findLast, functionalUpdate, hasKeys, isDangerousProtocol, last, nullReplaceEqualDeep, replaceEqualDeep } from \"./utils.js\";\nimport { createLRUCache } from \"./lru-cache.js\";\nimport { buildRouteBranch, findFlatMatch, findRouteMatch, findSingleMatch, processRouteMasks, processRouteTree } from \"./new-process-route-tree.js\";\nimport { cleanPath, compileDecodeCharMap, interpolatePath, resolvePath, trimPath, trimPathRight } from \"./path.js\";\nimport { isNotFound } from \"./not-found.js\";\nimport { setupScrollRestoration } from \"./scroll-restoration.js\";\nimport { defaultParseSearch, defaultStringifySearch } from \"./searchParams.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { isRedirect } from \"./redirect.js\";\nimport { loadClientRoute, loadRouteChunk, preloadClientRoute, refreshClientRoute, replaceRouteChunk } from \"./load-client.js\";\nimport { composeRewrites, executeRewriteInput, executeRewriteOutput, rewriteBasepath } from \"./rewrite.js\";\nimport { createRouterStores } from \"./stores.js\";\nimport { createBrowserHistory, parseHref } from \"@tanstack/history\";\nimport { isServer, loadServerRoute } from \"@tanstack/router-core/isServer\";\n//#region src/router.ts\nfunction routeNeedsLoad(route) {\n\treturn route.options.loader || route.options.beforeLoad || route.lazyFn || route.options.component?.preload || route.options.pendingComponent?.preload;\n}\n/**\n* Convert an unknown error into a minimal, serializable object.\n* Includes name and message (and stack in development).\n*/\nfunction defaultSerializeError(err) {\n\tif (err instanceof Error) {\n\t\tconst obj = {\n\t\t\tname: err.name,\n\t\t\tmessage: err.message\n\t\t};\n\t\tif (process.env.NODE_ENV === \"development\") obj.stack = err.stack;\n\t\treturn obj;\n\t}\n\treturn { data: err };\n}\n/** Options for configuring trailing-slash behavior. */\nconst trailingSlashOptions = {\n\talways: \"always\",\n\tnever: \"never\",\n\tpreserve: \"preserve\"\n};\n/**\n* Compute whether path, href or hash changed between previous and current\n* resolved locations.\n*/\nfunction getLocationChangeInfo(location, resolvedLocation) {\n\treturn {\n\t\tfromLocation: resolvedLocation,\n\t\ttoLocation: location,\n\t\tpathChanged: resolvedLocation?.pathname !== location.pathname,\n\t\threfChanged: resolvedLocation?.href !== location.href,\n\t\thashChanged: resolvedLocation?.hash !== location.hash\n\t};\n}\n/**\n* Return only state owned by the application, excluding volatile history\n* bookkeeping. Mask payloads (`__tempLocation`/`__tempKey`) are kept: they\n* distinguish otherwise-identical locations.\n*/\nfunction _getUserHistoryState({ key: _key, __TSR_key: _tsrKey, __TSR_index: _tsrIndex, __hashScrollIntoViewOptions: _hashScroll, ...state }) {\n\treturn state;\n}\n/** Run route lifecycle callbacks in leave/enter/stay phases. */\nfunction runRouteLifecycle(router, previous, matches, isCurrent) {\n\tfor (const match of previous) {\n\t\tif (isCurrent?.() === false) return;\n\t\tif (!matches.some((candidate) => candidate.routeId === match.routeId)) router.routesById[match.routeId].options.onLeave?.(match);\n\t}\n\tfor (const match of matches) {\n\t\tif (isCurrent?.() === false) return;\n\t\trouter.routesById[match.routeId].options[previous.some((candidate) => candidate.routeId === match.routeId) ? \"onStay\" : \"onEnter\"]?.(match);\n\t}\n}\n/**\n* Core, framework-agnostic router engine that powers TanStack Router.\n*\n* Provides navigation, matching, loading, preloading, caching and event APIs\n* used by framework adapters (React/Solid). Prefer framework helpers like\n* `createRouter` in app code.\n*\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/RouterType\n*/\nvar RouterCore = class {\n\t/**\n\t* @deprecated Use the `createRouter` function instead\n\t*/\n\tconstructor(options, getStoreConfig) {\n\t\tthis.tempLocationKey = `${Math.round(Math.random() * 1e7)}`;\n\t\tthis._scroll = { next: true };\n\t\tthis.subscribers = /* @__PURE__ */ new Set();\n\t\tthis._cache = /* @__PURE__ */ new Map();\n\t\tthis._committed = [];\n\t\tthis.routeBranchCache = /* @__PURE__ */ new WeakMap();\n\t\tthis.lightweightCache = /* @__PURE__ */ new WeakMap();\n\t\tthis.startTransition = async (fn) => {\n\t\t\tfn();\n\t\t\treturn false;\n\t\t};\n\t\tthis.update = (newOptions) => {\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (newOptions.notFoundRoute) console.warn(\"The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.\");\n\t\t\t}\n\t\t\tconst prevOptions = this.options;\n\t\t\tconst prevBasepath = this.basepath ?? prevOptions?.basepath ?? \"/\";\n\t\t\tconst basepathWasUnset = this.basepath === void 0;\n\t\t\tconst prevRewriteOption = prevOptions?.rewrite;\n\t\t\tthis.options = {\n\t\t\t\t...prevOptions,\n\t\t\t\t...newOptions\n\t\t\t};\n\t\t\tthis.isServer = this.options.isServer ?? isServer ?? typeof document === \"undefined\";\n\t\t\tthis.protocolAllowlist = new Set(this.options.protocolAllowlist);\n\t\t\tif (this.options.pathParamsAllowedCharacters) this.pathParamsDecoder = compileDecodeCharMap(this.options.pathParamsAllowedCharacters);\n\t\t\tif (!this.history || this.options.history && this.options.history !== this.history) if (!this.options.history) {\n\t\t\t\tif (!(isServer ?? this.isServer)) this.history = createBrowserHistory();\n\t\t\t} else this.history = this.options.history;\n\t\t\tthis.origin = this.options.origin;\n\t\t\tif (!this.origin) if (!(isServer ?? this.isServer) && window?.origin && window.origin !== \"null\") this.origin = window.origin;\n\t\t\telse this.origin = \"http://localhost\";\n\t\t\tif (this.history) this.updateLatestLocation();\n\t\t\tif (this.options.routeTree !== this.routeTree) {\n\t\t\t\tthis.routeTree = this.options.routeTree;\n\t\t\t\tlet processRouteTreeResult;\n\t\t\t\tif ((isServer ?? this.isServer) && process.env.NODE_ENV !== \"development\" && globalThis.__TSR_CACHE__ && globalThis.__TSR_CACHE__.routeTree === this.routeTree) {\n\t\t\t\t\tconst cached = globalThis.__TSR_CACHE__;\n\t\t\t\t\tthis.resolvePathCache = cached.resolvePathCache;\n\t\t\t\t\tprocessRouteTreeResult = cached.processRouteTreeResult;\n\t\t\t\t} else {\n\t\t\t\t\tthis.resolvePathCache = createLRUCache(1e3);\n\t\t\t\t\tprocessRouteTreeResult = this.buildRouteTree();\n\t\t\t\t\tif ((isServer ?? this.isServer) && process.env.NODE_ENV !== \"development\" && globalThis.__TSR_CACHE__ === void 0) globalThis.__TSR_CACHE__ = {\n\t\t\t\t\t\trouteTree: this.routeTree,\n\t\t\t\t\t\tprocessRouteTreeResult,\n\t\t\t\t\t\tresolvePathCache: this.resolvePathCache\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tthis.setRoutes(processRouteTreeResult);\n\t\t\t}\n\t\t\tif (!this.stores && this.latestLocation) {\n\t\t\t\tconst config = this.getStoreConfig(this);\n\t\t\t\tthis.batch = config.batch;\n\t\t\t\tthis.stores = createRouterStores(this.latestLocation, config);\n\t\t\t\tif (!(isServer ?? this.isServer)) setupScrollRestoration(this);\n\t\t\t}\n\t\t\tconst nextBasepath = this.options.basepath ?? \"/\";\n\t\t\tconst nextRewriteOption = this.options.rewrite;\n\t\t\tif (basepathWasUnset || prevBasepath !== nextBasepath || prevRewriteOption !== nextRewriteOption) {\n\t\t\t\tthis.basepath = nextBasepath;\n\t\t\t\tconst rewrites = [];\n\t\t\t\tconst trimmed = trimPath(nextBasepath);\n\t\t\t\tif (trimmed && trimmed !== \"/\") rewrites.push(rewriteBasepath({ basepath: nextBasepath }));\n\t\t\t\tif (nextRewriteOption) rewrites.push(nextRewriteOption);\n\t\t\t\tthis.rewrite = rewrites.length === 0 ? void 0 : rewrites.length === 1 ? rewrites[0] : composeRewrites(rewrites);\n\t\t\t\tif (this.history) this.updateLatestLocation();\n\t\t\t\tif (this.stores) this.stores.location.set(this.latestLocation);\n\t\t\t}\n\t\t};\n\t\tthis.updateLatestLocation = () => {\n\t\t\tthis.latestLocation = this.parseLocation(this.history.location, this.latestLocation);\n\t\t};\n\t\tthis.buildRouteTree = () => {\n\t\t\tconst result = processRouteTree(this.routeTree, this.options.caseSensitive, (route, i) => {\n\t\t\t\troute.init({ originalIndex: i });\n\t\t\t});\n\t\t\tif (this.options.routeMasks) processRouteMasks(this.options.routeMasks, result.processedTree);\n\t\t\treturn result;\n\t\t};\n\t\tthis.subscribe = (eventType, fn) => {\n\t\t\tconst listener = {\n\t\t\t\teventType,\n\t\t\t\tfn\n\t\t\t};\n\t\t\tthis.subscribers.add(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.subscribers.delete(listener);\n\t\t\t};\n\t\t};\n\t\tthis.emit = (routerEvent) => {\n\t\t\tfor (const listener of this.subscribers) if (listener.eventType === routerEvent.type) try {\n\t\t\t\tlistener.fn(routerEvent);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t};\n\t\tthis.parseLocation = (locationToParse, previousLocation) => {\n\t\t\tconst parse = ({ pathname, search, hash, href, state }) => {\n\t\t\t\tif (!this.rewrite && !/[ \\x00-\\x1f\\x7f\\u0080-\\uffff]/.test(pathname)) {\n\t\t\t\t\tconst parsedSearch = this.options.parseSearch(search);\n\t\t\t\t\tconst searchStr = this.options.stringifySearch(parsedSearch);\n\t\t\t\t\treturn {\n\t\t\t\t\t\thref: pathname + searchStr + hash,\n\t\t\t\t\t\tpublicHref: pathname + searchStr + hash,\n\t\t\t\t\t\tpathname: decodePath(pathname).path,\n\t\t\t\t\t\texternal: false,\n\t\t\t\t\t\tsearchStr,\n\t\t\t\t\t\tsearch: nullReplaceEqualDeep(previousLocation?.search, parsedSearch),\n\t\t\t\t\t\thash: decodePath(hash.slice(1)).path,\n\t\t\t\t\t\tstate: replaceEqualDeep(previousLocation?.state, state)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst fullUrl = new URL(href, this.origin);\n\t\t\t\tconst url = executeRewriteInput(this.rewrite, fullUrl);\n\t\t\t\tconst parsedSearch = this.options.parseSearch(url.search);\n\t\t\t\tconst searchStr = this.options.stringifySearch(parsedSearch);\n\t\t\t\turl.search = searchStr;\n\t\t\t\treturn {\n\t\t\t\t\thref: url.href.replace(url.origin, \"\"),\n\t\t\t\t\tpublicHref: href,\n\t\t\t\t\tpathname: decodePath(url.pathname).path,\n\t\t\t\t\texternal: !!this.rewrite && url.origin !== this.origin,\n\t\t\t\t\tsearchStr,\n\t\t\t\t\tsearch: nullReplaceEqualDeep(previousLocation?.search, parsedSearch),\n\t\t\t\t\thash: decodePath(url.hash.slice(1)).path,\n\t\t\t\t\tstate: replaceEqualDeep(previousLocation?.state, state)\n\t\t\t\t};\n\t\t\t};\n\t\t\tconst location = parse(locationToParse);\n\t\t\tconst { __tempLocation, __tempKey } = location.state;\n\t\t\tif (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {\n\t\t\t\tconst parsedTempLocation = parse(__tempLocation);\n\t\t\t\tparsedTempLocation.state.key = location.state.key;\n\t\t\t\tparsedTempLocation.state.__TSR_key = location.state.__TSR_key;\n\t\t\t\tdelete parsedTempLocation.state.__tempLocation;\n\t\t\t\treturn {\n\t\t\t\t\t...parsedTempLocation,\n\t\t\t\t\tmaskedLocation: location\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn location;\n\t\t};\n\t\tthis.resolvePathWithBase = (from, path) => {\n\t\t\treturn resolvePath({\n\t\t\t\tbase: from,\n\t\t\t\tto: path.includes(\"//\") ? cleanPath(path) : path,\n\t\t\t\ttrailingSlash: this.options.trailingSlash,\n\t\t\t\tcache: this.resolvePathCache\n\t\t\t});\n\t\t};\n\t\tthis.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => {\n\t\t\tif (typeof pathnameOrNext === \"string\") return this.matchRoutesInternal({\n\t\t\t\tpathname: pathnameOrNext,\n\t\t\t\tsearch: locationSearchOrOpts\n\t\t\t}, opts);\n\t\t\treturn this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts);\n\t\t};\n\t\tthis.getMatchedRoutes = (pathname) => {\n\t\t\tconst rawParams = Object.create(null);\n\t\t\tconst match = findRouteMatch(trimPathRight(pathname), this.processedTree, true);\n\t\t\tif (match) Object.assign(rawParams, match.rawParams);\n\t\t\treturn [\n\t\t\t\tmatch?.branch || [this.routesById[\"__root__\"]],\n\t\t\t\trawParams,\n\t\t\t\tmatch?.route\n\t\t\t];\n\t\t};\n\t\tthis.buildLocation = (opts) => {\n\t\t\tconst build = (dest = {}) => {\n\t\t\t\tconst currentLocation = dest._fromLocation || this._pendingLocation || this.latestLocation;\n\t\t\t\tconst lightweightResult = this.matchRoutesLightweight(currentLocation);\n\t\t\t\tif (dest.from && process.env.NODE_ENV !== \"production\" && dest._isNavigate) {\n\t\t\t\t\tconst [allFromMatches] = this.getMatchedRoutes(dest.from);\n\t\t\t\t\tconst matchedFrom = findLast(lightweightResult[0], (d) => {\n\t\t\t\t\t\treturn comparePaths(d.fullPath, dest.from);\n\t\t\t\t\t});\n\t\t\t\t\tconst matchedCurrent = findLast(allFromMatches, (d) => {\n\t\t\t\t\t\treturn comparePaths(d.fullPath, lightweightResult[1]);\n\t\t\t\t\t});\n\t\t\t\t\tif (!matchedFrom && !matchedCurrent) console.warn(`Could not find match for from: ${dest.from}`);\n\t\t\t\t}\n\t\t\t\tconst defaultedFromPath = dest.unsafeRelative === \"path\" ? currentLocation.pathname : dest.from ?? lightweightResult[1];\n\t\t\t\tconst destTo = dest.to ? `${dest.to}` : void 0;\n\t\t\t\tconst fromSearch = lightweightResult[2];\n\t\t\t\tconst fromParams = Object.assign(Object.create(null), lightweightResult[3]);\n\t\t\t\tconst sourcePath = destTo?.charCodeAt(0) === 47 ? \"/\" : this.resolvePathWithBase(defaultedFromPath, \".\");\n\t\t\t\tconst nextTo = destTo ? this.resolvePathWithBase(sourcePath, destTo) : sourcePath;\n\t\t\t\tconst nextParams = resolveNextParams(dest.params, fromParams);\n\t\t\t\tconst destRoute = this.routesByPath[trimPathRight(nextTo)];\n\t\t\t\tlet destRoutes;\n\t\t\t\tif (destRoute) destRoutes = this.getRouteBranch(destRoute);\n\t\t\t\telse if (nextTo.includes(\"$\")) destRoutes = [];\n\t\t\t\telse {\n\t\t\t\t\tconst [matchedRoutes, rawParams, foundRoute] = this.getMatchedRoutes(nextTo);\n\t\t\t\t\tdestRoutes = matchedRoutes;\n\t\t\t\t\tif (this.options.notFoundRoute && (!foundRoute || foundRoute.path !== \"/\" && rawParams[\"**\"])) destRoutes = [...destRoutes, this.options.notFoundRoute];\n\t\t\t\t}\n\t\t\t\tif (destRoutes.length && hasKeys(nextParams)) for (const route of destRoutes) {\n\t\t\t\t\tconst fn = route.options.params?.stringify ?? route.options.stringifyParams;\n\t\t\t\t\tif (fn) try {\n\t\t\t\t\t\tObject.assign(nextParams, fn(nextParams));\n\t\t\t\t\t} catch {}\n\t\t\t\t}\n\t\t\t\tconst nextPathname = opts.leaveParams ? nextTo : decodePath(interpolatePath({\n\t\t\t\t\tpath: nextTo,\n\t\t\t\t\tparams: nextParams,\n\t\t\t\t\tdecoder: this.pathParamsDecoder,\n\t\t\t\t\tserver: this.isServer\n\t\t\t\t}).interpolatedPath).path;\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && destRoute && !opts.leaveParams) try {\n\t\t\t\t\tconst foundRoute = this.getMatchedRoutes(nextPathname)[2];\n\t\t\t\t\tif (foundRoute?.id !== destRoute.id) console.warn(`Generated path \"${nextPathname}\" for route \"${destRoute.id}\" matched route \"${foundRoute?.id}\" instead. This can happen when multiple route templates resolve to the same URL. Use the route template that matches the intended route, or adjust params.stringify if it changed the target path.`);\n\t\t\t\t} catch {}\n\t\t\t\tlet nextSearch = fromSearch;\n\t\t\t\tif (opts._includeValidateSearch && this.options.search?.strict) {\n\t\t\t\t\tconst validatedSearch = {};\n\t\t\t\t\tdestRoutes.forEach((route) => {\n\t\t\t\t\t\tif (route.options.validateSearch) try {\n\t\t\t\t\t\t\tObject.assign(validatedSearch, validateSearch(route.options.validateSearch, {\n\t\t\t\t\t\t\t\t...validatedSearch,\n\t\t\t\t\t\t\t\t...nextSearch\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t} catch {}\n\t\t\t\t\t});\n\t\t\t\t\tnextSearch = validatedSearch;\n\t\t\t\t}\n\t\t\t\tnextSearch = applySearchMiddleware(nextSearch, dest, destRoutes, opts._includeValidateSearch);\n\t\t\t\tnextSearch = nullReplaceEqualDeep(fromSearch, nextSearch);\n\t\t\t\tconst searchStr = this.options.stringifySearch(nextSearch);\n\t\t\t\tconst hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0;\n\t\t\t\tconst hashStr = hash ? `#${hash}` : \"\";\n\t\t\t\tlet nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {};\n\t\t\t\tnextState = replaceEqualDeep(currentLocation.state, nextState);\n\t\t\t\tconst fullPath = `${nextPathname}${searchStr}${hashStr}`;\n\t\t\t\tlet href;\n\t\t\t\tlet publicHref;\n\t\t\t\tlet external = false;\n\t\t\t\tif (this.rewrite) {\n\t\t\t\t\tconst url = new URL(fullPath, this.origin);\n\t\t\t\t\tconst rewrittenUrl = executeRewriteOutput(this.rewrite, url);\n\t\t\t\t\thref = url.href.replace(url.origin, \"\");\n\t\t\t\t\tif (rewrittenUrl.origin !== this.origin) {\n\t\t\t\t\t\tpublicHref = rewrittenUrl.href;\n\t\t\t\t\t\texternal = true;\n\t\t\t\t\t} else publicHref = rewrittenUrl.pathname + rewrittenUrl.search + rewrittenUrl.hash;\n\t\t\t\t} else {\n\t\t\t\t\thref = encodePathLikeUrl(fullPath);\n\t\t\t\t\tpublicHref = href;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tpublicHref,\n\t\t\t\t\thref,\n\t\t\t\t\tpathname: nextPathname,\n\t\t\t\t\tsearch: nextSearch,\n\t\t\t\t\tsearchStr,\n\t\t\t\t\tstate: nextState,\n\t\t\t\t\thash: hash ?? \"\",\n\t\t\t\t\texternal,\n\t\t\t\t\tunmaskOnReload: dest.unmaskOnReload\n\t\t\t\t};\n\t\t\t};\n\t\t\tconst next = build(opts);\n\t\t\tif (opts.mask) next.maskedLocation = build({\n\t\t\t\tfrom: opts.from,\n\t\t\t\t...opts.mask\n\t\t\t});\n\t\t\telse if (this.options.routeMasks) {\n\t\t\t\tconst match = findFlatMatch(next.pathname, this.processedTree);\n\t\t\t\tif (match) {\n\t\t\t\t\tconst params = Object.assign(Object.create(null), match.rawParams);\n\t\t\t\t\tconst { from: _from, params: maskParams, ...maskProps } = match.route;\n\t\t\t\t\tconst nextParams = resolveNextParams(maskParams, params);\n\t\t\t\t\tnext.maskedLocation = build({\n\t\t\t\t\t\tfrom: opts.from,\n\t\t\t\t\t\t...maskProps,\n\t\t\t\t\t\tparams: nextParams\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn next;\n\t\t};\n\t\tthis.commitLocation = async ({ viewTransition, ignoreBlocker, ...next }) => {\n\t\t\tlet historyAction;\n\t\t\tconst isSameLocation = trimPathRight(this.latestLocation.href) === trimPathRight(next.href) && deepEqual(_getUserHistoryState(next.state), _getUserHistoryState(this.latestLocation.state));\n\t\t\tconst previousCommitPromise = this._commitPromise;\n\t\t\tlet resolve;\n\t\t\tconst commitPromise = new Promise((done) => {\n\t\t\t\tresolve = done;\n\t\t\t});\n\t\t\tcommitPromise.resolve = () => {\n\t\t\t\tresolve();\n\t\t\t\tpreviousCommitPromise?.resolve();\n\t\t\t};\n\t\t\tthis._commitPromise = commitPromise;\n\t\t\tif (isSameLocation) this.load();\n\t\t\telse {\n\t\t\t\tlet { maskedLocation, hashScrollIntoView, ...nextHistory } = next;\n\t\t\t\tif (maskedLocation) {\n\t\t\t\t\tnextHistory = {\n\t\t\t\t\t\t...maskedLocation,\n\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t...maskedLocation.state,\n\t\t\t\t\t\t\t__tempKey: void 0,\n\t\t\t\t\t\t\t__tempLocation: {\n\t\t\t\t\t\t\t\t...nextHistory,\n\t\t\t\t\t\t\t\tsearch: nextHistory.searchStr,\n\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t...nextHistory.state,\n\t\t\t\t\t\t\t\t\t__tempKey: void 0,\n\t\t\t\t\t\t\t\t\t__tempLocation: void 0,\n\t\t\t\t\t\t\t\t\t__TSR_key: void 0,\n\t\t\t\t\t\t\t\t\tkey: void 0\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tif (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) nextHistory.state.__tempKey = this.tempLocationKey;\n\t\t\t\t}\n\t\t\t\tnextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true;\n\t\t\t\tthis.shouldViewTransition = viewTransition;\n\t\t\t\thistoryAction = next.replace ? \"REPLACE\" : \"PUSH\";\n\t\t\t\tthis.history[historyAction === \"REPLACE\" ? \"replace\" : \"push\"](nextHistory.publicHref, nextHistory.state, { ignoreBlocker });\n\t\t\t\tif (!this.history.subscribers.size) this.load({ action: { type: historyAction } });\n\t\t\t}\n\t\t\tthis._scroll.next = next.resetScroll ?? true;\n\t\t\treturn this._commitPromise;\n\t\t};\n\t\tthis.buildAndCommitLocation = ({ replace, resetScroll, hashScrollIntoView, viewTransition, ignoreBlocker, _redirects, href, ...rest } = {}) => {\n\t\t\tif (href) {\n\t\t\t\tconst currentIndex = this.history.location.state.__TSR_index;\n\t\t\t\tconst parsed = parseHref(href, { __TSR_index: replace ? currentIndex : currentIndex + 1 });\n\t\t\t\tconst hrefUrl = new URL(parsed.pathname, this.origin);\n\t\t\t\trest.to = executeRewriteInput(this.rewrite, hrefUrl).pathname;\n\t\t\t\trest.search = this.options.parseSearch(parsed.search);\n\t\t\t\trest.hash = parsed.hash.slice(1);\n\t\t\t}\n\t\t\tconst location = this.buildLocation({\n\t\t\t\t...rest,\n\t\t\t\t_includeValidateSearch: true\n\t\t\t});\n\t\t\tif (_redirects) location._redirects = _redirects;\n\t\t\tthis._pendingLocation = location;\n\t\t\tconst commitPromise = this.commitLocation({\n\t\t\t\t...location,\n\t\t\t\tviewTransition,\n\t\t\t\treplace,\n\t\t\t\tresetScroll,\n\t\t\t\thashScrollIntoView,\n\t\t\t\tignoreBlocker\n\t\t\t});\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tif (this._pendingLocation === location) this._pendingLocation = void 0;\n\t\t\t});\n\t\t\treturn commitPromise;\n\t\t};\n\t\tthis.navigate = async ({ to, reloadDocument, href, publicHref, ...rest }) => {\n\t\t\tlet hrefIsUrl = false;\n\t\t\tif (href) try {\n\t\t\t\tnew URL(`${href}`);\n\t\t\t\threfIsUrl = true;\n\t\t\t} catch {}\n\t\t\tif (hrefIsUrl && !reloadDocument) reloadDocument = true;\n\t\t\tif (reloadDocument) {\n\t\t\t\tif (to !== void 0 || !href) {\n\t\t\t\t\tconst location = this.buildLocation({\n\t\t\t\t\t\tto,\n\t\t\t\t\t\t...rest\n\t\t\t\t\t});\n\t\t\t\t\thref = href ?? location.publicHref;\n\t\t\t\t\tpublicHref = publicHref ?? location.publicHref;\n\t\t\t\t}\n\t\t\t\tconst reloadHref = !hrefIsUrl && publicHref ? publicHref : href;\n\t\t\t\tif (isDangerousProtocol(reloadHref, this.protocolAllowlist)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked navigation to dangerous protocol: ${reloadHref}`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!rest.ignoreBlocker) {\n\t\t\t\t\tconst blockers = this.history.getBlockers?.() ?? [];\n\t\t\t\t\tfor (const blocker of blockers) if (blocker?.blockerFn) {\n\t\t\t\t\t\tif (await blocker.blockerFn({\n\t\t\t\t\t\t\tcurrentLocation: this.latestLocation,\n\t\t\t\t\t\t\tnextLocation: this.latestLocation,\n\t\t\t\t\t\t\taction: \"PUSH\"\n\t\t\t\t\t\t})) return;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (rest.replace) window.location.replace(reloadHref);\n\t\t\t\telse window.location.href = reloadHref;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn this.buildAndCommitLocation({\n\t\t\t\t...rest,\n\t\t\t\thref,\n\t\t\t\tto,\n\t\t\t\t_isNavigate: true\n\t\t\t});\n\t\t};\n\t\tthis.load = async (opts) => {\n\t\t\tif (isServer ?? this.isServer) return loadServerRoute(this, opts);\n\t\t\tthis.updateLatestLocation();\n\t\t\tif (opts?.action) this._scroll.hash = opts.action.type === \"PUSH\" || opts.action.type === \"REPLACE\";\n\t\t\tawait loadClientRoute(this, opts);\n\t\t};\n\t\tthis.startViewTransition = (fn) => {\n\t\t\tconst shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition;\n\t\t\tthis.shouldViewTransition = void 0;\n\t\t\tif (shouldViewTransition && !(isServer ?? typeof document === \"undefined\") && typeof document.startViewTransition === \"function\") {\n\t\t\t\tlet startViewTransitionParams;\n\t\t\t\tif (typeof shouldViewTransition === \"object\" && window.CSS?.supports?.(\"selector(:active-view-transition-type(a))\")) {\n\t\t\t\t\tconst next = this.latestLocation;\n\t\t\t\t\tconst prevLocation = this.stores.resolvedLocation.get();\n\t\t\t\t\tconst resolvedViewTransitionTypes = typeof shouldViewTransition.types === \"function\" ? shouldViewTransition.types(getLocationChangeInfo(next, prevLocation)) : shouldViewTransition.types;\n\t\t\t\t\tif (resolvedViewTransitionTypes === false) return fn();\n\t\t\t\t\tstartViewTransitionParams = {\n\t\t\t\t\t\tupdate: fn,\n\t\t\t\t\t\ttypes: resolvedViewTransitionTypes\n\t\t\t\t\t};\n\t\t\t\t} else startViewTransitionParams = fn;\n\t\t\t\treturn document.startViewTransition(startViewTransitionParams).updateCallbackDone;\n\t\t\t}\n\t\t\treturn fn();\n\t\t};\n\t\tthis.invalidate = (opts) => {\n\t\t\tconst committedMatches = this._committed;\n\t\t\tconst filter = opts?.filter;\n\t\t\tconst preloads = this._preloads;\n\t\t\tconst invalidIds = new Set([\n\t\t\t\t...committedMatches,\n\t\t\t\t...this._cache.values(),\n\t\t\t\t...[...preloads?.values() ?? []].flat(),\n\t\t\t\t...this._tx?.[3] ?? []\n\t\t\t].filter((match) => !filter || filter(match)).map((match) => match.id));\n\t\t\tconst discardedPreloads = [];\n\t\t\tfor (const [controller, matches] of preloads ?? []) if (matches.some((match) => invalidIds.has(match.id))) {\n\t\t\t\tpreloads.delete(controller);\n\t\t\t\tdiscardedPreloads.push(controller);\n\t\t\t}\n\t\t\tconst invalidate = (d) => {\n\t\t\t\tif (invalidIds.has(d.id)) {\n\t\t\t\t\tconst route = this.routesById[d.routeId];\n\t\t\t\t\tconst next = {\n\t\t\t\t\t\t...d,\n\t\t\t\t\t\tinvalid: true,\n\t\t\t\t\t\t...(opts?.forcePending || d.status === \"error\" || d.status === \"notFound\") && routeNeedsLoad(route) ? {\n\t\t\t\t\t\t\tstatus: \"pending\",\n\t\t\t\t\t\t\terror: void 0\n\t\t\t\t\t\t} : void 0\n\t\t\t\t\t};\n\t\t\t\t\td._flight = void 0;\n\t\t\t\t\treturn next;\n\t\t\t\t}\n\t\t\t\treturn d;\n\t\t\t};\n\t\t\tthis._committed = committedMatches.map(invalidate);\n\t\t\tfor (const [id, match] of this._cache) if (invalidIds.has(id)) {\n\t\t\t\tmatch.invalid = true;\n\t\t\t\tif (opts?.forcePending) match.status = \"pending\";\n\t\t\t}\n\t\t\tfor (const id of invalidIds) this._flights?.delete(id);\n\t\t\tfor (const controller of discardedPreloads) controller.abort();\n\t\t\tthis.shouldViewTransition = false;\n\t\t\treturn this.load({ sync: opts?.sync });\n\t\t};\n\t\tthis.resolveRedirect = (redirect) => {\n\t\t\tconst locationHeader = redirect.headers.get(\"Location\");\n\t\t\tif (!redirect.options.href || redirect.options._builtLocation) {\n\t\t\t\tconst href = (redirect.options._builtLocation ?? this.buildLocation(redirect.options)).publicHref || \"/\";\n\t\t\t\tredirect.options.href = href;\n\t\t\t\tredirect.headers.set(\"Location\", href);\n\t\t\t} else if (locationHeader) try {\n\t\t\t\tconst url = new URL(locationHeader);\n\t\t\t\tif (this.origin && url.origin === this.origin) {\n\t\t\t\t\tconst href = url.pathname + url.search + url.hash;\n\t\t\t\t\tredirect.options.href = href;\n\t\t\t\t\tredirect.headers.set(\"Location\", href);\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t\tif (redirect.options.href && !redirect.options._builtLocation && isDangerousProtocol(redirect.options.href, this.protocolAllowlist)) throw new Error(process.env.NODE_ENV !== \"production\" ? `Redirect blocked: unsafe protocol in href \"${redirect.options.href}\". Allowed protocols: ${Array.from(this.protocolAllowlist).join(\", \")}.` : \"Redirect blocked: unsafe protocol\");\n\t\t\tif (!redirect.headers.get(\"Location\")) redirect.headers.set(\"Location\", redirect.options.href);\n\t\t\treturn redirect;\n\t\t};\n\t\tthis.clearCache = (opts) => {\n\t\t\tconst cached = this._cache;\n\t\t\tconst preloads = this._preloads;\n\t\t\tconst filter = opts?.filter;\n\t\t\tconst discarded = [];\n\t\t\tconst discardedIds = [];\n\t\t\tfor (const [id, match] of cached) if (!filter || filter(match)) {\n\t\t\t\tdiscardedIds.push(id);\n\t\t\t\tdiscarded.push(match);\n\t\t\t}\n\t\t\tconst abort = [];\n\t\t\tfor (const [controller, matches] of preloads ?? []) if (!filter || matches.some(filter)) {\n\t\t\t\tabort.push(controller);\n\t\t\t\tdiscarded.push(...matches);\n\t\t\t}\n\t\t\tfor (const id of discardedIds) cached.delete(id);\n\t\t\tfor (const controller of abort) preloads.delete(controller);\n\t\t\tfor (const match of discarded) {\n\t\t\t\tconst flight = match._flight;\n\t\t\t\tmatch._flight = void 0;\n\t\t\t\tif (flight && !--flight[2]) {\n\t\t\t\t\tif (this._flights?.get(match.id) === flight) this._flights.delete(match.id);\n\t\t\t\t\tabort.push(flight[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const controller of abort) controller.abort();\n\t\t};\n\t\tthis.loadRouteChunk = loadRouteChunk;\n\t\tthis.preloadRoute = (opts) => preloadClientRoute(this, opts);\n\t\tthis.matchRoute = (location, opts) => {\n\t\t\tconst matchLocation = {\n\t\t\t\t...location,\n\t\t\t\tto: location.to ? this.resolvePathWithBase(location.from || \"\", location.to) : void 0,\n\t\t\t\tparams: location.params || {},\n\t\t\t\tleaveParams: true\n\t\t\t};\n\t\t\tconst next = this.buildLocation(matchLocation);\n\t\t\tconst isPending = this.stores.status.get() === \"pending\";\n\t\t\tif (opts?.pending && !isPending) return false;\n\t\t\tconst baseLocation = opts?.pending ?? !isPending ? this.latestLocation : this.stores.resolvedLocation.get() || this.stores.location.get();\n\t\t\tconst match = findSingleMatch(next.pathname, opts?.caseSensitive ?? false, opts?.fuzzy ?? false, baseLocation.pathname, this.processedTree);\n\t\t\tif (!match) return false;\n\t\t\tif (location.params) {\n\t\t\t\tif (!deepEqual(match.rawParams, location.params, { partial: true })) return false;\n\t\t\t}\n\t\t\tif (opts?.includeSearch ?? true) return deepEqual(baseLocation.search, next.search, { partial: true }) ? match.rawParams : false;\n\t\t\treturn match.rawParams;\n\t\t};\n\t\tthis.getStoreConfig = getStoreConfig;\n\t\tthis.update({\n\t\t\tdefaultPreloadDelay: 50,\n\t\t\tdefaultPendingMs: 1e3,\n\t\t\tdefaultPendingMinMs: 500,\n\t\t\tcontext: void 0,\n\t\t\t...options,\n\t\t\tcaseSensitive: options.caseSensitive ?? false,\n\t\t\tnotFoundMode: options.notFoundMode ?? \"fuzzy\",\n\t\t\tstringifySearch: options.stringifySearch ?? defaultStringifySearch,\n\t\t\tparseSearch: options.parseSearch ?? defaultParseSearch,\n\t\t\tprotocolAllowlist: options.protocolAllowlist ?? DEFAULT_PROTOCOL_ALLOWLIST\n\t\t});\n\t\tif (!(isServer ?? typeof document === \"undefined\")) self.__TSR_ROUTER__ = this;\n\t}\n\tisShell() {\n\t\treturn !!this.options.isShell;\n\t}\n\tget state() {\n\t\treturn this.stores.__store.get();\n\t}\n\tsetRoutes({ routesById, routesByPath, processedTree }) {\n\t\tthis.routesById = routesById;\n\t\tthis.routesByPath = routesByPath;\n\t\tthis.processedTree = processedTree;\n\t\tconst notFoundRoute = this.options.notFoundRoute;\n\t\tif (notFoundRoute) {\n\t\t\tnotFoundRoute.init({ originalIndex: 99999999999 });\n\t\t\tthis.routesById[notFoundRoute.id] = notFoundRoute;\n\t\t}\n\t}\n\tgetRouteBranch(route) {\n\t\tlet branch = this.routeBranchCache.get(route);\n\t\tif (!branch) {\n\t\t\tbranch = buildRouteBranch(route);\n\t\t\tthis.routeBranchCache.set(route, branch);\n\t\t}\n\t\treturn branch;\n\t}\n\tmatchRoutesInternal(next, opts) {\n\t\tconst [initialMatchedRoutes, rawParams, foundRoute] = this.getMatchedRoutes(next.pathname);\n\t\tlet matchedRoutes = initialMatchedRoutes;\n\t\tlet isGlobalNotFound = false;\n\t\tif (foundRoute ? foundRoute.path !== \"/\" && rawParams[\"**\"] : trimPathRight(next.pathname)) if (this.options.notFoundRoute) matchedRoutes = [...matchedRoutes, this.options.notFoundRoute];\n\t\telse isGlobalNotFound = true;\n\t\tconst _notFoundRouteId = isGlobalNotFound ? findGlobalNotFoundRouteId(this.options.notFoundMode, matchedRoutes) : void 0;\n\t\tconst matches = new Array(matchedRoutes.length);\n\t\tconst committed = this._committed;\n\t\tconst previousAt = (route, index) => {\n\t\t\tconst match = committed[index];\n\t\t\treturn match?.routeId === route.id ? match : route === this.options.notFoundRoute ? committed.find((candidate) => candidate.routeId === route.id) : void 0;\n\t\t};\n\t\tlet strictParams;\n\t\tfor (let index = 0; index < matchedRoutes.length; index++) {\n\t\t\tconst route = matchedRoutes[index];\n\t\t\tconst parentMatch = matches[index - 1];\n\t\t\tlet preMatchSearch;\n\t\t\tlet strictMatchSearch;\n\t\t\tlet searchError;\n\t\t\t{\n\t\t\t\tconst parentSearch = parentMatch?.search ?? next.search;\n\t\t\t\tconst parentStrictSearch = parentMatch?._strictSearch ?? void 0;\n\t\t\t\ttry {\n\t\t\t\t\tconst strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? void 0;\n\t\t\t\t\tpreMatchSearch = {\n\t\t\t\t\t\t...parentSearch,\n\t\t\t\t\t\t...strictSearch\n\t\t\t\t\t};\n\t\t\t\t\tstrictMatchSearch = {\n\t\t\t\t\t\t...parentStrictSearch,\n\t\t\t\t\t\t...strictSearch\n\t\t\t\t\t};\n\t\t\t\t} catch (err) {\n\t\t\t\t\tlet searchParamError = err;\n\t\t\t\t\tif (!(err instanceof SearchParamError)) searchParamError = new SearchParamError(err.message, { cause: err });\n\t\t\t\t\tif (opts?.throwOnError) throw searchParamError;\n\t\t\t\t\tpreMatchSearch = parentSearch;\n\t\t\t\t\tstrictMatchSearch = {};\n\t\t\t\t\tsearchError = searchParamError;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet loaderDeps = \"\";\n\t\t\tlet loaderDepsHash = \"\";\n\t\t\ttry {\n\t\t\t\tloaderDeps = route.options.loaderDeps?.({ search: preMatchSearch }) ?? \"\";\n\t\t\t\tloaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) || \"\" : \"\";\n\t\t\t} catch (cause) {\n\t\t\t\tif (opts?.throwOnError) throw cause;\n\t\t\t\tsearchError ??= cause;\n\t\t\t}\n\t\t\tconst { interpolatedPath, usedParams } = interpolatePath({\n\t\t\t\tpath: route.fullPath,\n\t\t\t\tparams: rawParams,\n\t\t\t\tdecoder: this.pathParamsDecoder,\n\t\t\t\tserver: this.isServer\n\t\t\t});\n\t\t\tconst matchId = route.id + interpolatedPath + loaderDepsHash;\n\t\t\tconst previousMatch = previousAt(route, index);\n\t\t\tconst existingMatch = process.env.NODE_ENV !== \"production\" && opts?._rematerialize ? void 0 : this._cache.get(matchId) ?? (previousMatch?.id === matchId ? previousMatch : void 0);\n\t\t\tstrictParams = existingMatch?._strictParams ?? Object.assign(usedParams, strictParams);\n\t\t\tlet paramsError;\n\t\t\tif (!existingMatch) try {\n\t\t\t\textractStrictParams(route, strictParams);\n\t\t\t} catch (err) {\n\t\t\t\tif (isNotFound(err) || isRedirect(err)) paramsError = err;\n\t\t\t\telse paramsError = new PathParamError(err.message, { cause: err });\n\t\t\t\tif (opts?.throwOnError) throw paramsError;\n\t\t\t}\n\t\t\tconst cause = previousMatch ? \"stay\" : \"enter\";\n\t\t\tlet match;\n\t\t\tif (existingMatch) match = {\n\t\t\t\t...existingMatch,\n\t\t\t\tcause,\n\t\t\t\tsearch: previousMatch ? nullReplaceEqualDeep(previousMatch.search, preMatchSearch) : nullReplaceEqualDeep(existingMatch.search, preMatchSearch),\n\t\t\t\t_strictSearch: strictMatchSearch,\n\t\t\t\tsearchError\n\t\t\t};\n\t\t\telse {\n\t\t\t\tconst status = routeNeedsLoad(route) ? \"pending\" : \"success\";\n\t\t\t\tmatch = {\n\t\t\t\t\tid: matchId,\n\t\t\t\t\tssr: isServer ?? this.isServer ? void 0 : route.options.ssr,\n\t\t\t\t\tindex,\n\t\t\t\t\trouteId: route.id,\n\t\t\t\t\tparams: previousMatch?.params ?? strictParams,\n\t\t\t\t\t_strictParams: strictParams,\n\t\t\t\t\tpathname: interpolatedPath,\n\t\t\t\t\tupdatedAt: Date.now(),\n\t\t\t\t\tsearch: previousMatch ? nullReplaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch,\n\t\t\t\t\t_strictSearch: strictMatchSearch,\n\t\t\t\t\tsearchError,\n\t\t\t\t\tstatus,\n\t\t\t\t\tisFetching: false,\n\t\t\t\t\terror: void 0,\n\t\t\t\t\tparamsError,\n\t\t\t\t\tcontext: {},\n\t\t\t\t\tabortController: opts?._controller ?? new AbortController(),\n\t\t\t\t\tcause,\n\t\t\t\t\tloaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps,\n\t\t\t\t\tinvalid: false,\n\t\t\t\t\tpreload: false,\n\t\t\t\t\tstaticData: route.options.staticData || {},\n\t\t\t\t\tfullPath: route.fullPath\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst _notFound = _notFoundRouteId === route.id;\n\t\t\tif (match._notFound && !_notFound) match.error = void 0;\n\t\t\tmatch._notFound = _notFound;\n\t\t\tmatches[index] = match;\n\t\t}\n\t\tfor (let index = 0; index < matches.length; index++) {\n\t\t\tconst match = matches[index];\n\t\t\tmatch.params = match.cause === \"stay\" ? nullReplaceEqualDeep(match.params, strictParams) : strictParams;\n\t\t\tif (opts?._controller) match.context = {};\n\t\t}\n\t\treturn matches;\n\t}\n\t/**\n\t* Lightweight route matching for buildLocation.\n\t* Only computes fullPath, accumulated search, and params - skipping expensive\n\t* operations like AbortController, loaderDeps, and full match objects.\n\t*/\n\tmatchRoutesLightweight(location) {\n\t\tconst lastRouteId = last(this.stores.ids.get());\n\t\tconst lastStateMatch = lastRouteId ? this.stores.byRoute.get(lastRouteId).get() : void 0;\n\t\tconst lastStateMatchId = lastStateMatch?.id;\n\t\tconst cached = this.lightweightCache.get(location);\n\t\tif (cached && cached[0] === lastStateMatchId) return cached[1];\n\t\tconst [matchedRoutes, rawParams] = this.getMatchedRoutes(location.pathname);\n\t\tconst lastRoute = last(matchedRoutes);\n\t\tconst accumulatedSearch = { ...location.search };\n\t\tfor (const route of matchedRoutes) try {\n\t\t\tObject.assign(accumulatedSearch, validateSearch(route.options.validateSearch, accumulatedSearch));\n\t\t} catch {}\n\t\tconst canReuseParams = lastStateMatch && lastStateMatch.routeId === lastRoute.id && lastStateMatch.pathname === location.pathname;\n\t\tlet params;\n\t\tif (canReuseParams) params = lastStateMatch.params;\n\t\telse {\n\t\t\tconst strictParams = Object.assign(Object.create(null), rawParams);\n\t\t\tfor (const route of matchedRoutes) try {\n\t\t\t\textractStrictParams(route, strictParams);\n\t\t\t} catch {}\n\t\t\tparams = strictParams;\n\t\t}\n\t\tconst result = [\n\t\t\tmatchedRoutes,\n\t\t\tlastRoute.fullPath,\n\t\t\taccumulatedSearch,\n\t\t\tparams\n\t\t];\n\t\tthis.lightweightCache.set(location, [lastStateMatchId, result]);\n\t\treturn result;\n\t}\n};\n/**\n* In non-production environments,\n* augment the RouterCore class with a `_refreshRoute` method\n* dedicated to HMR.\n*/\nif (process.env.NODE_ENV !== \"production\") {\n\tRouterCore.prototype._replaceRouteChunk = replaceRouteChunk;\n\tRouterCore.prototype._refreshRoute = async function() {\n\t\tthis._serverResult = void 0;\n\t\tthis.updateLatestLocation();\n\t\tawait refreshClientRoute(this);\n\t};\n}\n/** Error thrown when search parameter validation fails. */\nvar SearchParamError = class extends Error {};\n/** Error thrown when path parameter parsing/validation fails. */\nvar PathParamError = class extends Error {};\nconst normalize = (str) => str.endsWith(\"/\") && str.length > 1 ? str.slice(0, -1) : str;\nfunction comparePaths(a, b) {\n\treturn normalize(a) === normalize(b);\n}\n/**\n* Lazily import a module function and forward arguments to it, retaining\n* parameter and return types for the selected export key.\n*/\nfunction lazyFn(fn, key) {\n\treturn async (...args) => {\n\t\treturn (await fn())[key || \"default\"](...args);\n\t};\n}\n/** Create an initial RouterState from a parsed location. */\nfunction getInitialRouterState(location) {\n\treturn {\n\t\tisLoading: false,\n\t\tstatus: \"idle\",\n\t\tresolvedLocation: void 0,\n\t\tlocation,\n\t\tmatches: []\n\t};\n}\nfunction validateSearch(validateSearch, input) {\n\tif (validateSearch == null) return {};\n\tif (\"~standard\" in validateSearch) {\n\t\tconst result = validateSearch[\"~standard\"].validate(input);\n\t\tif (result instanceof Promise) throw new SearchParamError(\"Async validation not supported\");\n\t\tif (result.issues) throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), { cause: result });\n\t\treturn result.value;\n\t}\n\tif (\"parse\" in validateSearch) return validateSearch.parse(input);\n\tif (typeof validateSearch === \"function\") return validateSearch(input);\n\treturn {};\n}\nfunction applySearchMiddleware(search, dest, destRoutes, includeValidateSearch) {\n\tconst middlewares = [];\n\tfor (const route of destRoutes) {\n\t\tconst routeOptions = route.options;\n\t\tif (\"search\" in routeOptions) {\n\t\t\tif (routeOptions.search?.middlewares) middlewares.push(...routeOptions.search.middlewares);\n\t\t} else if (routeOptions.preSearchFilters || routeOptions.postSearchFilters) {\n\t\t\tconst legacyMiddleware = ({ search, next }) => {\n\t\t\t\tconst result = next(routeOptions.preSearchFilters ? routeOptions.preSearchFilters.reduce((prev, next) => next(prev), search) : search);\n\t\t\t\treturn routeOptions.postSearchFilters ? routeOptions.postSearchFilters.reduce((prev, next) => next(prev), result) : result;\n\t\t\t};\n\t\t\tmiddlewares.push(legacyMiddleware);\n\t\t}\n\t\tconst routeValidateSearch = routeOptions.validateSearch;\n\t\tif (routeValidateSearch) {\n\t\t\tconst validate = ({ search, next, meta }) => {\n\t\t\t\tconst result = next(search);\n\t\t\t\tif (includeValidateSearch) try {\n\t\t\t\t\tconst validated = validateSearch(routeValidateSearch, result);\n\t\t\t\t\tif (meta && validated) {\n\t\t\t\t\t\tfor (const key in validated) if (!(key in result)) (meta.defaulted ||= /* @__PURE__ */ new Map()).set(key, validated[key]);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t...validated\n\t\t\t\t\t};\n\t\t\t\t} catch {}\n\t\t\t\treturn result;\n\t\t\t};\n\t\t\tmiddlewares.push(validate);\n\t\t}\n\t}\n\tconst applyNext = (index, currentSearch, meta) => {\n\t\tif (index >= middlewares.length) {\n\t\t\tif (!dest.search) return {};\n\t\t\tif (dest.search === true) return currentSearch;\n\t\t\tconst result = functionalUpdate(dest.search, currentSearch);\n\t\t\tif (meta) meta.explicit = result;\n\t\t\treturn result;\n\t\t}\n\t\tconst next = (newSearch, collectMeta) => {\n\t\t\tif (collectMeta) {\n\t\t\t\tconst nextMeta = meta || {};\n\t\t\t\treturn {\n\t\t\t\t\tsearch: applyNext(index + 1, newSearch, nextMeta),\n\t\t\t\t\tmeta: nextMeta\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn applyNext(index + 1, newSearch, meta);\n\t\t};\n\t\treturn middlewares[index]({\n\t\t\tsearch: currentSearch,\n\t\t\tnext,\n\t\t\tmeta\n\t\t});\n\t};\n\treturn applyNext(0, search);\n}\nfunction findGlobalNotFoundRouteId(notFoundMode, routes) {\n\tif (notFoundMode !== \"root\") {\n\t\tlet fallback;\n\t\tfor (let i = routes.length - 1; i >= 0; i--) {\n\t\t\tconst route = routes[i];\n\t\t\tif (route.options.notFoundComponent) return route.id;\n\t\t\tfallback ||= route.children && route.id;\n\t\t}\n\t\tif (fallback) return fallback;\n\t}\n\treturn rootRouteId;\n}\nfunction resolveNextParams(spec, base) {\n\treturn spec === false || spec === null ? Object.create(null) : (spec ?? true) === true ? base : Object.assign(base, functionalUpdate(spec, base));\n}\nfunction extractStrictParams(route, accumulatedParams) {\n\tconst parseParams = route.options.params?.parse ?? route.options.parseParams;\n\tif (parseParams) Object.assign(accumulatedParams, parseParams(accumulatedParams));\n}\n//#endregion\nexport { PathParamError, RouterCore, SearchParamError, defaultSerializeError, getInitialRouterState, getLocationChangeInfo, lazyFn, runRouteLifecycle, trailingSlashOptions };\n\n//# sourceMappingURL=router.js.map","import { isNotFound } from \"./not-found.js\";\nimport { isRedirect } from \"./redirect.js\";\nimport { hydrateSsrMatchId } from \"./ssr/ssr-match-id.js\";\nimport { getLocationChangeInfo, runRouteLifecycle } from \"./router.js\";\n//#region src/load-client.ts\nfunction replaceRouteChunk(route, lazyFn) {\n\troute.lazyFn = lazyFn ?? route.lazyFn;\n\troute._lazy = void 0;\n}\nfunction preloadComponent(route, type) {\n\treturn route.options[type]?.preload?.();\n}\nfunction loadComponents(route, onPendingReady) {\n\tconst component = preloadComponent(route, \"component\");\n\tconst pending = preloadComponent(route, \"pendingComponent\");\n\tconst pendingReady = onPendingReady && pending ? pending.then(onPendingReady) : pending;\n\tif (onPendingReady && !pending) onPendingReady();\n\tif (component && pendingReady) return Promise.all([component, pendingReady]).then(() => {});\n\treturn component ?? pendingReady;\n}\nfunction loadRouteChunk(route, componentType, onPendingReady) {\n\tconst afterLazy = () => componentType === false ? void 0 : componentType ? preloadComponent(route, componentType) : loadComponents(route, onPendingReady);\n\tconst current = route._lazy;\n\tif (current) return current === true ? afterLazy() : current.then(afterLazy);\n\tif (!route.lazyFn) return afterLazy();\n\tconst promise = route.lazyFn().then((lazyRoute) => {\n\t\tif (process.env.NODE_ENV === \"production\" || route._lazy === promise) {\n\t\t\tconst { id: _id, ...options } = lazyRoute.options;\n\t\t\tObject.assign(route.options, options);\n\t\t\troute._lazy = true;\n\t\t}\n\t}, (error) => {\n\t\tif (process.env.NODE_ENV === \"production\" || route._lazy === promise) route._lazy = void 0;\n\t\tthrow error;\n\t});\n\troute._lazy = promise;\n\treturn promise.then(afterLazy);\n}\n/** Return the structural lane through the first terminal render boundary. */\nfunction _getRenderedMatches(matches) {\n\tconst end = matches.findIndex((match) => match.status !== \"success\" || match._notFound) + 1;\n\treturn end && end < matches.length ? matches.slice(0, end) : matches;\n}\n/** Return the lane whose document assets belong to the current presentation. */\nfunction _getAssetMatches(matches) {\n\tlet end = matches.length;\n\tfor (let index = 0; index < end; index++) {\n\t\tconst match = matches[index];\n\t\tif (match._assetEnd !== void 0) {\n\t\t\tend = Math.min(end, Math.max(index + 1, match._assetEnd));\n\t\t\tcontinue;\n\t\t}\n\t\tif (match.status !== \"success\" || match._notFound) {\n\t\t\tend = index + 1;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn end < matches.length ? matches.slice(0, end) : matches;\n}\nconst SUCCESS = 0;\nconst ERROR = 1;\nconst NOT_FOUND = 2;\nconst REDIRECTED = 3;\nconst CANCELED = 4;\nfunction isControl(result) {\n\treturn typeof result[0] === \"number\";\n}\nfunction waitFor(value, signal) {\n\tif (signal.aborted) return Promise.race([Promise.reject(signal), value]);\n\treturn new Promise((resolve, reject) => {\n\t\tconst abort = () => reject(signal);\n\t\tsignal.addEventListener(\"abort\", abort, { once: true });\n\t\tPromise.resolve(value).then(resolve, reject).finally(() => signal.removeEventListener(\"abort\", abort));\n\t});\n}\nfunction getRoute(router, match) {\n\treturn router.routesById[match.routeId];\n}\nfunction normalize(value, rejected, routeId) {\n\tif (isRedirect(value)) return [REDIRECTED, value];\n\tif (isNotFound(value)) {\n\t\tvalue.routeId ||= routeId;\n\t\treturn [NOT_FOUND, value];\n\t}\n\tif (rejected && typeof value?.then === \"function\") value = new Error(\"A Promise was thrown\", { cause: value });\n\treturn rejected ? [ERROR, value] : [SUCCESS, value];\n}\nfunction normalizeError(route, cause) {\n\tlet outcome = normalize(cause, true, route.id);\n\tif (outcome[0] !== ERROR) return outcome;\n\ttry {\n\t\troute.options.onError?.(outcome[1]);\n\t} catch (onErrorCause) {\n\t\toutcome = normalize(onErrorCause, true, route.id);\n\t}\n\treturn outcome;\n}\nfunction normalizeLaneError(route, cause, options) {\n\tif (options[0].signal.aborted || !options[2]()) {\n\t\toptions[0].abort();\n\t\treturn [CANCELED];\n\t}\n\treturn normalizeError(route, cause);\n}\nfunction navigateFrom(router, location) {\n\treturn (opts) => router.navigate({\n\t\t...opts,\n\t\t_fromLocation: location\n\t});\n}\nasync function contextualize(router, lane, options, end, planSuccessfulLane, retainedEnd) {\n\tconst [location, matches] = lane;\n\tconst signal = options[0].signal;\n\tconst preload = !!options[4];\n\tfor (let index = options[7] ?? 0; index < end; index++) {\n\t\tconst match = matches[index];\n\t\tconst route = getRoute(router, match);\n\t\tmatch.abortController = options[0];\n\t\tconst parentContext = matches[index - 1]?.context ?? router.options.context ?? {};\n\t\tconst common = {\n\t\t\tparams: match.params,\n\t\t\tlocation,\n\t\t\tnavigate: navigateFrom(router, location),\n\t\t\tbuildLocation: router.buildLocation,\n\t\t\tcause: preload ? \"preload\" : match.cause,\n\t\t\tabortController: options[0],\n\t\t\tpreload,\n\t\t\tmatches,\n\t\t\trouteId: route.id\n\t\t};\n\t\tlet context = parentContext;\n\t\ttry {\n\t\t\tlet routeContext = match._ctx;\n\t\t\tif (!routeContext && route.options.context) routeContext = match._ctx = route.options.context({\n\t\t\t\t...common,\n\t\t\t\tdeps: match.loaderDeps,\n\t\t\t\tcontext: parentContext\n\t\t\t}) || {};\n\t\t\tcontext = {\n\t\t\t\t...parentContext,\n\t\t\t\t...routeContext\n\t\t\t};\n\t\t\tmatch.context = context;\n\t\t} catch (cause) {\n\t\t\treleaseFlight(router, match);\n\t\t\treturn [index, normalizeLaneError(route, cause, options)];\n\t\t}\n\t\tif (signal.aborted || !options[2]()) {\n\t\t\toptions[0].abort();\n\t\t\treturn [index, [CANCELED]];\n\t\t}\n\t\tconst validationError = match.paramsError ?? match.searchError;\n\t\tif (validationError !== void 0) {\n\t\t\treleaseFlight(router, match);\n\t\t\treturn [index, normalizeLaneError(route, validationError, options)];\n\t\t}\n\t\tconst beforeLoad = route.options.beforeLoad;\n\t\tif (!beforeLoad) continue;\n\t\tconst beforeLoadContext = {\n\t\t\t...common,\n\t\t\tsearch: match.search,\n\t\t\tcontext,\n\t\t\t...router.options.additionalContext\n\t\t};\n\t\tconst previousStatus = match.status;\n\t\tif (previousStatus === \"success\" && index >= retainedEnd) match.status = \"pending\";\n\t\toptions[8]?.();\n\t\ttry {\n\t\t\tsetFetching(router, match, \"beforeLoad\", options[0]);\n\t\t\tconst result = await waitFor(beforeLoad(beforeLoadContext), signal);\n\t\t\tif (!options[2]()) {\n\t\t\t\toptions[0].abort();\n\t\t\t\treturn [index, [CANCELED]];\n\t\t\t}\n\t\t\tconst outcome = normalize(result, false, route.id);\n\t\t\tif (outcome[0] !== SUCCESS) {\n\t\t\t\treleaseFlight(router, match);\n\t\t\t\treturn [index, outcome];\n\t\t\t}\n\t\t\tmatch.context = {\n\t\t\t\t...context,\n\t\t\t\t...result\n\t\t\t};\n\t\t} catch (cause) {\n\t\t\treleaseFlight(router, match);\n\t\t\treturn [index, normalizeLaneError(route, cause, options)];\n\t\t} finally {\n\t\t\tif (previousStatus === \"success\" && match.status === \"pending\") match.status = \"success\";\n\t\t\tsetFetching(router, match, false, options[0]);\n\t\t}\n\t}\n\tplanSuccessfulLane();\n}\nfunction releaseOwnedFlight(router, match, flight) {\n\tif (!flight || --flight[2]) return;\n\tif (router._flights?.get(match.id) === flight) {\n\t\tconst current = router._tx;\n\t\tif (current && !current[0].signal.aborted && !(process.env.NODE_ENV !== \"production\" && current[6]) && !current[3].includes(match) && current[3].some((candidate) => candidate.id === match.id) && current[3].some((candidate) => candidate.isFetching === \"beforeLoad\")) return;\n\t\trouter._flights.delete(match.id);\n\t}\n\treturn flight[1];\n}\nfunction releaseFlight(router, match) {\n\tconst flight = match._flight;\n\tmatch._flight = void 0;\n\treleaseOwnedFlight(router, match, flight)?.abort();\n}\n/**\n* Not passing in a `next` ownership recipient\n* is equivalent to discarding the match resources\n*/\nfunction transferMatchResources(router, previous, next, deferSameIdFlight) {\n\tconst abort = [];\n\tfor (const match of previous) if (!next?.includes(match)) {\n\t\tconst flight = match._flight;\n\t\tmatch._flight = void 0;\n\t\tif (deferSameIdFlight && flight?.[2] === 1 && router._flights?.get(match.id) === flight && !(process.env.NODE_ENV !== \"production\" && router._tx?.[6]) && next?.some((candidate) => candidate.id === match.id)) flight[2] = 0;\n\t\telse {\n\t\t\tconst controller = releaseOwnedFlight(router, match, flight);\n\t\t\tif (controller) abort.push(controller);\n\t\t}\n\t}\n\tfor (const controller of abort) controller.abort();\n}\nfunction acquireMatchResources(matches) {\n\tfor (const match of matches) {\n\t\tconst flight = match._flight;\n\t\tif (flight) flight[2]++;\n\t}\n}\nfunction setFetching(router, match, value, owner) {\n\tmatch.isFetching = value;\n\tif (owner && router._tx?.[0] !== owner) return;\n\tconst store = router.stores.byRoute.get(match.routeId);\n\tconst presented = store?.get();\n\tif (presented?.id === match.id) store.set({\n\t\t...presented,\n\t\tisFetching: value\n\t});\n}\nfunction getLoaderContext(router, lane, match, route, controller, parentMatchPromise, preload) {\n\tconst location = lane[0];\n\treturn {\n\t\tparams: match.params,\n\t\tlocation,\n\t\tnavigate: navigateFrom(router, location),\n\t\tcause: preload ? \"preload\" : match.cause,\n\t\tabortController: controller,\n\t\tpreload,\n\t\tdeps: match.loaderDeps,\n\t\tparentMatchPromise,\n\t\tcontext: match.context,\n\t\troute,\n\t\t...router.options.additionalContext\n\t};\n}\nasync function loadResource(router, lane, match, route, loader, parentMatchPromise, preload, owner) {\n\tconst signal = owner.signal;\n\tif (signal.aborted) return [CANCELED];\n\tif (!loader) return [SUCCESS, void 0];\n\tlet flight = match._flight;\n\tsetFetching(router, match, \"loader\", owner);\n\ttry {\n\t\tif (!flight) {\n\t\t\tconst controller = new AbortController();\n\t\t\tflight = [\n\t\t\t\tPromise.resolve().then(() => loader(getLoaderContext(router, lane, match, route, controller, parentMatchPromise, preload))).then((value) => normalize(value, false, route.id), (cause) => normalize(cause, true, route.id)).then((result) => {\n\t\t\t\t\tif (result[0] !== SUCCESS && router._flights?.get(match.id) === flight) {\n\t\t\t\t\t\trouter._flights.delete(match.id);\n\t\t\t\t\t\tif (!flight[2]) controller.abort();\n\t\t\t\t\t}\n\t\t\t\t\treturn result[0] === ERROR && flight[2] ? normalizeError(route, result[1]) : result;\n\t\t\t\t}),\n\t\t\t\tcontroller,\n\t\t\t\t1\n\t\t\t];\n\t\t\t(router._flights ??= /* @__PURE__ */ new Map()).set(match.id, flight);\n\t\t}\n\t\tmatch._flight = flight;\n\t\tmatch.abortController = flight[1];\n\t\treturn await waitFor(flight[0], signal);\n\t} catch (cause) {\n\t\tif (cause !== signal) throw cause;\n\t\treleaseFlight(router, match);\n\t\treturn [CANCELED];\n\t} finally {\n\t\tsetFetching(router, match, false, owner);\n\t}\n}\nfunction settleInto(match, result, preload) {\n\tif (result[0] === SUCCESS) {\n\t\tmatch.loaderData = result[1];\n\t\tmatch.error = void 0;\n\t\tmatch.status = \"success\";\n\t\tmatch.invalid = false;\n\t\tmatch.updatedAt = Date.now();\n\t\tmatch.preload = preload;\n\t} else if (result[0] !== REDIRECTED) {\n\t\tmatch.status = \"success\";\n\t\tmatch.error = void 0;\n\t\tmatch.invalid = true;\n\t}\n}\nfunction cacheLoaderMatch(router, match, planned) {\n\tconst current = router._cache.get(match.id);\n\tif (current !== planned || router._committed.some((candidate) => candidate.id === match.id && candidate._flight === match._flight)) return;\n\tconst cached = {\n\t\t...match,\n\t\t_notFound: void 0,\n\t\tcontext: {}\n\t};\n\tif (cached._flight) cached._flight[2]++;\n\trouter._cache.set(match.id, cached);\n\tif (current) releaseFlight(router, current);\n}\nfunction getParentSnapshot(match, outcome) {\n\tif (outcome[0] === ERROR || outcome[0] === NOT_FOUND) return {\n\t\t...match,\n\t\tstatus: outcome[0] === ERROR ? \"error\" : \"notFound\",\n\t\terror: outcome[1],\n\t\t_flight: void 0\n\t};\n\treturn match;\n}\nfunction createLoaderTask(router, lane, index, tasks, semanticParent, options, retainedEnd) {\n\tconst match = lane[1][index];\n\tconst route = getRoute(router, match);\n\tconst preload = !!options[4];\n\tconst plannedCacheMatch = router._cache.get(match.id);\n\tlet configured;\n\tlet reload = false;\n\tlet reloadFailure;\n\ttry {\n\t\tif (match.status === \"success\") {\n\t\t\tconfigured = route.options.shouldReload;\n\t\t\tif (typeof configured === \"function\") configured = configured(getLoaderContext(router, lane, match, route, options[0], semanticParent, preload));\n\t\t\tif (!options[2]()) {\n\t\t\t\toptions[0].abort();\n\t\t\t\treloadFailure = [CANCELED];\n\t\t\t}\n\t\t}\n\t\tif (!reloadFailure) if (match.status !== \"success\") reload = true;\n\t\telse {\n\t\t\tconst staleAge = options[4] || match.preload ? route.options.preloadStaleTime ?? router.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? router.options.defaultStaleTime ?? 0;\n\t\t\treload = !!(match.invalid || configured || configured === void 0 && Date.now() - match.updatedAt >= staleAge && (options[6] || match.cause === \"enter\" || options[3].some((candidate) => candidate.routeId === match.routeId && candidate.id !== match.id)));\n\t\t}\n\t} catch (cause) {\n\t\tmatch.invalid = true;\n\t\treleaseFlight(router, match);\n\t\treloadFailure = normalizeLaneError(route, cause, options);\n\t}\n\tconst routeLoader = route.options.loader;\n\tconst loader = typeof routeLoader === \"function\" ? routeLoader : routeLoader?.handler;\n\tlet donor = (!preload || route.options.preload !== false) && routeLoader && !(process.env.NODE_ENV !== \"production\" && router._tx?.[6]) ? router._flights?.get(match.id) : void 0;\n\tif (donor === match._flight || reloadFailure) donor = void 0;\n\telse if (donor && !reload && !preload && configured === void 0) reload = true;\n\telse if (!reload) donor = void 0;\n\tconst background = !!(routeLoader && reload && match.status === \"success\" && !preload && !options[5] && ((typeof routeLoader === \"function\" ? void 0 : routeLoader?.staleReloadMode) ?? router.options.defaultStaleReloadMode) !== \"blocking\");\n\tconst loaded = reload && (!preload || route.options.preload !== false);\n\tconst blocking = loaded && !background && (match.status !== \"success\" || !!routeLoader);\n\tconst onLazyReady = route.lazyFn && route._lazy !== true ? options[8] : void 0;\n\tif (loaded && !routeLoader) {\n\t\tmatch.invalid = false;\n\t\tmatch.updatedAt = Date.now();\n\t}\n\tif (donor) donor[2]++;\n\tif (blocking) {\n\t\tconst acceptedFlight = match._flight;\n\t\tmatch._flight = donor;\n\t\treleaseOwnedFlight(router, match, acceptedFlight)?.abort();\n\t\tif (match.status === \"success\" && index >= retainedEnd) match.status = \"pending\";\n\t\toptions[8]?.();\n\t}\n\tif (!loaded) match.isFetching = false;\n\tconst outcome = (reloadFailure ? Promise.resolve(reloadFailure) : !blocking ? Promise.resolve([SUCCESS, match.loaderData]) : loadResource(router, lane, match, route, loader, semanticParent, preload, options[0])).then((result) => {\n\t\tif (blocking) {\n\t\t\tsettleInto(match, result, preload);\n\t\t\tif (result[0] === SUCCESS) {\n\t\t\t\tif (routeLoader && !options[0].signal.aborted && !(process.env.NODE_ENV !== \"production\" && !preload && router._tx?.[6])) cacheLoaderMatch(router, match, plannedCacheMatch);\n\t\t\t\tmatch.status = \"pending\";\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t});\n\tconst chunkFailure = waitFor(Promise.resolve().then(() => loadRouteChunk(route, void 0, onLazyReady)), options[0].signal).then(() => void 0, (cause) => [index, normalizeLaneError(route, cause, options)]).then((failure) => outcome.then((result) => {\n\t\tif (blocking && !failure && result[0] === SUCCESS && match.status === \"pending\" && options[2]()) {\n\t\t\tmatch.status = \"success\";\n\t\t\toptions[8]?.();\n\t\t}\n\t\treturn failure;\n\t}));\n\ttasks.push([\n\t\tindex,\n\t\toutcome,\n\t\tchunkFailure\n\t]);\n\tif (!background) return outcome.then((result) => getParentSnapshot(match, result));\n\tconst candidate = {\n\t\t...match,\n\t\tstatus: \"pending\",\n\t\tpreload: false,\n\t\t_flight: donor\n\t};\n\tmatch.invalid = false;\n\tmatch.isFetching = \"loader\";\n\tconst backgroundOutcome = loadResource(router, lane, candidate, route, loader, semanticParent, false, options[0]).then((result) => {\n\t\tmatch.isFetching = false;\n\t\tsettleInto(candidate, result, false);\n\t\treturn result;\n\t});\n\t(lane[2] ??= []).push([\n\t\tindex,\n\t\tbackgroundOutcome,\n\t\tchunkFailure,\n\t\tcandidate\n\t]);\n\treturn backgroundOutcome.then((result) => getParentSnapshot(candidate, result));\n}\nasync function getNotFoundBoundary(router, matches, indexed, signal, fallback = 0) {\n\tconst cause = indexed?.[1][1];\n\tlet index = cause?.routeId ? matches.findIndex((match) => match.routeId === cause.routeId) : indexed?.[0] ?? matches.length - 1;\n\tif (index < 0) index = 0;\n\tfor (let i = index; i >= 0; i--) {\n\t\tconst route = getRoute(router, matches[i]);\n\t\tconst loading = loadRouteChunk(route, false);\n\t\tif (loading) try {\n\t\t\tawait waitFor(loading, signal);\n\t\t} catch (cause) {\n\t\t\tif (cause === signal) throw cause;\n\t\t}\n\t\tif (route.options.notFoundComponent) return i;\n\t}\n\treturn cause?.routeId ? index : fallback;\n}\nfunction discardBackground(router, lane) {\n\tif (lane[2]) {\n\t\ttransferMatchResources(router, lane[2].map((task) => task[3]));\n\t\tlane[2] = void 0;\n\t}\n}\nasync function settleTasks(tasks, serialFailure, redirectTasks, gate) {\n\tlet loaderFailure;\n\ttry {\n\t\tawait Promise.all(tasks.map((task) => task[1].then(async (outcome) => {\n\t\t\tconst taskIndex = task[0];\n\t\t\tif (gate && taskIndex >= await gate) return;\n\t\t\tif (outcome[0] >= REDIRECTED) throw [taskIndex, outcome];\n\t\t\tif (!loaderFailure && outcome[0] !== SUCCESS) {\n\t\t\t\tloaderFailure = [taskIndex, outcome];\n\t\t\t\tawait Promise.all((redirectTasks ?? []).map((nextTask) => {\n\t\t\t\t\tif (nextTask[0] <= taskIndex) return;\n\t\t\t\t\treturn nextTask[1].then((nextOutcome) => {\n\t\t\t\t\t\tif (nextOutcome[0] === REDIRECTED) throw [nextTask[0], nextOutcome];\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t}\n\t\t})));\n\t} catch (cause) {\n\t\treturn cause;\n\t}\n\treturn serialFailure ?? loaderFailure;\n}\nasync function reduceLane(router, lane, tasks, controller, redirects, settlement, onReady) {\n\tconst matches = lane[1];\n\tlet failure = await settlement;\n\tlet redirectLimitExceeded = false;\n\tconst plannedBoundary = matches.findIndex((match) => match._notFound);\n\tconst boundaryOf = (found) => found[1][0] === NOT_FOUND ? getNotFoundBoundary(router, matches, found, controller.signal) : found[0];\n\tlet readinessEnd = plannedBoundary < 0 ? matches.length : plannedBoundary;\n\tif ((failure?.[1][0] ?? 0) >= REDIRECTED) readinessEnd = 0;\n\telse if (failure) {\n\t\treadinessEnd = failure[2] ??= await boundaryOf(failure);\n\t\tfor (const task of tasks) {\n\t\t\tif (task[0] >= readinessEnd) break;\n\t\t\tconst outcome = await task[1];\n\t\t\tif (outcome[0] !== SUCCESS && outcome[0] < REDIRECTED && !(\"loaderData\" in matches[task[0]])) {\n\t\t\t\tfailure = [task[0], outcome];\n\t\t\t\treadinessEnd = failure[2] = await boundaryOf(failure);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tfor (const task of tasks) {\n\t\tif (task[0] >= readinessEnd) break;\n\t\tconst chunkFailure = await task[2];\n\t\tif (!chunkFailure) continue;\n\t\tfailure = chunkFailure;\n\t\tbreak;\n\t}\n\tif ((failure?.[1][0] ?? 0) >= REDIRECTED) {\n\t\tconst outcome = failure[1];\n\t\tif (outcome[0] !== REDIRECTED || outcome[1].options.reloadDocument || redirects < 20) {\n\t\t\tdiscardBackground(router, lane);\n\t\t\treturn outcome;\n\t\t}\n\t\tredirectLimitExceeded = true;\n\t\tfailure = [0, [ERROR, /* @__PURE__ */ new Error(\"Too many redirects\")]];\n\t}\n\tconst boundary = failure ? failure[2] ?? await boundaryOf(failure) : plannedBoundary;\n\tif (boundary >= 0) {\n\t\tconst outcome = failure?.[1];\n\t\tconst kind = outcome?.[0];\n\t\tconst match = matches[boundary];\n\t\tconst cause = outcome?.[1];\n\t\tconst install = () => {\n\t\t\tif (outcome) {\n\t\t\t\tmatch._notFound = void 0;\n\t\t\t\tif (kind === ERROR) match.status = \"error\";\n\t\t\t\telse {\n\t\t\t\t\tcause.routeId = match.routeId;\n\t\t\t\t\tif (match.routeId === router.routeTree.id) {\n\t\t\t\t\t\tmatch.status = \"success\";\n\t\t\t\t\t\tmatch._notFound = true;\n\t\t\t\t\t} else match.status = \"notFound\";\n\t\t\t\t}\n\t\t\t\tmatch.error = cause;\n\t\t\t\tmatch.isFetching = false;\n\t\t\t}\n\t\t};\n\t\tinstall();\n\t\tconst route = getRoute(router, match);\n\t\ttry {\n\t\t\tawait waitFor(outcome ? Promise.resolve().then(() => loadRouteChunk(route, kind === ERROR ? \"errorComponent\" : \"notFoundComponent\")) : Promise.all([loadRouteChunk(route), loadRouteChunk(route, \"notFoundComponent\")]), controller.signal);\n\t\t} catch (cause) {\n\t\t\tif (cause === controller.signal) {\n\t\t\t\tdiscardBackground(router, lane);\n\t\t\t\treturn [CANCELED];\n\t\t\t}\n\t\t}\n\t\tif (!outcome) {\n\t\t\tmatch.status = \"success\";\n\t\t\tonReady?.();\n\t\t} else if (redirectLimitExceeded) {\n\t\t\tcontroller.abort();\n\t\t\tawait Promise.all([\n\t\t\t\t...tasks.map((task) => task[1]),\n\t\t\t\t...tasks.map((task) => task[2]),\n\t\t\t\t...(lane[2] ?? []).map((task) => task[1])\n\t\t\t]);\n\t\t\tdiscardBackground(router, lane);\n\t\t\ttransferMatchResources(router, matches);\n\t\t\tinstall();\n\t\t}\n\t}\n\treturn lane;\n}\nasync function projectLane(router, lane, signal, start = 0, end = lane[1].length) {\n\tconst matches = lane[1];\n\tfor (let index = start; index < end; index++) {\n\t\tconst match = matches[index];\n\t\tconst routeOptions = getRoute(router, match).options;\n\t\tif (routeOptions.head || routeOptions.scripts) try {\n\t\t\tconst context = {\n\t\t\t\tssr: router.options.ssr,\n\t\t\t\tmatches,\n\t\t\t\tmatch,\n\t\t\t\tparams: match.params,\n\t\t\t\tloaderData: match.loaderData\n\t\t\t};\n\t\t\tconst [head, scripts] = await waitFor(Promise.all([routeOptions.head?.(context), routeOptions.scripts?.(context)]), signal);\n\t\t\tmatch.meta = head?.meta;\n\t\t\tmatch.links = head?.links;\n\t\t\tmatch.headScripts = head?.scripts;\n\t\t\tmatch.styles = head?.styles;\n\t\t\tmatch.scripts = scripts;\n\t\t} catch (cause) {\n\t\t\tif (cause === signal) break;\n\t\t\tconsole.error(cause);\n\t\t}\n\t\tif (match.status !== \"success\" || match._notFound) break;\n\t}\n\treturn lane;\n}\nasync function executeClientLane(router, location, matches, options) {\n\tconst matched = [location, matches];\n\tconst presented = router.stores.matches.get();\n\tlet plannedBoundary = matches.findIndex((match) => match._notFound);\n\tif (router.options.notFoundMode !== \"root\" && plannedBoundary >= 0) {\n\t\tconst boundary = await getNotFoundBoundary(router, matched[1], void 0, options[0].signal, plannedBoundary);\n\t\tif (boundary !== plannedBoundary) {\n\t\t\tmatches[plannedBoundary]._notFound = void 0;\n\t\t\tmatches[boundary]._notFound = true;\n\t\t}\n\t\tplannedBoundary = boundary;\n\t}\n\tlet end = plannedBoundary < 0 ? matches.length : plannedBoundary + 1;\n\tlet retainedEnd = 0;\n\twhile (retainedEnd < end && retainedEnd !== plannedBoundary) {\n\t\tconst match = matches[retainedEnd];\n\t\tconst committed = options[3][retainedEnd];\n\t\tconst visible = presented[retainedEnd];\n\t\tif (committed?.id !== match.id || committed.status !== \"success\" || committed._notFound || match.preload || visible?.id !== match.id || visible.status !== \"success\" || visible._notFound) break;\n\t\tretainedEnd++;\n\t}\n\tconst tasks = [];\n\tconst start = options[7] ?? 0;\n\tlet semanticParent = start ? Promise.resolve(matched[1][start - 1]) : void 0;\n\tconst planSuccessfulLane = () => {\n\t\tfor (let index = start; index < end; index++) {\n\t\t\tif (options[0].signal.aborted) break;\n\t\t\tsemanticParent = createLoaderTask(router, matched, index, tasks, semanticParent, options, retainedEnd);\n\t\t}\n\t};\n\tconst failure = await contextualize(router, matched, options, end, planSuccessfulLane, retainedEnd);\n\tif (failure) {\n\t\toptions[5] = true;\n\t\tend = failure[0];\n\t\tif (failure[1][0] === NOT_FOUND) {\n\t\t\tfailure[2] = await getNotFoundBoundary(router, matched[1], failure, options[0].signal);\n\t\t\tend = Math.min(end, failure[2] + 1);\n\t\t} else if (failure[1][0] >= REDIRECTED) end = 0;\n\t\tplanSuccessfulLane();\n\t}\n\tif (options[2]() && !options[4]) {\n\t\tconst abort = [];\n\t\tfor (const [id, flight] of router._flights ?? []) if (!flight[2]) {\n\t\t\trouter._flights.delete(id);\n\t\t\tabort.push(flight[1]);\n\t\t}\n\t\tfor (const controller of abort) controller.abort();\n\t}\n\tlet reduced;\n\ttry {\n\t\tconst reduction = reduceLane(router, matched, tasks, options[0], options[1], settleTasks(tasks, failure, matched[2]), options[8]);\n\t\tif (matched[2]?.length) matched[3] = settleTasks(matched[2], void 0, void 0, reduction.then((foreground) => isControl(foreground) ? 0 : _getRenderedMatches(foreground[1]).length, () => 0));\n\t\treduced = await reduction;\n\t} catch (cause) {\n\t\tdiscardBackground(router, matched);\n\t\tthrow cause;\n\t}\n\tif (isControl(reduced)) return reduced;\n\treturn projectLane(router, reduced, options[0].signal, options[7] === reduced[1].length ? options[7] : 0);\n}\n/**\n* Waits for `pendingMs`, then presents the complete lane. Rendering applies the\n* selected boundary cutoff while retaining every match's structural state.\n* A replacement load for the same match keeps the timer; choosing a different\n* match resets it. `pendingMinMs` starts after the fallback renders.\n*/\nfunction offerPending(router, tx) {\n\tif (router._tx !== tx) return;\n\tlet session = router._pending;\n\tlet tookOver = false;\n\tconst sessionMatchId = session?.[0][3][session[1]]?.id;\n\tif (session?.[0] !== tx) if (session && tx[3][session[1]]?.id === sessionMatchId) {\n\t\tsession[0] = tx;\n\t\ttookOver = true;\n\t} else {\n\t\tclearTimeout(session?.[3]);\n\t\trouter._pending = session = void 0;\n\t}\n\tconst matches = tx[3];\n\tconst presented = router.stores.matches.get();\n\tlet boundary = -1;\n\tlet delay;\n\tlet min;\n\tlet component;\n\tlet presentedPending = false;\n\tfor (let index = 0; index < matches.length; index++) {\n\t\tconst match = matches[index];\n\t\tconst success = match.status === \"success\";\n\t\tpresentedPending = presented[index]?.id === match.id && presented[index]?.status === \"pending\";\n\t\tif (success && !presentedPending) continue;\n\t\tconst route = getRoute(router, match);\n\t\tdelay = success && presentedPending || match.invalid ? 0 : route.options.pendingMs ?? router.options.defaultPendingMs;\n\t\tcomponent = route.options.pendingComponent ?? router.options.defaultPendingComponent;\n\t\tif (!component || typeof delay !== \"number\" || delay === Infinity) return;\n\t\tboundary = index;\n\t\tmin = route.options.pendingMinMs ?? router.options.defaultPendingMinMs ?? 0;\n\t\tbreak;\n\t}\n\tif (boundary < 0) return;\n\tconst matchId = matches[boundary].id;\n\tif (!session || session[1] !== boundary || sessionMatchId !== matchId) {\n\t\tclearTimeout(session?.[3]);\n\t\trouter._pending = session = [\n\t\t\ttx,\n\t\t\tboundary,\n\t\t\tpresentedPending ? Date.now() + min : tx[4] + delay,\n\t\t\tvoid 0,\n\t\t\tpresentedPending ? Promise.resolve(true) : void 0,\n\t\t\tcomponent\n\t\t];\n\t}\n\tif (session[4] && !tookOver && session[5] === component) return;\n\tsession[5] = component;\n\tif (!session[4]) {\n\t\tclearTimeout(session[3]);\n\t\tconst remaining = session[2] - Date.now();\n\t\tif (remaining > 0) {\n\t\t\tsession[3] = setTimeout(() => offerPending(router, tx), remaining);\n\t\t\treturn;\n\t\t}\n\t\tsession[2] = 0;\n\t}\n\tconst offered = matches.map((match) => ({\n\t\t...match,\n\t\t_flight: void 0\n\t}));\n\toffered[boundary].status = \"pending\";\n\tconst ack = router.startTransition(() => router.stores.setMatches(offered), offered).then((rendered) => {\n\t\tif (rendered && router._pending === session && session[4] === ack && !session[2]) session[2] = Date.now() + min;\n\t\treturn rendered;\n\t});\n\tsession[4] = ack;\n}\n/**\n* Cancels pending UI timing when its load ends. The ownership check prevents\n* an older, superseded load from clearing pending UI that a newer load took over.\n*/\nfunction finishPending(router, tx) {\n\tconst session = router._pending;\n\tif (session?.[0] === tx) {\n\t\tclearTimeout(session[3]);\n\t\trouter._pending = void 0;\n\t}\n}\nfunction publishMatches(router, matches) {\n\trouter._committed = matches;\n\trouter.stores.setMatches(matches);\n}\nfunction discardLane(router, lane) {\n\ttransferMatchResources(router, lane[1]);\n\tdiscardBackground(router, lane);\n}\nfunction commitMatches(router, tx, matches, resolvedPrefix) {\n\tconst previous = router._committed;\n\tconst previousCached = router._cache;\n\tfor (const match of matches) {\n\t\tmatch.preload = false;\n\t\tif (resolvedPrefix) match._assetEnd = void 0;\n\t}\n\tconst cut = _getRenderedMatches(matches).length;\n\tconst cached = /* @__PURE__ */ new Map();\n\tconst now = Date.now();\n\tfor (const match of [...previous, ...previousCached.values()]) {\n\t\tif (match.status !== \"success\" || matches.some((candidate, index) => candidate.id === match.id && (index < cut || candidate.status === \"success\"))) continue;\n\t\tconst route = getRoute(router, match);\n\t\tif (!route.options.loader || now - match.updatedAt >= (match.preload ? route.options.preloadGcTime ?? router.options.defaultPreloadGcTime ?? 3e5 : route.options.gcTime ?? router.options.defaultGcTime ?? 3e5)) continue;\n\t\tcached.set(match.id, previousCached.get(match.id) === match ? match : {\n\t\t\t...match,\n\t\t\t_flight: void 0,\n\t\t\tisFetching: false,\n\t\t\tcontext: {}\n\t\t});\n\t}\n\ttx[3] = [];\n\trouter._cache = cached;\n\tpublishMatches(router, matches);\n\ttransferMatchResources(router, [...previousCached.values(), ...previous], [...matches, ...cached.values()]);\n\trunRouteLifecycle(router, previous, matches, () => router._tx === tx);\n}\nfunction commitRefreshMatches(router, tx, matches, checkpoint) {\n\tconst previous = router._committed;\n\tconst previousCached = router._cache;\n\tfor (const match of matches) match.preload = false;\n\tconst cached = /* @__PURE__ */ new Map();\n\ttx[3] = [];\n\trouter._cache = cached;\n\tcheckpoint.previousMatches = previous;\n\tcheckpoint.previousCache = previousCached;\n\tcheckpoint.published = true;\n\tpublishMatches(router, matches);\n\tif (!checkpoint.published || router._tx !== tx) return;\n\trunRouteLifecycle(router, previous, matches, () => router._tx === tx);\n}\nfunction settlePublication(router, checkpoint) {\n\tif (!checkpoint.published) return;\n\tcheckpoint.published = false;\n\ttransferMatchResources(router, [...checkpoint.previousCache.values(), ...checkpoint.previousMatches], [...router._cache.values(), ...router._committed]);\n}\nfunction rollbackPublication(router, tx, lane, checkpoint) {\n\tif (!checkpoint.published || router._tx !== tx || router._committed !== lane[1]) {\n\t\tsettlePublication(router, checkpoint);\n\t\treturn false;\n\t}\n\tconst discarded = [...router._cache.values(), ...router._committed];\n\tconst restored = [...checkpoint.previousCache.values(), ...checkpoint.previousMatches];\n\trouter._cache = checkpoint.previousCache;\n\trouter._committed = checkpoint.previousMatches;\n\tcheckpoint.published = false;\n\tfor (const match of discarded) if (!restored.includes(match) && match._flight && router._flights?.get(match.id) === match._flight) router._flights.delete(match.id);\n\tfinishPending(router, tx);\n\trouter.batch(() => {\n\t\trouter.stores.status.set(\"idle\");\n\t\trouter.stores.setMatches(checkpoint.previousPresentation);\n\t});\n\ttx[0].abort();\n\ttransferMatchResources(router, discarded, restored);\n\tdiscardBackground(router, lane);\n\tif (router._tx === tx && router._commitPromise === checkpoint.commitPromise) {\n\t\trouter._commitPromise?.resolve();\n\t\trouter._commitPromise = void 0;\n\t}\n\treturn true;\n}\nasync function transitionRefresh(router, tx, lane, changeInfo) {\n\tconst refresh = tx[6];\n\tconst checkpoint = {\n\t\tpreviousMatches: router._committed,\n\t\tpreviousPresentation: refresh[0],\n\t\tpreviousCache: router._cache,\n\t\tcommitPromise: router._commitPromise,\n\t\tpublished: false\n\t};\n\tconst commit = () => {\n\t\tfinishPending(router, tx);\n\t\trefresh[2] = rollback;\n\t\tcommitRefreshMatches(router, tx, lane[1], checkpoint);\n\t\tif (!checkpoint.published || router._tx !== tx) return;\n\t\trouter.emit({\n\t\t\ttype: \"onLoad\",\n\t\t\t...changeInfo\n\t\t});\n\t\tif (router._tx === tx) router.emit({\n\t\t\ttype: \"onBeforeRouteMount\",\n\t\t\t...changeInfo\n\t\t});\n\t};\n\tconst rollback = () => {\n\t\tif (refresh[2] === rollback) refresh[2] = void 0;\n\t\tconst restored = rollbackPublication(router, tx, lane, checkpoint);\n\t\trouter._cancelTransition?.();\n\t\treturn restored;\n\t};\n\ttry {\n\t\tconst rendered = await router.startTransition(commit, lane[1]);\n\t\tif (refresh[2] === rollback) refresh[2] = void 0;\n\t\tif (checkpoint.published) {\n\t\t\tconst handoff = refresh[1];\n\t\t\tif (handoff && router._handoff === handoff) handoff[1]();\n\t\t\tif (router._tx === tx) tx[6] = void 0;\n\t\t}\n\t\tsettlePublication(router, checkpoint);\n\t\treturn rendered;\n\t} catch (cause) {\n\t\tif (rollback()) return;\n\t\tthrow cause;\n\t}\n}\nasync function awaitCurrent(router, owner) {\n\tlet current = router._tx;\n\twhile (current && current !== owner) {\n\t\tawait current[5];\n\t\tif (router._tx === current) return;\n\t\tcurrent = router._tx;\n\t}\n}\nasync function followRedirect(router, tx, redirect) {\n\tawait router.navigate({\n\t\t...redirect.options,\n\t\treplace: true,\n\t\tignoreBlocker: true,\n\t\t_redirects: tx[1] + 1\n\t});\n}\nfunction restoreCommitted(router, tx) {\n\tfinishPending(router, tx);\n\ttx[0].abort();\n\ttransferMatchResources(router, tx[3]);\n\ttx[3] = [];\n\tif (router._tx !== tx) return;\n\trouter.batch(() => {\n\t\trouter.stores.status.set(\"idle\");\n\t\trouter.stores.setMatches(router._committed);\n\t});\n\tif (router._tx === tx) {\n\t\trouter._commitPromise?.resolve();\n\t\trouter._commitPromise = void 0;\n\t}\n}\nasync function runBackground(router, tx, base, tasks, settlement) {\n\tconst next = base.map((match) => ({ ...match }));\n\tacquireMatchResources(next);\n\tfor (const task of tasks) {\n\t\treleaseFlight(router, next[task[0]]);\n\t\tnext[task[0]] = task[3];\n\t}\n\tconst lane = [tx[2], next];\n\tlet reduced;\n\ttry {\n\t\treduced = await reduceLane(router, lane, tasks, tx[0], tx[1], settlement);\n\t} catch (cause) {\n\t\ttransferMatchResources(router, next);\n\t\tthrow cause;\n\t}\n\tif (isControl(reduced)) {\n\t\ttransferMatchResources(router, next);\n\t\tif (reduced[0] === REDIRECTED && router._tx === tx && router._committed === base) await followRedirect(router, tx, reduced[1]);\n\t\treturn;\n\t}\n\tconst projected = await projectLane(router, reduced, tx[0].signal);\n\tif (router._tx !== tx || router._committed !== base) {\n\t\ttransferMatchResources(router, projected[1]);\n\t\treturn;\n\t}\n\tfor (const match of projected[1]) {\n\t\tconst cached = router._cache.get(match.id);\n\t\tif (cached?._flight && cached._flight === match._flight) {\n\t\t\trouter._cache.delete(match.id);\n\t\t\treleaseFlight(router, cached);\n\t\t}\n\t}\n\tpublishMatches(router, projected[1]);\n\ttransferMatchResources(router, base, projected[1]);\n}\nasync function runClientTransaction(router, tx, forceStaleReload, onReady, sync, resolvedPrefix) {\n\tconst options = [\n\t\ttx[0],\n\t\ttx[1],\n\t\t() => router._tx === tx && !!tx[3].length,\n\t\trouter._committed,\n\t\tvoid 0,\n\t\tsync,\n\t\tforceStaleReload,\n\t\tresolvedPrefix,\n\t\tonReady\n\t];\n\tconst result = await executeClientLane(router, tx[2], tx[3], options);\n\tif (isControl(result)) {\n\t\tif (result[0] === REDIRECTED && router._tx === tx) {\n\t\t\tfinishPending(router, tx);\n\t\t\ttransferMatchResources(router, tx[3]);\n\t\t\ttx[3] = [];\n\t\t\tif (router._tx === tx) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && tx[6]) router._refreshNextLoad = true;\n\t\t\t\tawait followRedirect(router, tx, result[1]);\n\t\t\t}\n\t\t} else restoreCommitted(router, tx);\n\t\treturn;\n\t}\n\tconst pending = router._pending;\n\tif (pending?.[0] === tx) {\n\t\t/**\n\t\t* Loading finished, so cancel any pending reveal. If the fallback rendered,\n\t\t* wait out the rest of `pendingMinMs` before replacing it. If it never\n\t\t* rendered, there is no minimum wait; if another load took it over, that\n\t\t* load owns the deadline.\n\t\t*/\n\t\tclearTimeout(pending[3]);\n\t\tif (pending[4]) {\n\t\t\tconst signal = tx[0].signal;\n\t\t\tlet rendered = false;\n\t\t\ttry {\n\t\t\t\trendered = await waitFor(pending[4], signal);\n\t\t\t} catch (cause) {\n\t\t\t\tif (cause !== signal) throw cause;\n\t\t\t}\n\t\t\tif (rendered && router._pending === pending && pending[0] === tx) {\n\t\t\t\tconst remaining = pending[2] - Date.now();\n\t\t\t\tif (remaining > 0) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait waitFor(new Promise((resolve) => {\n\t\t\t\t\t\t\tpending[3] = setTimeout(resolve, remaining);\n\t\t\t\t\t\t}), signal);\n\t\t\t\t\t} catch {}\n\t\t\t\t\tclearTimeout(pending[3]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (router._tx !== tx) {\n\t\tfinishPending(router, tx);\n\t\tdiscardLane(router, result);\n\t\treturn;\n\t}\n\tconst toLocation = tx[2];\n\tconst changeInfo = getLocationChangeInfo(toLocation, router.stores.resolvedLocation.get());\n\tconst background = result[2];\n\tawait router.startViewTransition(async () => {\n\t\tif (router._tx !== tx) {\n\t\t\tdiscardLane(router, result);\n\t\t\treturn;\n\t\t}\n\t\tconst commit = () => {\n\t\t\tfinishPending(router, tx);\n\t\t\tcommitMatches(router, tx, result[1], resolvedPrefix);\n\t\t\tif (router._tx !== tx) return;\n\t\t\trouter.emit({\n\t\t\t\ttype: \"onLoad\",\n\t\t\t\t...changeInfo\n\t\t\t});\n\t\t\tif (router._tx === tx) router.emit({\n\t\t\t\ttype: \"onBeforeRouteMount\",\n\t\t\t\t...changeInfo\n\t\t\t});\n\t\t};\n\t\tconst rendered = process.env.NODE_ENV !== \"production\" && tx[6] ? await transitionRefresh(router, tx, result, changeInfo) : await router.startTransition(commit, result[1]);\n\t\tif (process.env.NODE_ENV !== \"production\" && tx[6] && rendered === void 0) return;\n\t\tif (router._tx !== tx) {\n\t\t\tdiscardBackground(router, result);\n\t\t\treturn;\n\t\t}\n\t\tif (background?.length) runBackground(router, tx, result[1], background, result[3]).catch(console.error);\n\t\trouter.batch(() => {\n\t\t\trouter.stores.resolvedLocation.set(toLocation);\n\t\t\trouter.stores.status.set(\"idle\");\n\t\t\tif (router._tx === tx) router.emit({\n\t\t\t\ttype: \"onResolved\",\n\t\t\t\t...changeInfo\n\t\t\t});\n\t\t\tif (rendered && router._tx === tx) router.emit({\n\t\t\t\ttype: \"onRendered\",\n\t\t\t\t...changeInfo\n\t\t\t});\n\t\t});\n\t\tif (router._tx !== tx) return;\n\t\trouter._commitPromise?.resolve();\n\t\trouter._commitPromise = void 0;\n\t});\n}\nasync function loadClientRoute(router, opts) {\n\tlet rematerialize = false;\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\trouter._tx?.[6]?.[2]?.();\n\t\trematerialize = !!router._refreshNextLoad || !!router._tx?.[6];\n\t}\n\tconst refreshPresentation = rematerialize ? router.stores.matches.get() : void 0;\n\tconst previousOwner = router._tx;\n\tconst resolvedLocation = router.stores.resolvedLocation.get();\n\tconst previousLocation = resolvedLocation ?? router.stores.location.get();\n\tconst location = router.latestLocation;\n\tconst pendingLocation = router._pendingLocation;\n\tconst redirects = pendingLocation?.href === location.href ? pendingLocation._redirects ?? 0 : 0;\n\tconst handoff = router._handoff;\n\tconst hydrationController = rematerialize ? void 0 : handoff?.[0]();\n\tconst preflight = new AbortController();\n\tconst previousPreflight = router._preflight;\n\trouter._preflight = preflight;\n\tif (!rematerialize && !hydrationController) handoff?.[1]();\n\tpreviousPreflight?.abort();\n\tif (preflight.signal.aborted) {\n\t\tawait awaitCurrent(router, previousOwner);\n\t\treturn;\n\t}\n\tconst changeInfo = getLocationChangeInfo(location, resolvedLocation);\n\trouter.emit({\n\t\ttype: \"onBeforeNavigate\",\n\t\t...changeInfo\n\t});\n\tif (!preflight.signal.aborted) router.emit({\n\t\ttype: \"onBeforeLoad\",\n\t\t...changeInfo\n\t});\n\tif (preflight.signal.aborted) {\n\t\tawait awaitCurrent(router, previousOwner);\n\t\treturn;\n\t}\n\tconst sameHref = previousLocation.href === location.href;\n\tlet matches;\n\tlet controller = preflight;\n\ttry {\n\t\tmatches = process.env.NODE_ENV !== \"production\" && rematerialize ? router.matchRoutes(location, {\n\t\t\t_controller: preflight,\n\t\t\t_rematerialize: true\n\t\t}) : router.matchRoutes(location, { _controller: preflight });\n\t\tacquireMatchResources(matches);\n\t} catch (cause) {\n\t\tpreflight.abort();\n\t\tif (!isRedirect(cause)) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && rematerialize) router._refreshNextLoad = void 0;\n\t\t\tawait awaitCurrent(router);\n\t\t\trouter._commitPromise?.resolve();\n\t\t\trouter._commitPromise = void 0;\n\t\t\treturn;\n\t\t}\n\t\tawait router.navigate({\n\t\t\t...cause.options,\n\t\t\treplace: true,\n\t\t\tignoreBlocker: true\n\t\t});\n\t\tawait awaitCurrent(router, previousOwner);\n\t\treturn;\n\t}\n\tconst resolvedPrefix = hydrationController ? handoff[1](matches) : void 0;\n\tif (resolvedPrefix) controller = hydrationController;\n\telse hydrationController?.abort();\n\tif (preflight.signal.aborted) {\n\t\ttransferMatchResources(router, matches);\n\t\tawait awaitCurrent(router, previousOwner);\n\t\treturn;\n\t}\n\trouter._preflight = void 0;\n\tconst tx = [\n\t\tcontroller,\n\t\tredirects,\n\t\tlocation,\n\t\tmatches,\n\t\tDate.now(),\n\t\tPromise.resolve().then(() => runClientTransaction(router, tx, sameHref, () => offerPending(router, tx), opts?.sync, resolvedPrefix)).catch(() => {\n\t\t\tif (router._tx === tx) restoreCommitted(router, tx);\n\t\t})\n\t];\n\tif (process.env.NODE_ENV !== \"production\" && rematerialize) {\n\t\ttx[6] = [refreshPresentation, handoff];\n\t\trouter._refreshNextLoad = void 0;\n\t}\n\trouter._tx = tx;\n\tif (previousOwner) {\n\t\tfor (const match of router.stores.matches.get()) {\n\t\t\tif (router._tx !== tx) break;\n\t\t\tif (match.isFetching) setFetching(router, match, false);\n\t\t}\n\t\tpreviousOwner[0].abort();\n\t\ttransferMatchResources(router, previousOwner[3], tx[3], true);\n\t}\n\tif (router._tx !== tx) {\n\t\ttransferMatchResources(router, tx[3]);\n\t\ttx[3] = [];\n\t\tawait awaitCurrent(router, tx);\n\t\treturn;\n\t}\n\trouter.batch(() => {\n\t\trouter.stores.status.set(\"pending\");\n\t\trouter.stores.location.set(location);\n\t});\n\tif (!resolvedLocation && !matches.some((match) => match._notFound)) offerPending(router, tx);\n\ttry {\n\t\tawait tx[5];\n\t} finally {\n\t\tawait awaitCurrent(router, tx);\n\t}\n}\nasync function refreshClientRoute(router) {\n\trouter._tx?.[6]?.[2]?.();\n\tconst pending = router._tx;\n\tif (pending && !pending[6] && router.stores.status.get() === \"pending\") {\n\t\tawait pending[5];\n\t\tif (router._tx !== pending) await awaitCurrent(router, pending);\n\t}\n\trouter._flights?.clear();\n\trouter.clearCache();\n\trouter._refreshNextLoad = true;\n\tawait loadClientRoute(router, { sync: true });\n}\nasync function preloadClientRoute(router, opts, redirects = 0) {\n\tif (redirects > 20) return;\n\tif (process.env.NODE_ENV !== \"production\" && (router._refreshNextLoad || router._tx?.[6])) return;\n\tconst location = opts._builtLocation ?? router.buildLocation(opts);\n\tconst base = router._committed;\n\tconst controller = new AbortController();\n\tlet matches;\n\ttry {\n\t\tmatches = router.matchRoutes(location, { _controller: controller });\n\t\tacquireMatchResources(matches);\n\t} catch (cause) {\n\t\tcontroller.abort();\n\t\tif (!isNotFound(cause)) console.error(cause);\n\t\treturn;\n\t}\n\t(router._preloads ??= /* @__PURE__ */ new Map()).set(controller, matches);\n\tlet active;\n\ttry {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = await executeClientLane(router, location, matches, [\n\t\t\t\tcontroller,\n\t\t\t\tredirects,\n\t\t\t\t() => true,\n\t\t\t\tbase,\n\t\t\t\ttrue\n\t\t\t]);\n\t\t} finally {\n\t\t\tactive = router._preloads.delete(controller);\n\t\t\ttransferMatchResources(router, matches);\n\t\t\tcontroller.abort();\n\t\t}\n\t\tif (!isControl(result)) return result[1];\n\t\tif (active && result[0] === REDIRECTED && !result[1].options.reloadDocument) return preloadClientRoute(router, {\n\t\t\t...result[1].options,\n\t\t\t_fromLocation: location\n\t\t}, redirects + 1);\n\t} catch (cause) {\n\t\tif (!isNotFound(cause)) console.error(cause);\n\t}\n}\nasync function hydrate(router) {\n\tif (process.env.NODE_ENV !== \"production\" && !window.$_TSR) throw new Error(\"Invariant failed: Expected to find bootstrap data on window.$_TSR, but we did not. Please file an issue!\");\n\tconst tsr = window.$_TSR;\n\tconst adapters = router.options.serializationAdapters;\n\tif (adapters?.length) {\n\t\ttsr.t = new Map(adapters.map((adapter) => [adapter.key, adapter.fromSerializable]));\n\t\ttsr.buffer.forEach((script) => script());\n\t}\n\ttsr.initialized = true;\n\tconst dehydratedRouter = tsr.router;\n\tif (process.env.NODE_ENV !== \"production\" && !dehydratedRouter) throw new Error(\"Invariant failed: Expected to find a dehydrated data on window.$_TSR.router, but we did not. Please file an issue!\");\n\trouter.ssr = { manifest: dehydratedRouter.manifest };\n\trouter.options.ssr = { nonce: document.querySelector(\"meta[property=\\\"csp-nonce\\\"]\")?.content };\n\tconst dehydratedMatches = dehydratedRouter.matches;\n\tconst controller = new AbortController();\n\tconst previousPreflight = router._preflight;\n\trouter._preflight = controller;\n\tpreviousPreflight?.abort();\n\tconst isCurrent = () => router._preflight === controller;\n\tlet location;\n\tlet candidates;\n\tlet handoffHistoryHref;\n\tlet handoffHistoryState;\n\ttry {\n\t\tawait waitFor(router.options.hydrate?.(dehydratedRouter.dehydratedData), controller.signal);\n\t\tif (!isCurrent()) return;\n\t\tconst historyLocation = router.history.location;\n\t\thandoffHistoryHref = historyLocation.href;\n\t\thandoffHistoryState = historyLocation.state;\n\t\trouter.updateLatestLocation();\n\t\tlocation = router.latestLocation;\n\t\trouter.stores.location.set(location);\n\t\tcandidates = router.matchRoutes(location, { _controller: controller });\n\t} catch (cause) {\n\t\tif (isCurrent()) router._preflight = void 0;\n\t\tcontroller.abort(cause);\n\t\tif (cause !== controller.signal) throw cause;\n\t}\n\tif (!isCurrent()) return;\n\tconst committed = [];\n\tlet pendingBoundary;\n\tlet verifiedAssetEnd = 0;\n\tconst retryFrom = (index) => {\n\t\tverifiedAssetEnd = Math.min(verifiedAssetEnd, index + 1);\n\t\tconst removed = committed.splice(index);\n\t\tfor (const match of removed) if (getRoute(router, match).options.loader && (match.status === \"success\" || !match.invalid && \"loaderData\" in match)) cacheLoaderMatch(router, {\n\t\t\t...match,\n\t\t\tstatus: \"success\",\n\t\t\terror: void 0,\n\t\t\tpreload: true\n\t\t}, router._cache.get(match.id));\n\t\ttransferMatchResources(router, removed);\n\t};\n\tconst shared = dehydratedMatches.length > candidates.length ? candidates.findIndex((match) => match._notFound) + 1 : dehydratedMatches.length;\n\tlet isTerminal = false;\n\tfor (let index = 0; index < shared; index++) {\n\t\tconst candidate = candidates[index];\n\t\tconst dehydrated = dehydratedMatches[index];\n\t\tif (typeof dehydrated.i !== \"string\" || hydrateSsrMatchId(dehydrated.i) !== candidate.id) {\n\t\t\tpendingBoundary ??= index;\n\t\t\tbreak;\n\t\t}\n\t\tverifiedAssetEnd = index + 1;\n\t\tconst route = getRoute(router, candidate);\n\t\tif (\"l\" in dehydrated || dehydrated.s === \"success\" && dehydrated.e === void 0 && route.options.loader) candidate.loaderData = dehydrated.l;\n\t\tcandidate.status = dehydrated.s;\n\t\tcandidate.ssr = dehydrated.ssr;\n\t\troute.options.ssr = candidate.ssr;\n\t\tcandidate.updatedAt = dehydrated.u;\n\t\tcandidate.error = dehydrated.e;\n\t\tcandidate._notFound ||= dehydrated.g;\n\t\tif (candidate.status === \"error\" || candidate.status === \"notFound\" || candidate._notFound) {\n\t\t\tisTerminal = true;\n\t\t\tcommitted.push(candidate);\n\t\t\tif (candidate.ssr === false || candidate.ssr === \"data-only\") pendingBoundary ??= index;\n\t\t\tbreak;\n\t\t}\n\t\tif (candidate.status === \"pending\") {\n\t\t\tpendingBoundary ??= index;\n\t\t\tbreak;\n\t\t}\n\t\tcommitted.push(candidate);\n\t\tif (candidate.ssr === \"data-only\") pendingBoundary ??= index;\n\t}\n\tif (!isTerminal && committed.length === shared && shared < candidates.length) pendingBoundary = shared;\n\tconst chunks = committed.map(async (match) => {\n\t\ttry {\n\t\t\tconst route = getRoute(router, match);\n\t\t\tif (match._notFound) await Promise.all([loadRouteChunk(route), loadRouteChunk(route, \"notFoundComponent\")]);\n\t\t\telse await loadRouteChunk(route, match.status === \"error\" ? \"errorComponent\" : match.status === \"notFound\" ? \"notFoundComponent\" : void 0);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t});\n\tlet chunkFailure = 0;\n\ttry {\n\t\twhile (chunkFailure < chunks.length && await waitFor(chunks[chunkFailure], controller.signal)) chunkFailure++;\n\t} catch {\n\t\treturn;\n\t}\n\tif (!isCurrent()) return;\n\tif (chunkFailure < committed.length) retryFrom(chunkFailure);\n\tconst contextEnd = Math.max(pendingBoundary === committed.length ? committed.length + 1 : committed.length, chunkFailure < chunks.length ? chunkFailure : verifiedAssetEnd);\n\tfor (let index = 0; index < contextEnd; index++) {\n\t\tconst match = candidates[index];\n\t\tconst route = getRoute(router, match);\n\t\tconst parentContext = candidates[index - 1]?.context ?? router.options.context ?? {};\n\t\tlet routeContext;\n\t\tif (route.options.context) {\n\t\t\ttry {\n\t\t\t\trouteContext = match._ctx = route.options.context({\n\t\t\t\t\tdeps: match.loaderDeps,\n\t\t\t\t\tparams: match.params,\n\t\t\t\t\tcontext: parentContext,\n\t\t\t\t\tlocation,\n\t\t\t\t\tnavigate: navigateFrom(router, location),\n\t\t\t\t\tbuildLocation: router.buildLocation,\n\t\t\t\t\tcause: match.cause,\n\t\t\t\t\tabortController: controller,\n\t\t\t\t\tpreload: false,\n\t\t\t\t\tmatches: candidates,\n\t\t\t\t\trouteId: route.id\n\t\t\t\t}) || {};\n\t\t\t} catch {\n\t\t\t\tif (!isCurrent()) return;\n\t\t\t\tif (match.status !== \"error\" && match.status !== \"notFound\" && !match._notFound) {\n\t\t\t\t\tretryFrom(index);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!isCurrent()) return;\n\t\t}\n\t\tmatch.context = {\n\t\t\t...parentContext,\n\t\t\t...routeContext,\n\t\t\t...committed[index] && dehydratedMatches[index].b\n\t\t};\n\t}\n\tawait projectLane(router, [location, candidates], controller.signal, 0, verifiedAssetEnd);\n\tif (!isCurrent()) return;\n\tconst needsClientLoad = pendingBoundary !== void 0 || committed.length < shared;\n\tconst committedMatches = isTerminal && committed.length === shared ? candidates : committed;\n\tlet presented = needsClientLoad ? candidates : committedMatches;\n\tlet dataOnlyAssetEnd;\n\tif (needsClientLoad && pendingBoundary !== void 0) {\n\t\tconst boundary = presented[pendingBoundary];\n\t\tdataOnlyAssetEnd = boundary.ssr === \"data-only\" && verifiedAssetEnd > pendingBoundary + 1 ? verifiedAssetEnd : void 0;\n\t\tpresented = presented.slice();\n\t\tpresented[pendingBoundary] = {\n\t\t\t...boundary,\n\t\t\tstatus: \"pending\",\n\t\t\tssr: boundary.ssr === \"data-only\" ? \"data-only\" : false,\n\t\t\t_assetEnd: dataOnlyAssetEnd\n\t\t};\n\t}\n\tconst claim = () => {\n\t\tconst historyLocation = router.history.location;\n\t\treturn needsClientLoad && !router._tx && historyLocation.href === handoffHistoryHref && historyLocation.state === handoffHistoryState && router._committed === committedMatches && committedMatches.length && !controller.signal.aborted ? controller : void 0;\n\t};\n\tconst handoff = [claim, (matches) => {\n\t\tif (router._handoff !== handoff) return;\n\t\trouter._handoff = void 0;\n\t\tconst prefix = committedMatches.length;\n\t\tif (!matches || !claim() || committedMatches.some((match, index) => match.id !== matches[index]?.id)) {\n\t\t\tcontroller.abort();\n\t\t\treturn;\n\t\t}\n\t\tlet handoffAssetEnd = dataOnlyAssetEnd;\n\t\tif (handoffAssetEnd !== void 0) {\n\t\t\tfor (let index = prefix; index < handoffAssetEnd; index++) if (candidates[index]?.id !== matches[index]?.id) {\n\t\t\t\thandoffAssetEnd = index > pendingBoundary + 1 ? index : void 0;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst clones = committedMatches.map((match) => ({ ...match }));\n\t\tif (handoffAssetEnd !== void 0) clones[pendingBoundary]._assetEnd = handoffAssetEnd;\n\t\ttransferMatchResources(router, matches.splice(0, prefix, ...clones));\n\t\tfor (let index = prefix; index < matches.length; index++) {\n\t\t\tconst match = matches[index];\n\t\t\tconst hydrated = candidates[index];\n\t\t\tif (hydrated?.id === match.id && hydrated._ctx) match._ctx = hydrated._ctx;\n\t\t\tmatch.abortController = controller;\n\t\t}\n\t\treturn prefix;\n\t}];\n\trouter._committed = committedMatches;\n\trouter._handoff = handoff;\n\trouter._preflight = void 0;\n\trouter.batch(() => {\n\t\trouter.stores.setMatches(presented);\n\t\trouter.stores.status.set(\"idle\");\n\t\tif (!needsClientLoad) router.stores.resolvedLocation.set(router.stores.location.get());\n\t});\n}\n//#endregion\nexport { _getAssetMatches, _getRenderedMatches, hydrate, loadClientRoute, loadRouteChunk, preloadClientRoute, refreshClientRoute, replaceRouteChunk };\n\n//# sourceMappingURL=load-client.js.map","//#region src/link.ts\nconst preloadWarning = \"Error preloading route! ☝️\";\n//#endregion\nexport { preloadWarning };\n\n//# sourceMappingURL=link.js.map","import { invariant } from \"./invariant.js\";\nimport { joinPaths, trimPathLeft, trimPathRight } from \"./path.js\";\nimport { notFound } from \"./not-found.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { redirect } from \"./redirect.js\";\n//#region src/route.ts\nvar BaseRoute = class {\n\tget to() {\n\t\treturn this._to;\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tget path() {\n\t\treturn this._path;\n\t}\n\tget fullPath() {\n\t\treturn this._fullPath;\n\t}\n\tconstructor(options) {\n\t\tthis.init = (opts) => {\n\t\t\tthis.originalIndex = opts.originalIndex;\n\t\t\tconst options = this.options;\n\t\t\tconst isRoot = !options?.path && !options?.id;\n\t\t\tthis.parentRoute = this.options.getParentRoute?.();\n\t\t\tif (isRoot) this._path = rootRouteId;\n\t\t\telse if (!this.parentRoute) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") throw new Error(`Invariant failed: Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.`);\n\t\t\t\tinvariant();\n\t\t\t}\n\t\t\tlet path = isRoot ? rootRouteId : options?.path;\n\t\t\tif (path && path !== \"/\") path = trimPathLeft(path);\n\t\t\tconst customId = options?.id || path;\n\t\t\tlet id = isRoot ? rootRouteId : joinPaths([this.parentRoute.id === \"__root__\" ? \"\" : this.parentRoute.id, customId]);\n\t\t\tif (path === \"__root__\") path = \"/\";\n\t\t\tif (id !== \"__root__\") id = joinPaths([\"/\", id]);\n\t\t\tconst fullPath = id === \"__root__\" ? \"/\" : joinPaths([this.parentRoute.fullPath, path]);\n\t\t\tthis._path = path;\n\t\t\tthis._id = id;\n\t\t\tthis._fullPath = fullPath;\n\t\t\tthis._to = trimPathRight(fullPath);\n\t\t};\n\t\tthis.addChildren = (children) => {\n\t\t\treturn this._addFileChildren(children);\n\t\t};\n\t\tthis._addFileChildren = (children) => {\n\t\t\tif (Array.isArray(children)) this.children = children;\n\t\t\tif (typeof children === \"object\" && children !== null) this.children = Object.values(children);\n\t\t\treturn this;\n\t\t};\n\t\tthis._addFileTypes = () => {\n\t\t\treturn this;\n\t\t};\n\t\tthis.updateLoader = (options) => {\n\t\t\tObject.assign(this.options, options);\n\t\t\treturn this;\n\t\t};\n\t\tthis.update = (options) => {\n\t\t\tObject.assign(this.options, options);\n\t\t\treturn this;\n\t\t};\n\t\tthis.lazy = (lazyFn) => {\n\t\t\tthis.lazyFn = lazyFn;\n\t\t\treturn this;\n\t\t};\n\t\tthis.redirect = (opts) => redirect({\n\t\t\tfrom: this.fullPath,\n\t\t\t...opts\n\t\t});\n\t\tthis.options = options || {};\n\t\tthis.isRoot = !options?.getParentRoute;\n\t\tif (options?.id && options?.path) throw new Error(`Route cannot have both an 'id' and a 'path' option.`);\n\t}\n};\nvar BaseRouteApi = class {\n\tconstructor({ id }) {\n\t\tthis.notFound = (opts) => {\n\t\t\treturn notFound({\n\t\t\t\trouteId: this.id,\n\t\t\t\t...opts\n\t\t\t});\n\t\t};\n\t\tthis.redirect = (opts) => redirect({\n\t\t\tfrom: this.id,\n\t\t\t...opts\n\t\t});\n\t\tthis.id = id;\n\t}\n};\nvar BaseRootRoute = class extends BaseRoute {\n\tconstructor(options) {\n\t\tsuper(options);\n\t}\n};\n//#endregion\nexport { BaseRootRoute, BaseRoute, BaseRouteApi };\n\n//# sourceMappingURL=route.js.map","\"use client\";\nimport { wrapInNonRouteComponentContext } from \"./nonRouteComponentContext.js\";\nimport * as React$1 from \"react\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n//#region src/CatchBoundary.tsx\nfunction CatchBoundary(props) {\n\treturn /* @__PURE__ */ jsx(CatchBoundaryImpl, { ...props });\n}\nvar CatchBoundaryImpl = class extends React$1.Component {\n\tconstructor(..._args) {\n\t\tsuper(..._args);\n\t\tthis.state = { error: null };\n\t\tthis.reset = () => {\n\t\t\tthis.setState({ error: null });\n\t\t};\n\t}\n\tstatic getDerivedStateFromProps(props, state) {\n\t\tconst resetKey = props.getResetKey();\n\t\tif (state.error && state.resetKey !== resetKey) return {\n\t\t\tresetKey,\n\t\t\terror: null\n\t\t};\n\t\treturn { resetKey };\n\t}\n\tstatic getDerivedStateFromError(error) {\n\t\treturn { error };\n\t}\n\tcomponentDidCatch(error, errorInfo) {\n\t\tthis.props.onCatch?.(error, errorInfo);\n\t}\n\trender() {\n\t\tconst error = this.state.error;\n\t\tif (error) {\n\t\t\tconst element = React$1.createElement(this.props.errorComponent ?? ErrorComponent, {\n\t\t\t\terror,\n\t\t\t\treset: this.reset\n\t\t\t});\n\t\t\treturn process.env.NODE_ENV !== \"production\" ? wrapInNonRouteComponentContext(element, \"errorComponent\") : element;\n\t\t}\n\t\treturn this.props.children;\n\t}\n};\nfunction ErrorComponent({ error }) {\n\tconst [show, setShow] = React$1.useState(process.env.NODE_ENV !== \"production\");\n\treturn /* @__PURE__ */ jsxs(\"div\", {\n\t\tstyle: {\n\t\t\tpadding: \".5rem\",\n\t\t\tmaxWidth: \"100%\"\n\t\t},\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ jsxs(\"div\", {\n\t\t\t\tstyle: {\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tgap: \".5rem\"\n\t\t\t\t},\n\t\t\t\tchildren: [/* @__PURE__ */ jsx(\"strong\", {\n\t\t\t\t\tstyle: { fontSize: \"1rem\" },\n\t\t\t\t\tchildren: \"Something went wrong!\"\n\t\t\t\t}), /* @__PURE__ */ jsx(\"button\", {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tappearance: \"none\",\n\t\t\t\t\t\tfontSize: \".6em\",\n\t\t\t\t\t\tborder: \"1px solid currentColor\",\n\t\t\t\t\t\tpadding: \".1rem .2rem\",\n\t\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t\t\tborderRadius: \".25rem\"\n\t\t\t\t\t},\n\t\t\t\t\tonClick: () => setShow((d) => !d),\n\t\t\t\t\tchildren: show ? \"Hide Error\" : \"Show Error\"\n\t\t\t\t})]\n\t\t\t}),\n\t\t\t/* @__PURE__ */ jsx(\"div\", { style: { height: \".25rem\" } }),\n\t\t\tshow ? /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\"pre\", {\n\t\t\t\tstyle: {\n\t\t\t\t\tfontSize: \".7em\",\n\t\t\t\t\tborder: \"1px solid red\",\n\t\t\t\t\tborderRadius: \".25rem\",\n\t\t\t\t\tpadding: \".3rem\",\n\t\t\t\t\tcolor: \"red\",\n\t\t\t\t\toverflow: \"auto\"\n\t\t\t\t},\n\t\t\t\tchildren: error.message ? /* @__PURE__ */ jsx(\"code\", { children: error.message }) : null\n\t\t\t}) }) : null\n\t\t]\n\t});\n}\n//#endregion\nexport { CatchBoundary, ErrorComponent };\n\n//# sourceMappingURL=CatchBoundary.js.map","\"use client\";\nimport React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/ClientOnly.tsx\n/**\n* Render the children only after the JS has loaded client-side. Use an optional\n* fallback component if the JS is not yet loaded.\n*\n* @example\n* Render a Chart component if JS loads, renders a simple FakeChart\n* component server-side or if there is no JS. The FakeChart can have only the\n* UI without the behavior or be a loading spinner or skeleton.\n*\n* ```tsx\n* return (\n* <ClientOnly fallback={<FakeChart />}>\n* <Chart />\n* </ClientOnly>\n* )\n* ```\n*/\nfunction ClientOnly({ children, fallback = null }) {\n\treturn /* @__PURE__ */ jsx(React.Fragment, { children: useHydrated() ? children : fallback });\n}\n/**\n* Return a boolean indicating if the JS has been hydrated already.\n* When doing Server-Side Rendering, the result will always be false.\n* When doing Client-Side Rendering, the result will always be false on the\n* first render and true from then on. Even if a new component renders it will\n* always start with true.\n*\n* @example\n* ```tsx\n* // Disable a button that needs JS to work.\n* let hydrated = useHydrated()\n* return (\n* <button type=\"button\" disabled={!hydrated} onClick={doSomethingCustom}>\n* Click me\n* </button>\n* )\n* ```\n* @returns True if the JS has been hydrated already, false otherwise.\n*/\nfunction useHydrated() {\n\treturn React.useSyncExternalStore(subscribe, () => true, () => false);\n}\nfunction subscribe() {\n\treturn () => {};\n}\n//#endregion\nexport { ClientOnly, useHydrated };\n\n//# sourceMappingURL=ClientOnly.js.map","\"use client\";\nimport * as React$1 from \"react\";\n//#region src/routerContext.tsx\nvar routerContext = React$1.createContext(null);\n//#endregion\nexport { routerContext };\n\n//# sourceMappingURL=routerContext.js.map","\"use client\";\nimport { routerContext } from \"./routerContext.js\";\nimport * as React$1 from \"react\";\n//#region src/useRouter.tsx\n/**\n* Access the current TanStack Router instance from React context.\n* Must be used within a `RouterProvider`.\n*\n* Options:\n* - `warn`: Log a warning if no router context is found (default: true).\n*\n* @returns The registered router instance.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useRouterHook\n*/\nfunction useRouter(opts) {\n\tconst value = React$1.useContext(routerContext);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tif ((opts?.warn ?? true) && !value) console.warn(\"Warning: useRouter must be used inside a <RouterProvider> component!\");\n\t}\n\treturn value;\n}\n//#endregion\nexport { useRouter };\n\n//# sourceMappingURL=useRouter.js.map","\"use client\";\nimport * as React$1 from \"react\";\n//#region src/matchContext.tsx\nvar matchContext = React$1.createContext(void 0);\nvar dummyMatchContext = React$1.createContext(void 0);\n//#endregion\nexport { dummyMatchContext, matchContext };\n\n//# sourceMappingURL=matchContext.js.map","var ReactiveFlags = /* @__PURE__ */ ((ReactiveFlags2) => {\n ReactiveFlags2[ReactiveFlags2[\"None\"] = 0] = \"None\";\n ReactiveFlags2[ReactiveFlags2[\"Mutable\"] = 1] = \"Mutable\";\n ReactiveFlags2[ReactiveFlags2[\"Watching\"] = 2] = \"Watching\";\n ReactiveFlags2[ReactiveFlags2[\"RecursedCheck\"] = 4] = \"RecursedCheck\";\n ReactiveFlags2[ReactiveFlags2[\"Recursed\"] = 8] = \"Recursed\";\n ReactiveFlags2[ReactiveFlags2[\"Dirty\"] = 16] = \"Dirty\";\n ReactiveFlags2[ReactiveFlags2[\"Pending\"] = 32] = \"Pending\";\n return ReactiveFlags2;\n})(ReactiveFlags || {});\n// @__NO_SIDE_EFFECTS__\nfunction createReactiveSystem({\n update,\n notify,\n unwatched\n}) {\n return {\n link,\n unlink,\n propagate,\n checkDirty,\n shallowPropagate\n };\n function link(dep, sub, version) {\n const prevDep = sub.depsTail;\n if (prevDep !== void 0 && prevDep.dep === dep) {\n return;\n }\n const nextDep = prevDep !== void 0 ? prevDep.nextDep : sub.deps;\n if (nextDep !== void 0 && nextDep.dep === dep) {\n nextDep.version = version;\n sub.depsTail = nextDep;\n return;\n }\n const prevSub = dep.subsTail;\n if (prevSub !== void 0 && prevSub.version === version && prevSub.sub === sub) {\n return;\n }\n const newLink = sub.depsTail = dep.subsTail = {\n version,\n dep,\n sub,\n prevDep,\n nextDep,\n prevSub,\n nextSub: void 0\n };\n if (nextDep !== void 0) {\n nextDep.prevDep = newLink;\n }\n if (prevDep !== void 0) {\n prevDep.nextDep = newLink;\n } else {\n sub.deps = newLink;\n }\n if (prevSub !== void 0) {\n prevSub.nextSub = newLink;\n } else {\n dep.subs = newLink;\n }\n }\n function unlink(link2, sub = link2.sub) {\n const dep = link2.dep;\n const prevDep = link2.prevDep;\n const nextDep = link2.nextDep;\n const nextSub = link2.nextSub;\n const prevSub = link2.prevSub;\n if (nextDep !== void 0) {\n nextDep.prevDep = prevDep;\n } else {\n sub.depsTail = prevDep;\n }\n if (prevDep !== void 0) {\n prevDep.nextDep = nextDep;\n } else {\n sub.deps = nextDep;\n }\n if (nextSub !== void 0) {\n nextSub.prevSub = prevSub;\n } else {\n dep.subsTail = prevSub;\n }\n if (prevSub !== void 0) {\n prevSub.nextSub = nextSub;\n } else if ((dep.subs = nextSub) === void 0) {\n unwatched(dep);\n }\n return nextDep;\n }\n function propagate(link2) {\n let next = link2.nextSub;\n let stack;\n top: do {\n const sub = link2.sub;\n let flags = sub.flags;\n if (!(flags & (4 | 8 | 16 | 32))) {\n sub.flags = flags | 32;\n } else if (!(flags & (4 | 8))) {\n flags = 0;\n } else if (!(flags & 4)) {\n sub.flags = flags & -9 | 32;\n } else if (!(flags & (16 | 32)) && isValidLink(link2, sub)) {\n sub.flags = flags | (8 | 32);\n flags &= 1;\n } else {\n flags = 0;\n }\n if (flags & 2) {\n notify(sub);\n }\n if (flags & 1) {\n const subSubs = sub.subs;\n if (subSubs !== void 0) {\n const nextSub = (link2 = subSubs).nextSub;\n if (nextSub !== void 0) {\n stack = { value: next, prev: stack };\n next = nextSub;\n }\n continue;\n }\n }\n if ((link2 = next) !== void 0) {\n next = link2.nextSub;\n continue;\n }\n while (stack !== void 0) {\n link2 = stack.value;\n stack = stack.prev;\n if (link2 !== void 0) {\n next = link2.nextSub;\n continue top;\n }\n }\n break;\n } while (true);\n }\n function checkDirty(link2, sub) {\n let stack;\n let checkDepth = 0;\n let dirty = false;\n top: do {\n const dep = link2.dep;\n const flags = dep.flags;\n if (sub.flags & 16) {\n dirty = true;\n } else if ((flags & (1 | 16)) === (1 | 16)) {\n if (update(dep)) {\n const subs = dep.subs;\n if (subs.nextSub !== void 0) {\n shallowPropagate(subs);\n }\n dirty = true;\n }\n } else if ((flags & (1 | 32)) === (1 | 32)) {\n if (link2.nextSub !== void 0 || link2.prevSub !== void 0) {\n stack = { value: link2, prev: stack };\n }\n link2 = dep.deps;\n sub = dep;\n ++checkDepth;\n continue;\n }\n if (!dirty) {\n const nextDep = link2.nextDep;\n if (nextDep !== void 0) {\n link2 = nextDep;\n continue;\n }\n }\n while (checkDepth--) {\n const firstSub = sub.subs;\n const hasMultipleSubs = firstSub.nextSub !== void 0;\n if (hasMultipleSubs) {\n link2 = stack.value;\n stack = stack.prev;\n } else {\n link2 = firstSub;\n }\n if (dirty) {\n if (update(sub)) {\n if (hasMultipleSubs) {\n shallowPropagate(firstSub);\n }\n sub = link2.sub;\n continue;\n }\n dirty = false;\n } else {\n sub.flags &= -33;\n }\n sub = link2.sub;\n const nextDep = link2.nextDep;\n if (nextDep !== void 0) {\n link2 = nextDep;\n continue top;\n }\n }\n return dirty;\n } while (true);\n }\n function shallowPropagate(link2) {\n do {\n const sub = link2.sub;\n const flags = sub.flags;\n if ((flags & (32 | 16)) === 32) {\n sub.flags = flags | 16;\n if ((flags & (2 | 4)) === 2) {\n notify(sub);\n }\n }\n } while ((link2 = link2.nextSub) !== void 0);\n }\n function isValidLink(checkLink, sub) {\n let link2 = sub.depsTail;\n while (link2 !== void 0) {\n if (link2 === checkLink) {\n return true;\n }\n link2 = link2.prevDep;\n }\n return false;\n }\n}\nexport {\n ReactiveFlags,\n createReactiveSystem\n};\n//# sourceMappingURL=alien.js.map\n","import { createReactiveSystem, ReactiveFlags } from \"./alien.js\";\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n const isObserver = typeof nextHandler === \"object\";\n const self = isObserver ? nextHandler : void 0;\n return {\n next: (isObserver ? nextHandler.next : nextHandler)?.bind(self),\n error: (isObserver ? nextHandler.error : errorHandler)?.bind(self),\n complete: (isObserver ? nextHandler.complete : completionHandler)?.bind(\n self\n )\n };\n}\nconst queuedEffects = [];\nlet cycle = 0;\nconst { link, unlink, propagate, checkDirty, shallowPropagate } = createReactiveSystem({\n update(atom) {\n return atom._update();\n },\n // eslint-disable-next-line no-shadow\n notify(effect2) {\n queuedEffects[queuedEffectsLength++] = effect2;\n effect2.flags &= ~ReactiveFlags.Watching;\n },\n unwatched(atom) {\n if (atom.depsTail !== void 0) {\n atom.depsTail = void 0;\n atom.flags = ReactiveFlags.Mutable | ReactiveFlags.Dirty;\n purgeDeps(atom);\n }\n }\n});\nlet notifyIndex = 0;\nlet queuedEffectsLength = 0;\nlet activeSub;\nlet batchDepth = 0;\nfunction batch(fn) {\n try {\n ++batchDepth;\n fn();\n } finally {\n if (!--batchDepth) {\n flush();\n }\n }\n}\nfunction purgeDeps(sub) {\n const depsTail = sub.depsTail;\n let dep = depsTail !== void 0 ? depsTail.nextDep : sub.deps;\n while (dep !== void 0) {\n dep = unlink(dep, sub);\n }\n}\nfunction flush() {\n if (batchDepth > 0) {\n return;\n }\n while (notifyIndex < queuedEffectsLength) {\n const effect2 = queuedEffects[notifyIndex];\n queuedEffects[notifyIndex++] = void 0;\n effect2.notify();\n }\n notifyIndex = 0;\n queuedEffectsLength = 0;\n}\nfunction createAsyncAtom(getValue, options) {\n const ref = {};\n const atom = createAtom(() => {\n getValue().then(\n (data) => {\n const internalAtom = ref.current;\n if (internalAtom._update({ status: \"done\", data })) {\n const subs = internalAtom.subs;\n if (subs !== void 0) {\n propagate(subs);\n shallowPropagate(subs);\n flush();\n }\n }\n },\n (error) => {\n const internalAtom = ref.current;\n if (internalAtom._update({ status: \"error\", error })) {\n const subs = internalAtom.subs;\n if (subs !== void 0) {\n propagate(subs);\n shallowPropagate(subs);\n flush();\n }\n }\n }\n );\n return { status: \"pending\" };\n }, options);\n ref.current = atom;\n return atom;\n}\nfunction createAtom(valueOrFn, options) {\n const isComputed = typeof valueOrFn === \"function\";\n const getter = valueOrFn;\n const atom = {\n _snapshot: isComputed ? void 0 : valueOrFn,\n subs: void 0,\n subsTail: void 0,\n deps: void 0,\n depsTail: void 0,\n flags: isComputed ? ReactiveFlags.None : ReactiveFlags.Mutable,\n get() {\n if (activeSub !== void 0) {\n link(atom, activeSub, cycle);\n }\n return atom._snapshot;\n },\n subscribe(observerOrFn) {\n const obs = toObserver(observerOrFn);\n const observed = { current: false };\n const e = effect(() => {\n atom.get();\n if (!observed.current) {\n observed.current = true;\n } else {\n obs.next?.(atom._snapshot);\n }\n });\n return {\n unsubscribe: () => {\n e.stop();\n }\n };\n },\n _update(getValue) {\n const prevSub = activeSub;\n const compare = options?.compare ?? Object.is;\n if (isComputed) {\n activeSub = atom;\n ++cycle;\n atom.depsTail = void 0;\n } else if (getValue === void 0) {\n return false;\n }\n if (isComputed) {\n atom.flags = ReactiveFlags.Mutable | ReactiveFlags.RecursedCheck;\n }\n try {\n const oldValue = atom._snapshot;\n const newValue = typeof getValue === \"function\" ? getValue(oldValue) : getValue === void 0 && isComputed ? getter(oldValue) : getValue;\n if (oldValue === void 0 || !compare(oldValue, newValue)) {\n atom._snapshot = newValue;\n return true;\n }\n return false;\n } finally {\n activeSub = prevSub;\n if (isComputed) {\n atom.flags &= ~ReactiveFlags.RecursedCheck;\n }\n purgeDeps(atom);\n }\n }\n };\n if (isComputed) {\n atom.flags = ReactiveFlags.Mutable | ReactiveFlags.Dirty;\n atom.get = function() {\n const flags = atom.flags;\n if (flags & ReactiveFlags.Dirty || flags & ReactiveFlags.Pending && checkDirty(atom.deps, atom)) {\n if (atom._update()) {\n const subs = atom.subs;\n if (subs !== void 0) {\n shallowPropagate(subs);\n }\n }\n } else if (flags & ReactiveFlags.Pending) {\n atom.flags = flags & ~ReactiveFlags.Pending;\n }\n if (activeSub !== void 0) {\n link(atom, activeSub, cycle);\n }\n return atom._snapshot;\n };\n } else {\n atom.set = function(valueOrFn2) {\n if (atom._update(valueOrFn2)) {\n const subs = atom.subs;\n if (subs !== void 0) {\n propagate(subs);\n shallowPropagate(subs);\n flush();\n }\n }\n };\n }\n return atom;\n}\nfunction effect(fn) {\n const run = () => {\n const prevSub = activeSub;\n activeSub = effectObj;\n ++cycle;\n effectObj.depsTail = void 0;\n effectObj.flags = ReactiveFlags.Watching | ReactiveFlags.RecursedCheck;\n try {\n return fn();\n } finally {\n activeSub = prevSub;\n effectObj.flags &= ~ReactiveFlags.RecursedCheck;\n purgeDeps(effectObj);\n }\n };\n const effectObj = {\n deps: void 0,\n depsTail: void 0,\n subs: void 0,\n subsTail: void 0,\n flags: ReactiveFlags.Watching | ReactiveFlags.RecursedCheck,\n notify() {\n const flags = this.flags;\n if (flags & ReactiveFlags.Dirty || flags & ReactiveFlags.Pending && checkDirty(this.deps, this)) {\n run();\n } else {\n this.flags = ReactiveFlags.Watching;\n }\n },\n stop() {\n this.flags = ReactiveFlags.None;\n this.depsTail = void 0;\n purgeDeps(this);\n }\n };\n run();\n return effectObj;\n}\nexport {\n batch,\n createAsyncAtom,\n createAtom,\n flush,\n toObserver\n};\n//# sourceMappingURL=atom.js.map\n","import { useCallback } from \"react\";\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector\";\nfunction defaultCompare(a, b) {\n return a === b;\n}\nfunction useStore(atom, selector, compare = defaultCompare) {\n const subscribe = useCallback(\n (handleStoreChange) => {\n if (!atom) {\n return () => {\n };\n }\n const { unsubscribe } = atom.subscribe(handleStoreChange);\n return unsubscribe;\n },\n [atom]\n );\n const boundGetSnapshot = useCallback(() => atom?.get(), [atom]);\n const selectedSnapshot = useSyncExternalStoreWithSelector(\n subscribe,\n boundGetSnapshot,\n boundGetSnapshot,\n selector,\n compare\n );\n return selectedSnapshot;\n}\nexport {\n useStore\n};\n//# sourceMappingURL=useStore.js.map\n","\"use client\";\nimport { dummyMatchContext, matchContext } from \"./matchContext.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { invariant, replaceEqualDeep } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useStore } from \"@tanstack/react-store\";\n//#region src/useMatch.tsx\nvar dummyMatch = {};\nfunction useStructuralSharing(opts, router) {\n\tconst previousResult = React$1.useRef();\n\treturn (slice) => {\n\t\tconst selected = opts?.select ? opts.select(slice) : slice;\n\t\tif (opts?.structuralSharing ?? router.options.defaultStructuralSharing) return previousResult.current = replaceEqualDeep(previousResult.current, selected);\n\t\treturn selected;\n\t};\n}\n/**\n* Read and select the nearest or targeted route match.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useMatchHook\n*/\nfunction useMatch(opts) {\n\tconst router = useRouter();\n\tconst nearestRouteId = React$1.useContext(opts.from ? dummyMatchContext : matchContext);\n\tconst routeId = opts.from ?? nearestRouteId;\n\tconst matchStore = router.stores.getMatchStore(routeId);\n\tif (isServer ?? router.isServer) {\n\t\tconst match = matchStore.get();\n\t\tif (!match) {\n\t\t\tif (opts.shouldThrow ?? true) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") throw new Error(`Invariant failed: Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`);\n\t\t\t\tinvariant();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn opts.select ? opts.select(match) : match;\n\t}\n\tconst selector = useStructuralSharing(opts, router);\n\tconst matchSelection = useStore(matchStore, (match) => match ? selector(match) : dummyMatch);\n\tif (matchSelection !== dummyMatch) return matchSelection;\n\tif (opts.shouldThrow ?? true) {\n\t\tif (process.env.NODE_ENV !== \"production\") throw new Error(`Invariant failed: Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`);\n\t\tinvariant();\n\t}\n}\n//#endregion\nexport { useMatch, useStructuralSharing };\n\n//# sourceMappingURL=useMatch.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useLoaderData.tsx\n/**\n* Read and select the current route's loader data with type‑safety.\n*\n* Options:\n* - `from`/`strict`: Choose which route's data to read and strictness\n* - `select`: Map the loader data to a derived value\n* - `structuralSharing`: Enable structural sharing for stable references\n*\n* @returns The loader data (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useLoaderDataHook\n*/\nfunction useLoaderData(opts) {\n\treturn useMatch({\n\t\tfrom: opts.from,\n\t\tstrict: opts.strict,\n\t\tstructuralSharing: opts.structuralSharing,\n\t\tselect: (match) => {\n\t\t\treturn opts.select ? opts.select(match.loaderData) : match.loaderData;\n\t\t}\n\t});\n}\n//#endregion\nexport { useLoaderData };\n\n//# sourceMappingURL=useLoaderData.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useLoaderDeps.tsx\n/**\n* Read and select the current route's loader dependencies object.\n*\n* Options:\n* - `from`: Choose which route's loader deps to read\n* - `select`: Map the deps to a derived value\n* - `structuralSharing`: Enable structural sharing for stable references\n*\n* @returns The loader deps (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useLoaderDepsHook\n*/\nfunction useLoaderDeps(opts) {\n\tconst { select, ...rest } = opts;\n\treturn useMatch({\n\t\t...rest,\n\t\tselect: (match) => {\n\t\t\treturn select ? select(match.loaderDeps) : match.loaderDeps;\n\t\t}\n\t});\n}\n//#endregion\nexport { useLoaderDeps };\n\n//# sourceMappingURL=useLoaderDeps.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useParams.tsx\n/**\n* Access the current route's path parameters with type-safety.\n*\n* Options:\n* - `from`/`strict`: Specify the matched route and whether to enforce strict typing\n* - `select`: Project the params object to a derived value for memoized renders\n* - `structuralSharing`: Enable structural sharing for stable references\n* - `shouldThrow`: Throw if the route is not found in strict contexts\n*\n* @returns The params object (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useParamsHook\n*/\nfunction useParams(opts) {\n\treturn useMatch({\n\t\tfrom: opts.from,\n\t\tshouldThrow: opts.shouldThrow,\n\t\tstructuralSharing: opts.structuralSharing,\n\t\tstrict: opts.strict,\n\t\tselect: (match) => {\n\t\t\tconst params = opts.strict === false ? match.params : match._strictParams;\n\t\t\treturn opts.select ? opts.select(params) : params;\n\t\t}\n\t});\n}\n//#endregion\nexport { useParams };\n\n//# sourceMappingURL=useParams.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useSearch.tsx\n/**\n* Read and select the current route's search parameters with type-safety.\n*\n* Options:\n* - `from`/`strict`: Control which route's search is read and how strictly it's typed\n* - `select`: Map the search object to a derived value for render optimization\n* - `structuralSharing`: Enable structural sharing for stable references\n* - `shouldThrow`: Throw when the route is not found (strict contexts)\n*\n* @returns The search object (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useSearchHook\n*/\nfunction useSearch(opts) {\n\treturn useMatch({\n\t\tfrom: opts.from,\n\t\tstrict: opts.strict,\n\t\tshouldThrow: opts.shouldThrow,\n\t\tstructuralSharing: opts.structuralSharing,\n\t\tselect: (match) => {\n\t\t\treturn opts.select ? opts.select(match.search) : match.search;\n\t\t}\n\t});\n}\n//#endregion\nexport { useSearch };\n\n//# sourceMappingURL=useSearch.js.map","\"use client\";\nimport { useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport * as React$1 from \"react\";\n//#region src/useNavigate.tsx\n/**\n* Imperative navigation hook.\n*\n* Returns a stable `navigate(options)` function to change the current location\n* programmatically. Prefer the `Link` component for user-initiated navigation,\n* and use this hook from effects, callbacks, or handlers where imperative\n* navigation is required.\n*\n* Options:\n* - `from`: Optional route base used to resolve relative `to` paths.\n*\n* @returns A function that accepts `NavigateOptions`.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useNavigateHook\n*/\nfunction useNavigate(_defaultOpts) {\n\tconst router = useRouter();\n\treturn React$1.useCallback((options) => {\n\t\treturn router.navigate({\n\t\t\t...options,\n\t\t\tfrom: options.from ?? _defaultOpts?.from\n\t\t});\n\t}, [_defaultOpts?.from, router]);\n}\n/**\n* Component that triggers a navigation when rendered. Navigation executes\n* in an effect after mount/update.\n*\n* Props are the same as `NavigateOptions` used by `navigate()`.\n*\n* @returns null\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/navigateComponent\n*/\nfunction Navigate(props) {\n\tconst router = useRouter();\n\tconst navigate = useNavigate();\n\tconst previousPropsRef = React$1.useRef(null);\n\tuseLayoutEffect(() => {\n\t\tif (previousPropsRef.current !== props) {\n\t\t\tnavigate(props);\n\t\t\tpreviousPropsRef.current = props;\n\t\t}\n\t}, [\n\t\trouter,\n\t\tprops,\n\t\tnavigate\n\t]);\n\treturn null;\n}\n//#endregion\nexport { Navigate, useNavigate };\n\n//# sourceMappingURL=useNavigate.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useRouteContext.ts\nfunction useRouteContext(opts) {\n\treturn useMatch({\n\t\t...opts,\n\t\tselect: (match) => opts.select ? opts.select(match.context) : match.context\n\t});\n}\n//#endregion\nexport { useRouteContext };\n\n//# sourceMappingURL=useRouteContext.js.map","\"use client\";\nimport { useForwardedRef, useIntersectionObserver } from \"./utils.js\";\nimport { useHydrated } from \"./ClientOnly.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { deepEqual, exactPathTest, functionalUpdate, hasKeys, isDangerousProtocol, preloadWarning, removeTrailingSlash } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { useStore } from \"@tanstack/react-store\";\n//#region src/link.tsx\nfunction useValueStable(value) {\n\tconst ref = React$1.useRef(value);\n\tif (!deepEqual(ref.current, value, { ignoreUndefined: false })) ref.current = value;\n\treturn ref.current;\n}\nfunction compareLinkState(a, b) {\n\treturn a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\nfunction resolveExternalLink(hrefOption, to, protocolAllowlist) {\n\tif (hrefOption?.external) {\n\t\tif (isDangerousProtocol(hrefOption.href, protocolAllowlist)) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked Link with dangerous protocol: ${hrefOption.href}`);\n\t\t\treturn;\n\t\t}\n\t\treturn hrefOption.href;\n\t}\n\tif (isSafeInternal(to)) return;\n\tif (typeof to !== \"string\" || to.indexOf(\":\") === -1) return;\n\ttry {\n\t\tnew URL(to);\n\t\tif (isDangerousProtocol(to, protocolAllowlist)) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked Link with dangerous protocol: ${to}`);\n\t\t\treturn;\n\t\t}\n\t\treturn to;\n\t} catch {}\n}\nfunction resolveIsActive(location, next, activeOptions, basepath, isHydrated, isExternal) {\n\tif (isExternal) return false;\n\tif (activeOptions?.exact) {\n\t\tif (!exactPathTest(location.pathname, next.pathname, basepath)) return false;\n\t} else {\n\t\tconst currentPathSplit = removeTrailingSlash(location.pathname, basepath);\n\t\tconst nextPathSplit = removeTrailingSlash(next.pathname, basepath);\n\t\tif (!(currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\"))) return false;\n\t}\n\tif (activeOptions?.includeSearch ?? true) {\n\t\tif (!deepEqual(location.search, next.search, {\n\t\t\tpartial: !activeOptions?.exact,\n\t\t\tignoreUndefined: !activeOptions?.explicitUndefined\n\t\t})) return false;\n\t}\n\tif (activeOptions?.includeHash) return isHydrated && location.hash === next.hash;\n\treturn true;\n}\n/**\n* Build anchor-like props for declarative navigation and preloading.\n*\n* Returns stable `href`, event handlers and accessibility props derived from\n* router options and active state. Used internally by `Link` and custom links.\n*\n* Options cover `to`, `params`, `search`, `hash`, `state`, `preload`,\n* `activeProps`, `inactiveProps`, and more.\n*\n* @returns React anchor props suitable for `<a>` or custom components.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useLinkPropsHook\n*/\nfunction useLinkProps(options, forwardedRef) {\n\tconst router = useRouter();\n\tconst innerRef = useForwardedRef(forwardedRef);\n\tconst { activeProps, inactiveProps, activeOptions, to, preload: userPreload, preloadDelay: userPreloadDelay, preloadIntentProximity: _preloadIntentProximity, hashScrollIntoView, replace, startTransition, resetScroll, viewTransition, children, target, disabled, style, className, onClick, onBlur, onFocus, onMouseEnter, onMouseLeave, onTouchStart, ignoreBlocker, params: _params, search: _search, hash: _hash, state: _state, mask: _mask, reloadDocument: _reloadDocument, unsafeRelative: _unsafeRelative, from: _from, _fromLocation, ...propsSafeToSpread } = options;\n\tif (isServer ?? router.isServer) {\n\t\tconst safeInternal = isSafeInternal(to);\n\t\tif (typeof to === \"string\" && !safeInternal && to.indexOf(\":\") > -1) try {\n\t\t\tnew URL(to);\n\t\t\tif (isDangerousProtocol(to, router.protocolAllowlist)) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked Link with dangerous protocol: ${to}`);\n\t\t\t\treturn {\n\t\t\t\t\t...propsSafeToSpread,\n\t\t\t\t\tref: innerRef,\n\t\t\t\t\thref: void 0,\n\t\t\t\t\t...children && { children },\n\t\t\t\t\t...target && { target },\n\t\t\t\t\t...disabled && { disabled },\n\t\t\t\t\t...style && { style },\n\t\t\t\t\t...className && { className }\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...propsSafeToSpread,\n\t\t\t\tref: innerRef,\n\t\t\t\thref: to,\n\t\t\t\t...children && { children },\n\t\t\t\t...target && { target },\n\t\t\t\t...disabled && { disabled },\n\t\t\t\t...style && { style },\n\t\t\t\t...className && { className }\n\t\t\t};\n\t\t} catch {}\n\t\tconst next = router.buildLocation({\n\t\t\t...options,\n\t\t\tfrom: options.from\n\t\t});\n\t\tconst hrefOption = getHrefOption(next.maskedLocation ? next.maskedLocation.publicHref : next.publicHref, next.maskedLocation ? next.maskedLocation.external : next.external, router.history, disabled);\n\t\tconst externalLink = (() => {\n\t\t\tif (hrefOption?.external) {\n\t\t\t\tif (isDangerousProtocol(hrefOption.href, router.protocolAllowlist)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked Link with dangerous protocol: ${hrefOption.href}`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn hrefOption.href;\n\t\t\t}\n\t\t\tif (safeInternal) return void 0;\n\t\t\tif (typeof to === \"string\" && to.indexOf(\":\") > -1) try {\n\t\t\t\tnew URL(to);\n\t\t\t\tif (isDangerousProtocol(to, router.protocolAllowlist)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked Link with dangerous protocol: ${to}`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn to;\n\t\t\t} catch {}\n\t\t})();\n\t\tconst isActive = (() => {\n\t\t\tif (externalLink) return false;\n\t\t\tconst currentLocation = router.stores.location.get();\n\t\t\tconst exact = activeOptions?.exact ?? false;\n\t\t\tif (exact) {\n\t\t\t\tif (!exactPathTest(currentLocation.pathname, next.pathname, router.basepath)) return false;\n\t\t\t} else {\n\t\t\t\tconst currentPathSplit = removeTrailingSlash(currentLocation.pathname, router.basepath);\n\t\t\t\tconst nextPathSplit = removeTrailingSlash(next.pathname, router.basepath);\n\t\t\t\tif (!(currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\"))) return false;\n\t\t\t}\n\t\t\tif (activeOptions?.includeSearch ?? true) {\n\t\t\t\tif (currentLocation.search !== next.search) {\n\t\t\t\t\tconst currentSearchEmpty = !currentLocation.search || typeof currentLocation.search === \"object\" && !hasKeys(currentLocation.search);\n\t\t\t\t\tconst nextSearchEmpty = !next.search || typeof next.search === \"object\" && !hasKeys(next.search);\n\t\t\t\t\tif (!(currentSearchEmpty && nextSearchEmpty)) {\n\t\t\t\t\t\tif (!deepEqual(currentLocation.search, next.search, {\n\t\t\t\t\t\t\tpartial: !exact,\n\t\t\t\t\t\t\tignoreUndefined: !activeOptions?.explicitUndefined\n\t\t\t\t\t\t})) return false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (activeOptions?.includeHash) return false;\n\t\t\treturn true;\n\t\t})();\n\t\tif (externalLink) return {\n\t\t\t...propsSafeToSpread,\n\t\t\tref: innerRef,\n\t\t\thref: externalLink,\n\t\t\t...children && { children },\n\t\t\t...target && { target },\n\t\t\t...disabled && { disabled },\n\t\t\t...style && { style },\n\t\t\t...className && { className }\n\t\t};\n\t\tconst resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n\t\tconst resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n\t\tconst resolvedStyle = (() => {\n\t\t\tconst baseStyle = style;\n\t\t\tconst activeStyle = resolvedActiveProps.style;\n\t\t\tconst inactiveStyle = resolvedInactiveProps.style;\n\t\t\tif (!baseStyle && !activeStyle && !inactiveStyle) return;\n\t\t\tif (baseStyle && !activeStyle && !inactiveStyle) return baseStyle;\n\t\t\tif (!baseStyle && activeStyle && !inactiveStyle) return activeStyle;\n\t\t\tif (!baseStyle && !activeStyle && inactiveStyle) return inactiveStyle;\n\t\t\treturn {\n\t\t\t\t...baseStyle,\n\t\t\t\t...activeStyle,\n\t\t\t\t...inactiveStyle\n\t\t\t};\n\t\t})();\n\t\tconst resolvedClassName = (() => {\n\t\t\tconst baseClassName = className;\n\t\t\tconst activeClassName = resolvedActiveProps.className;\n\t\t\tconst inactiveClassName = resolvedInactiveProps.className;\n\t\t\tif (!baseClassName && !activeClassName && !inactiveClassName) return \"\";\n\t\t\tlet out = \"\";\n\t\t\tif (baseClassName) out = baseClassName;\n\t\t\tif (activeClassName) out = out ? `${out} ${activeClassName}` : activeClassName;\n\t\t\tif (inactiveClassName) out = out ? `${out} ${inactiveClassName}` : inactiveClassName;\n\t\t\treturn out;\n\t\t})();\n\t\treturn {\n\t\t\t...propsSafeToSpread,\n\t\t\t...resolvedActiveProps,\n\t\t\t...resolvedInactiveProps,\n\t\t\thref: hrefOption?.href,\n\t\t\tref: innerRef,\n\t\t\tdisabled: !!disabled,\n\t\t\ttarget,\n\t\t\t...resolvedStyle && { style: resolvedStyle },\n\t\t\t...resolvedClassName && { className: resolvedClassName },\n\t\t\t...disabled && STATIC_DISABLED_PROPS,\n\t\t\t...isActive && STATIC_ACTIVE_PROPS\n\t\t};\n\t}\n\tconst isHydrated = useHydrated();\n\tconst stableSearch = useValueStable(options.search);\n\tconst stableParams = useValueStable(options.params);\n\tconst stableActiveOptions = useValueStable(activeOptions);\n\tconst _options = React$1.useMemo(() => options, [\n\t\trouter,\n\t\toptions.from,\n\t\toptions._fromLocation,\n\t\toptions.hash,\n\t\toptions.to,\n\t\tstableSearch,\n\t\tstableParams,\n\t\toptions.state,\n\t\toptions.mask,\n\t\toptions.unsafeRelative\n\t]);\n\tconst selectLinkState = React$1.useCallback((location) => {\n\t\tconst next = router.buildLocation({\n\t\t\t_fromLocation: location,\n\t\t\t..._options\n\t\t});\n\t\tconst hrefOption = getHrefOption(next.maskedLocation ? next.maskedLocation.publicHref : next.publicHref, next.maskedLocation ? next.maskedLocation.external : next.external, router.history, disabled);\n\t\tconst externalLink = resolveExternalLink(hrefOption, to, router.protocolAllowlist);\n\t\treturn [\n\t\t\threfOption?.href,\n\t\t\texternalLink,\n\t\t\tresolveIsActive(location, next, stableActiveOptions, router.basepath, isHydrated, externalLink !== void 0)\n\t\t];\n\t}, [\n\t\tstableActiveOptions,\n\t\tdisabled,\n\t\tisHydrated,\n\t\t_options,\n\t\trouter,\n\t\tto\n\t]);\n\tconst [href, externalLink, isActive] = useStore(router.stores.location, selectLinkState, compareLinkState);\n\tconst resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n\tconst resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n\tconst resolvedClassName = [\n\t\tclassName,\n\t\tresolvedActiveProps.className,\n\t\tresolvedInactiveProps.className\n\t].filter(Boolean).join(\" \");\n\tconst resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && {\n\t\t...style,\n\t\t...resolvedActiveProps.style,\n\t\t...resolvedInactiveProps.style\n\t};\n\tconst hasRenderFetched = React$1.useRef(false);\n\tconst preload = options.reloadDocument || externalLink || disabled ? false : userPreload ?? router.options.defaultPreload;\n\tconst preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0;\n\tconst doPreload = React$1.useCallback(() => {\n\t\trouter.preloadRoute(_options).catch((err) => {\n\t\t\tconsole.warn(err);\n\t\t\tconsole.warn(preloadWarning);\n\t\t});\n\t}, [router, _options]);\n\tconst enqueuePreload = React$1.useCallback((e) => {\n\t\tif (!e) {\n\t\t\tcancelPreload(innerRef);\n\t\t\treturn;\n\t\t}\n\t\tif (!(e.isIntersecting ?? preload === \"intent\")) {\n\t\t\tif (e.isIntersecting === false) cancelPreload(innerRef);\n\t\t\treturn;\n\t\t}\n\t\tif (!preloadDelay) {\n\t\t\tdoPreload();\n\t\t\treturn;\n\t\t}\n\t\tif (timeoutMap.has(innerRef)) return;\n\t\ttimeoutMap.set(innerRef, setTimeout(() => {\n\t\t\ttimeoutMap.delete(innerRef);\n\t\t\tdoPreload();\n\t\t}, preloadDelay));\n\t}, [\n\t\tdoPreload,\n\t\tinnerRef,\n\t\tpreload,\n\t\tpreloadDelay\n\t]);\n\tuseIntersectionObserver(innerRef, enqueuePreload, preload !== \"viewport\");\n\tReact$1.useEffect(() => {\n\t\tif (hasRenderFetched.current) return;\n\t\tif (preload === \"render\") {\n\t\t\tdoPreload();\n\t\t\thasRenderFetched.current = true;\n\t\t}\n\t}, [doPreload, preload]);\n\tconst handleClick = (e) => {\n\t\tconst elementTarget = e.currentTarget.getAttribute(\"target\");\n\t\tconst effectiveTarget = target !== void 0 ? target : elementTarget;\n\t\tif (!disabled && !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && !e.defaultPrevented && (!effectiveTarget || effectiveTarget === \"_self\") && e.button === 0) {\n\t\t\te.preventDefault();\n\t\t\trouter.navigate({\n\t\t\t\t..._options,\n\t\t\t\treplace,\n\t\t\t\tresetScroll,\n\t\t\t\thashScrollIntoView,\n\t\t\t\tstartTransition,\n\t\t\t\tviewTransition,\n\t\t\t\tignoreBlocker\n\t\t\t});\n\t\t}\n\t};\n\tif (externalLink) return {\n\t\t...propsSafeToSpread,\n\t\tref: innerRef,\n\t\thref: externalLink,\n\t\t...children && { children },\n\t\t...target && { target },\n\t\t...disabled && { disabled },\n\t\t...style && { style },\n\t\t...className && { className },\n\t\t...onClick && { onClick },\n\t\t...onBlur && { onBlur },\n\t\t...onFocus && { onFocus },\n\t\t...onMouseEnter && { onMouseEnter },\n\t\t...onMouseLeave && { onMouseLeave },\n\t\t...onTouchStart && { onTouchStart }\n\t};\n\tconst handleTouchStart = () => {\n\t\tif (preload !== \"intent\") return;\n\t\tdoPreload();\n\t};\n\tconst handleLeave = () => {\n\t\tif (preload === \"intent\") cancelPreload(innerRef);\n\t};\n\treturn {\n\t\t...propsSafeToSpread,\n\t\t...resolvedActiveProps,\n\t\t...resolvedInactiveProps,\n\t\thref,\n\t\tref: innerRef,\n\t\tonClick: composeHandlers([onClick, handleClick]),\n\t\tonBlur: composeHandlers([onBlur, handleLeave]),\n\t\tonFocus: composeHandlers([onFocus, enqueuePreload]),\n\t\tonMouseEnter: composeHandlers([onMouseEnter, enqueuePreload]),\n\t\tonMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n\t\tonTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n\t\tdisabled: !!disabled,\n\t\ttarget,\n\t\t...resolvedStyle && { style: resolvedStyle },\n\t\t...resolvedClassName && { className: resolvedClassName },\n\t\t...disabled && STATIC_DISABLED_PROPS,\n\t\t...isActive && STATIC_ACTIVE_PROPS\n\t};\n}\nvar STATIC_EMPTY_OBJECT = {};\nvar STATIC_ACTIVE_OBJECT = { className: \"active\" };\nvar STATIC_DISABLED_PROPS = {\n\trole: \"link\",\n\t\"aria-disabled\": true\n};\nvar STATIC_ACTIVE_PROPS = {\n\t\"data-status\": \"active\",\n\t\"aria-current\": \"page\"\n};\nvar timeoutMap = /* @__PURE__ */ new WeakMap();\nvar cancelPreload = (eventTarget) => {\n\tclearTimeout(timeoutMap.get(eventTarget));\n\ttimeoutMap.delete(eventTarget);\n};\nvar composeHandlers = (handlers) => (e) => {\n\tfor (const handler of handlers) {\n\t\tif (!handler) continue;\n\t\tif (e.defaultPrevented) return;\n\t\thandler(e);\n\t}\n};\nfunction getHrefOption(publicHref, external, history, disabled) {\n\tif (disabled) return void 0;\n\tif (external) return {\n\t\thref: publicHref,\n\t\texternal: true\n\t};\n\treturn {\n\t\thref: history.createHref(publicHref) || \"/\",\n\t\texternal: false\n\t};\n}\nfunction isSafeInternal(to) {\n\tif (typeof to !== \"string\") return false;\n\tconst zero = to.charCodeAt(0);\n\tif (zero === 47) return to.charCodeAt(1) !== 47;\n\treturn zero === 46;\n}\n/**\n* Creates a typed Link-like component that preserves TanStack Router's\n* navigation semantics and type-safety while delegating rendering to the\n* provided host component.\n*\n* Useful for integrating design system anchors/buttons while keeping\n* router-aware props (eg. `to`, `params`, `search`, `preload`).\n*\n* @param Comp The host component to render (eg. a design-system Link/Button)\n* @returns A router-aware component with the same API as `Link`.\n* @link https://tanstack.com/router/latest/docs/framework/react/guide/custom-link\n*/\nfunction createLink(Comp) {\n\treturn React$1.forwardRef(function CreatedLink(props, ref) {\n\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t...props,\n\t\t\t_asChild: Comp,\n\t\t\tref\n\t\t});\n\t});\n}\n/**\n* A strongly-typed anchor component for declarative navigation.\n* Handles path, search, hash and state updates with optional route preloading\n* and active-state styling.\n*\n* Props:\n* - `preload`: Controls route preloading (eg. 'intent', 'render', 'viewport', true/false)\n* - `preloadDelay`: Delay in ms before preloading on focus, hover, or viewport entry\n* - `activeProps`/`inactiveProps`: Additional props merged when link is active/inactive\n* - `resetScroll`/`hashScrollIntoView`: Control scroll behavior on navigation\n* - `viewTransition`/`startTransition`: Use View Transitions/React transitions for navigation\n* - `ignoreBlocker`: Bypass registered blockers\n*\n* @returns An anchor-like element that navigates without full page reloads.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/linkComponent\n*/\nvar Link = React$1.forwardRef((props, ref) => {\n\tconst { _asChild, ...rest } = props;\n\tconst { type: _type, ...linkProps } = useLinkProps(rest, ref);\n\tconst children = typeof rest.children === \"function\" ? rest.children({ isActive: linkProps[\"data-status\"] === \"active\" }) : rest.children;\n\tif (!_asChild) {\n\t\tconst { disabled: _, ...rest } = linkProps;\n\t\treturn React$1.createElement(\"a\", rest, children);\n\t}\n\treturn React$1.createElement(_asChild, linkProps, children);\n});\n/**\n* Validate and reuse navigation options for `Link`, `navigate` or `redirect`.\n* Accepts a literal options object and returns it typed for later spreading.\n* @example\n* const opts = linkOptions({ to: '/dashboard', search: { tab: 'home' } })\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/linkOptions\n*/\nvar linkOptions = (options) => {\n\treturn options;\n};\n/**\n* Type-check a literal object for use with `Link`, `navigate` or `redirect`.\n* Use to validate and reuse navigation options across your app.\n* @example\n* const opts = linkOptions({ to: '/dashboard', search: { tab: 'home' } })\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/linkOptions\n*/\n//#endregion\nexport { Link, createLink, linkOptions, useLinkProps };\n\n//# sourceMappingURL=link.js.map","import { useRouter } from \"./useRouter.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useRouteContext } from \"./useRouteContext.js\";\nimport { Link } from \"./link.js\";\nimport { BaseRootRoute, BaseRoute, BaseRouteApi, notFound } from \"@tanstack/router-core\";\nimport React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/route.tsx\n/**\n* Returns a route-specific API that exposes type-safe hooks pre-bound\n* to a single route ID. Useful for consuming a route's APIs from files\n* where the route object isn't directly imported (e.g. code-split files).\n*\n* @param id Route ID string literal for the target route.\n* @returns A `RouteApi` instance bound to the given route ID.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/getRouteApiFunction\n*/\nfunction getRouteApi(id) {\n\treturn new RouteApi({ id });\n}\nvar RouteApi = class extends BaseRouteApi {\n\t/**\n\t* @deprecated Use the `getRouteApi` function instead.\n\t*/\n\tconstructor({ id }) {\n\t\tsuper({ id });\n\t\tthis.useMatch = (opts) => {\n\t\t\treturn useMatch({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tfrom: this.id,\n\t\t\t\tstructuralSharing: opts?.structuralSharing\n\t\t\t});\n\t\t};\n\t\tthis.useRouteContext = (opts) => {\n\t\t\treturn useRouteContext({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useSearch = (opts) => {\n\t\t\treturn useSearch({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tstructuralSharing: opts?.structuralSharing,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useParams = (opts) => {\n\t\t\treturn useParams({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tstructuralSharing: opts?.structuralSharing,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderDeps = (opts) => {\n\t\t\treturn useLoaderDeps({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id,\n\t\t\t\tstrict: false\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderData = (opts) => {\n\t\t\treturn useLoaderData({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id,\n\t\t\t\tstrict: false\n\t\t\t});\n\t\t};\n\t\tthis.useNavigate = () => {\n\t\t\treturn useNavigate({ from: useRouter().routesById[this.id].fullPath });\n\t\t};\n\t\tthis.notFound = (opts) => {\n\t\t\treturn notFound({\n\t\t\t\trouteId: this.id,\n\t\t\t\t...opts\n\t\t\t});\n\t\t};\n\t\tthis.Link = React.forwardRef((props, ref) => {\n\t\t\tconst fullPath = useRouter().routesById[this.id].fullPath;\n\t\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t\tref,\n\t\t\t\tfrom: fullPath,\n\t\t\t\t...props\n\t\t\t});\n\t\t});\n\t}\n};\nvar Route = class extends BaseRoute {\n\t/**\n\t* @deprecated Use the `createRoute` function instead.\n\t*/\n\tconstructor(options) {\n\t\tsuper(options);\n\t\tthis.useMatch = (opts) => {\n\t\t\treturn useMatch({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tfrom: this.id,\n\t\t\t\tstructuralSharing: opts?.structuralSharing\n\t\t\t});\n\t\t};\n\t\tthis.useRouteContext = (opts) => {\n\t\t\treturn useRouteContext({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useSearch = (opts) => {\n\t\t\treturn useSearch({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tstructuralSharing: opts?.structuralSharing,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useParams = (opts) => {\n\t\t\treturn useParams({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tstructuralSharing: opts?.structuralSharing,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderDeps = (opts) => {\n\t\t\treturn useLoaderDeps({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderData = (opts) => {\n\t\t\treturn useLoaderData({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useNavigate = () => {\n\t\t\treturn useNavigate({ from: this.fullPath });\n\t\t};\n\t\tthis.Link = React.forwardRef((props, ref) => {\n\t\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t\tref,\n\t\t\t\tfrom: this.fullPath,\n\t\t\t\t...props\n\t\t\t});\n\t\t});\n\t}\n};\n/**\n* Creates a non-root Route instance for code-based routing.\n*\n* Use this to define a route that will be composed into a route tree\n* (typically via a parent route's `addChildren`). If you're using file-based\n* routing, prefer `createFileRoute`.\n*\n* @param options Route options (path, component, loader, context, etc.).\n* @returns A Route instance to be attached to the route tree.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRouteFunction\n*/\nfunction createRoute(options) {\n\treturn new Route(options);\n}\n/**\n* Creates a root route factory that requires a router context type.\n*\n* Use when your root route expects `context` to be provided to `createRouter`.\n* The returned function behaves like `createRootRoute` but enforces a context type.\n*\n* @returns A factory function to configure and return a root route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRootRouteWithContextFunction\n*/\nfunction createRootRouteWithContext() {\n\treturn (options) => {\n\t\treturn createRootRoute(options);\n\t};\n}\n/**\n* @deprecated Use the `createRootRouteWithContext` function instead.\n*/\nvar rootRouteWithContext = createRootRouteWithContext;\nvar RootRoute = class extends BaseRootRoute {\n\t/**\n\t* @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n\t*/\n\tconstructor(options) {\n\t\tsuper(options);\n\t\tthis.useMatch = (opts) => {\n\t\t\treturn useMatch({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tfrom: this.id,\n\t\t\t\tstructuralSharing: opts?.structuralSharing\n\t\t\t});\n\t\t};\n\t\tthis.useRouteContext = (opts) => {\n\t\t\treturn useRouteContext({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useSearch = (opts) => {\n\t\t\treturn useSearch({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tstructuralSharing: opts?.structuralSharing,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useParams = (opts) => {\n\t\t\treturn useParams({\n\t\t\t\tselect: opts?.select,\n\t\t\t\tstructuralSharing: opts?.structuralSharing,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderDeps = (opts) => {\n\t\t\treturn useLoaderDeps({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderData = (opts) => {\n\t\t\treturn useLoaderData({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useNavigate = () => {\n\t\t\treturn useNavigate({ from: this.fullPath });\n\t\t};\n\t\tthis.Link = React.forwardRef((props, ref) => {\n\t\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t\tref,\n\t\t\t\tfrom: this.fullPath,\n\t\t\t\t...props\n\t\t\t});\n\t\t});\n\t}\n};\n/**\n* Creates a root Route instance used to build your route tree.\n*\n* Typically paired with `createRouter({ routeTree })`. If you need to require\n* a typed router context, use `createRootRouteWithContext` instead.\n*\n* @param options Root route options (component, error, pending, etc.).\n* @returns A root route instance.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRootRouteFunction\n*/\nfunction createRootRoute(options) {\n\treturn new RootRoute(options);\n}\nfunction createRouteMask(opts) {\n\treturn opts;\n}\nvar NotFoundRoute = class extends Route {\n\tconstructor(options) {\n\t\tsuper({\n\t\t\t...options,\n\t\t\tid: \"404\"\n\t\t});\n\t}\n};\n//#endregion\nexport { NotFoundRoute, RootRoute, Route, RouteApi, createRootRoute, createRootRouteWithContext, createRoute, createRouteMask, getRouteApi, rootRouteWithContext };\n\n//# sourceMappingURL=route.js.map","import { CatchBoundary } from \"./CatchBoundary.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { isNotFound } from \"@tanstack/router-core\";\nimport \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { useStore } from \"@tanstack/react-store\";\n//#region src/not-found.tsx\nfunction CatchNotFound(props) {\n\tconst router = useRouter();\n\tif (isServer ?? router.isServer) {\n\t\tconst resetKey = `not-found-${router.stores.location.get().pathname}-${router.stores.status.get()}`;\n\t\treturn /* @__PURE__ */ jsx(CatchBoundary, {\n\t\t\tgetResetKey: () => resetKey,\n\t\t\tonCatch: (error, errorInfo) => {\n\t\t\t\tif (isNotFound(error)) props.onCatch?.(error, errorInfo);\n\t\t\t\telse throw error;\n\t\t\t},\n\t\t\terrorComponent: ({ error }) => {\n\t\t\t\tif (isNotFound(error)) return props.fallback?.(error);\n\t\t\t\telse throw error;\n\t\t\t},\n\t\t\tchildren: props.children\n\t\t});\n\t}\n\tconst resetKey = `not-found-${useStore(router.stores.location, (location) => location.pathname)}-${useStore(router.stores.status, (status) => status)}`;\n\treturn /* @__PURE__ */ jsx(CatchBoundary, {\n\t\tgetResetKey: () => resetKey,\n\t\tonCatch: (error, errorInfo) => {\n\t\t\tif (isNotFound(error)) props.onCatch?.(error, errorInfo);\n\t\t\telse throw error;\n\t\t},\n\t\terrorComponent: ({ error }) => {\n\t\t\tif (isNotFound(error)) return props.fallback?.(error);\n\t\t\telse throw error;\n\t\t},\n\t\tchildren: props.children\n\t});\n}\nfunction DefaultGlobalNotFound() {\n\treturn /* @__PURE__ */ jsx(\"p\", { children: \"Not Found\" });\n}\n//#endregion\nexport { CatchNotFound, DefaultGlobalNotFound };\n\n//# sourceMappingURL=not-found.js.map","import \"react\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\n//#region src/SafeFragment.tsx\nfunction SafeFragment(props) {\n\treturn /* @__PURE__ */ jsx(Fragment, { children: props.children });\n}\n//#endregion\nexport { SafeFragment };\n\n//# sourceMappingURL=SafeFragment.js.map","import { wrapInNonRouteComponentContext } from \"./nonRouteComponentContext.js\";\nimport { DefaultGlobalNotFound } from \"./not-found.js\";\nimport \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/renderRouteNotFound.tsx\n/**\n* Renders a not found component for a route when no matching route is found.\n*\n* @param router - The router instance containing the route configuration\n* @param route - The route that triggered the not found state\n* @param data - Additional data to pass to the not found component\n* @returns The rendered not found component or a default fallback component\n*/\nfunction renderRouteNotFound(router, route, data) {\n\tif (!route.options.notFoundComponent) {\n\t\tif (router.options.defaultNotFoundComponent) {\n\t\t\tconst notFoundElement = /* @__PURE__ */ jsx(router.options.defaultNotFoundComponent, { ...data });\n\t\t\treturn process.env.NODE_ENV !== \"production\" ? wrapInNonRouteComponentContext(notFoundElement, \"notFoundComponent\") : notFoundElement;\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (!route.options.notFoundComponent) console.warn(`Warning: A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<p>Not Found</p>)`);\n\t\t}\n\t\treturn /* @__PURE__ */ jsx(DefaultGlobalNotFound, {});\n\t}\n\tconst notFoundElement = /* @__PURE__ */ jsx(route.options.notFoundComponent, { ...data });\n\treturn process.env.NODE_ENV !== \"production\" ? wrapInNonRouteComponentContext(notFoundElement, \"notFoundComponent\") : notFoundElement;\n}\n//#endregion\nexport { renderRouteNotFound };\n\n//# sourceMappingURL=renderRouteNotFound.js.map","\"use client\";\nimport { nonRouteComponentContext, wrapInNonRouteComponentContext } from \"./nonRouteComponentContext.js\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { CatchNotFound } from \"./not-found.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nimport { renderRouteNotFound } from \"./renderRouteNotFound.js\";\nimport { ScrollRestoration } from \"./scroll-restoration.js\";\nimport { isNotFound, rootRouteId } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport { useStore } from \"@tanstack/react-store\";\n//#region src/Match.tsx\nfunction renderPending(router, route) {\n\tconst PendingComponent = route?.options.pendingComponent ?? router.options.defaultPendingComponent;\n\tif (!PendingComponent) return null;\n\tconst pendingElement = /* @__PURE__ */ jsx(PendingComponent, {});\n\treturn process.env.NODE_ENV !== \"production\" ? wrapInNonRouteComponentContext(pendingElement, \"pendingComponent\") : pendingElement;\n}\nvar outletMatchSelectionEqual = (a, b) => a[0] === b[0] && a[1] === b[1];\nvar canWrapInSuspense = (router, route, ssr) => !route.isRoot || route.options.shellComponent || route.options.wrapInSuspense || ssr === false || ssr === \"data-only\" || !((isServer ?? router.isServer) || router.ssr);\nvar Match = React$1.memo(function MatchImpl({ routeId }) {\n\tconst router = useRouter();\n\tif (isServer ?? router.isServer) return /* @__PURE__ */ jsx(MatchView, {\n\t\trouter,\n\t\tmatch: router.stores.byRoute.get(routeId).get()\n\t});\n\treturn /* @__PURE__ */ jsx(MatchView, {\n\t\trouter,\n\t\tmatch: useStore(router.stores.getMatchStore(routeId), (value) => value)\n\t});\n});\nfunction MatchView({ router, match }) {\n\tconst route = router.routesById[match.routeId];\n\tconst pendingElement = renderPending(router, route);\n\tconst routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent;\n\tconst routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch;\n\tconst routeNotFoundComponent = route.isRoot ? route.options.notFoundComponent ?? router.options.notFoundRoute?.options.component : route.options.notFoundComponent;\n\tconst resolvedNoSsr = match.ssr === false || match.ssr === \"data-only\";\n\tconst ResolvedSuspenseBoundary = canWrapInSuspense(router, route, match.ssr) && (route.options.wrapInSuspense ?? pendingElement ?? (route.options.errorComponent?.preload || resolvedNoSsr)) ? React$1.Suspense : SafeFragment;\n\tconst ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment;\n\tconst ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment;\n\treturn /* @__PURE__ */ jsxs(route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment, { children: [/* @__PURE__ */ jsx(matchContext.Provider, {\n\t\tvalue: match.routeId,\n\t\tchildren: /* @__PURE__ */ jsx(ResolvedSuspenseBoundary, {\n\t\t\tfallback: pendingElement,\n\t\t\tchildren: /* @__PURE__ */ jsx(ResolvedCatchBoundary, {\n\t\t\t\tgetResetKey: () => match,\n\t\t\t\terrorComponent: routeErrorComponent,\n\t\t\t\tonCatch: (error, errorInfo) => {\n\t\t\t\t\tif (isNotFound(error)) {\n\t\t\t\t\t\terror.routeId ??= match.routeId;\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Warning: Error in route match: ${match.id}`);\n\t\t\t\t\trouteOnCatch?.(error, errorInfo);\n\t\t\t\t},\n\t\t\t\tchildren: /* @__PURE__ */ jsx(ResolvedNotFoundBoundary, {\n\t\t\t\t\tfallback: (error) => {\n\t\t\t\t\t\terror.routeId ??= match.routeId;\n\t\t\t\t\t\tif (error.routeId !== match.routeId) throw error;\n\t\t\t\t\t\tconst notFoundElement = React$1.createElement(routeNotFoundComponent, error);\n\t\t\t\t\t\treturn process.env.NODE_ENV !== \"production\" ? wrapInNonRouteComponentContext(notFoundElement, \"notFoundComponent\") : notFoundElement;\n\t\t\t\t\t},\n\t\t\t\t\tchildren: resolvedNoSsr ? /* @__PURE__ */ jsx(ClientOnly, {\n\t\t\t\t\t\tfallback: pendingElement,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ jsx(MatchInner, { match })\n\t\t\t\t\t}) : /* @__PURE__ */ jsx(MatchInner, { match })\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}), (isServer ?? router.isServer) && route.parentRoute?.id === rootRouteId && router.options.scrollRestoration ? /* @__PURE__ */ jsx(ScrollRestoration, {}) : null] });\n}\nvar MatchInner = React$1.memo(function MatchInnerImpl({ match }) {\n\tconst router = useRouter();\n\tconst routeId = match.routeId;\n\tconst route = router.routesById[routeId];\n\tconst key = React$1.useMemo(() => {\n\t\tconst remountDeps = (route.options.remountDeps ?? router.options.defaultRemountDeps)?.({\n\t\t\trouteId,\n\t\t\tloaderDeps: match.loaderDeps,\n\t\t\tparams: match._strictParams,\n\t\t\tsearch: match._strictSearch\n\t\t});\n\t\treturn remountDeps ? JSON.stringify(remountDeps) : void 0;\n\t}, [\n\t\trouteId,\n\t\tmatch.loaderDeps,\n\t\tmatch._strictParams,\n\t\tmatch._strictSearch,\n\t\troute.options.remountDeps,\n\t\trouter.options.defaultRemountDeps\n\t]);\n\tconst out = React$1.useMemo(() => {\n\t\tconst Comp = route.options.component ?? router.options.defaultComponent;\n\t\treturn Comp ? /* @__PURE__ */ jsx(Comp, {}, key) : /* @__PURE__ */ jsx(Outlet, {});\n\t}, [\n\t\tkey,\n\t\troute.options.component,\n\t\trouter.options.defaultComponent\n\t]);\n\tif (match.status === \"pending\") {\n\t\tif (router.ssr && !canWrapInSuspense(router, route, match.ssr)) return out;\n\t\tif (router._tx) throw router._tx[5];\n\t\treturn renderPending(router, route);\n\t}\n\tif (match.status === \"notFound\") return renderRouteNotFound(router, route, match.error);\n\tif (match.status === \"error\") {\n\t\tif (isServer ?? router.isServer) {\n\t\t\tconst errorElement = /* @__PURE__ */ jsx((route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent, {\n\t\t\t\terror: match.error,\n\t\t\t\treset: void 0,\n\t\t\t\tinfo: { componentStack: \"\" }\n\t\t\t});\n\t\t\treturn process.env.NODE_ENV !== \"production\" ? wrapInNonRouteComponentContext(errorElement, \"errorComponent\") : errorElement;\n\t\t}\n\t\tthrow match.error;\n\t}\n\treturn out;\n});\n/**\n* Render the next child match in the route tree. Typically used inside\n* a route component to render nested routes.\n*\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/outletComponent\n*/\nvar Outlet = React$1.memo(function OutletImpl() {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst nonRouteComponent = React$1.useContext(nonRouteComponentContext);\n\t\tif (nonRouteComponent) console.warn(`Warning: An <Outlet /> was rendered inside a ${nonRouteComponent}. <Outlet /> should only be rendered inside a route component.`);\n\t}\n\tconst router = useRouter();\n\tconst routeId = React$1.useContext(matchContext);\n\tlet parentGlobalNotFound;\n\tlet parentNotFoundError;\n\tlet childRouteId;\n\tif (isServer ?? router.isServer) {\n\t\tconst matches = router.stores.matches.get();\n\t\tconst parentIndex = matches.findIndex((match) => match.routeId === routeId);\n\t\tconst parentMatch = matches[parentIndex];\n\t\tparentGlobalNotFound = !!parentMatch._notFound;\n\t\tparentNotFoundError = parentMatch.error;\n\t\tchildRouteId = matches[parentIndex + 1]?.routeId;\n\t} else {\n\t\tconst parentMatchStore = router.stores.getMatchStore(routeId);\n\t\t[parentGlobalNotFound, parentNotFoundError] = useStore(parentMatchStore, (match) => [!!match._notFound, match.error], outletMatchSelectionEqual);\n\t\tchildRouteId = useStore(router.stores.ids, (ids) => {\n\t\t\treturn ids[ids.indexOf(routeId) + 1];\n\t\t});\n\t}\n\tif (parentGlobalNotFound) return renderRouteNotFound(router, router.routesById[routeId], parentNotFoundError);\n\tif (!childRouteId) return null;\n\tconst nextMatch = /* @__PURE__ */ jsx(Match, { routeId: childRouteId });\n\tif (routeId === rootRouteId) return /* @__PURE__ */ jsx(React$1.Suspense, {\n\t\tfallback: renderPending(router),\n\t\tchildren: nextMatch\n\t});\n\treturn nextMatch;\n});\n//#endregion\nexport { Match, Outlet, renderPending };\n\n//# sourceMappingURL=Match.js.map","\"use client\";\nimport { useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { getLocationChangeInfo, trimPathRight } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\n//#region src/Transitioner.tsx\nfunction settleOwner(owner, rendered) {\n\tconst settle = owner[1];\n\towner.length = 0;\n\tsettle?.(rendered);\n}\nfunction Transitioner({ t }) {\n\tconst router = useRouter();\n\tconst acknowledgement = router._rendered ??= [];\n\tconst mounted = process.env.NODE_ENV !== \"production\" ? React$1.useRef(false) : void 0;\n\trouter.startTransition = (fn, expected) => new Promise((resolve, reject) => {\n\t\tsettleOwner(acknowledgement, false);\n\t\tacknowledgement.push(expected, resolve);\n\t\tt(router);\n\t\tReact$1.startTransition(() => {\n\t\t\ttry {\n\t\t\t\tfn();\n\t\t\t} catch (cause) {\n\t\t\t\tif (acknowledgement[1] === resolve) acknowledgement.length = 0;\n\t\t\t\treject(cause);\n\t\t\t}\n\t\t});\n\t});\n\tif (process.env.NODE_ENV !== \"production\") router._cancelTransition = () => settleOwner(acknowledgement, false);\n\tuseLayoutEffect(() => {\n\t\tconst unsub = router.history.subscribe(router.load);\n\t\tif (mounted?.current) return unsub;\n\t\tif (mounted) mounted.current = true;\n\t\trouter.updateLatestLocation();\n\t\tconst location = router.latestLocation;\n\t\tconst nextLocation = router.buildLocation({\n\t\t\tto: location.pathname,\n\t\t\tsearch: true,\n\t\t\tparams: true,\n\t\t\thash: true,\n\t\t\tstate: true,\n\t\t\t_includeValidateSearch: true\n\t\t});\n\t\tif (trimPathRight(location.publicHref) !== trimPathRight(nextLocation.publicHref)) {\n\t\t\trouter.commitLocation({\n\t\t\t\t...nextLocation,\n\t\t\t\treplace: true,\n\t\t\t\tignoreBlocker: true\n\t\t\t});\n\t\t\treturn unsub;\n\t\t}\n\t\tconst resolvedLocation = router.stores.resolvedLocation.get();\n\t\tif (resolvedLocation?.href === location.href && resolvedLocation.state.__TSR_key === location.state.__TSR_key) acknowledgement.push(router.stores.matches.get(), (rendered) => {\n\t\t\tif (rendered) router.emit({\n\t\t\t\ttype: \"onRendered\",\n\t\t\t\t...getLocationChangeInfo(resolvedLocation, resolvedLocation)\n\t\t\t});\n\t\t});\n\t\telse if (!router._tx) router.load().catch(console.error);\n\t\treturn unsub;\n\t}, [router, router.history]);\n\treturn null;\n}\n//#endregion\nexport { Transitioner, settleOwner };\n\n//# sourceMappingURL=Transitioner.js.map","\"use client\";\nimport { useLayoutEffect } from \"./utils.js\";\nimport { CatchBoundary } from \"./CatchBoundary.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useStructuralSharing } from \"./useMatch.js\";\nimport { Transitioner, settleOwner } from \"./Transitioner.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nimport { Match, renderPending } from \"./Match.js\";\nimport { rootRouteId } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { useStore } from \"@tanstack/react-store\";\n//#region src/Matches.tsx\n/**\n* Internal component that renders the router's active match tree with\n* suspense, error, and not-found boundaries. Rendered by `RouterProvider`.\n*/\nfunction Matches() {\n\tconst router = useRouter();\n\tconst rootRoute = router.routesById[rootRouteId];\n\tconst pendingElement = renderPending(router, rootRoute);\n\tconst ResolvedSuspense = (isServer ?? router.isServer) || router.ssr ? SafeFragment : React$1.Suspense;\n\tconst inner = /* @__PURE__ */ jsxs(Fragment, { children: [!(isServer ?? router.isServer) && /* @__PURE__ */ jsx(Transitioner, { t: React$1.useState()[1] }), /* @__PURE__ */ jsx(ResolvedSuspense, {\n\t\tfallback: pendingElement,\n\t\tchildren: /* @__PURE__ */ jsx(MatchesInner, {})\n\t})] });\n\treturn router.options.InnerWrap ? /* @__PURE__ */ jsx(router.options.InnerWrap, { children: inner }) : inner;\n}\nfunction MatchesInner() {\n\tconst router = useRouter();\n\tconst acknowledgement = router._rendered;\n\tconst matches = isServer ?? router.isServer ? router.stores.matches.get() : useStore(router.stores.matches, (value) => acknowledgement[0] ?? value);\n\tconst match = matches[0];\n\tconst routeId = match?.routeId;\n\tuseLayoutEffect(() => {\n\t\tif (acknowledgement[0] === matches) settleOwner(acknowledgement, true);\n\t}, [acknowledgement, matches]);\n\tconst matchComponent = routeId ? /* @__PURE__ */ jsx(Match, { routeId }) : null;\n\treturn /* @__PURE__ */ jsx(matchContext.Provider, {\n\t\tvalue: routeId,\n\t\tchildren: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ jsx(CatchBoundary, {\n\t\t\tgetResetKey: () => match,\n\t\t\tonCatch: process.env.NODE_ENV !== \"production\" ? (error) => {\n\t\t\t\tconsole.warn(`Warning: The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`);\n\t\t\t\tconsole.warn(`Warning: ${error.message || error.toString()}`);\n\t\t\t} : void 0,\n\t\t\tchildren: matchComponent\n\t\t})\n\t});\n}\n/**\n* Create a matcher function for testing locations against route definitions.\n*\n* The returned function accepts standard navigation options (`to`, `params`,\n* `search`, etc.) and returns either `false` (no match) or the matched params\n* object when the route matches the current or pending location.\n*\n* Useful for conditional rendering and active UI states because it subscribes\n* the component to the router state used for matching. The returned function's\n* identity changes when that state changes. For imperative checks in event\n* handlers, get the router with `useRouter` and call `router.matchRoute(...)`\n* to avoid that subscription.\n*\n* @returns A `matchRoute(options)` function that returns `false` or params.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useMatchRouteHook\n*/\nfunction useMatchRoute() {\n\tconst router = useRouter();\n\tif (isServer ?? router.isServer) return (opts) => {\n\t\tconst { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n\t\treturn router.matchRoute(rest, {\n\t\t\tpending,\n\t\t\tcaseSensitive,\n\t\t\tfuzzy,\n\t\t\tincludeSearch\n\t\t});\n\t};\n\treturn React$1.useCallback((opts) => {\n\t\tconst { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n\t\treturn router.matchRoute(rest, {\n\t\t\tpending,\n\t\t\tcaseSensitive,\n\t\t\tfuzzy,\n\t\t\tincludeSearch\n\t\t});\n\t}, [\n\t\trouter,\n\t\tuseStore(router.stores.location, (location) => location.href),\n\t\tuseStore(router.stores.resolvedLocation, (location) => location?.href),\n\t\tuseStore(router.stores.status, (status) => status)\n\t]);\n}\n/**\n* Component that conditionally renders its children based on whether a route\n* matches the provided `from`/`to` options. If `children` is a function, it\n* receives the matched params object.\n*\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/matchRouteComponent\n*/\nfunction MatchRoute(props) {\n\tconst params = useMatchRoute()(props);\n\tif (typeof props.children === \"function\") return props.children(params);\n\treturn params ? props.children : null;\n}\nfunction useMatches(opts) {\n\tconst router = useRouter();\n\tif (isServer ?? router.isServer) {\n\t\tconst matches = router.stores.matches.get();\n\t\treturn opts?.select ? opts.select(matches) : matches;\n\t}\n\treturn useStore(router.stores.matches, useStructuralSharing(opts, router));\n}\n/**\n* Read the presented route matches above the current match, or select a\n* derived value from them.\n*/\nfunction useParentMatches(opts) {\n\tconst contextRouteId = React$1.useContext(matchContext);\n\treturn useMatches({\n\t\tselect: (matches) => {\n\t\t\tmatches = matches.slice(0, matches.findIndex((d) => d.routeId === contextRouteId));\n\t\t\treturn opts?.select ? opts.select(matches) : matches;\n\t\t},\n\t\tstructuralSharing: opts?.structuralSharing\n\t});\n}\n/**\n* Read the presented route matches below the current match, or select a\n* derived value from them.\n*/\nfunction useChildMatches(opts) {\n\tconst contextRouteId = React$1.useContext(matchContext);\n\treturn useMatches({\n\t\tselect: (matches) => {\n\t\t\tmatches = matches.slice(matches.findIndex((d) => d.routeId === contextRouteId) + 1);\n\t\t\treturn opts?.select ? opts.select(matches) : matches;\n\t\t},\n\t\tstructuralSharing: opts?.structuralSharing\n\t});\n}\n//#endregion\nexport { MatchRoute, Matches, useChildMatches, useMatchRoute, useMatches, useParentMatches };\n\n//# sourceMappingURL=Matches.js.map","import { createNonReactiveMutableStore, createNonReactiveReadonlyStore } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { batch, createAtom } from \"@tanstack/react-store\";\n//#region src/routerStores.ts\nvar getStoreFactory = (opts) => {\n\tif (isServer ?? opts.isServer) return {\n\t\tcreateMutableStore: createNonReactiveMutableStore,\n\t\tcreateReadonlyStore: createNonReactiveReadonlyStore,\n\t\tbatch: (fn) => fn()\n\t};\n\treturn {\n\t\tcreateMutableStore: createAtom,\n\t\tcreateReadonlyStore: createAtom,\n\t\tbatch\n\t};\n};\n//#endregion\nexport { getStoreFactory };\n\n//# sourceMappingURL=routerStores.js.map","import { getStoreFactory } from \"./routerStores.js\";\nimport { RouterCore } from \"@tanstack/router-core\";\n//#region src/router.ts\n/**\n* Creates a new Router instance for React.\n*\n* Pass the returned router to `RouterProvider` to enable routing.\n* Notable options: `routeTree` (your route definitions) and `context`\n* (required if the root route was created with `createRootRouteWithContext`).\n*\n* @param options Router options used to configure the router.\n* @returns A Router instance to be provided to `RouterProvider`.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRouterFunction\n*/\nvar createRouter = (options) => {\n\treturn new Router(options);\n};\nvar Router = class extends RouterCore {\n\tconstructor(options) {\n\t\tsuper(options, getStoreFactory);\n\t}\n};\n//#endregion\nexport { Router, createRouter };\n\n//# sourceMappingURL=router.js.map","\"use client\";\nimport { routerContext } from \"./routerContext.js\";\nimport { Matches } from \"./Matches.js\";\nimport { hasKeys } from \"@tanstack/router-core\";\nimport \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/RouterProvider.tsx\n/**\n* Low-level provider that places the router into React context and optionally\n* updates router options from props. Most apps should use `RouterProvider`.\n*/\nfunction RouterContextProvider({ router, children, ...rest }) {\n\tif (hasKeys(rest)) router.update({\n\t\t...router.options,\n\t\t...rest,\n\t\tcontext: {\n\t\t\t...router.options.context,\n\t\t\t...rest.context\n\t\t}\n\t});\n\tconst provider = /* @__PURE__ */ jsx(routerContext.Provider, {\n\t\tvalue: router,\n\t\tchildren\n\t});\n\tif (router.options.Wrap) return /* @__PURE__ */ jsx(router.options.Wrap, { children: provider });\n\treturn provider;\n}\n/**\n* Renders the current match presentation and provides the router to the React\n* tree via context.\n*\n* Accepts the same options as `createRouter` via props to update the router\n* instance after creation.\n*\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRouterFunction\n*/\nfunction RouterProvider({ router, ...rest }) {\n\treturn /* @__PURE__ */ jsx(RouterContextProvider, {\n\t\trouter,\n\t\t...rest,\n\t\tchildren: /* @__PURE__ */ jsx(Matches, {})\n\t});\n}\n//#endregion\nexport { RouterContextProvider, RouterProvider };\n\n//# sourceMappingURL=RouterProvider.js.map","\"use client\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useStructuralSharing } from \"./useMatch.js\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useStore } from \"@tanstack/react-store\";\n//#region src/useRouterState.tsx\n/**\n* Subscribe to the router's state store with optional selection and\n* structural sharing for render optimization.\n*\n* Options:\n* - `select`: Project the full router state to a derived slice\n* - `structuralSharing`: Replace-equal semantics for stable references\n* - `router`: Read state from a specific router instance instead of context\n*\n* @returns The selected router state (or the full state by default).\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useRouterStateHook\n*/\nfunction useRouterState(opts) {\n\tconst contextRouter = useRouter({ warn: opts?.router === void 0 });\n\tconst router = opts?.router || contextRouter;\n\tif (isServer ?? router.isServer) {\n\t\tconst state = router.stores.__store.get();\n\t\treturn opts?.select ? opts.select(state) : state;\n\t}\n\treturn useStore(router.stores.__store, useStructuralSharing(opts, router));\n}\n//#endregion\nexport { useRouterState };\n\n//# sourceMappingURL=useRouterState.js.map","// Routing engine compat layer over @tanstack/react-router with `createBrowserHistory()`.\n//\n// Why browser history? Clean, standard path-based URLs (`/resources/:id?page=2`).\n// Works with server-side analytics and deep links. Requires an SPA fallback rule\n// on the server (`try_files ... index.html` in nginx, `historyApiFallback` in\n// Vite preview). This is the one-line standard config for any modern static host\n// (Vercel, Netlify, nginx). No SSR is used — admin pages are auth-walled.\n//\n// Why TSR? Future-proof primitives — devtools, search-param schemas, per-route\n// loaders, code-splitting — without paying for SSR/Nitro (TanStack Start).\n//\n// Public API (Route discriminated union, `Link`, `useRoute`, `useNavigate`,\n// `buildHref`) is kept stable. `Route` is the canonical surface; the underlying\n// TSR state is mapped to it via `parseLocation`. Search params are kept\n// opaque to TSR (`parseSearch`/`stringifySearch` are no-ops in `admin-router`):\n// `ListQueryState` (with `filters[<key>]=<v>` keys) is parsed manually from\n// the raw `searchStr` so the URL format doesn't depend on TSR's JSON-search encoding.\n\nimport * as React from 'react'\nimport { useRouter, useRouterState } from '@tanstack/react-router'\n\n/**\n * Provides the SPA mount basepath (e.g. `/admin`) to all navigation\n * primitives (`Link`, `useNavigate`, `useRoute`). Set by\n * `AdminRouterProvider` from `window.__MODERN_ADMIN__.basePath`. Defaults\n * to `''` (root mount).\n */\nexport const BasepathContext = React.createContext<string>('')\n\n/** Returns the normalised basepath (never has a trailing slash; `''` at root). */\nexport const useBasepath = (): string => React.useContext(BasepathContext)\n\n/** URL-persisted state for the resource list page. */\nexport interface ListQueryState {\n page?: number\n perPage?: number\n sortBy?: string\n direction?: 'asc' | 'desc'\n /** Per-column filter values keyed by property path. */\n filters?: Record<string, string>\n}\n\nexport type Route =\n | { name: 'home' }\n | { name: 'audit-log' }\n | { name: 'cache' }\n | { name: 'list'; resourceId: string; query?: ListQueryState }\n | { name: 'show'; resourceId: string; recordId: string }\n | { name: 'edit'; resourceId: string; recordId: string }\n | { name: 'new'; resourceId: string }\n /**\n * Custom-action page — the surface for actions declaring a `component`.\n * Resource-scoped by default, record-scoped when `recordId` is set, and\n * bulk-scoped when `recordIds` carries a selection (serialized as a\n * `?recordIds=a,b,c` query param so the page survives a refresh).\n * Mirrors AdminJS's `/resources/:id/actions/:name` URLs.\n */\n | {\n name: 'action'\n resourceId: string\n actionName: string\n recordId?: string\n recordIds?: string[]\n }\n /** Settings hub. Sub-section selected via `section` (e.g. 'api-keys'). */\n | { name: 'settings'; section?: string }\n /**\n * Extension page registered by a Pro plugin via `registerExtensionRoute`.\n * Renders at `/ext/<key>` inside the authenticated admin shell.\n */\n | { name: 'extension'; key: string }\n\nconst parseListQuery = (search: string): ListQueryState | undefined => {\n if (!search) return undefined\n const params = new URLSearchParams(search.startsWith('?') ? search.slice(1) : search)\n const out: ListQueryState = {}\n const page = params.get('page')\n if (page) {\n const n = Number(page)\n if (Number.isFinite(n) && n >= 1) out.page = n\n }\n const perPage = params.get('perPage')\n if (perPage) {\n const n = Number(perPage)\n if (Number.isFinite(n) && n >= 1) out.perPage = n\n }\n const sortBy = params.get('sortBy')\n if (sortBy) out.sortBy = sortBy\n const direction = params.get('direction')\n if (direction === 'asc' || direction === 'desc') out.direction = direction\n const filters: Record<string, string> = {}\n params.forEach((value, key) => {\n const m = key.match(/^filters\\[(.+)\\]$/)\n if (m && m[1] != null && value !== '') filters[m[1]] = value\n })\n if (Object.keys(filters).length > 0) out.filters = filters\n return Object.keys(out).length > 0 ? out : undefined\n}\n\nconst buildListQuery = (q: ListQueryState | undefined): string => {\n if (!q) return ''\n const params = new URLSearchParams()\n if (q.page != null && q.page !== 1) params.set('page', String(q.page))\n if (q.perPage != null && q.perPage !== 20) params.set('perPage', String(q.perPage))\n if (q.sortBy) params.set('sortBy', q.sortBy)\n if (q.direction) params.set('direction', q.direction)\n if (q.filters) {\n for (const [k, v] of Object.entries(q.filters)) {\n if (v != null && v !== '') params.set(`filters[${k}]`, v)\n }\n }\n const s = params.toString()\n return s ? `?${s}` : ''\n}\n\n/** Read a bulk action's selection back out of `?recordIds=a,b,c`. Returns\n * `undefined` (rather than an empty array) when absent, so the route object\n * stays free of a meaningless `recordIds: []`. */\nconst parseRecordIds = (search: string): string[] | undefined => {\n if (!search) return undefined\n const params = new URLSearchParams(search.startsWith('?') ? search.slice(1) : search)\n const raw = params.get('recordIds')\n if (!raw) return undefined\n const ids = raw.split(',').filter(Boolean)\n return ids.length > 0 ? ids : undefined\n}\n\n/** Map a TSR location (pathname + raw searchStr) to the canonical `Route`\n * union the rest of the codebase consumes. Pure — used both at render\n * time (via `useRoute`) and outside the React tree if ever needed. */\nexport const parseLocation = (pathname: string, searchStr: string): Route => {\n const parts = pathname.split('/').filter(Boolean)\n if (parts.length === 0) return { name: 'home' }\n if (parts[0] === 'audit-log') return { name: 'audit-log' }\n if (parts[0] === 'cache') return { name: 'cache' }\n if (parts[0] === 'settings') {\n const section = parts[1] ? decodeURIComponent(parts[1]) : undefined\n return section ? { name: 'settings', section } : { name: 'settings' }\n }\n if (parts[0] === 'ext' && parts[1]) {\n return { name: 'extension', key: decodeURIComponent(parts[1]) }\n }\n if (parts[0] === 'resources' && parts[1]) {\n const resourceId = decodeURIComponent(parts[1])\n if (parts[2] === 'new') return { name: 'new', resourceId }\n // Action segments are checked before the record patterns below, so a\n // record whose id is literally `actions` would be shadowed — the same\n // trade-off `new` already makes.\n if (parts[2] === 'actions' && parts[3]) {\n const recordIds = parseRecordIds(searchStr)\n return {\n name: 'action',\n resourceId,\n actionName: decodeURIComponent(parts[3]),\n ...(recordIds ? { recordIds } : {}),\n }\n }\n if (parts[2] && parts[3] === 'actions' && parts[4]) {\n return {\n name: 'action',\n resourceId,\n recordId: decodeURIComponent(parts[2]),\n actionName: decodeURIComponent(parts[4]),\n }\n }\n if (parts[2] && parts[3] === 'edit') {\n return { name: 'edit', resourceId, recordId: decodeURIComponent(parts[2]) }\n }\n if (parts[2]) return { name: 'show', resourceId, recordId: decodeURIComponent(parts[2]) }\n const query = parseListQuery(searchStr)\n return query ? { name: 'list', resourceId, query } : { name: 'list', resourceId }\n }\n return { name: 'home' }\n}\n\n/** Build a path URL for the given route. Pure — kept for tests and for\n * `<Link>` href generation. */\nexport const buildHref = (route: Route): string => {\n switch (route.name) {\n case 'home':\n return '/'\n case 'audit-log':\n return '/audit-log'\n case 'cache':\n return '/cache'\n case 'list':\n return `/resources/${encodeURIComponent(route.resourceId)}${buildListQuery(route.query)}`\n case 'show':\n return `/resources/${encodeURIComponent(route.resourceId)}/${encodeURIComponent(route.recordId)}`\n case 'edit':\n return `/resources/${encodeURIComponent(route.resourceId)}/${encodeURIComponent(route.recordId)}/edit`\n case 'new':\n return `/resources/${encodeURIComponent(route.resourceId)}/new`\n case 'action': {\n const base = `/resources/${encodeURIComponent(route.resourceId)}`\n const scope = route.recordId ? `${base}/${encodeURIComponent(route.recordId)}` : base\n const path = `${scope}/actions/${encodeURIComponent(route.actionName)}`\n if (!route.recordIds?.length) return path\n const params = new URLSearchParams({ recordIds: route.recordIds.join(',') })\n return `${path}?${params.toString()}`\n }\n case 'settings':\n return route.section ? `/settings/${encodeURIComponent(route.section)}` : '/settings'\n case 'extension':\n return `/ext/${encodeURIComponent(route.key)}`\n }\n}\n\n/** Current canonical route, derived from the live TSR state.\n * When the router has a basepath, TSR strips it from `location.pathname`\n * before exposing it in state — so `parseLocation` sees only the\n * basepath-relative portion. */\nexport const useRoute = (): Route =>\n useRouterState({\n select: (s) => parseLocation(s.location.pathname, s.location.searchStr ?? ''),\n })\n\n/** Imperative navigator. Same signature as the legacy custom router so\n * call-sites don't change. Goes through TSR history → re-routing flows\n * through TSR's lifecycle. */\nexport const useNavigate = (): ((route: Route) => void) => {\n const router = useRouter()\n const basepath = useBasepath()\n return React.useCallback(\n (next: Route) => {\n router.history.push(basepath + buildHref(next))\n },\n [router, basepath],\n )\n}\n\n/** Open an in-app route in a new browser tab, honouring the admin's\n * `basepath`. `buildHref` returns a basepath-relative path, so we prepend\n * the basepath the same way `Link`/`useNavigate` do — otherwise the new tab\n * loads a URL outside the admin mount (e.g. `/resources/...` instead of\n * `/admin/resources/...`). */\nexport const useOpenInNewTab = (): ((route: Route) => void) => {\n const basepath = useBasepath()\n return React.useCallback((route: Route) => {\n if (typeof window === 'undefined') return\n window.open(basepath + buildHref(route), '_blank', 'noopener,noreferrer')\n }, [basepath])\n}\n\nexport interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n to: Route\n}\n\n/** Anchor with path href + client-side navigation on plain left-click.\n * Modifier clicks (cmd/ctrl/shift/alt, middle button) fall through to\n * default browser behaviour so \"open in new tab\" keeps working. */\nexport const Link = ({ to, onClick, ...rest }: LinkProps): React.ReactElement => {\n const router = useRouter()\n const basepath = useBasepath()\n const href = basepath + buildHref(to)\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLAnchorElement>) => {\n onClick?.(event)\n if (event.defaultPrevented) return\n if (event.button !== 0) return\n if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return\n if (rest.target && rest.target !== '_self') return\n event.preventDefault()\n router.history.push(href)\n },\n [onClick, router, href, rest.target],\n )\n return <a href={href} onClick={handleClick} {...rest} />\n}\n","// Imperative modal dialogs.\n//\n// `<DialogsProvider>` owns a small stack of active dialogs and renders them\n// through shadcn's purpose-built primitives: `<AlertDialog>` for confirm/alert\n// (focus trap + Esc-to-cancel + accessible role), and `<Dialog>` for arbitrary\n// content opened via `open()`. `useDialogs()` exposes a promise-flavoured API\n// (`confirm`, `alert`, `open`) so callers can `await` user choices instead of\n// weaving open/close state through their components. All built-in dialogs go\n// through `useI18n()` for labels — captions stay localized without callers\n// writing translations on the call site.\n//\n// Custom dialogs use `open({ render })`, where `render` receives a `close`\n// callback. The promise resolves with whatever value the caller passes to\n// `close`, defaulting to `undefined` when the user dismisses the dialog\n// (Esc / overlay click).\n\nimport * as React from 'react'\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n Dialog,\n DialogContent,\n} from '@modern-admin/ui'\nimport { useI18n } from './i18n.js'\n\nexport interface ConfirmOptions {\n title?: string\n description?: string\n confirmLabel?: string\n cancelLabel?: string\n /** Style the confirm button as destructive (red). Useful for delete dialogs. */\n destructive?: boolean\n}\n\nexport interface AlertOptions {\n title?: string\n description?: string\n okLabel?: string\n}\n\nexport interface OpenOptions<T> {\n render: (api: { close: (value?: T) => void }) => React.ReactNode\n /** Optional max-width override; defaults to `sm:max-w-lg`. */\n className?: string\n /** Disable closing on overlay click + Esc. */\n modal?: boolean\n}\n\nexport interface DialogsApi {\n confirm(opts?: ConfirmOptions): Promise<boolean>\n alert(opts?: AlertOptions): Promise<void>\n open<T = unknown>(opts: OpenOptions<T>): Promise<T | undefined>\n}\n\ninterface BaseEntry {\n id: number\n open: boolean\n resolve(value: unknown): void\n}\n\ninterface ConfirmEntry extends BaseEntry {\n kind: 'confirm'\n opts: ConfirmOptions\n}\n\ninterface AlertEntry extends BaseEntry {\n kind: 'alert'\n opts: AlertOptions\n}\n\ninterface CustomEntry extends BaseEntry {\n kind: 'custom'\n className?: string\n modal?: boolean\n render(api: { close: (value?: unknown) => void }): React.ReactNode\n}\n\ntype DialogEntry = ConfirmEntry | AlertEntry | CustomEntry\n\nconst DialogsContext = React.createContext<DialogsApi | null>(null)\n\nlet nextId = 1\n\nexport interface DialogsProviderProps {\n children: React.ReactNode\n}\n\nexport function DialogsProvider({ children }: DialogsProviderProps): React.ReactElement {\n const [entries, setEntries] = React.useState<DialogEntry[]>([])\n const { t } = useI18n()\n\n const removeEntry = React.useCallback((id: number) => {\n setEntries((prev) => prev.filter((e) => e.id !== id))\n }, [])\n\n const closeEntry = React.useCallback(\n (id: number, value: unknown) => {\n setEntries((prev) => {\n const target = prev.find((e) => e.id === id)\n if (target) target.resolve(value)\n // Mark closed so Radix can play the leave animation, then remove.\n return prev.map((e) => (e.id === id ? { ...e, open: false } : e))\n })\n // Cleanup after the close animation ~200ms.\n window.setTimeout(() => removeEntry(id), 250)\n },\n [removeEntry],\n )\n\n const api = React.useMemo<DialogsApi>(() => {\n const push = <T,>(\n build: (id: number, resolve: (value: T | undefined) => void) => DialogEntry,\n ): Promise<T | undefined> =>\n new Promise<T | undefined>((resolve) => {\n const id = nextId++\n const entry = build(id, resolve)\n setEntries((prev) => [...prev, entry])\n })\n\n return {\n confirm: (opts = {}) =>\n push<boolean>((id, resolve) => ({\n kind: 'confirm',\n id,\n open: true,\n opts,\n resolve: (value) => resolve(value as boolean | undefined),\n })).then((v) => v === true),\n alert: (opts = {}) =>\n push<void>((id, resolve) => ({\n kind: 'alert',\n id,\n open: true,\n opts,\n resolve: () => resolve(undefined),\n })).then(() => undefined),\n open: <T,>(opts: OpenOptions<T>) =>\n push<T>((id, resolve) => ({\n kind: 'custom',\n id,\n open: true,\n className: opts.className,\n modal: opts.modal,\n render: ({ close }) => opts.render({ close: (value?: T) => close(value as unknown) }),\n resolve: (value) => resolve(value as T | undefined),\n })),\n }\n }, [])\n\n return (\n <DialogsContext.Provider value={api}>\n {children}\n {entries.map((entry) => {\n if (entry.kind === 'confirm') {\n // Defaults stay action-neutral: the confirm dialog serves every\n // guarded action, not just deletion. Delete call-sites pass their own\n // `title` / `confirmLabel`.\n const title =\n entry.opts.title ?? t(entry.opts.destructive ? 'common:confirmDelete' : 'common:confirmAction')\n const confirmLabel =\n entry.opts.confirmLabel ?? t(entry.opts.destructive ? 'common:delete' : 'common:confirm')\n const cancelLabel = entry.opts.cancelLabel ?? t('common:cancel')\n return (\n <AlertDialog\n key={entry.id}\n open={entry.open}\n onOpenChange={(next) => {\n if (!next) closeEntry(entry.id, false)\n }}\n >\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n {entry.opts.description && (\n <AlertDialogDescription>{entry.opts.description}</AlertDialogDescription>\n )}\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={() => closeEntry(entry.id, false)}>\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction\n variant={entry.opts.destructive ? 'destructive' : 'default'}\n onClick={() => closeEntry(entry.id, true)}\n >\n {confirmLabel}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n }\n if (entry.kind === 'alert') {\n return (\n <AlertDialog\n key={entry.id}\n open={entry.open}\n onOpenChange={(next) => {\n if (!next) closeEntry(entry.id, undefined)\n }}\n >\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{entry.opts.title ?? ''}</AlertDialogTitle>\n {entry.opts.description && (\n <AlertDialogDescription>{entry.opts.description}</AlertDialogDescription>\n )}\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogAction onClick={() => closeEntry(entry.id, undefined)}>\n {entry.opts.okLabel ?? t('common:ok')}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n }\n // custom\n return (\n <Dialog\n key={entry.id}\n open={entry.open}\n onOpenChange={(next) => {\n if (!next) closeEntry(entry.id, undefined)\n }}\n >\n <DialogContent\n className={entry.className}\n onInteractOutside={(e) => {\n if (entry.modal) e.preventDefault()\n }}\n onEscapeKeyDown={(e) => {\n if (entry.modal) e.preventDefault()\n }}\n >\n {entry.render({ close: (value) => closeEntry(entry.id, value) })}\n </DialogContent>\n </Dialog>\n )\n })}\n </DialogsContext.Provider>\n )\n}\n\n/** Imperative dialog API. Falls back to a no-op when no provider is mounted. */\nexport function useDialogs(): DialogsApi {\n const ctx = React.useContext(DialogsContext)\n if (ctx) return ctx\n // No provider — fall back to native confirm/alert so basic flows still work\n // when a host app forgets to mount <DialogsProvider>.\n return {\n confirm: async (opts) =>\n typeof window === 'undefined'\n ? false\n : window.confirm([opts?.title, opts?.description].filter(Boolean).join('\\n\\n') || ''),\n alert: async (opts) => {\n if (typeof window !== 'undefined') {\n window.alert([opts?.title, opts?.description].filter(Boolean).join('\\n\\n') || '')\n }\n },\n open: async () => undefined,\n }\n}\n","// Process-local registry of currently-mounted hotkeys. `useHotkey` opts\n// into registration by passing `description` in its options; the entry\n// shows up in <KeyboardShortcutsHelp> until its component unmounts.\n//\n// Without a surrounding <HotkeyRegistryProvider> the registry is a\n// no-op so plain `useHotkey` stays usable in isolation (tests etc.).\n\nimport * as React from 'react'\n\nexport interface HotkeyDescriptor {\n /** Combo string in `useHotkey` syntax, e.g. `mod+s`, `shift+/`, `esc`. */\n keys: string\n description: string\n group?: string\n}\n\ninterface HotkeyRegistryApi {\n register(d: HotkeyDescriptor): () => void\n list: HotkeyDescriptor[]\n}\n\nconst NOOP_REGISTER: HotkeyRegistryApi['register'] = () => () => {}\n\nconst HotkeyRegistryContext = React.createContext<HotkeyRegistryApi>({\n register: NOOP_REGISTER,\n list: [],\n})\n\nexport function HotkeyRegistryProvider({\n children,\n}: {\n children: React.ReactNode\n}): React.ReactElement {\n const [list, setList] = React.useState<HotkeyDescriptor[]>([])\n // Stable register: setList is stable from useState, and the closure\n // is captured once via useRef so dependent effects don't re-fire.\n const register = React.useRef<HotkeyRegistryApi['register']>((d) => {\n setList((prev) => [...prev, d])\n return () => {\n setList((prev) => prev.filter((x) => x !== d))\n }\n }).current\n const value = React.useMemo<HotkeyRegistryApi>(\n () => ({ register, list }),\n [register, list],\n )\n return (\n <HotkeyRegistryContext.Provider value={value}>\n {children}\n </HotkeyRegistryContext.Provider>\n )\n}\n\nexport function useRegisteredHotkeys(): HotkeyDescriptor[] {\n return React.useContext(HotkeyRegistryContext).list\n}\n\nexport function useHotkeyRegister(): HotkeyRegistryApi['register'] {\n return React.useContext(HotkeyRegistryContext).register\n}\n","// Tiny keyboard-shortcut hook. Each combo is a `+`-separated string,\n// e.g. `mod+s`, `ctrl+shift+k`, `esc`. `mod` matches Ctrl on\n// Windows/Linux and Cmd on macOS so Ctrl+S / ⌘S map to the same handler.\n//\n// By default a chord with a modifier (mod / alt) fires anywhere; a\n// modifier-less chord is suppressed when focus is inside an input,\n// textarea, select, or contenteditable element so plain `n`/`r` keys\n// don't hijack typing. Override per-call with `allowInInput`.\n\nimport * as React from 'react'\nimport { useHotkeyRegister } from './hotkey-registry.js'\n\nexport interface HotkeyOptions {\n enabled?: boolean\n /** Override input-suppression. `true` always fires, `false` never. */\n allowInInput?: boolean\n /** Call `preventDefault()` on match. Default `true`. */\n preventDefault?: boolean\n /**\n * Human-readable label shown in <KeyboardShortcutsHelp>. When set, the\n * hotkey registers itself with the surrounding HotkeyRegistryProvider\n * for the duration it's mounted (and `enabled`).\n */\n description?: string\n /** Optional group label used to bucket entries in the help dialog. */\n group?: string\n}\n\ninterface ParsedCombo {\n key: string\n code: string | null\n mod: boolean\n shift: boolean\n alt: boolean\n hasModifier: boolean\n}\n\nconst KEY_ALIASES: Record<string, string> = {\n esc: 'escape',\n space: ' ',\n spacebar: ' ',\n return: 'enter',\n del: 'delete',\n}\n\nfunction keyToCode(key: string): string | null {\n if (/^[a-z]$/.test(key)) return `Key${key.toUpperCase()}`\n if (/^[0-9]$/.test(key)) return `Digit${key}`\n return null\n}\n\nfunction parseCombo(s: string): ParsedCombo {\n const parts = s.toLowerCase().split('+').map((p) => p.trim()).filter(Boolean)\n const last = parts[parts.length - 1] ?? ''\n const key = KEY_ALIASES[last] ?? last\n const code = keyToCode(key)\n const mod = parts.some((p) => p === 'mod' || p === 'ctrl' || p === 'meta' || p === 'cmd')\n const shift = parts.includes('shift')\n const alt = parts.includes('alt') || parts.includes('option')\n return { key, code, mod, shift, alt, hasModifier: mod || alt }\n}\n\nfunction normalizeEventKey(e: KeyboardEvent): string | null {\n return typeof e.key === 'string' ? e.key.toLowerCase() : null\n}\n\nfunction normalizeEventCode(e: KeyboardEvent): string | null {\n return typeof e.code === 'string' && e.code.length > 0 ? e.code : null\n}\n\nfunction matches(c: ParsedCombo, e: KeyboardEvent): boolean {\n if (c.code) {\n const code = normalizeEventCode(e)\n if (!code || code !== c.code) return false\n } else {\n const k = normalizeEventKey(e)\n if (!k || k !== c.key) return false\n }\n const hasMod = e.ctrlKey || e.metaKey\n if (c.mod !== hasMod) return false\n if (c.alt !== e.altKey) return false\n // Require shift only when explicitly asked. Letter keys may have shift\n // accidentally engaged (caps lock, etc.) — allow that case.\n if (c.shift && !e.shiftKey) return false\n return true\n}\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false\n const tag = target.tagName\n if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT') return true\n return target.isContentEditable\n}\n\nexport function useHotkey(\n combo: string | string[],\n handler: (e: KeyboardEvent) => void,\n options: HotkeyOptions = {},\n): void {\n const { enabled = true, allowInInput, preventDefault = true, description, group } = options\n const handlerRef = React.useRef(handler)\n React.useEffect(() => {\n handlerRef.current = handler\n }, [handler])\n\n const comboKey = Array.isArray(combo) ? combo.join('|') : combo\n const register = useHotkeyRegister()\n\n React.useEffect(() => {\n if (!enabled) return\n const parsed = comboKey.split('|').map(parseCombo)\n const onKeyDown = (e: KeyboardEvent): void => {\n const hit = parsed.find((c) => matches(c, e))\n if (!hit) return\n const allow = allowInInput ?? hit.hasModifier\n if (!allow && isEditableTarget(e.target)) return\n if (preventDefault) e.preventDefault()\n handlerRef.current(e)\n }\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [comboKey, enabled, allowInInput, preventDefault])\n\n React.useEffect(() => {\n if (!enabled || !description) return\n return register({ keys: comboKey, description, group })\n }, [enabled, description, group, comboKey, register])\n}\n","// Header button + dialog that surfaces every <useHotkey> entry that opted\n// into the registry by passing `description`. Pressing `?` toggles it.\n\nimport * as React from 'react'\nimport {\n Button,\n Kbd,\n KeyboardShortcutsHelp,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@modern-admin/ui'\nimport { Keyboard } from 'lucide-react'\nimport { useHotkey } from './use-hotkey.js'\nimport { useRegisteredHotkeys } from './hotkey-registry.js'\nimport { useI18n } from './i18n.js'\n\nexport function HotkeyHelpButton(): React.ReactElement {\n const [open, setOpen] = React.useState(false)\n const items = useRegisteredHotkeys()\n const { t } = useI18n()\n const label = t('common:shortcutsHelp')\n\n useHotkey('?', () => setOpen((v) => !v), {\n description: label,\n })\n\n return (\n <>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => setOpen(true)}\n aria-label={label}\n className=\"hidden md:inline-flex\"\n >\n <Keyboard className=\"size-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent className=\"flex items-center gap-1.5\">\n <span>{label}</span>\n <Kbd>?</Kbd>\n </TooltipContent>\n </Tooltip>\n <KeyboardShortcutsHelp\n open={open}\n onOpenChange={setOpen}\n items={items}\n title={label}\n emptyMessage={t('common:shortcutsEmpty')}\n />\n </>\n )\n}\n","// Theme + language switchers for the admin header. Both render as\n// dropdown menus using shadcn primitives and reflect persistent state\n// (theme via @modern-admin/ui's lib/theme; locale via I18nProvider).\n\nimport * as React from 'react'\nimport {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n ScrollArea,\n readThemeMode,\n setThemeMode,\n type ThemeMode,\n} from '@modern-admin/ui'\nimport { Check, Languages, Monitor, Moon, Sun } from 'lucide-react'\nimport { useI18n } from './i18n.js'\n\n/** Single dropdown row with a leading icon, label, and trailing check when active. */\nfunction MenuOption({\n icon,\n label,\n active,\n onSelect,\n}: {\n icon?: React.ReactNode\n label: React.ReactNode\n active: boolean\n onSelect(): void\n}): React.ReactElement {\n return (\n <DropdownMenuItem\n onSelect={(e) => {\n e.preventDefault()\n onSelect()\n }}\n className=\"gap-3 px-3 py-2\"\n >\n {icon && <span className=\"flex size-4 items-center justify-center text-muted-foreground\">{icon}</span>}\n <span className=\"flex-1 truncate\">{label}</span>\n {active && <Check className=\"size-4 text-primary\" />}\n </DropdownMenuItem>\n )\n}\n\nexport function ThemeToggle(): React.ReactElement {\n const { t } = useI18n()\n const [mode, setMode] = React.useState<ThemeMode>(() => readThemeMode())\n const apply = (next: ThemeMode): void => {\n setThemeMode(next)\n setMode(next)\n }\n const Icon = mode === 'dark' ? Moon : mode === 'light' ? Sun : Monitor\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" aria-label={t('common:toggleTheme')}>\n <Icon className=\"size-4\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" sideOffset={8} className=\"w-44 p-1\">\n <DropdownMenuLabel className=\"px-3 py-2 text-xs uppercase tracking-wide text-muted-foreground\">\n {t('common:theme')}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <MenuOption\n icon={<Sun className=\"size-4\" />}\n label={t('common:themeLight')}\n active={mode === 'light'}\n onSelect={() => apply('light')}\n />\n <MenuOption\n icon={<Moon className=\"size-4\" />}\n label={t('common:themeDark')}\n active={mode === 'dark'}\n onSelect={() => apply('dark')}\n />\n <MenuOption\n icon={<Monitor className=\"size-4\" />}\n label={t('common:themeSystem')}\n active={mode === 'system'}\n onSelect={() => apply('system')}\n />\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport function LanguageSwitcher(): React.ReactElement | null {\n const { locale, setLocale, availableLocales, t } = useI18n()\n const locales = availableLocales()\n // With a single registered locale there is nothing to switch between —\n // hide the control entirely (consumers control the set via I18nProvider's\n // `locales` prop, which the standalone shell wires from runtime config).\n if (locales.length <= 1) return null\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\" className=\"gap-2\">\n <Languages className=\"size-4\" />\n <span className=\"text-xs uppercase\">{locale}</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" sideOffset={8} className=\"w-52 p-1\">\n <DropdownMenuLabel className=\"px-3 py-2 text-xs uppercase tracking-wide text-muted-foreground\">\n {t('common:language')}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <ScrollArea className=\"max-h-72\">\n {locales.map((l) => (\n <MenuOption\n key={l.code}\n label={l.name}\n active={l.code === locale}\n onSelect={() => setLocale(l.code)}\n />\n ))}\n </ScrollArea>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n","// Realtime helper for the React client. Stays transport-agnostic — host apps\n// wire up socket.io / SSE / WebSocket and pass an `onEvent` subscriber here.\n// `createSocketRealtimeSubscriber` (realtime-socket.ts) provides the default\n// socket.io transport matching `@modern-admin/realtime`'s gateway; the shell\n// wires it automatically when the backend advertises `features.realtime`.\n\nimport { useEffect } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { invalidateResourceData } from './hooks.js'\n\nexport interface RealtimeWireEvent {\n kind: 'created' | 'updated' | 'deleted'\n resourceId: string\n recordId?: string\n record?: Record<string, unknown>\n actorId?: string\n at: number\n}\n\nexport type RealtimeSubscriber = (\n handler: (event: RealtimeWireEvent) => void,\n) => () => void\n\n/**\n * Subscribe to wire events from the host transport and invalidate the\n * matching TanStack Query caches. Every mutation event fans out through\n * `invalidateResourceData`, which drops the mutated resource's queries,\n * linked resources' queries (populated references, related-record tables),\n * and cross-resource aggregates (global search, time series, audit log).\n *\n * Pass `null`/`undefined` to render the hook inert (e.g. while the\n * backend hasn't advertised `features.realtime` yet).\n */\nexport function useRealtimeInvalidation(\n subscriber: RealtimeSubscriber | null | undefined,\n): void {\n const queryClient = useQueryClient()\n useEffect(() => {\n if (!subscriber) return\n return subscriber((event) => {\n invalidateResourceData(queryClient, event.resourceId)\n })\n }, [queryClient, subscriber])\n}\n\n/**\n * Optimistic local update — apply a deletion immediately to a list query so\n * the row disappears before the round-trip refetch finishes.\n */\nexport function applyDeletionLocally(\n queryClient: ReturnType<typeof useQueryClient>,\n resourceId: string,\n recordId: string,\n): void {\n queryClient.setQueriesData<unknown>(\n { queryKey: ['modern-admin', resourceId, 'list'] },\n (data: unknown) => {\n const list = data as { records?: Array<{ id: string }>; meta?: { total: number } } | undefined\n if (!list || !Array.isArray(list.records)) return data\n const next = list.records.filter((r) => r.id !== recordId)\n if (next.length === list.records.length) return data\n return {\n ...list,\n records: next,\n meta: list.meta ? { ...list.meta, total: Math.max(0, list.meta.total - 1) } : list.meta,\n }\n },\n )\n}\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach((key) => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data.arrayBuffer().then(toArray).then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, (encoded) => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE, } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType),\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType),\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1),\n }\n : {\n type: PACKET_TYPES_REVERSE[type],\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET, } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, (encodedPacket) => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, (encodedPacket) => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n },\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* State.READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* State.READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* State.READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* State.READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* State.READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (state === 2 /* State.READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* State.READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n },\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload, };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\nexport const defaultBinaryType = \"arraybuffer\";\nexport function createCookieJar() { }\n","import { globalThisShim as globalThis } from \"./globals.node.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n/**\n * Generates a random 8-characters string.\n */\nexport function randomString() {\n return (Date.now().toString(36).substring(3) +\n Math.random().toString(36).substring(2, 5));\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port) !== 443) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { randomString } from \"../util.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n constructor() {\n super(...arguments);\n this._polling = false;\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this._poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this._polling || !this.writable) {\n let total = 0;\n if (this._polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n _poll() {\n this._polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this._polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this._poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","import { Polling } from \"./polling.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globals.node.js\";\nimport { hasCORS } from \"../contrib/has-cors.js\";\nfunction empty() { }\nexport class BaseXHR extends Polling {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n }\n /**\n * Sends data.\n *\n * @param {String} data - data to send.\n * @param {Function} fn - called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(createRequest, uri, opts) {\n super();\n this.createRequest = createRequest;\n installTimerFunctions(this, opts);\n this._opts = opts;\n this._method = opts.method || \"GET\";\n this._uri = uri;\n this._data = undefined !== opts.data ? opts.data : null;\n this._create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n _create() {\n var _a;\n const opts = pick(this._opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this._opts.xd;\n const xhr = (this._xhr = this.createRequest(opts));\n try {\n xhr.open(this._method, this._uri, true);\n try {\n if (this._opts.extraHeaders) {\n // @ts-ignore\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this._opts.extraHeaders) {\n if (this._opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this._opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this._method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this._opts.withCredentials;\n }\n if (this._opts.requestTimeout) {\n xhr.timeout = this._opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(\n // @ts-ignore\n xhr.getResponseHeader(\"set-cookie\"));\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this._onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this._onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this._data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this._onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this._index = Request.requestsCount++;\n Request.requests[this._index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n _onError(err) {\n this.emitReserved(\"error\", err, this._xhr);\n this._cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n _cleanup(fromError) {\n if (\"undefined\" === typeof this._xhr || null === this._xhr) {\n return;\n }\n this._xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this._xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this._index];\n }\n this._xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n _onLoad() {\n const data = this._xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this._cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this._cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\nconst hasXHR2 = (function () {\n const xhr = newRequest({\n xdomain: false,\n });\n return xhr && xhr.responseType !== null;\n})();\n/**\n * HTTP long-polling based on the built-in `XMLHttpRequest` object.\n *\n * Usage: browser\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\n */\nexport class XHR extends BaseXHR {\n constructor(opts) {\n super(opts);\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd }, this.opts);\n return new Request(newRequest, this.uri(), opts);\n }\n}\nfunction newRequest(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { pick, randomString } from \"../util.js\";\nimport { encodePacket } from \"engine.io-parser\";\nimport { globalThisShim as globalThis, nextTick } from \"../globals.node.js\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class BaseWS extends Transport {\n get name() {\n return \"websocket\";\n }\n doOpen() {\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws = this.createSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n this.doWrite(packet, data);\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.onerror = () => { };\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\nconst WebSocketCtor = globalThis.WebSocket || globalThis.MozWebSocket;\n/**\n * WebSocket transport based on the built-in `WebSocket` object.\n *\n * Usage: browser, Node.js (since v21), Deno, Bun\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * @see https://caniuse.com/mdn-api_websocket\n * @see https://nodejs.org/api/globals.html#websocket\n */\nexport class WS extends BaseWS {\n createSocket(uri, protocols, opts) {\n return !isReactNative\n ? protocols\n ? new WebSocketCtor(uri, protocols)\n : new WebSocketCtor(uri)\n : new WebSocketCtor(uri, protocols, opts);\n }\n doWrite(_packet, data) {\n this.ws.send(data);\n }\n}\n","import { XHR } from \"./polling-xhr.node.js\";\nimport { WS } from \"./websocket.node.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: XHR,\n};\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"../globals.node.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\n/**\n * WebTransport transport based on the built-in `WebTransport` object.\n *\n * Usage: browser, Node.js (with the `@fails-components/webtransport` package)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebTransport\n * @see https://caniuse.com/webtransport\n */\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n try {\n // @ts-ignore\n this._transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this._transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this._transport.ready.then(() => {\n this._transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this._writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this._writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this._writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n if (str.length > 8000) {\n throw \"URI too long\";\n }\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports as DEFAULT_TRANSPORTS } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { createCookieJar, defaultBinaryType, nextTick, } from \"./globals.node.js\";\nconst withEventListeners = typeof addEventListener === \"function\" &&\n typeof removeEventListener === \"function\";\nconst OFFLINE_EVENT_LISTENERS = [];\nif (withEventListeners) {\n // within a ServiceWorker, any event handler for the 'offline' event must be added on the initial evaluation of the\n // script, so we create one single event listener here which will forward the event to the socket instances\n addEventListener(\"offline\", () => {\n OFFLINE_EVENT_LISTENERS.forEach((listener) => listener());\n }, false);\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes without upgrade mechanism, which means that it will keep the first low-level transport that\n * successfully establishes the connection.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithoutUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithUpgrade\n * @see Socket\n */\nexport class SocketWithoutUpgrade extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n this._pingInterval = -1;\n this._pingTimeout = -1;\n this._maxPayload = -1;\n /**\n * The expiration timestamp of the {@link _pingTimeoutTimer} object is tracked, in case the timer is throttled and the\n * callback is not fired on time. This can happen for example when a laptop is suspended or when a phone is locked.\n */\n this._pingTimeoutTime = Infinity;\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n const parsedUri = parse(uri);\n opts.hostname = parsedUri.host;\n opts.secure =\n parsedUri.protocol === \"https\" || parsedUri.protocol === \"wss\";\n opts.port = parsedUri.port;\n if (parsedUri.query)\n opts.query = parsedUri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = [];\n this._transportsByName = {};\n opts.transports.forEach((t) => {\n const transportName = t.prototype.name;\n this.transports.push(transportName);\n this._transportsByName[transportName] = t;\n });\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n if (withEventListeners) {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this._beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this._offlineEventListener = () => {\n this._onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener);\n }\n }\n if (this.opts.withCredentials) {\n this._cookieJar = createCookieJar();\n }\n this._open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new this._transportsByName[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n _open() {\n if (this.transports.length === 0) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n const transportName = this.opts.rememberUpgrade &&\n SocketWithoutUpgrade.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1\n ? \"websocket\"\n : this.transports[0];\n this.readyState = \"opening\";\n const transport = this.createTransport(transportName);\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this._onDrain.bind(this))\n .on(\"packet\", this._onPacket.bind(this))\n .on(\"error\", this._onError.bind(this))\n .on(\"close\", (reason) => this._onClose(\"transport close\", reason));\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n _onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this._sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n this._resetPingTimeout();\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this._onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this._pingInterval = data.pingInterval;\n this._pingTimeout = data.pingTimeout;\n this._maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this._resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n _resetPingTimeout() {\n this.clearTimeoutFn(this._pingTimeoutTimer);\n const delay = this._pingInterval + this._pingTimeout;\n this._pingTimeoutTime = Date.now() + delay;\n this._pingTimeoutTimer = this.setTimeoutFn(() => {\n this._onClose(\"ping timeout\");\n }, delay);\n if (this.opts.autoUnref) {\n this._pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n _onDrain() {\n this.writeBuffer.splice(0, this._prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this._prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this._getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this._prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n _getWritablePackets() {\n const shouldCheckPayloadSize = this._maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this._maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Checks whether the heartbeat timer has expired but the socket has not yet been notified.\n *\n * Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the\n * `write()` method then the message would not be buffered by the Socket.IO client.\n *\n * @return {boolean}\n * @private\n */\n /* private */ _hasPingExpired() {\n if (!this._pingTimeoutTime)\n return true;\n const hasExpired = Date.now() > this._pingTimeoutTime;\n if (hasExpired) {\n this._pingTimeoutTime = 0;\n nextTick(() => {\n this._onClose(\"ping timeout\");\n }, this.setTimeoutFn);\n }\n return hasExpired;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a message. Alias of {@link Socket#write}.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n send(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type - packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n _sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this._onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n _onError(err) {\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n if (this.opts.tryAllTransports &&\n this.transports.length > 1 &&\n this.readyState === \"opening\") {\n this.transports.shift();\n return this._open();\n }\n this.emitReserved(\"error\", err);\n this._onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n _onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this._pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (withEventListeners) {\n if (this._beforeunloadEventListener) {\n removeEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this._offlineEventListener) {\n const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener);\n if (i !== -1) {\n OFFLINE_EVENT_LISTENERS.splice(i, 1);\n }\n }\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n }\n }\n}\nSocketWithoutUpgrade.protocol = protocol;\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see Socket\n */\nexport class SocketWithUpgrade extends SocketWithoutUpgrade {\n constructor() {\n super(...arguments);\n this._upgrades = [];\n }\n onOpen() {\n super.onOpen();\n if (\"open\" === this.readyState && this.opts.upgrade) {\n for (let i = 0; i < this._upgrades.length; i++) {\n this._probe(this._upgrades[i]);\n }\n }\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n _probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this._upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n onHandshake(data) {\n this._upgrades = this._filterUpgrades(data.upgrades);\n super.onHandshake(data);\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n _filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n for (let i = 0; i < upgrades.length; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * @example\n * import { Socket } from \"engine.io-client\";\n *\n * const socket = new Socket();\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see SocketWithUpgrade\n */\nexport class Socket extends SocketWithUpgrade {\n constructor(uri, opts = {}) {\n const isOptionsOnly = typeof uri === \"object\";\n const o = isOptionsOnly ? { ...uri } : { ...opts };\n if (!o.transports ||\n (o.transports && typeof o.transports[0] === \"string\")) {\n o.transports = (o.transports || [\"polling\", \"websocket\", \"webtransport\"])\n .map((transportName) => DEFAULT_TRANSPORTS[transportName])\n .filter((t) => !!t);\n }\n super(isOptionsOnly ? o : uri, o);\n }\n}\n","import { Socket } from \"./socket.js\";\nexport { Socket };\nexport { SocketWithoutUpgrade, SocketWithUpgrade, } from \"./socket.js\";\nexport const protocol = Socket.protocol;\nexport { Transport, TransportError } from \"./transport.js\";\nexport { transports } from \"./transports/index.js\";\nexport { installTimerFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri.js\";\nexport { nextTick } from \"./globals.node.js\";\nexport { Fetch } from \"./transports/polling-fetch.js\";\nexport { XHR as NodeXHR } from \"./transports/polling-xhr.node.js\";\nexport { XHR } from \"./transports/polling-xhr.js\";\nexport { WS as NodeWebSocket } from \"./transports/websocket.node.js\";\nexport { WS as WebSocket } from \"./transports/websocket.js\";\nexport { WT as WebTransport } from \"./transports/webtransport.js\";\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\", // used on the client side\n \"connect_error\", // used on the client side\n \"disconnect\", // used on both sides\n \"disconnecting\", // used on the server side\n \"newListener\", // used by the Node.js EventEmitter\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n */\n constructor(opts) {\n super();\n this.opts = Object.assign({\n reviver: undefined,\n maxAttachments: 10,\n }, typeof opts === \"function\" ? { reviver: opts } : opts);\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n const n = Number(buf);\n if (!isInteger(n) || n < 0) {\n throw new Error(\"Illegal attachments\");\n }\n else if (n > this.opts.maxAttachments) {\n throw new Error(\"too many attachments\");\n }\n p.attachments = n;\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.opts.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\nfunction isNamespaceValid(nsp) {\n return typeof nsp === \"string\";\n}\n// see https://caniuse.com/mdn-javascript_builtins_number_isinteger\nconst isInteger = Number.isInteger ||\n function (value) {\n return (typeof value === \"number\" &&\n isFinite(value) &&\n Math.floor(value) === value);\n };\nfunction isAckIdValid(id) {\n return id === undefined || isInteger(id);\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\nfunction isDataValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return payload === undefined || isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n return Array.isArray(payload);\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n default:\n return false;\n }\n}\nexport function isPacketValid(packet) {\n return (isNamespaceValid(packet.nsp) &&\n isAckIdValid(packet.id) &&\n isDataValid(packet.type, packet.data));\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n /**\n * A map containing acknowledgement handlers.\n *\n * The `withError` attribute is used to differentiate handlers that accept an error as first argument:\n *\n * - `socket.emit(\"test\", (err, value) => { ... })` with `ackTimeout` option\n * - `socket.timeout(5000).emit(\"test\", (err, value) => { ... })`\n * - `const value = await socket.emitWithAck(\"test\")`\n *\n * From those that don't:\n *\n * - `socket.emit(\"test\", (value) => { ... });`\n *\n * In the first case, the handlers will be called with an error when:\n *\n * - the timeout is reached\n * - the socket gets disconnected\n *\n * In the second case, the handlers will be simply discarded upon disconnection, since the client will never receive\n * an acknowledgement from the server.\n *\n * @private\n */\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n var _a, _b, _c;\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = (_b = (_a = this.io.engine) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.writable;\n const isConnected = this.connected && !((_c = this.io.engine) === null || _c === void 0 ? void 0 : _c._hasPingExpired());\n const discardPacket = this.flags.volatile && !isTransportWritable;\n if (discardPacket) {\n }\n else if (isConnected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n const fn = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, args);\n };\n fn.withError = true;\n this.acks[id] = fn;\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n return new Promise((resolve, reject) => {\n const fn = (arg1, arg2) => {\n return arg1 ? reject(arg1) : resolve(arg2);\n };\n fn.withError = true;\n args.push(fn);\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n this._clearAcks();\n }\n /**\n * Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from\n * the server.\n *\n * @private\n */\n _clearAcks() {\n Object.keys(this.acks).forEach((id) => {\n const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id);\n if (!isBuffered) {\n // note: handlers that do not accept an error as first argument are ignored here\n const ack = this.acks[id];\n delete this.acks[id];\n if (ack.withError) {\n ack.call(this, new Error(\"socket has been disconnected\"));\n }\n }\n });\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowledgement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (typeof ack !== \"function\") {\n return;\n }\n delete this.acks[packet.id];\n // @ts-ignore FIXME ack is incorrectly inferred as 'never'\n if (ack.withError) {\n packet.data.unshift(null);\n }\n // @ts-ignore\n ack.apply(this, packet.data);\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this._drainQueue(true);\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n if (!v) {\n this.skipReconnect = true;\n }\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), \n // @ts-ignore\n on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called when:\n *\n * - the low-level engine is closed\n * - the parser encountered a badly formatted packet\n * - all sockets are disconnected\n *\n * @private\n */\n onclose(reason, description) {\n var _a;\n this.cleanup();\n (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\nexport { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from \"engine.io-client\";\n","// Default socket.io transport for `useRealtimeInvalidation`, matching the\n// `@modern-admin/realtime` NestJS gateway: namespace `admin/realtime`,\n// event name `modernAdmin:realtime`, room opt-in via the `subscribe`\n// message. Kept separate from realtime.ts so the transport-agnostic hook\n// carries no socket.io dependency for hosts that bring their own wire.\n\nimport { io } from 'socket.io-client'\nimport type { RealtimeSubscriber, RealtimeWireEvent } from './realtime.js'\n\n/** Mirrors `REALTIME_EVENT` in `@modern-admin/realtime` (packages/realtime/src/tokens.ts). */\nconst REALTIME_EVENT = 'modernAdmin:realtime'\n\n/** Mirrors the gateway's `@WebSocketGateway({ namespace })`. */\nconst REALTIME_NAMESPACE = '/admin/realtime'\n\nexport interface SocketRealtimeOptions {\n /** Absolute API origin (AdminClient's `baseUrl`); '' = same origin. */\n baseUrl?: string\n /** Forward cookies on the handshake (Better Auth sessions). */\n withCredentials?: boolean\n}\n\n/**\n * Build a `RealtimeSubscriber` backed by socket.io. The connection is\n * established lazily on first subscription and torn down when the last\n * unsubscribe runs, so an unmounted admin shell holds no socket open.\n */\nexport function createSocketRealtimeSubscriber(\n options: SocketRealtimeOptions = {},\n): RealtimeSubscriber {\n return (handler) => {\n const socket = io(`${options.baseUrl ?? ''}${REALTIME_NAMESPACE}`, {\n withCredentials: options.withCredentials ?? true,\n // Long-polling fallback stays enabled (socket.io default) so the\n // bridge works behind proxies that block WebSocket upgrades.\n })\n const onEvent = (event: RealtimeWireEvent): void => {\n if (event && typeof event.resourceId === 'string') handler(event)\n }\n socket.on(REALTIME_EVENT, onEvent)\n // Join the firehose room — the admin shell wants every resource. The\n // gateway re-broadcasts nothing until the room is joined, so re-join\n // after every (re)connect, not just once.\n const joinAll = (): void => {\n socket.emit('subscribe', { all: true })\n }\n socket.on('connect', joinAll)\n return () => {\n socket.off(REALTIME_EVENT, onEvent)\n socket.off('connect', joinAll)\n socket.disconnect()\n }\n }\n}\n","// Two-pane sign-in screen: branded panel on the left, form on the right.\n// Collapses into a single column on mobile (left pane hides — the form\n// reuses the brand mark inline). Posts to Better Auth's email handler via\n// AdminClient.login, then invalidates the `me` query so the gate flips\n// to the authenticated app shell.\n//\n// Social providers are driven entirely by the server: BetterAuthProvider\n// returns the list of enabled provider ids from `betterAuth({ socialProviders })`.\n// Known providers (google, github, apple) get a dedicated lucide icon; any\n// other id falls back to Globe with a capitalised label.\n\nimport * as React from 'react'\nimport { Button, Field, FieldDescription, FieldError, FieldLabel, Input, PasswordInput } from '@modern-admin/ui'\nimport { Database, Globe, LogIn } from 'lucide-react'\nimport { useAuthUiProps, useLogin, useSocialLogin } from '../hooks.js'\nimport { useI18n } from '../i18n.js'\nimport { AdminApiError } from '../client.js'\n\n// ─── Social provider registry ────────────────────────────────────────────────\n// Maps a Better Auth provider id to a display label and an icon element.\n// lucide-react 1.x dropped all brand icons, so known social providers use\n// inline monochrome SVGs; unknown ids fall through to Globe.\n\ntype ProviderDef = { label: string; icon: React.ReactElement }\n\nfunction GoogleIcon(): React.ReactElement {\n return (\n <svg className=\"size-4\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"/>\n <path\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"/>\n <path\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l3.66-2.84z\"/>\n <path\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"/>\n </svg>\n )\n}\n\nfunction GitHubIcon(): React.ReactElement {\n return (\n <svg className=\"size-4\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z\"/>\n </svg>\n )\n}\n\nfunction AppleIcon(): React.ReactElement {\n return (\n <svg className=\"size-4\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.459 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zm3.378-3.066c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701z\"/>\n </svg>\n )\n}\n\nconst SOCIAL_PROVIDERS: Record<string, ProviderDef> = {\n google: { label: 'Google', icon: <GoogleIcon/> },\n github: { label: 'GitHub', icon: <GitHubIcon/> },\n apple: { label: 'Apple', icon: <AppleIcon/> },\n}\n\nfunction resolveProvider(id: string): ProviderDef {\n return (\n SOCIAL_PROVIDERS[id] ?? {\n label: id.charAt(0).toUpperCase() + id.slice(1),\n icon: <Globe className=\"size-4\" aria-hidden=\"true\"/>,\n }\n )\n}\n\n// ─── Components ──────────────────────────────────────────────────────────────\n\nexport interface LoginPageProps {\n /** Optional title override (defaults to common:appName). */\n title?: React.ReactNode\n /** Optional helper line under the form — e.g. demo credentials. */\n hint?: React.ReactNode\n /** Optional tagline shown on the brand panel. */\n tagline?: React.ReactNode\n}\n\nfunction BrandMark({ size = 'md' }: { size?: 'sm' | 'md' }): React.ReactElement {\n const tile = size === 'sm' ? 'size-8 rounded-lg' : 'size-9 rounded-xl'\n const icon = size === 'sm' ? 'size-4' : 'size-5'\n return (\n <span\n className={`flex ${tile} items-center justify-center bg-primary/10 ring-1 ring-primary/20`}\n >\n <Database className={`${icon} text-primary`} aria-hidden=\"true\"/>\n </span>\n )\n}\n\nexport function LoginPage({ title, hint, tagline }: LoginPageProps): React.ReactElement {\n const { t } = useI18n()\n const login = useLogin()\n const socialLogin = useSocialLogin()\n const { data: authUi } = useAuthUiProps()\n const [email, setEmail] = React.useState('')\n const [password, setPassword] = React.useState('')\n\n const providers = authUi?.providers ?? []\n const showEmailForm = authUi === undefined || authUi.emailAndPassword\n\n const submit = (event: React.FormEvent<HTMLFormElement>): void => {\n event.preventDefault()\n if (login.isPending) return\n login.mutate({ email, password })\n }\n\n const errMessage = (() => {\n const err = login.error\n if (!err) return null\n if (err instanceof AdminApiError && err.status === 401) {\n return t('auth:loginFailed')\n }\n // Better Auth surfaces structured errors as JSON; surface the message\n // field when present, otherwise fall back to the raw payload.\n if (err instanceof AdminApiError) {\n try {\n const body = JSON.parse(err.message) as { message?: string }\n if (body.message) return body.message\n } catch {\n /* non-JSON body — fall through */\n }\n }\n return err.message || t('errors:server')\n })()\n\n const heading = title ?? t('common:appName')\n const subtitle = t('auth:subtitle')\n const taglineText = tagline ?? t('auth:tagline')\n\n return (\n <div className=\"grid min-h-screen grid-cols-1 bg-background lg:grid-cols-2\">\n {/* Brand panel — desktop only. Mirrors the sidebar's visual rhythm. */}\n <aside className=\"relative hidden flex-col justify-between border-r border-border bg-muted/30 p-10 lg:flex\">\n <div className=\"flex items-center gap-3\">\n <BrandMark/>\n <span className=\"text-base font-semibold tracking-tight\">\n {t('common:appName')}\n </span>\n </div>\n <p className=\"max-w-md text-sm text-muted-foreground\">{taglineText}</p>\n </aside>\n\n {/* Form column. Centered card with mobile-friendly padding. */}\n <main className=\"flex items-center justify-center p-6 sm:p-10\">\n <div className=\"w-full max-w-sm\">\n <div className=\"mb-8 flex flex-col items-center gap-3 text-center\">\n <BrandMark/>\n <h1 className=\"text-2xl font-semibold tracking-tight\">{heading}</h1>\n <p className=\"text-sm text-muted-foreground\">{subtitle}</p>\n </div>\n\n {/* Social login buttons */}\n {providers.length > 0 && (\n <div className=\"mb-4 flex flex-col gap-2\">\n {providers.map((id) => {\n const { label, icon } = resolveProvider(id)\n return (\n <Button\n key={id}\n type=\"button\"\n variant=\"outline\"\n className=\"w-full gap-2\"\n disabled={socialLogin.isPending}\n onClick={() => socialLogin.mutate(id)}\n >\n {icon}\n {t('auth:continueWith').replace('{provider}', label)}\n </Button>\n )\n })}\n </div>\n )}\n\n {/* Divider between social and email/password */}\n {providers.length > 0 && showEmailForm && (\n <div className=\"relative mb-4 flex items-center gap-3\">\n <div className=\"flex-1 border-t border-border\"/>\n <span className=\"text-xs text-muted-foreground\">\n {t('auth:orContinueWith')}\n </span>\n <div className=\"flex-1 border-t border-border\"/>\n </div>\n )}\n\n {/* Email / password form */}\n {showEmailForm && (\n <form onSubmit={submit} className=\"flex flex-col gap-4\">\n <Field>\n <FieldLabel htmlFor=\"login-email\">{t('auth:email')}</FieldLabel>\n <Input\n id=\"login-email\"\n type=\"email\"\n autoComplete=\"email\"\n autoFocus\n required\n placeholder=\"you@example.com\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n disabled={login.isPending}\n />\n </Field>\n <Field>\n <FieldLabel htmlFor=\"login-password\">{t('auth:password')}</FieldLabel>\n <PasswordInput\n id=\"login-password\"\n autoComplete=\"current-password\"\n required\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n disabled={login.isPending}\n toggleLabel={{\n show: t('common:showPassword'),\n hide: t('common:hidePassword'),\n }}\n />\n </Field>\n {errMessage && <FieldError>{errMessage}</FieldError>}\n <Button\n type=\"submit\"\n className=\"mt-2 w-full gap-2\"\n disabled={login.isPending || !email || !password}\n >\n <LogIn className=\"size-4\"/>\n {t('auth:login')}\n </Button>\n {hint && (\n <FieldDescription className=\"text-center\">{hint}</FieldDescription>\n )}\n </form>\n )}\n </div>\n </main>\n </div>\n )\n}\n","// Code-based route tree wired up to @tanstack/react-router. Imported by\n// `admin-app.tsx` and renders the entire authenticated shell as the root\n// route's component. Each leaf route is a thin wrapper that pulls typed\n// `params` and renders the existing page component (page props remain a\n// public API surface — no changes to ResourceListPage/ResourceShowPage/etc.).\n//\n// History: browser (`createBrowserHistory`) — clean path-based URLs.\n// Requires an SPA fallback rule on the server (e.g. `try_files ... index.html`\n// in nginx, historyApiFallback in Vite). See `router.tsx` and `docs/frontend.md`.\n//\n// Basepath: `AdminRouterProvider` accepts a `basepath` prop (e.g. `/admin`)\n// injected automatically from `window.__MODERN_ADMIN__.basePath`. The router\n// is created with that basepath so TSR strips it from URLs before route\n// matching. `BasepathContext` exposes it to `Link` and `useNavigate` so they\n// can prepend it when pushing to browser history.\n//\n// Search params: TSR's default JSON-style parser would mangle our existing\n// `filters[<path>]=<value>` URL format. We make `parseSearch`/`stringifySearch`\n// no-ops (TSR keeps `searchStr` raw); `useRoute()` re-parses `searchStr` into\n// `ListQueryState` via `parseLocation` in `router.tsx`.\n\nimport * as React from 'react'\nimport {\n createBrowserHistory,\n createRootRouteWithContext,\n createRoute,\n createRouter,\n Outlet,\n RouterProvider,\n} from '@tanstack/react-router'\nimport { Loader2 } from 'lucide-react'\nimport { BasepathContext, useRoute } from './router.js'\nimport { getRouteExtension } from './extension-registry.js'\nimport { useI18n } from './i18n.js'\nimport type { WizardStep } from './components/wizard-form.js'\n\n// Every page is a lazy chunk so the critical-path bundle stops at the shell\n// (sidebar + header). Heavy dependencies then ride in the page chunk that\n// actually uses them — recharts with the dashboard, tiptap with the record\n// pages — instead of blocking first paint for all of them on every load.\nconst HomePage = React.lazy(() => import('./pages/home-page.js').then((m) => ({ default: m.HomePage })))\nconst AuditLogPage = React.lazy(() => import('./pages/audit-log-page.js').then((m) => ({ default: m.AuditLogPage })))\nconst CachePage = React.lazy(() => import('./pages/cache-page.js').then((m) => ({ default: m.CachePage })))\nconst SettingsPage = React.lazy(() => import('./pages/settings-page.js').then((m) => ({ default: m.SettingsPage })))\nconst ResourceListPage = React.lazy(() => import('./pages/list-page.js').then((m) => ({ default: m.ResourceListPage })))\nconst ResourceShowPage = React.lazy(() => import('./pages/show-page.js').then((m) => ({ default: m.ResourceShowPage })))\nconst ResourceEditPage = React.lazy(() => import('./pages/edit-page.js').then((m) => ({ default: m.ResourceEditPage })))\nconst ResourceWizardCreatePage = React.lazy(() =>\n import('./pages/wizard-create-page.js').then((m) => ({ default: m.ResourceWizardCreatePage })),\n)\nconst ResourceActionPage = React.lazy(() =>\n import('./pages/action-page.js').then((m) => ({ default: m.ResourceActionPage })),\n)\n\n// ─── Route tree ───────────────────────────────────────────────────────────────\n\ninterface RouterContext {\n ShellLayout: React.ComponentType<{ children: React.ReactNode }>\n}\n\n// Suspense fallback while a lazy page chunk streams in. Purely visual —\n// no text, so it needs no i18n wiring.\nfunction PageChunkSpinner(): React.ReactElement {\n return (\n <div role=\"status\" aria-busy=\"true\" className=\"flex items-center justify-center py-24 text-muted-foreground\">\n <Loader2 className=\"size-5 animate-spin\" aria-hidden=\"true\" />\n </div>\n )\n}\n\nconst rootRoute = createRootRouteWithContext<RouterContext>()({\n // The actual shell (sidebar + header + main) lives in `admin-app.tsx`.\n // It's passed in via the router's context at provider time so we don't\n // create a circular module dependency between admin-app and admin-router.\n component: function RootRouteShell() {\n const { ShellLayout } = rootRoute.useRouteContext()\n return (\n <ShellLayout>\n <React.Suspense fallback={<PageChunkSpinner />}>\n <Outlet />\n </React.Suspense>\n </ShellLayout>\n )\n },\n})\n\nconst homeRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/',\n component: function HomeRouteComponent() {\n return <HomePage />\n },\n})\n\nconst auditLogRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/audit-log',\n component: function AuditLogRouteComponent() {\n return <AuditLogPage />\n },\n})\n\nconst cacheRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/cache',\n component: function CacheRouteComponent() {\n return <CachePage />\n },\n})\n\nconst resourceListRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/resources/$resourceId',\n component: function ResourceListRouteComponent() {\n const { resourceId } = resourceListRoute.useParams()\n return <ResourceListPage resourceId={resourceId} />\n },\n})\n\n// Products new-record route uses a 3-step WizardForm as a showcase.\n// Step 3 has no `properties` list — it becomes the catch-all for every\n// property not claimed by steps 1 or 2 (thumbnail, accentColor, gallery, tags).\nfunction ProductsNewPage(): React.ReactElement {\n const { t } = useI18n()\n const steps: WizardStep[] = [\n { label: t('wizard:products.step1'), properties: ['name', 'sku', 'inStock'] },\n { label: t('wizard:products.step2'), properties: ['price', 'currencyCode', 'quantity'] },\n { label: t('wizard:products.step3') }, // catch-all: thumbnail, accentColor, gallery, tags\n ]\n return <ResourceWizardCreatePage resourceId=\"products\" steps={steps} />\n}\n\nconst resourceNewRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/resources/$resourceId/new',\n component: function ResourceNewRouteComponent() {\n const { resourceId } = resourceNewRoute.useParams()\n if (resourceId === 'products') return <ProductsNewPage />\n return <ResourceEditPage resourceId={resourceId} />\n },\n})\n\nconst resourceShowRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/resources/$resourceId/$recordId',\n component: function ResourceShowRouteComponent() {\n const { resourceId, recordId } = resourceShowRoute.useParams()\n return <ResourceShowPage resourceId={resourceId} recordId={recordId} />\n },\n})\n\nconst resourceEditRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/resources/$resourceId/$recordId/edit',\n component: function ResourceEditRouteComponent() {\n const { resourceId, recordId } = resourceEditRoute.useParams()\n return <ResourceEditPage resourceId={resourceId} recordId={recordId} />\n },\n})\n\n// Custom-action pages. Two shapes so an action can be scoped to the whole\n// resource (`actionType: 'resource'`) or to one record (`actionType:\n// 'record'`); both render the same page, which resolves the action's\n// `component` through the ComponentLoader.\nconst resourceActionRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/resources/$resourceId/actions/$actionName',\n component: function ResourceActionRouteComponent() {\n const { resourceId, actionName } = resourceActionRoute.useParams()\n // Bulk actions carry their selection in `?recordIds=a,b,c`. Read it back\n // through `useRoute()` so the encoding lives in exactly one place\n // (`parseLocation`) rather than being re-derived here.\n const route = useRoute()\n const recordIds = route.name === 'action' ? route.recordIds : undefined\n return (\n <ResourceActionPage\n resourceId={resourceId}\n actionName={actionName}\n {...(recordIds ? { recordIds } : {})}\n />\n )\n },\n})\n\nconst recordActionRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/resources/$resourceId/$recordId/actions/$actionName',\n component: function RecordActionRouteComponent() {\n const { resourceId, recordId, actionName } = recordActionRoute.useParams()\n return (\n <ResourceActionPage resourceId={resourceId} recordId={recordId} actionName={actionName} />\n )\n },\n})\n\nconst settingsIndexRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/settings',\n component: function SettingsIndexRouteComponent() {\n return <SettingsPage />\n },\n})\n\nconst settingsSectionRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/settings/$section',\n component: function SettingsSectionRouteComponent() {\n const { section } = settingsSectionRoute.useParams()\n return <SettingsPage section={section} />\n },\n})\n\n// Route for Pro extension pages registered via `registerExtensionRoute`.\n// The component reads `key` from params and looks up the registered\n// extension at render time — so it works even if extensions are registered\n// after module init but before the user navigates to the route.\nconst extensionRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/ext/$extKey',\n component: function ExtensionRouteComponent() {\n const { extKey } = extensionRoute.useParams()\n const ext = getRouteExtension(extKey)\n if (!ext) {\n // Extension was registered for this key in the sidebar but no component\n // was provided. Render a minimal placeholder rather than a blank screen.\n return (\n <div className=\"flex flex-col items-center justify-center py-24 text-muted-foreground\">\n <p className=\"text-sm\">Extension &quot;{extKey}&quot; not found.</p>\n </div>\n )\n }\n return <ext.component />\n },\n})\n\nconst routeTree = rootRoute.addChildren([\n homeRoute,\n auditLogRoute,\n cacheRoute,\n extensionRoute,\n resourceNewRoute,\n resourceActionRoute,\n recordActionRoute,\n resourceEditRoute,\n resourceShowRoute,\n resourceListRoute,\n settingsSectionRoute,\n settingsIndexRoute,\n])\n\n// ─── Router instance ──────────────────────────────────────────────────────────\n//\n// Search params: in TSR v1.169 `location.searchStr` is computed as\n// `stringifySearch(parseSearch(rawUrlSearch))` — it's NOT the raw URL search\n// string. Our list page reads `searchStr` to extract `filters[<path>]=<value>`\n// pairs (see `parseLocation` in `router.tsx`), so the parse/stringify pair\n// must be a flat-key identity round-trip rather than TSR's default\n// JSON-encoded values (which would mangle the bracket notation) or no-ops\n// (which would drop the search entirely — filters/sort never reach the API).\n\nconst flatParseSearch = (search: string): Record<string, string> => {\n const str = search.startsWith('?') ? search.slice(1) : search\n if (!str) return {}\n const params = new URLSearchParams(str)\n const out: Record<string, string> = {}\n params.forEach((value, key) => {\n out[key] = value\n })\n return out\n}\n\nconst flatStringifySearch = (search: Record<string, unknown>): string => {\n if (!search) return ''\n const params = new URLSearchParams()\n for (const [k, v] of Object.entries(search)) {\n if (v == null || v === '') continue\n params.set(k, typeof v === 'string' ? v : String(v))\n }\n const s = params.toString()\n return s ? `?${s}` : ''\n}\n\nconst noopRouterContext: RouterContext = {\n // Replaced at provider mount time via the `context` prop on RouterProvider.\n ShellLayout: () => null,\n}\n\nfunction makeRouter(basepath: string) {\n return createRouter({\n routeTree,\n history: createBrowserHistory(),\n basepath: basepath || '/',\n parseSearch: flatParseSearch,\n stringifySearch: flatStringifySearch,\n context: noopRouterContext,\n defaultPreload: false,\n scrollRestoration: false,\n })\n}\n\n// Type registration — gives typed `useParams()`/`useSearch()` and link\n// validation across the package. The concrete router type uses the root\n// router shape (basepath doesn't affect the generic types).\ndeclare module '@tanstack/react-router' {\n interface Register {\n router: ReturnType<typeof makeRouter>\n }\n}\n\n// ─── Provider ─────────────────────────────────────────────────────────────────\n\nexport interface AdminRouterProviderProps {\n /** Component rendered as the authenticated shell. Receives `children` —\n * must include an `<Outlet/>` slot (or a child element wrapping it) so\n * routed page components can mount inside it. */\n ShellLayout: React.ComponentType<{ children: React.ReactNode }>\n /** URL prefix where the SPA is mounted (e.g. `/admin`). Defaults to `''`\n * (root mount). Passed to TSR as the router `basepath` AND exposed to\n * `Link`/`useNavigate` via `BasepathContext` so they push full paths. */\n basepath?: string\n}\n\n/** Mounts the admin's route tree. Must be rendered only after the user is\n * authenticated — login flow happens upstream in `AdminApp`. */\nexport function AdminRouterProvider({\n ShellLayout,\n basepath = '',\n}: AdminRouterProviderProps): React.ReactElement {\n // Normalise: strip trailing slash, treat '/' as 'no basepath' (root mount).\n const normalised = React.useMemo(() => {\n if (!basepath || basepath === '/') return ''\n return basepath.endsWith('/') ? basepath.slice(0, -1) : basepath\n }, [basepath])\n // Create router lazily per basepath. Runtime config is stable across the\n // app's lifetime, so in practice this runs exactly once per mount.\n const router = React.useMemo(() => makeRouter(normalised), [normalised])\n const context = React.useMemo<RouterContext>(() => ({ ShellLayout }), [ShellLayout])\n return (\n <BasepathContext.Provider value={normalised}>\n <RouterProvider router={router} context={context} />\n </BasepathContext.Provider>\n )\n}\n","// Icon-by-name renderer backed by the full lucide-react registry, loaded\n// lazily. Any icon the library ships can be referenced from a resource's\n// `navigation.icon` (canonical PascalCase name, e.g. `ShieldCheck`,\n// `FolderKanban`) — no curated allow-list to keep in sync. Unknown names\n// fall back to `Database`.\n//\n// The registry weighs ~800 KB, so it must never sit on the critical path:\n// the first render shows the `Database` fallback, the registry chunk loads\n// in the background, and subscribed `NavIcon`s re-render once it lands.\n\nimport * as React from 'react'\nimport { Database, type LucideProps } from 'lucide-react'\n\ntype IconComponent = React.ComponentType<LucideProps>\n\ntype IconRegistry = Record<string, IconComponent>\n\nlet registry: IconRegistry | null = null\nlet registryPromise: Promise<void> | null = null\nconst listeners = new Set<() => void>()\n\nfunction loadRegistry(): Promise<void> {\n registryPromise ??= import('./icon-registry.js').then((m) => {\n registry = m.icons as IconRegistry\n for (const notify of listeners) notify()\n })\n return registryPromise\n}\n\nconst subscribe = (notify: () => void): (() => void) => {\n listeners.add(notify)\n return () => listeners.delete(notify)\n}\n\nconst getRegistry = (): IconRegistry | null => registry\n\nexport function NavIcon({ name, className }: { name?: string; className?: string }): React.ReactElement {\n const icons = React.useSyncExternalStore(subscribe, getRegistry, getRegistry)\n React.useEffect(() => {\n if (name && !registry) void loadRegistry()\n }, [name])\n const Icon: IconComponent = (name && icons?.[name]) || Database\n return <Icon className={className} />\n}\n","// Top-level CRUD shell. Composes provider + router + sidebar + content.\n// Sidebar is the shadcn `<Sidebar>` recipe — collapsible to icons on\n// desktop and rendered as a Sheet on mobile via the `useSidebar` context.\n\nimport * as React from 'react'\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n cn,\n useSidebar,\n} from '@modern-admin/ui'\nimport {\n ChevronDown,\n ChevronLeft,\n Database,\n Gauge,\n Home,\n Loader2,\n LogOut,\n History,\n Menu,\n Search,\n Settings,\n User,\n} from 'lucide-react'\nimport { getSidebarExtensions } from './extension-registry.js'\nimport { useAdminClient } from './provider.js'\nimport { useRealtimeInvalidation } from './realtime.js'\nimport { createSocketRealtimeSubscriber } from './realtime-socket.js'\nimport { useAdminConfig, useCurrentUser, useFeatures, useLogout, useResources } from './hooks.js'\nimport { LoginPage } from './pages/login-page.js'\nimport type { CurrentUser } from './types.js'\nimport { Link, useRoute, useNavigate } from './router.js'\nimport { AdminRouterProvider } from './admin-router.js'\nimport { useI18n } from './i18n.js'\nimport { LanguageSwitcher, ThemeToggle } from './header-controls.js'\nimport { NotifyToaster } from './notify.js'\nimport { DialogsProvider } from './dialogs.js'\nimport { HotkeyRegistryProvider } from './hotkey-registry.js'\nimport { HotkeyHelpButton } from './hotkey-help.js'\nimport type { ResourceJSON } from './types.js'\nimport { NavIcon } from './nav-icon.js'\nimport { useHotkey } from './use-hotkey.js'\n\n// Heavy, conditionally shown surfaces stay out of the critical-path chunk:\n// the assistant widget only mounts when the backend advertises the feature,\n// and the search dialog only after the user first opens it.\nconst AiAssistantWidget = React.lazy(() =>\n import('./components/ai-assistant-widget.js').then((m) => ({ default: m.AiAssistantWidget })),\n)\nconst GlobalSearchDialog = React.lazy(() =>\n import('./components/global-search-dialog.js').then((m) => ({ default: m.GlobalSearchDialog })),\n)\n\n// ─── Navigation helpers ───────────────────────────────────────────────────────\n\ninterface NavGroup {\n label: string\n resources: ResourceJSON[]\n}\n\nfunction buildNavGroups(resources: ResourceJSON[]): {\n groups: NavGroup[]\n ungrouped: ResourceJSON[]\n} {\n const groupMap = new Map<string, ResourceJSON[]>()\n const ungrouped: ResourceJSON[] = []\n\n for (const r of resources) {\n if (r.navigation === null) continue // explicitly hidden\n const group = r.navigation?.name ?? r.navigation?.group\n if (group) {\n const list = groupMap.get(group) ?? []\n list.push(r)\n groupMap.set(group, list)\n } else {\n ungrouped.push(r)\n }\n }\n\n const groups: NavGroup[] = Array.from(groupMap.entries()).map(([label, rs]) => ({ label, resources: rs }))\n return { groups, ungrouped }\n}\n\n// ─── Sidebar group collapse persistence ───────────────────────────────────────\n\nconst SIDEBAR_GROUPS_KEY = 'sidebar:groups:collapsed'\n\nfunction loadCollapsedGroups(): Set<string> {\n if (typeof localStorage === 'undefined') return new Set()\n try {\n const raw = localStorage.getItem(SIDEBAR_GROUPS_KEY)\n return raw ? new Set(JSON.parse(raw) as string[]) : new Set()\n } catch {\n return new Set()\n }\n}\n\nfunction saveCollapsedGroups(collapsed: Set<string>): void {\n if (typeof localStorage === 'undefined') return\n try {\n localStorage.setItem(SIDEBAR_GROUPS_KEY, JSON.stringify([...collapsed]))\n } catch { /* quota / private mode — ignore */ }\n}\n\nfunction isResourceActive(route: ReturnType<typeof useRoute>, resourceId: string): boolean {\n return (\n (route.name === 'list' || route.name === 'show' || route.name === 'edit' || route.name === 'new') &&\n 'resourceId' in route &&\n route.resourceId === resourceId\n )\n}\n\nfunction ResourceMenuItem({\n resource,\n showId,\n}: {\n resource: ResourceJSON\n showId: boolean\n}): React.ReactElement {\n const route = useRoute()\n const active = isResourceActive(route, resource.id)\n const hasAlias = resource.name !== resource.id\n const withId = showId && hasAlias\n const tooltip = withId ? `${resource.name} (${resource.id})` : resource.name\n return (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={active} tooltip={tooltip}>\n <Link to={{ name: 'list', resourceId: resource.id }}>\n <NavIcon name={resource.navigation?.icon} />\n <span className=\"min-w-0 flex-1 truncate\">\n {resource.name}\n {withId && (\n <span className=\"ml-0.5 text-xs opacity-60\"> ({resource.id})</span>\n )}\n </span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n )\n}\n\n// ─── Desktop collapse pill — round chevron on the right edge of the sidebar.\n// Sits half-outside the sidebar (translate-x-1/2) and rotates the chevron\n// when the sidebar is in icon/collapsed state. Hidden on mobile (the\n// header burger handles that).\nfunction SidebarCollapseToggle(): React.ReactElement {\n const { state, toggleSidebar } = useSidebar()\n const { t } = useI18n()\n const collapsed = state === 'collapsed'\n return (\n <button\n type=\"button\"\n onClick={toggleSidebar}\n aria-label={collapsed ? t('common:expandSidebar') : t('common:collapseSidebar')}\n className=\"absolute right-0 top-24 z-50 hidden h-5 w-5 translate-x-1/2 items-center justify-center rounded-full border border-border bg-card shadow-sm transition-colors hover:bg-accent hover:text-accent-foreground md:flex\"\n >\n <ChevronLeft\n className=\"size-3 transition-transform duration-300\"\n style={{ transform: collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }}\n />\n </button>\n )\n}\n\n// ─── Sidebar ─────────────────────────────────────────────────────────────────\n\nfunction AppSidebar({ showResourceIds }: { showResourceIds: boolean }): React.ReactElement {\n const resources = useResources()\n const features = useFeatures()\n const { t } = useI18n()\n const route = useRoute()\n const { data: config } = useAdminConfig()\n const appName = config?.branding?.companyName ?? t('common:appName')\n const { groups, ungrouped } = React.useMemo(() => buildNavGroups(resources), [resources])\n const { isMobile, setOpenMobile, state } = useSidebar()\n\n const [collapsedGroups, setCollapsedGroups] = React.useState<Set<string>>(loadCollapsedGroups)\n const toggleGroup = React.useCallback((label: string): void => {\n setCollapsedGroups((prev) => {\n const next = new Set(prev)\n if (next.has(label)) next.delete(label)\n else next.add(label)\n saveCollapsedGroups(next)\n return next\n })\n }, [])\n\n // Auto-close the mobile drawer whenever the route changes (link tap).\n const routeKey = `${route.name}:${'resourceId' in route ? route.resourceId : ''}:${'recordId' in route ? route.recordId : ''}`\n React.useEffect(() => {\n if (isMobile) setOpenMobile(false)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [routeKey])\n\n const homeActive = route.name === 'home'\n const auditActive = route.name === 'audit-log'\n const cacheActive = route.name === 'cache'\n\n return (\n <Sidebar\n collapsible=\"icon\"\n labels={{ sidebarTitle: t('common:sidebarTitle'), navigationMenu: t('common:sidebarNavigation') }}\n >\n <SidebarHeader className=\"h-12 flex-row items-center gap-2 border-b border-border px-3 py-0 sm:h-14 group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:px-0\">\n <Database className=\"size-4 shrink-0 text-primary\" />\n <span className=\"truncate text-sm font-semibold group-data-[collapsible=icon]:hidden\">\n {appName}\n </span>\n </SidebarHeader>\n <SidebarContent>\n <SidebarGroup>\n <SidebarMenu>\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={homeActive} tooltip={t('common:home')}>\n <Link to={{ name: 'home' }}>\n <Home />\n <span>{t('common:home')}</span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n {features.auditLog && (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={auditActive} tooltip={t('audit:title')}>\n <Link to={{ name: 'audit-log' }}>\n <History />\n <span>{t('audit:title')}</span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n )}\n {features.cache && (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={cacheActive} tooltip={t('cache:title')}>\n <Link to={{ name: 'cache' }}>\n <Gauge />\n <span>{t('cache:title')}</span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n )}\n {getSidebarExtensions()\n .filter((ext) => !ext.featureGate || !!(features as unknown as Record<string, unknown>)[ext.featureGate])\n .map((ext) => {\n const extActive =\n route.name === 'extension' && route.key === ext.extensionKey\n return (\n <SidebarMenuItem key={ext.key}>\n <SidebarMenuButton\n asChild\n isActive={extActive}\n tooltip={ext.label}\n >\n <Link to={{ name: 'extension', key: ext.extensionKey }}>\n <ext.icon />\n <span>{ext.label}</span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n )\n })}\n {ungrouped.map((r) => (\n <ResourceMenuItem key={r.id} resource={r} showId={showResourceIds} />\n ))}\n </SidebarMenu>\n </SidebarGroup>\n\n {groups.map((group) => {\n // In icon mode the label is hidden (opacity-0) and items show as\n // icon-only tooltips — always show items regardless of collapse state.\n const isOpen = state === 'collapsed' || !collapsedGroups.has(group.label)\n return (\n <SidebarGroup key={group.label}>\n <SidebarGroupLabel asChild>\n <button\n type=\"button\"\n className=\"w-full cursor-pointer justify-between hover:bg-accent hover:text-accent-foreground\"\n onClick={() => toggleGroup(group.label)}\n >\n {group.label}\n <ChevronDown\n className={cn(\n 'size-4 shrink-0 transition-transform duration-200',\n !isOpen && '-rotate-90',\n )}\n />\n </button>\n </SidebarGroupLabel>\n {isOpen && (\n <SidebarMenu>\n {group.resources.map((r) => (\n <ResourceMenuItem key={r.id} resource={r} showId={showResourceIds} />\n ))}\n </SidebarMenu>\n )}\n </SidebarGroup>\n )\n })}\n </SidebarContent>\n <SidebarFooter />\n <SidebarCollapseToggle />\n </Sidebar>\n )\n}\n\n// ─── Header ───────────────────────────────────────────────────────────────────\n\nfunction userInitials(user: CurrentUser): string {\n const source = user.name?.trim() || user.email?.trim() || user.id\n const parts = source.split(/\\s+|[._@-]/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0]!.slice(0, 2).toUpperCase()\n return (parts[0]![0]! + parts[1]![0]!).toUpperCase()\n}\n\nfunction UserMenu({ user }: { user: CurrentUser }): React.ReactElement {\n const { t } = useI18n()\n const logout = useLogout()\n const navigate = useNavigate()\n const features = useFeatures()\n const initials = userInitials(user)\n const display = user.name || user.email || user.id\n // First section advertised by the backend — the entry in the user menu\n // jumps straight there. When every section is disabled (no api-keys,\n // no webhooks, no ai-assistant) the Settings entry is hidden entirely.\n const firstSettingsSection: 'api-keys' | 'webhooks' | 'ai-assistant' | null =\n features.apiKeys ? 'api-keys'\n : features.webhooks ? 'webhooks'\n : features.aiAssistant ? 'ai-assistant'\n : null\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n className=\"h-9 gap-2 px-2\"\n aria-label={display}\n >\n <Avatar className=\"size-7\">\n {user.avatarUrl && <AvatarImage src={user.avatarUrl} alt={display} />}\n <AvatarFallback className=\"text-xs\">{initials}</AvatarFallback>\n </Avatar>\n <span className=\"hidden max-w-[10rem] truncate text-sm sm:inline\">{display}</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" sideOffset={8} className=\"w-56 p-1\">\n <DropdownMenuLabel className=\"flex items-center gap-2 px-3 py-2\">\n <Avatar className=\"size-8\">\n {user.avatarUrl && <AvatarImage src={user.avatarUrl} alt={display} />}\n <AvatarFallback className=\"text-xs\">{initials}</AvatarFallback>\n </Avatar>\n <div className=\"flex min-w-0 flex-col\">\n <span className=\"truncate text-sm font-medium\">{display}</span>\n {user.email && user.email !== display && (\n <span className=\"truncate text-xs text-muted-foreground\">{user.email}</span>\n )}\n {user.role && (\n <span className=\"truncate text-xs uppercase tracking-wide text-muted-foreground\">\n {user.role}\n </span>\n )}\n </div>\n </DropdownMenuLabel>\n {firstSettingsSection && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n className=\"gap-3 px-3 py-2\"\n onSelect={(e) => {\n e.preventDefault()\n navigate({ name: 'settings', section: firstSettingsSection })\n }}\n >\n <Settings className=\"size-4 text-muted-foreground\" />\n <span>{t('settings:menuItem')}</span>\n </DropdownMenuItem>\n </>\n )}\n <DropdownMenuSeparator />\n <DropdownMenuItem\n className=\"gap-3 px-3 py-2\"\n disabled={logout.isPending}\n onSelect={(e) => {\n e.preventDefault()\n logout.mutate()\n }}\n >\n <LogOut className=\"size-4 text-muted-foreground\" />\n <span>{t('auth:logout')}</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\n/** Header trigger that opens the cross-resource command palette. Renders\n * as a full-width \"search\" button on desktop (with a ⌘K hint) and collapses\n * to an icon-only button on mobile. */\nfunction GlobalSearchTrigger({\n onOpen,\n}: {\n onOpen(): void\n}): React.ReactElement {\n const { t } = useI18n()\n // Detect macOS so the keyboard hint reads ⌘K vs Ctrl+K. Falls back to\n // platform-agnostic mod key on SSR / unknown UAs.\n const isMac = React.useMemo(() => {\n if (typeof navigator === 'undefined') return false\n return /Mac|iPhone|iPad|iPod/i.test(navigator.platform || navigator.userAgent)\n }, [])\n return (\n <>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onOpen}\n aria-label={t('globalSearch:title')}\n className=\"hidden h-9 w-full max-w-xs justify-start gap-2 px-3 text-muted-foreground sm:inline-flex\"\n >\n <Search className=\"size-4\" />\n <span className=\"flex-1 truncate text-left text-sm\">\n {t('globalSearch:trigger')}\n </span>\n <kbd className=\"pointer-events-none ml-2 inline-flex h-5 select-none items-center gap-0.5 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium\">\n {isMac ? <span aria-hidden=\"true\">⌘</span> : <span aria-hidden=\"true\">Ctrl</span>}\n <span aria-hidden=\"true\">K</span>\n </kbd>\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={onOpen}\n aria-label={t('globalSearch:title')}\n className=\"sm:hidden\"\n >\n <Search className=\"size-4\" />\n </Button>\n </>\n )\n}\n\nfunction Header({ user }: { user: CurrentUser | null }): React.ReactElement {\n const { t } = useI18n()\n const { setOpenMobile } = useSidebar()\n const [searchOpen, setSearchOpen] = React.useState(false)\n // Mount the dialog (and fetch its chunk) only once the palette has been\n // opened; keep it mounted afterwards so the close animation still plays.\n const everOpened = React.useRef(false)\n if (searchOpen) everOpened.current = true\n // Cmd+K on macOS, Ctrl+K elsewhere — both expressed via `mod`. Allowed in\n // input contexts so users can pop the palette while typing in any field.\n useHotkey('mod+k', () => setSearchOpen((prev) => !prev), {\n allowInInput: true,\n description: t('globalSearch:hotkey'),\n group: t('common:search'),\n })\n return (\n <header className=\"sticky top-0 z-30 flex h-12 shrink-0 items-center gap-1 border-b border-border bg-card px-2 sm:h-14 sm:gap-3 sm:px-6\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"md:hidden\"\n onClick={() => setOpenMobile(true)}\n aria-label={t('common:openMenu')}\n >\n <Menu className=\"size-5\" />\n </Button>\n <GlobalSearchTrigger onOpen={() => setSearchOpen(true)} />\n <div className=\"ml-auto flex items-center gap-1\">\n <HotkeyHelpButton />\n <LanguageSwitcher />\n <ThemeToggle />\n {user ? (\n <UserMenu user={user} />\n ) : (\n <Button variant=\"ghost\" size=\"icon\" disabled aria-label={t('auth:login')}>\n <User className=\"size-4 opacity-50\" />\n </Button>\n )}\n </div>\n {(searchOpen || everOpened.current) && (\n <React.Suspense fallback={null}>\n <GlobalSearchDialog open={searchOpen} onOpenChange={setSearchOpen} />\n </React.Suspense>\n )}\n </header>\n )\n}\n\n// ─── AdminApp ─────────────────────────────────────────────────────────────────\n\nexport interface AdminAppProps {\n /** Optional helper line shown under the title on the login screen — e.g.\n * demo credentials. */\n loginHint?: React.ReactNode\n /**\n * URL prefix where the SPA is mounted (e.g. `/admin`). Injected\n * automatically from `window.__MODERN_ADMIN__.basePath` by the standalone\n * bundle. Drives the router basepath so all navigation and deep-link\n * refreshes stay under the correct prefix. Defaults to `''` (root mount).\n */\n basePath?: string\n /**\n * When true, the sidebar resource list appends the raw resource id in\n * parentheses next to the localized label (e.g. \"Posts (posts)\") when\n * the label differs from the id. Defaults to `false` to keep the\n * sidebar tidy. The home-page resource tiles and selector dropdowns\n * (chart builder, etc.) always render both — they are not affected.\n */\n showSidebarResourceIds?: boolean\n}\n\nfunction FullscreenSpinner(): React.ReactElement {\n const { t } = useI18n()\n return (\n <div\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n className=\"flex min-h-screen flex-col items-center justify-center gap-6 bg-background p-6\"\n >\n <div className=\"flex items-center gap-3\">\n <span className=\"flex size-12 items-center justify-center rounded-2xl bg-primary/10 ring-1 ring-primary/20\">\n <Database className=\"size-6 text-primary\" />\n </span>\n <span className=\"text-xl font-semibold tracking-tight\">\n {t('common:appName')}\n </span>\n </div>\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Loader2 className=\"size-4 animate-spin\" aria-hidden=\"true\" />\n <span>{t('common:loading')}</span>\n </div>\n </div>\n )\n}\n\n// Invisible bridge: while mounted (i.e. the user is authenticated and the\n// backend advertises `features.realtime`), keeps a socket.io connection to\n// the realtime gateway and live-invalidates the query cache on mutation\n// events from other sessions/instances.\nfunction RealtimeCacheBridge(): null {\n const client = useAdminClient()\n const subscriber = React.useMemo(\n () => createSocketRealtimeSubscriber({ baseUrl: client.apiBaseUrl }),\n [client],\n )\n useRealtimeInvalidation(subscriber)\n return null\n}\n\n// `ShellLayout` is the rootRoute component supplied to TSR via context.\n// `useCurrentUser()` here is safe — provider/query state is set up upstream\n// in `AdminApp`, and by the time this layout renders the user is guaranteed\n// to be authenticated (otherwise `AdminApp` short-circuits to `<LoginPage/>`).\nfunction ShellLayout({\n children,\n showSidebarResourceIds,\n}: {\n children: React.ReactNode\n showSidebarResourceIds: boolean\n}): React.ReactElement {\n const { user } = useCurrentUser()\n const features = useFeatures()\n return (\n <HotkeyRegistryProvider>\n <DialogsProvider>\n <SidebarProvider>\n <AppSidebar showResourceIds={showSidebarResourceIds} />\n {/* `h-svh` on SidebarInset is the key to the scroll layout: it\n constrains the inset to exactly the viewport height, which lets\n the inner `<main overflow-auto>` (flex-1) actually scroll\n internally instead of letting the whole page scroll. Without\n this, `min-h-svh` made the inset grow with content, the main\n never overflowed, and `position: sticky` inside it had no\n scrolling ancestor to pin against.\n\n `overflow-hidden` is also required: without it, the inner\n `<main overflow-auto>`'s clipped descendant layout boxes still\n propagate into the SidebarInset's (and document's) scrollHeight,\n producing a second, page-level scrollbar that scrolls the whole\n SidebarInset out of view into empty background. */}\n <SidebarInset className=\"h-svh min-w-0 overflow-hidden\">\n <Header user={user} />\n {/* Padding has no `pb`: sticky footers (e.g. list-page paginator)\n must be able to reach the viewport bottom, but `position: sticky`\n is bounded by its containing block, which lives inside `<main>`'s\n padding. With `pb-0`, the sticky element can extend all the way\n down. Children that don't have a sticky footer add their own\n bottom spacing via the `pb-4 sm:pb-6` class. */}\n <main className=\"min-h-0 min-w-0 flex-1 overflow-auto px-2 pt-2 sm:px-6 sm:pt-6\">\n {children}\n </main>\n {features.aiAssistant && (\n <React.Suspense fallback={null}>\n <AiAssistantWidget />\n </React.Suspense>\n )}\n {features.realtime && <RealtimeCacheBridge />}\n </SidebarInset>\n <NotifyToaster />\n </SidebarProvider>\n </DialogsProvider>\n </HotkeyRegistryProvider>\n )\n}\n\nexport function AdminApp({\n loginHint,\n basePath,\n showSidebarResourceIds,\n}: AdminAppProps = {}): React.ReactElement {\n const { user, isLoading, isAuthenticated } = useCurrentUser()\n // Kick off the bootstrap config fetch in parallel with the session check.\n // The shell needs both, and serialising them (me → render shell → config)\n // costs a full extra round-trip on every cold load. A 401 while logged\n // out is harmless — `useLogin` invalidates the config query on success.\n useAdminConfig()\n const showIds = showSidebarResourceIds ?? false\n // Capture the option in a stable layout component so the router doesn't\n // remount the whole shell whenever the prop reference changes.\n const Layout = React.useMemo(\n () =>\n function ConfiguredShellLayout({ children }: { children: React.ReactNode }): React.ReactElement {\n return <ShellLayout showSidebarResourceIds={showIds}>{children}</ShellLayout>\n },\n [showIds],\n )\n if (isLoading) return <FullscreenSpinner />\n if (!isAuthenticated || !user) return <LoginPage hint={loginHint} />\n return <AdminRouterProvider ShellLayout={Layout} basepath={basePath ?? ''} />\n}\n","/**\n * Root <App> for the admin SPA. Wraps the AdminApp shell with i18n and the\n * ModernAdmin provider, wiring everything from a single runtime config.\n *\n * Used by both the standalone bundle (window.__MODERN_ADMIN__) and the\n * library `mount()` entry point — hosts compose it the same way.\n */\n\nimport { type ReactElement, useMemo } from 'react'\nimport {\n AdminApp,\n type ComponentLoader,\n I18nProvider,\n ModernAdminProvider,\n} from '@modern-admin/react'\nimport { builtinLocales } from '@modern-admin/i18n'\nimport type { ModernAdminRuntimeConfig } from './runtime-config.js'\n\nexport interface AppProps {\n config: ModernAdminRuntimeConfig\n /**\n * Optional custom property-type components. The standalone bundle leaves\n * this unset; the library `mount()` lets callers pass demo / project-\n * specific components.\n */\n components?: ComponentLoader\n}\n\nexport function App({ config, components }: AppProps): ReactElement {\n // Filter the built-in 9-locale bundle by the host's whitelist. Empty /\n // omitted → expose everything; the language switcher in the header\n // collapses itself when only one locale survives the filter.\n const enabledLocales = useMemo(() => {\n if (!config.locales || config.locales.length === 0) return builtinLocales\n const codes = new Set(config.locales)\n const filtered = builtinLocales.filter((l) => codes.has(l.code))\n return filtered.length > 0 ? filtered : builtinLocales\n }, [config.locales])\n return (\n <I18nProvider\n locales={enabledLocales}\n defaultLocale={config.defaultLocale}\n fallbackLocale={config.fallbackLocale}\n metadataTranslations={config.metadataTranslations}\n >\n <ModernAdminProvider\n components={components}\n clientOptions={{\n baseUrl: config.apiUrl,\n credentials: config.credentials ?? 'include',\n headers: config.headers,\n persistDemoSession: config.persistDemoSession,\n authBasePath: config.authBasePath,\n }}\n >\n <AdminApp\n loginHint={config.loginHint}\n basePath={config.basePath}\n showSidebarResourceIds={config.showSidebarResourceIds}\n />\n </ModernAdminProvider>\n </I18nProvider>\n )\n}\n","/**\n * Imperative mounting API for embedding the admin SPA inside another React\n * tree or vanilla HTML page. Consumers call once at startup:\n *\n * import { mount } from '@modern-admin/web'\n * mount(document.getElementById('root')!, { apiUrl: 'https://api.example.com' })\n *\n * This module deliberately does **not** import the stylesheet: an app that\n * registers its own components needs to own the Tailwind root so its classes\n * get scanned, and a second root here would compile Tailwind twice. Import it\n * yourself, either directly or from your own CSS:\n *\n * import '@modern-admin/react/styles.css'\n *\n * For the prebuilt standalone bundle, `src/standalone.tsx` calls this for\n * you using `window.__MODERN_ADMIN__` and pulls in the stylesheet.\n */\n\nimport { StrictMode } from 'react'\nimport { createRoot, type Root } from 'react-dom/client'\nimport { type ComponentLoader } from '@modern-admin/react'\nimport { initTheme } from '@modern-admin/ui'\nimport { App } from './app.js'\nimport type { ModernAdminRuntimeConfig } from './runtime-config.js'\n\nexport interface MountOptions {\n config: ModernAdminRuntimeConfig\n /** Optional ComponentLoader with custom property-type components. */\n components?: ComponentLoader\n}\n\nexport interface MountedAdmin {\n /** Unmounts the admin SPA from its container. */\n unmount(): void\n}\n\n/**\n * Renders the admin SPA into `container`. Returns a handle with `unmount()`\n * for hosts that need to tear it down dynamically (rare — most users mount\n * once and never unmount).\n */\nexport function mount(container: Element, options: MountOptions): MountedAdmin {\n initTheme()\n const root: Root = createRoot(container)\n root.render(\n <StrictMode>\n <App config={options.config} components={options.components} />\n </StrictMode>,\n )\n return {\n unmount: () => root.unmount(),\n }\n}\n","/**\n * Runtime configuration for the prebuilt admin SPA.\n *\n * The standalone bundle reads this from `window.__MODERN_ADMIN__`; the\n * library `mount()` API takes it as an argument. Either way it is the\n * single source of truth for \"where is the API\", \"which translations to\n * apply\", and how the admin client should behave at runtime.\n *\n * No build-time env vars: one bundle serves any deployment.\n */\n\nimport type { MetadataTranslations } from '@modern-admin/react'\n\nexport interface ModernAdminBrand {\n /** Shown in the sidebar header and login screen. */\n title?: string\n /** Optional logo image URL. */\n logoUrl?: string\n}\n\nexport interface ModernAdminRuntimeConfig {\n /**\n * Absolute base URL of the admin API (the @modern-admin/nest backend).\n * Leave undefined to use same-origin — recommended when the SPA is served\n * by the same NestJS process that exposes the admin API.\n */\n apiUrl?: string\n /** RequestCredentials forwarded to every fetch. Defaults to 'include'. */\n credentials?: RequestCredentials\n /** Extra headers attached to every request (e.g. CSRF, custom auth). */\n headers?: Record<string, string>\n /** Helper line shown on the login screen — e.g. demo credentials. */\n loginHint?: string\n /** Initial UI locale code. Falls back to the persisted choice / 'en'. */\n defaultLocale?: string\n /** Locale used when a translation is missing. Defaults to 'en'. */\n fallbackLocale?: string\n /**\n * Whitelist of locale codes to expose in the header switcher (filters\n * the built-in 9-locale bundle: `en`, `ru`, `de`, `es`, `fr`, `it`, `ja`,\n * `pl`, `pt-BR`). Behaviour:\n * - omitted / empty array → all built-in locales available\n * - single code → switcher hides, that locale is forced\n * - multiple codes → switcher lists only those locales\n */\n locales?: string[]\n /** Optional per-resource / per-property metadata translations. */\n metadataTranslations?: MetadataTranslations\n /** Branding overrides (title, logo). */\n brand?: ModernAdminBrand\n /** Persist the demo session credentials in localStorage. */\n persistDemoSession?: boolean\n /**\n * Path under which the host mounts Better Auth's Node handler. Drives\n * the sign-in / sign-out endpoints — defaults to `/admin/api/auth`,\n * matching the canonical CLI scaffold (and `ModernAdminStaticUiModule`\n * mounted at `/admin`). Override only when the host mounts Better Auth\n * elsewhere; pass *without* a trailing slash.\n */\n authBasePath?: string\n /**\n * URL prefix where the SPA is mounted (e.g. `/admin`). Injected\n * automatically by `ModernAdminStaticUiMiddleware` from its `path` option\n * so you normally do not need to set this. The router uses it as its\n * basepath so all internal navigation and deep-link refreshes stay under\n * the correct prefix. Pass without a trailing slash.\n */\n basePath?: string\n /**\n * When true, the sidebar resource list shows the raw resource id next\n * to the localized label (e.g. \"Posts (posts)\") whenever the label\n * differs from the id. Defaults to `false` — keeping the sidebar tidy.\n * The home page tile and selector dropdowns (chart builder, etc.)\n * always show both regardless of this flag.\n */\n showSidebarResourceIds?: boolean\n}\n\ndeclare global {\n interface Window {\n __MODERN_ADMIN__?: ModernAdminRuntimeConfig\n }\n}\n\n/**\n * Reads runtime config from `window.__MODERN_ADMIN__`. Returns an empty\n * object (same-origin defaults) when nothing is injected.\n */\nexport function readWindowConfig(): ModernAdminRuntimeConfig {\n if (typeof window === 'undefined') return {}\n return window.__MODERN_ADMIN__ ?? {}\n}\n","/**\n * Entry point for the prebuilt standalone bundle. Picks up the runtime\n * config from `window.__MODERN_ADMIN__` (injected by the host server,\n * typically @modern-admin/nest's StaticController) and mounts into\n * `#root`.\n *\n * No build-time configuration — one bundle works for any deployment.\n */\n\nimport '@modern-admin/react/styles.css'\nimport { mount } from './mount.js'\nimport { readWindowConfig } from './runtime-config.js'\n\nconst container = document.getElementById('root')\nif (!container) {\n throw new Error('[modern-admin] expected #root container in the host page')\n}\n\nmount(container, { config: readWindowConfig() })\n"],"file":"index-CASCzvYu.js"}