solace-agent-mesh 1.7.1__py3-none-any.whl → 1.13.2__py3-none-any.whl

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.

Potentially problematic release.


This version of solace-agent-mesh might be problematic. Click here for more details.

Files changed (447) hide show
  1. solace_agent_mesh/agent/adk/alembic/README +74 -0
  2. solace_agent_mesh/agent/adk/alembic/env.py +77 -0
  3. solace_agent_mesh/agent/adk/alembic/script.py.mako +28 -0
  4. solace_agent_mesh/agent/adk/alembic/versions/e2902798564d_adk_session_db_upgrade.py +52 -0
  5. solace_agent_mesh/agent/adk/alembic.ini +112 -0
  6. solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +164 -0
  7. solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +163 -0
  8. solace_agent_mesh/agent/adk/callbacks.py +752 -127
  9. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +99 -7
  10. solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +52 -5
  11. solace_agent_mesh/agent/adk/mcp_content_processor.py +1 -1
  12. solace_agent_mesh/agent/adk/models/lite_llm.py +34 -16
  13. solace_agent_mesh/agent/adk/models/oauth2_token_manager.py +24 -137
  14. solace_agent_mesh/agent/adk/runner.py +66 -8
  15. solace_agent_mesh/agent/adk/schema_migration.py +88 -0
  16. solace_agent_mesh/agent/adk/services.py +41 -1
  17. solace_agent_mesh/agent/adk/setup.py +220 -32
  18. solace_agent_mesh/agent/adk/stream_parser.py +229 -40
  19. solace_agent_mesh/agent/protocol/event_handlers.py +219 -33
  20. solace_agent_mesh/agent/proxies/a2a/component.py +572 -75
  21. solace_agent_mesh/agent/proxies/a2a/config.py +80 -4
  22. solace_agent_mesh/agent/proxies/base/component.py +188 -22
  23. solace_agent_mesh/agent/proxies/base/proxy_task_context.py +3 -1
  24. solace_agent_mesh/agent/sac/app.py +37 -12
  25. solace_agent_mesh/agent/sac/component.py +322 -52
  26. solace_agent_mesh/agent/sac/patch_adk.py +8 -16
  27. solace_agent_mesh/agent/sac/task_execution_context.py +90 -0
  28. solace_agent_mesh/agent/tools/__init__.py +3 -0
  29. solace_agent_mesh/agent/tools/audio_tools.py +3 -3
  30. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +698 -24
  31. solace_agent_mesh/agent/tools/deep_research_tools.py +2161 -0
  32. solace_agent_mesh/agent/tools/peer_agent_tool.py +82 -15
  33. solace_agent_mesh/agent/tools/time_tools.py +126 -0
  34. solace_agent_mesh/agent/tools/tool_config_types.py +54 -2
  35. solace_agent_mesh/agent/tools/web_search_tools.py +279 -0
  36. solace_agent_mesh/agent/tools/web_tools.py +125 -17
  37. solace_agent_mesh/agent/utils/artifact_helpers.py +243 -5
  38. solace_agent_mesh/agent/utils/context_helpers.py +17 -0
  39. solace_agent_mesh/assets/docs/404.html +6 -6
  40. solace_agent_mesh/assets/docs/assets/css/{styles.906a1503.css → styles.8162edfb.css} +1 -1
  41. solace_agent_mesh/assets/docs/assets/js/05749d90.19ac4f35.js +1 -0
  42. solace_agent_mesh/assets/docs/assets/js/15ba94aa.e186750d.js +1 -0
  43. solace_agent_mesh/assets/docs/assets/js/15e40e79.434bb30f.js +1 -0
  44. solace_agent_mesh/assets/docs/assets/js/17896441.e612dfb4.js +1 -0
  45. solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js +2 -0
  46. solace_agent_mesh/assets/docs/assets/js/{17896441.a5e82f9b.js.LICENSE.txt → 2279.550aa580.js.LICENSE.txt} +6 -0
  47. solace_agent_mesh/assets/docs/assets/js/240a0364.83e37aa8.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.2f0db237.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/3a6c6137.7e61915d.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/3ac1795d.7f7ab1c1.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/3ff0015d.e53c9b78.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/41adc471.0e95b87c.js +1 -0
  53. solace_agent_mesh/assets/docs/assets/js/4667dc50.bf2ad456.js +1 -0
  54. solace_agent_mesh/assets/docs/assets/js/49eed117.493d6f99.js +1 -0
  55. solace_agent_mesh/assets/docs/assets/js/{509e993c.4c7a1a6d.js → 509e993c.a1fbf45a.js} +1 -1
  56. solace_agent_mesh/assets/docs/assets/js/547e15cc.8e6da617.js +1 -0
  57. solace_agent_mesh/assets/docs/assets/js/55b7b518.29d6e75d.js +1 -0
  58. solace_agent_mesh/assets/docs/assets/js/5b8d9c11.d4eb37b8.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.1ee87753.js +1 -0
  60. solace_agent_mesh/assets/docs/assets/js/60702c0e.a8bdd79b.js +1 -0
  61. solace_agent_mesh/assets/docs/assets/js/64195356.09dbd087.js +1 -0
  62. solace_agent_mesh/assets/docs/assets/js/66d4869e.30340bd3.js +1 -0
  63. solace_agent_mesh/assets/docs/assets/js/6aaedf65.7253541d.js +1 -0
  64. solace_agent_mesh/assets/docs/assets/js/6d84eae0.fd23ba4a.js +1 -0
  65. solace_agent_mesh/assets/docs/assets/js/729898df.7249e9fd.js +1 -0
  66. solace_agent_mesh/assets/docs/assets/js/7e294c01.7c5f6906.js +1 -0
  67. solace_agent_mesh/assets/docs/assets/js/8024126c.e3467286.js +1 -0
  68. solace_agent_mesh/assets/docs/assets/js/81a99df0.7ed65d45.js +1 -0
  69. solace_agent_mesh/assets/docs/assets/js/82fbfb93.161823a5.js +1 -0
  70. solace_agent_mesh/assets/docs/assets/js/924ffdeb.975e428a.js +1 -0
  71. solace_agent_mesh/assets/docs/assets/js/94e8668d.16083b3f.js +1 -0
  72. solace_agent_mesh/assets/docs/assets/js/9bb13469.4523ae20.js +1 -0
  73. solace_agent_mesh/assets/docs/assets/js/a7d42657.a956689d.js +1 -0
  74. solace_agent_mesh/assets/docs/assets/js/a94703ab.3e5fbcb3.js +1 -0
  75. solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e563275.js +1 -0
  76. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.0e0d8baf.js +1 -0
  77. solace_agent_mesh/assets/docs/assets/js/cab03b5b.6a073091.js +1 -0
  78. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.07e170dd.js +1 -0
  79. solace_agent_mesh/assets/docs/assets/js/e04b235d.06d23db6.js +1 -0
  80. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.deb2b62e.js +1 -0
  81. solace_agent_mesh/assets/docs/assets/js/e3d9abda.1476f570.js +1 -0
  82. solace_agent_mesh/assets/docs/assets/js/e6f9706b.acc800d3.js +1 -0
  83. solace_agent_mesh/assets/docs/assets/js/e92d0134.c147a429.js +1 -0
  84. solace_agent_mesh/assets/docs/assets/js/ee0c2fe7.94d0a351.js +1 -0
  85. solace_agent_mesh/assets/docs/assets/js/f284c35a.cc97854c.js +1 -0
  86. solace_agent_mesh/assets/docs/assets/js/main.d634009f.js +2 -0
  87. solace_agent_mesh/assets/docs/assets/js/runtime~main.27bb82a7.js +1 -0
  88. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +68 -68
  89. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +50 -50
  90. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +42 -42
  91. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +55 -55
  92. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +75 -75
  93. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/image-tools/index.html +81 -0
  94. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +67 -50
  95. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/research-tools/index.html +136 -0
  96. solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +178 -144
  97. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +43 -42
  98. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +20 -18
  99. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +23 -23
  100. solace_agent_mesh/assets/docs/docs/documentation/components/platform-service/index.html +33 -0
  101. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +45 -45
  102. solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +98 -112
  103. solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +147 -0
  104. solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +208 -125
  105. solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +52 -0
  106. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +28 -28
  107. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +29 -29
  108. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +14 -14
  109. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/index.html +47 -0
  110. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/kubernetes-deployment-guide/index.html +197 -0
  111. solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +67 -53
  112. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +17 -17
  113. solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +49 -0
  114. solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +38 -38
  115. solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +87 -87
  116. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +67 -49
  117. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +17 -17
  118. solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +51 -51
  119. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +22 -22
  120. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +27 -27
  121. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +135 -135
  122. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +66 -66
  123. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +51 -51
  124. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +50 -38
  125. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +86 -86
  126. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +51 -51
  127. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +24 -24
  128. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +30 -30
  129. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +44 -44
  130. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +115 -0
  131. solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +50 -23
  132. solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +29 -24
  133. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +21 -21
  134. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +40 -37
  135. solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +324 -0
  136. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +96 -66
  137. solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +181 -181
  138. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +75 -75
  139. solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +27 -27
  140. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +44 -44
  141. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +39 -38
  142. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +30 -30
  143. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +18 -18
  144. solace_agent_mesh/assets/docs/docs/documentation/getting-started/vibe_coding/index.html +62 -0
  145. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +135 -114
  146. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +37 -37
  147. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +14 -14
  148. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +27 -25
  149. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +69 -69
  150. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +72 -72
  151. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +112 -112
  152. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +28 -28
  153. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +42 -42
  154. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +20 -20
  155. solace_agent_mesh/assets/docs/docs/documentation/migrations/platform-service-split/index.html +85 -0
  156. solace_agent_mesh/assets/docs/lunr-index-1768329217460.json +1 -0
  157. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  158. solace_agent_mesh/assets/docs/search-doc-1768329217460.json +1 -0
  159. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  160. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  161. solace_agent_mesh/cli/__init__.py +1 -1
  162. solace_agent_mesh/cli/commands/add_cmd/__init__.py +3 -1
  163. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +6 -1
  164. solace_agent_mesh/cli/commands/add_cmd/proxy_cmd.py +100 -0
  165. solace_agent_mesh/cli/commands/eval_cmd.py +1 -1
  166. solace_agent_mesh/cli/commands/init_cmd/__init__.py +15 -0
  167. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +1 -1
  168. solace_agent_mesh/cli/commands/init_cmd/env_step.py +30 -3
  169. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +3 -4
  170. solace_agent_mesh/cli/commands/init_cmd/platform_service_step.py +85 -0
  171. solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +16 -3
  172. solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +2 -1
  173. solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +1 -0
  174. solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +3 -3
  175. solace_agent_mesh/cli/commands/run_cmd.py +64 -49
  176. solace_agent_mesh/cli/commands/tools_cmd.py +315 -0
  177. solace_agent_mesh/cli/main.py +15 -0
  178. solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-tcIFZLis.js → authCallback-KnKMP_vb.js} +1 -1
  179. solace_agent_mesh/client/webui/frontend/static/assets/client-DpBL2stg.js +25 -0
  180. solace_agent_mesh/client/webui/frontend/static/assets/main-Cd498TV2.js +435 -0
  181. solace_agent_mesh/client/webui/frontend/static/assets/main-rSf8Vu29.css +1 -0
  182. solace_agent_mesh/client/webui/frontend/static/assets/{vendor-CINwxvwV.js → vendor-CGk8Suyh.js} +189 -94
  183. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
  184. solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
  185. solace_agent_mesh/client/webui/frontend/static/mockServiceWorker.js +336 -0
  186. solace_agent_mesh/client/webui/frontend/static/ui-version.json +6 -0
  187. solace_agent_mesh/common/a2a/types.py +1 -1
  188. solace_agent_mesh/common/agent_registry.py +38 -11
  189. solace_agent_mesh/common/data_parts.py +124 -0
  190. solace_agent_mesh/common/error_handlers.py +83 -0
  191. solace_agent_mesh/common/exceptions.py +24 -0
  192. solace_agent_mesh/common/oauth/__init__.py +17 -0
  193. solace_agent_mesh/common/oauth/oauth_client.py +408 -0
  194. solace_agent_mesh/common/oauth/utils.py +50 -0
  195. solace_agent_mesh/common/rag_dto.py +156 -0
  196. solace_agent_mesh/common/sac/sam_component_base.py +73 -1
  197. solace_agent_mesh/common/sam_events/event_service.py +2 -2
  198. solace_agent_mesh/common/utils/embeds/converter.py +1 -8
  199. solace_agent_mesh/common/utils/embeds/modifiers.py +2 -27
  200. solace_agent_mesh/common/utils/embeds/resolver.py +94 -25
  201. solace_agent_mesh/common/utils/embeds/types.py +1 -0
  202. solace_agent_mesh/common/utils/log_formatters.py +20 -0
  203. solace_agent_mesh/common/utils/mime_helpers.py +12 -5
  204. solace_agent_mesh/common/utils/rbac_utils.py +69 -0
  205. solace_agent_mesh/common/utils/templates/__init__.py +8 -0
  206. solace_agent_mesh/common/utils/templates/liquid_renderer.py +210 -0
  207. solace_agent_mesh/common/utils/templates/template_resolver.py +161 -0
  208. solace_agent_mesh/config_portal/backend/common.py +12 -0
  209. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-CljP4_mv.js +103 -0
  210. solace_agent_mesh/config_portal/frontend/static/client/assets/{components-Rk0n-9cK.js → components-CaC6hG8d.js} +22 -22
  211. solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-mvZjNKiz.js → entry.client-H_TM0YBt.js} +3 -3
  212. solace_agent_mesh/config_portal/frontend/static/client/assets/{index-DzNKzXrc.js → index-CnFykb2v.js} +16 -16
  213. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-f8439d40.js +1 -0
  214. solace_agent_mesh/config_portal/frontend/static/client/assets/root-BIMqslJB.css +1 -0
  215. solace_agent_mesh/config_portal/frontend/static/client/assets/root-mJmTIdIk.js +10 -0
  216. solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
  217. solace_agent_mesh/core_a2a/service.py +3 -2
  218. solace_agent_mesh/gateway/adapter/base.py +28 -1
  219. solace_agent_mesh/gateway/adapter/types.py +9 -0
  220. solace_agent_mesh/gateway/base/app.py +10 -0
  221. solace_agent_mesh/gateway/base/auth_interface.py +103 -0
  222. solace_agent_mesh/gateway/base/component.py +451 -10
  223. solace_agent_mesh/gateway/generic/component.py +274 -30
  224. solace_agent_mesh/gateway/http_sse/alembic/env.py +0 -7
  225. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py +2 -43
  226. solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_default_agent_to_projects.py +2 -2
  227. solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py +154 -0
  228. solace_agent_mesh/gateway/http_sse/alembic/versions/20251115_add_parent_task_id.py +32 -0
  229. solace_agent_mesh/gateway/http_sse/alembic/versions/20251126_add_background_task_fields.py +47 -0
  230. solace_agent_mesh/gateway/http_sse/alembic/versions/20251202_add_versioned_fields_to_prompts.py +52 -0
  231. solace_agent_mesh/gateway/http_sse/alembic.ini +0 -36
  232. solace_agent_mesh/gateway/http_sse/app.py +23 -6
  233. solace_agent_mesh/gateway/http_sse/component.py +158 -73
  234. solace_agent_mesh/gateway/http_sse/dependencies.py +50 -57
  235. solace_agent_mesh/gateway/http_sse/main.py +58 -482
  236. solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +2 -2
  237. solace_agent_mesh/gateway/http_sse/repository/entities/project.py +1 -1
  238. solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +1 -1
  239. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +3 -2
  240. solace_agent_mesh/gateway/http_sse/repository/entities/task.py +7 -0
  241. solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +2 -2
  242. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +2 -2
  243. solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +5 -0
  244. solace_agent_mesh/gateway/http_sse/repository/models/prompt_model.py +159 -0
  245. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +1 -1
  246. solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +8 -1
  247. solace_agent_mesh/gateway/http_sse/repository/project_repository.py +1 -1
  248. solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +1 -1
  249. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +12 -107
  250. solace_agent_mesh/gateway/http_sse/repository/task_repository.py +86 -2
  251. solace_agent_mesh/gateway/http_sse/routers/agent_cards.py +38 -7
  252. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +113 -7
  253. solace_agent_mesh/gateway/http_sse/routers/auth.py +69 -132
  254. solace_agent_mesh/gateway/http_sse/routers/config.py +235 -10
  255. solace_agent_mesh/gateway/http_sse/routers/dto/project_dto.py +69 -0
  256. solace_agent_mesh/gateway/http_sse/routers/dto/prompt_dto.py +255 -0
  257. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +1 -1
  258. solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +1 -1
  259. solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +1 -0
  260. solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +3 -2
  261. solace_agent_mesh/gateway/http_sse/routers/dto/responses/version_responses.py +31 -0
  262. solace_agent_mesh/gateway/http_sse/routers/feedback.py +2 -2
  263. solace_agent_mesh/gateway/http_sse/routers/people.py +2 -2
  264. solace_agent_mesh/gateway/http_sse/routers/projects.py +250 -24
  265. solace_agent_mesh/gateway/http_sse/routers/prompts.py +1416 -0
  266. solace_agent_mesh/gateway/http_sse/routers/sessions.py +14 -5
  267. solace_agent_mesh/gateway/http_sse/routers/speech.py +355 -0
  268. solace_agent_mesh/gateway/http_sse/routers/sse.py +117 -4
  269. solace_agent_mesh/gateway/http_sse/routers/tasks.py +509 -149
  270. solace_agent_mesh/gateway/http_sse/routers/users.py +1 -1
  271. solace_agent_mesh/gateway/http_sse/routers/version.py +343 -0
  272. solace_agent_mesh/gateway/http_sse/routers/visualization.py +2 -1
  273. solace_agent_mesh/gateway/http_sse/services/audio_service.py +1227 -0
  274. solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +186 -0
  275. solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +1 -1
  276. solace_agent_mesh/gateway/http_sse/services/feedback_service.py +1 -1
  277. solace_agent_mesh/gateway/http_sse/services/project_service.py +539 -12
  278. solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py +303 -0
  279. solace_agent_mesh/gateway/http_sse/services/session_service.py +198 -21
  280. solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +354 -4
  281. solace_agent_mesh/gateway/http_sse/sse_manager.py +280 -169
  282. solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py +370 -0
  283. solace_agent_mesh/gateway/http_sse/utils/stim_utils.py +41 -1
  284. solace_agent_mesh/services/__init__.py +0 -0
  285. solace_agent_mesh/services/platform/__init__.py +29 -0
  286. solace_agent_mesh/services/platform/alembic/env.py +85 -0
  287. solace_agent_mesh/services/platform/alembic/script.py.mako +28 -0
  288. solace_agent_mesh/services/platform/alembic.ini +109 -0
  289. solace_agent_mesh/services/platform/api/__init__.py +3 -0
  290. solace_agent_mesh/services/platform/api/dependencies.py +154 -0
  291. solace_agent_mesh/services/platform/api/main.py +314 -0
  292. solace_agent_mesh/services/platform/api/middleware.py +51 -0
  293. solace_agent_mesh/services/platform/api/routers/__init__.py +33 -0
  294. solace_agent_mesh/services/platform/api/routers/health_router.py +31 -0
  295. solace_agent_mesh/services/platform/app.py +215 -0
  296. solace_agent_mesh/services/platform/component.py +777 -0
  297. solace_agent_mesh/shared/__init__.py +14 -0
  298. solace_agent_mesh/shared/api/__init__.py +42 -0
  299. solace_agent_mesh/shared/auth/__init__.py +26 -0
  300. solace_agent_mesh/shared/auth/dependencies.py +204 -0
  301. solace_agent_mesh/shared/auth/middleware.py +347 -0
  302. solace_agent_mesh/shared/database/__init__.py +20 -0
  303. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/base_repository.py +1 -1
  304. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_exceptions.py +1 -1
  305. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_helpers.py +1 -1
  306. solace_agent_mesh/shared/exceptions/__init__.py +36 -0
  307. solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exception_handlers.py +1 -1
  308. solace_agent_mesh/shared/utils/__init__.py +21 -0
  309. solace_agent_mesh/templates/logging_config_template.yaml +48 -0
  310. solace_agent_mesh/templates/main_orchestrator.yaml +12 -1
  311. solace_agent_mesh/templates/platform.yaml +49 -0
  312. solace_agent_mesh/templates/plugin_readme_template.md +3 -25
  313. solace_agent_mesh/templates/plugin_tool_config_template.yaml +109 -0
  314. solace_agent_mesh/templates/proxy_template.yaml +62 -0
  315. solace_agent_mesh/templates/webui.yaml +148 -6
  316. solace_agent_mesh/tools/web_search/__init__.py +18 -0
  317. solace_agent_mesh/tools/web_search/base.py +84 -0
  318. solace_agent_mesh/tools/web_search/google_search.py +247 -0
  319. solace_agent_mesh/tools/web_search/models.py +99 -0
  320. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/METADATA +29 -8
  321. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/RECORD +334 -313
  322. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/WHEEL +1 -1
  323. solace_agent_mesh/agent/adk/adk_llm.txt +0 -226
  324. solace_agent_mesh/agent/adk/adk_llm_detail.txt +0 -566
  325. solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +0 -171
  326. solace_agent_mesh/agent/adk/models/models_llm.txt +0 -189
  327. solace_agent_mesh/agent/agent_llm.txt +0 -369
  328. solace_agent_mesh/agent/agent_llm_detail.txt +0 -1702
  329. solace_agent_mesh/agent/protocol/protocol_llm.txt +0 -81
  330. solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +0 -92
  331. solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +0 -190
  332. solace_agent_mesh/agent/proxies/base/base_llm.txt +0 -148
  333. solace_agent_mesh/agent/proxies/proxies_llm.txt +0 -283
  334. solace_agent_mesh/agent/sac/sac_llm.txt +0 -189
  335. solace_agent_mesh/agent/sac/sac_llm_detail.txt +0 -200
  336. solace_agent_mesh/agent/testing/testing_llm.txt +0 -58
  337. solace_agent_mesh/agent/testing/testing_llm_detail.txt +0 -68
  338. solace_agent_mesh/agent/tools/tools_llm.txt +0 -276
  339. solace_agent_mesh/agent/tools/tools_llm_detail.txt +0 -275
  340. solace_agent_mesh/agent/utils/utils_llm.txt +0 -152
  341. solace_agent_mesh/agent/utils/utils_llm_detail.txt +0 -149
  342. solace_agent_mesh/assets/docs/assets/js/05749d90.c70b2be9.js +0 -1
  343. solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +0 -1
  344. solace_agent_mesh/assets/docs/assets/js/15e40e79.36003774.js +0 -1
  345. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +0 -2
  346. solace_agent_mesh/assets/docs/assets/js/240a0364.c39f8388.js +0 -1
  347. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +0 -1
  348. solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +0 -1
  349. solace_agent_mesh/assets/docs/assets/js/3ac1795d.e4870a49.js +0 -1
  350. solace_agent_mesh/assets/docs/assets/js/3ff0015d.b63ee53a.js +0 -1
  351. solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +0 -1
  352. solace_agent_mesh/assets/docs/assets/js/55b7b518.f2b1d1ba.js +0 -1
  353. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.45b32c2b.js +0 -1
  354. solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +0 -1
  355. solace_agent_mesh/assets/docs/assets/js/66d4869e.830d443f.js +0 -1
  356. solace_agent_mesh/assets/docs/assets/js/6d84eae0.4a5fbf39.js +0 -1
  357. solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +0 -1
  358. solace_agent_mesh/assets/docs/assets/js/81a99df0.07034dd9.js +0 -1
  359. solace_agent_mesh/assets/docs/assets/js/82fbfb93.139a1a1f.js +0 -1
  360. solace_agent_mesh/assets/docs/assets/js/924ffdeb.8095e148.js +0 -1
  361. solace_agent_mesh/assets/docs/assets/js/94e8668d.09ed9234.js +0 -1
  362. solace_agent_mesh/assets/docs/assets/js/9bb13469.dd1c9b54.js +0 -1
  363. solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +0 -1
  364. solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +0 -1
  365. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.eaff365e.js +0 -1
  366. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.f902fad8.js +0 -1
  367. solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +0 -1
  368. solace_agent_mesh/assets/docs/assets/js/e04b235d.c9c50c7b.js +0 -1
  369. solace_agent_mesh/assets/docs/assets/js/e3d9abda.d11c67a7.js +0 -1
  370. solace_agent_mesh/assets/docs/assets/js/e6f9706b.045d0fa1.js +0 -1
  371. solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +0 -1
  372. solace_agent_mesh/assets/docs/assets/js/f284c35a.5099c51e.js +0 -1
  373. solace_agent_mesh/assets/docs/assets/js/main.f213fe0c.js +0 -2
  374. solace_agent_mesh/assets/docs/assets/js/runtime~main.d9606d6a.js +0 -1
  375. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes-deployment/index.html +0 -47
  376. solace_agent_mesh/assets/docs/lunr-index-1762283454666.json +0 -1
  377. solace_agent_mesh/assets/docs/search-doc-1762283454666.json +0 -1
  378. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +0 -250
  379. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +0 -365
  380. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +0 -305
  381. solace_agent_mesh/client/webui/frontend/static/assets/client-CRYdKo2Q.js +0 -25
  382. solace_agent_mesh/client/webui/frontend/static/assets/main-CojeY_1w.css +0 -1
  383. solace_agent_mesh/client/webui/frontend/static/assets/main-ILja9MCG.js +0 -353
  384. solace_agent_mesh/common/a2a/a2a_llm.txt +0 -175
  385. solace_agent_mesh/common/a2a/a2a_llm_detail.txt +0 -193
  386. solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +0 -445
  387. solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +0 -736
  388. solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +0 -330
  389. solace_agent_mesh/common/common_llm.txt +0 -230
  390. solace_agent_mesh/common/common_llm_detail.txt +0 -2562
  391. solace_agent_mesh/common/middleware/middleware_llm.txt +0 -174
  392. solace_agent_mesh/common/middleware/middleware_llm_detail.txt +0 -185
  393. solace_agent_mesh/common/sac/sac_llm.txt +0 -71
  394. solace_agent_mesh/common/sac/sac_llm_detail.txt +0 -82
  395. solace_agent_mesh/common/sam_events/sam_events_llm.txt +0 -104
  396. solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +0 -115
  397. solace_agent_mesh/common/services/providers/providers_llm.txt +0 -81
  398. solace_agent_mesh/common/services/services_llm.txt +0 -368
  399. solace_agent_mesh/common/services/services_llm_detail.txt +0 -459
  400. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +0 -220
  401. solace_agent_mesh/common/utils/utils_llm.txt +0 -335
  402. solace_agent_mesh/common/utils/utils_llm_detail.txt +0 -572
  403. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-ByU1X1HD.js +0 -98
  404. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-61038fc6.js +0 -1
  405. solace_agent_mesh/config_portal/frontend/static/client/assets/root-BWvk5-gF.js +0 -10
  406. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +0 -1
  407. solace_agent_mesh/core_a2a/core_a2a_llm.txt +0 -90
  408. solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +0 -101
  409. solace_agent_mesh/gateway/base/base_llm.txt +0 -226
  410. solace_agent_mesh/gateway/base/base_llm_detail.txt +0 -235
  411. solace_agent_mesh/gateway/gateway_llm.txt +0 -369
  412. solace_agent_mesh/gateway/gateway_llm_detail.txt +0 -3885
  413. solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +0 -345
  414. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_fulltext_search_indexes.py +0 -92
  415. solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +0 -161
  416. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +0 -105
  417. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +0 -299
  418. solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +0 -3278
  419. solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +0 -221
  420. solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +0 -257
  421. solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +0 -308
  422. solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +0 -450
  423. solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +0 -133
  424. solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +0 -123
  425. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +0 -312
  426. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +0 -303
  427. solace_agent_mesh/gateway/http_sse/shared/__init__.py +0 -146
  428. solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +0 -319
  429. solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +0 -47
  430. solace_agent_mesh/llm.txt +0 -228
  431. solace_agent_mesh/llm_detail.txt +0 -2835
  432. solace_agent_mesh/solace_agent_mesh_llm.txt +0 -362
  433. solace_agent_mesh/solace_agent_mesh_llm_detail.txt +0 -8599
  434. solace_agent_mesh/templates/logging_config_template.ini +0 -45
  435. solace_agent_mesh/templates/templates_llm.txt +0 -147
  436. /solace_agent_mesh/assets/docs/assets/js/{main.f213fe0c.js.LICENSE.txt → main.d634009f.js.LICENSE.txt} +0 -0
  437. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/auth_utils.py +0 -0
  438. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/pagination.py +0 -0
  439. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/response_utils.py +0 -0
  440. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/error_dto.py +0 -0
  441. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exceptions.py +0 -0
  442. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/enums.py +0 -0
  443. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/timestamp_utils.py +0 -0
  444. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/types.py +0 -0
  445. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/utils.py +0 -0
  446. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/entry_points.txt +0 -0
  447. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
- var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var j=(e,t,r)=>Be(e,typeof t!="symbol"?t+"":t,r);import{p as Ye,A as Xe,D as Ve,i as pe,g as We,h as ve,E as U,r as c,k as Ge,m as we,l as Ke,n as Ze,o as Qe,q as qe,u as ge,s as Ee,N as et,L as tt,F as rt}from"./index-DzNKzXrc.js";var nt=-1,at=-2,it=-3,ot=-4,lt=-5,st=-6,ut=-7,ct="B",dt="D",Se="E",ft="M",ht="N",Re="P",mt="R",yt="S",pt="Y",vt="U",wt="Z",xe=class{constructor(){j(this,"promise");j(this,"resolve");j(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function gt(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,n){const a=e.decode(r,{stream:!0}),i=(t+a).split(`
2
- `);t=i.pop()||"";for(const s of i)n.enqueue(s)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var V=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function K(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return ue.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const n=r.length;for(const a of e)r.push(a);return t.length=r.length,ue.call(this,n)}function ue(e){const{hydrated:t,values:r,deferred:n,plugins:a}=this;let i;const s=[[e,o=>{i=o}]];let l=[];for(;s.length>0;){const[o,h]=s.pop();switch(o){case ut:h(void 0);continue;case lt:h(null);continue;case at:h(NaN);continue;case st:h(1/0);continue;case it:h(-1/0);continue;case ot:h(-0);continue}if(t[o]){h(t[o]);continue}const m=r[o];if(!m||typeof m!="object"){t[o]=m,h(m);continue}if(Array.isArray(m))if(typeof m[0]=="string"){const[u,d,y]=m;switch(u){case dt:h(t[o]=new Date(d));continue;case vt:h(t[o]=new URL(d));continue;case ct:h(t[o]=BigInt(d));continue;case mt:h(t[o]=new RegExp(d,y));continue;case pt:h(t[o]=Symbol.for(d));continue;case yt:const f=new Set;t[o]=f;for(let w=1;w<m.length;w++)s.push([m[w],S=>{f.add(S)}]);h(f);continue;case ft:const p=new Map;t[o]=p;for(let w=1;w<m.length;w+=2){const S=[];s.push([m[w+1],v=>{S[1]=v}]),s.push([m[w],v=>{S[0]=v}]),l.push(()=>{p.set(S[0],S[1])})}h(p);continue;case ht:const g=Object.create(null);t[o]=g;for(const w of Object.keys(d).reverse()){const S=[];s.push([d[w],v=>{S[1]=v}]),s.push([Number(w.slice(1)),v=>{S[0]=v}]),l.push(()=>{g[S[0]]=S[1]})}h(g);continue;case Re:if(t[d])h(t[o]=t[d]);else{const w=new xe;n[d]=w,h(t[o]=w.promise)}continue;case Se:const[,E,b]=m;let x=b&&V&&V[b]?new V[b](E):new Error(E);t[o]=x,h(x);continue;case wt:h(t[o]=t[d]);continue;default:if(Array.isArray(a)){const w=[],S=m.slice(1);for(let v=0;v<S.length;v++){const R=S[v];s.push([R,_=>{w[v]=_}])}l.push(()=>{for(const v of a){const R=v(m[0],...w);if(R){h(t[o]=R.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const u=[];t[o]=u;for(let d=0;d<m.length;d++){const y=m[d];y!==nt&&s.push([y,f=>{u[d]=f}])}h(u);continue}else{const u={};t[o]=u;for(const d of Object.keys(m).reverse()){const y=[];s.push([m[d],f=>{y[1]=f}]),s.push([Number(d.slice(1)),f=>{y[0]=f}]),l.push(()=>{u[y[0]]=y[1]})}h(u);continue}}for(;l.length>0;)l.pop()();return i}async function Et(e,t){const{plugins:r}=t??{},n=new xe,a=e.pipeThrough(gt()).getReader(),i={values:[],hydrated:[],deferred:{},plugins:r},s=await St.call(i,a);let l=n.promise;return s.done?n.resolve():l=Rt.call(i,a).then(n.resolve).catch(o=>{for(const h of Object.values(i.deferred))h.reject(o);n.reject(o)}),{done:l.then(()=>a.closed),value:s.value}}async function St(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:K.call(this,r)}}async function Rt(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case Re:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),i=this.deferred[a];if(!i)throw new Error(`Deferred ID ${a} not found in stream`);const s=r.slice(n+1);let l;try{l=JSON.parse(s)}catch{throw new SyntaxError}const o=K.call(this,l);i.resolve(o);break}case Se:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),i=this.deferred[a];if(!i)throw new Error(`Deferred ID ${a} not found in stream`);const s=r.slice(n+1);let l;try{l=JSON.parse(s)}catch{throw new SyntaxError}const o=K.call(this,l);i.reject(o);break}default:throw new SyntaxError}t=await e.read()}}/**
3
- * @remix-run/server-runtime v2.16.2
1
+ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var $=(e,t,r)=>Be(e,typeof t!="symbol"?t+"":t,r);import{p as Ye,A as Xe,D as Ve,i as pe,g as We,h as we,E as U,r as c,k as Ge,m as ve,l as Ke,n as Ze,o as Qe,q as qe,u as ge,s as Ee,N as et,L as tt,F as rt}from"./index-CnFykb2v.js";var nt=-1,at=-2,it=-3,ot=-4,lt=-5,st=-6,ut=-7,ct="B",dt="D",Se="E",ft="M",ht="N",Re="P",mt="R",yt="S",pt="Y",wt="U",vt="Z",xe=class{constructor(){$(this,"promise");$(this,"resolve");$(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function gt(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,n){const a=e.decode(r,{stream:!0}),i=(t+a).split(`
2
+ `);t=i.pop()||"";for(const s of i)n.enqueue(s)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var V=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function K(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return ue.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const n=r.length;for(const a of e)r.push(a);return t.length=r.length,ue.call(this,n)}function ue(e){const{hydrated:t,values:r,deferred:n,plugins:a}=this;let i;const s=[[e,o=>{i=o}]];let l=[];for(;s.length>0;){const[o,h]=s.pop();switch(o){case ut:h(void 0);continue;case lt:h(null);continue;case at:h(NaN);continue;case st:h(1/0);continue;case it:h(-1/0);continue;case ot:h(-0);continue}if(t[o]){h(t[o]);continue}const m=r[o];if(!m||typeof m!="object"){t[o]=m,h(m);continue}if(Array.isArray(m))if(typeof m[0]=="string"){const[u,d,y]=m;switch(u){case dt:h(t[o]=new Date(d));continue;case wt:h(t[o]=new URL(d));continue;case ct:h(t[o]=BigInt(d));continue;case mt:h(t[o]=new RegExp(d,y));continue;case pt:h(t[o]=Symbol.for(d));continue;case yt:const f=new Set;t[o]=f;for(let v=1;v<m.length;v++)s.push([m[v],S=>{f.add(S)}]);h(f);continue;case ft:const p=new Map;t[o]=p;for(let v=1;v<m.length;v+=2){const S=[];s.push([m[v+1],w=>{S[1]=w}]),s.push([m[v],w=>{S[0]=w}]),l.push(()=>{p.set(S[0],S[1])})}h(p);continue;case ht:const g=Object.create(null);t[o]=g;for(const v of Object.keys(d).reverse()){const S=[];s.push([d[v],w=>{S[1]=w}]),s.push([Number(v.slice(1)),w=>{S[0]=w}]),l.push(()=>{g[S[0]]=S[1]})}h(g);continue;case Re:if(t[d])h(t[o]=t[d]);else{const v=new xe;n[d]=v,h(t[o]=v.promise)}continue;case Se:const[,E,b]=m;let x=b&&V&&V[b]?new V[b](E):new Error(E);t[o]=x,h(x);continue;case vt:h(t[o]=t[d]);continue;default:if(Array.isArray(a)){const v=[],S=m.slice(1);for(let w=0;w<S.length;w++){const R=S[w];s.push([R,_=>{v[w]=_}])}l.push(()=>{for(const w of a){const R=w(m[0],...v);if(R){h(t[o]=R.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const u=[];t[o]=u;for(let d=0;d<m.length;d++){const y=m[d];y!==nt&&s.push([y,f=>{u[d]=f}])}h(u);continue}else{const u={};t[o]=u;for(const d of Object.keys(m).reverse()){const y=[];s.push([m[d],f=>{y[1]=f}]),s.push([Number(d.slice(1)),f=>{y[0]=f}]),l.push(()=>{u[y[0]]=y[1]})}h(u);continue}}for(;l.length>0;)l.pop()();return i}async function Et(e,t){const{plugins:r}=t??{},n=new xe,a=e.pipeThrough(gt()).getReader(),i={values:[],hydrated:[],deferred:{},plugins:r},s=await St.call(i,a);let l=n.promise;return s.done?n.resolve():l=Rt.call(i,a).then(n.resolve).catch(o=>{for(const h of Object.values(i.deferred))h.reject(o);n.reject(o)}),{done:l.then(()=>a.closed),value:s.value}}async function St(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:K.call(this,r)}}async function Rt(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case Re:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),i=this.deferred[a];if(!i)throw new Error(`Deferred ID ${a} not found in stream`);const s=r.slice(n+1);let l;try{l=JSON.parse(s)}catch{throw new SyntaxError}const o=K.call(this,l);i.resolve(o);break}case Se:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),i=this.deferred[a];if(!i)throw new Error(`Deferred ID ${a} not found in stream`);const s=r.slice(n+1);let l;try{l=JSON.parse(s)}catch{throw new SyntaxError}const o=K.call(this,l);i.reject(o);break}default:throw new SyntaxError}t=await e.read()}}/**
3
+ * @remix-run/server-runtime v2.17.4
4
4
  *
5
5
  * Copyright (c) Remix Software Inc.
6
6
  *
@@ -9,7 +9,7 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
9
9
  *
10
10
  * @license MIT
11
11
  */const be=Symbol("SingleFetchRedirect");/**
12
- * @remix-run/react v2.16.2
12
+ * @remix-run/react v2.17.4
13
13
  *
14
14
  * Copyright (c) Remix Software Inc.
15
15
  *
@@ -18,7 +18,7 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
18
18
  *
19
19
  * @license MIT
20
20
  */function L(){return L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},L.apply(this,arguments)}/**
21
- * @remix-run/react v2.16.2
21
+ * @remix-run/react v2.17.4
22
22
  *
23
23
  * Copyright (c) Remix Software Inc.
24
24
  *
@@ -27,7 +27,7 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
27
27
  *
28
28
  * @license MIT
29
29
  */function P(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}/**
30
- * @remix-run/react v2.16.2
30
+ * @remix-run/react v2.17.4
31
31
  *
32
32
  * Copyright (c) Remix Software Inc.
33
33
  *
@@ -36,7 +36,7 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
36
36
  *
37
37
  * @license MIT
38
38
  */async function _e(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__remixContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}/**
39
- * @remix-run/react v2.16.2
39
+ * @remix-run/react v2.17.4
40
40
  *
41
41
  * Copyright (c) Remix Software Inc.
42
42
  *
@@ -44,8 +44,8 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
44
44
  * LICENSE.md file in the root directory of this source tree.
45
45
  *
46
46
  * @license MIT
47
- */function xt(e,t,r){let n=e.map(i=>{var s;let l=t[i.route.id],o=r.routes[i.route.id];return[o.css?o.css.map(h=>({rel:"stylesheet",href:h})):[],(l==null||(s=l.links)===null||s===void 0?void 0:s.call(l))||[]]}).flat(2),a=Pt(e,r);return Oe(n,a)}async function Le(e,t){var r,n;if(!e.css&&!t.links||!Nt())return;let a=[((r=e.css)===null||r===void 0?void 0:r.map(l=>({rel:"stylesheet",href:l})))??[],((n=t.links)===null||n===void 0?void 0:n.call(t))??[]].flat(1);if(a.length===0)return;let i=[];for(let l of a)!q(l)&&l.rel==="stylesheet"&&i.push({...l,rel:"preload",as:"style"});let s=i.filter(l=>(!l.media||window.matchMedia(l.media).matches)&&!document.querySelector(`link[rel="stylesheet"][href="${l.href}"]`));await Promise.all(s.map(bt))}async function bt(e){return new Promise(t=>{let r=document.createElement("link");Object.assign(r,e);function n(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function q(e){return e!=null&&typeof e.page=="string"}function _t(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Lt(e,t,r){let n=await Promise.all(e.map(async a=>{let i=await _e(t.routes[a.route.id],r);return i.links?i.links():[]}));return Oe(n.flat(1).filter(_t).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function ce(e,t,r,n,a,i,s){let l=ke(e),o=(u,d)=>r[d]?u.route.id!==r[d].route.id:!0,h=(u,d)=>{var y;return r[d].pathname!==u.pathname||((y=r[d].route.path)===null||y===void 0?void 0:y.endsWith("*"))&&r[d].params["*"]!==u.params["*"]};return s==="data"&&(i.v3_singleFetch||a.search!==l.search)?t.filter((u,d)=>{if(!n.routes[u.route.id].hasLoader)return!1;if(o(u,d)||h(u,d))return!0;let f=i.v3_singleFetch||a.search!==l.search;if(u.route.shouldRevalidate){var p;let g=u.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((p=r[0])===null||p===void 0?void 0:p.params)||{},nextUrl:new URL(e,window.origin),nextParams:u.params,defaultShouldRevalidate:f});if(typeof g=="boolean")return g}return f}):t.filter((u,d)=>{let y=n.routes[u.route.id];return(s==="assets"||y.hasLoader)&&(o(u,d)||h(u,d))})}function Ot(e,t,r){let n=ke(e);return ee(t.filter(a=>r.routes[a.route.id].hasLoader&&!r.routes[a.route.id].hasClientLoader).map(a=>{let{pathname:i,search:s}=n,l=new URLSearchParams(s);return l.set("_data",a.route.id),`${i}?${l}`}))}function kt(e,t){return ee(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function Pt(e,t){return ee(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function ee(e){return[...new Set(e)]}function Dt(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function Oe(e,t){let r=new Set,n=new Set(t);return e.reduce((a,i)=>{if(t&&!q(i)&&i.as==="script"&&i.href&&n.has(i.href))return a;let l=JSON.stringify(Dt(i));return r.has(l)||(r.add(l),a.push({key:l,link:i})),a},[])}function ke(e){let t=Ye(e);return t.search===void 0&&(t.search=""),t}let $;function Nt(){if($!==void 0)return $;let e=document.createElement("link");return $=e.relList.supports("preload"),e=null,$}/**
48
- * @remix-run/react v2.16.2
47
+ */function xt(e,t,r){let n=e.map(i=>{var s;let l=t[i.route.id],o=r.routes[i.route.id];return[o.css?o.css.map(h=>({rel:"stylesheet",href:h})):[],(l==null||(s=l.links)===null||s===void 0?void 0:s.call(l))||[]]}).flat(2),a=Pt(e,r);return Oe(n,a)}async function Le(e,t){var r,n;if(!e.css&&!t.links||!Nt())return;let a=[((r=e.css)===null||r===void 0?void 0:r.map(l=>({rel:"stylesheet",href:l})))??[],((n=t.links)===null||n===void 0?void 0:n.call(t))??[]].flat(1);if(a.length===0)return;let i=[];for(let l of a)!q(l)&&l.rel==="stylesheet"&&i.push({...l,rel:"preload",as:"style"});let s=i.filter(l=>(!l.media||window.matchMedia(l.media).matches)&&!document.querySelector(`link[rel="stylesheet"][href="${l.href}"]`));await Promise.all(s.map(bt))}async function bt(e){return new Promise(t=>{let r=document.createElement("link");Object.assign(r,e);function n(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function q(e){return e!=null&&typeof e.page=="string"}function _t(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Lt(e,t,r){let n=await Promise.all(e.map(async a=>{let i=await _e(t.routes[a.route.id],r);return i.links?i.links():[]}));return Oe(n.flat(1).filter(_t).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function ce(e,t,r,n,a,i,s){let l=ke(e),o=(u,d)=>r[d]?u.route.id!==r[d].route.id:!0,h=(u,d)=>{var y;return r[d].pathname!==u.pathname||((y=r[d].route.path)===null||y===void 0?void 0:y.endsWith("*"))&&r[d].params["*"]!==u.params["*"]};return s==="data"&&(i.v3_singleFetch||a.search!==l.search)?t.filter((u,d)=>{if(!n.routes[u.route.id].hasLoader)return!1;if(o(u,d)||h(u,d))return!0;let f=i.v3_singleFetch||a.search!==l.search;if(u.route.shouldRevalidate){var p;let g=u.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((p=r[0])===null||p===void 0?void 0:p.params)||{},nextUrl:new URL(e,window.origin),nextParams:u.params,defaultShouldRevalidate:f});if(typeof g=="boolean")return g}return f}):t.filter((u,d)=>{let y=n.routes[u.route.id];return(s==="assets"||y.hasLoader)&&(o(u,d)||h(u,d))})}function Ot(e,t,r){let n=ke(e);return ee(t.filter(a=>r.routes[a.route.id].hasLoader&&!r.routes[a.route.id].hasClientLoader).map(a=>{let{pathname:i,search:s}=n,l=new URLSearchParams(s);return l.set("_data",a.route.id),`${i}?${l}`}))}function kt(e,t){return ee(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function Pt(e,t){return ee(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function ee(e){return[...new Set(e)]}function Dt(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function Oe(e,t){let r=new Set,n=new Set(t);return e.reduce((a,i)=>{if(t&&!q(i)&&i.as==="script"&&i.href&&n.has(i.href))return a;let l=JSON.stringify(Dt(i));return r.has(l)||(r.add(l),a.push({key:l,link:i})),a},[])}function ke(e){let t=Ye(e);return t.search===void 0&&(t.search=""),t}let F;function Nt(){if(F!==void 0)return F;let e=document.createElement("link");return F=e.relList.supports("preload"),e=null,F}/**
48
+ * @remix-run/react v2.17.4
49
49
  *
50
50
  * Copyright (c) Remix Software Inc.
51
51
  *
@@ -53,8 +53,8 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
53
53
  * LICENSE.md file in the root directory of this source tree.
54
54
  *
55
55
  * @license MIT
56
- */const Tt={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},At=/[&><\u2028\u2029]/g;function F(e){return e.replace(At,t=>Tt[t])}function de(e){return{__html:e}}/**
57
- * @remix-run/react v2.16.2
56
+ */const Tt={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},At=/[&><\u2028\u2029]/g;function j(e){return e.replace(At,t=>Tt[t])}function de(e){return{__html:e}}/**
57
+ * @remix-run/react v2.17.4
58
58
  *
59
59
  * Copyright (c) Remix Software Inc.
60
60
  *
@@ -69,7 +69,7 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
69
69
  `))]),n.length>0)break}catch{continue}}return n.length>0||r.length>0&&(n=s.decode(fe(...r)).split(`
70
70
 
71
71
  `).filter(m=>m),r=[]),n.shift()},o=await l();for(;o;)yield o,o=await l()}function fe(...e){let t=new Uint8Array(e.reduce((n,a)=>n+a.length,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}/**
72
- * @remix-run/react v2.16.2
72
+ * @remix-run/react v2.17.4
73
73
  *
74
74
  * Copyright (c) Remix Software Inc.
75
75
  *
@@ -77,8 +77,8 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
77
77
  * LICENSE.md file in the root directory of this source tree.
78
78
  *
79
79
  * @license MIT
80
- */function wr(e,t,r){return async({request:n,matches:a,fetcherKey:i})=>n.method!=="GET"?zt(n,a):i?Yt(n,a):Bt(e,t,r(),n,a)}async function zt(e,t){let r=t.find(i=>i.shouldLoad);P(r,"No action match found");let n,a=await r.resolve(async i=>await i(async()=>{let l=B(e.url),o=await z(e),{data:h,status:m}=await re(l,o);return n=m,Z(h,r.route.id)}));return te(a.result)||pe(a.result)?{[r.route.id]:a}:{[r.route.id]:{type:a.type,result:We(a.result,n)}}}async function Bt(e,t,r,n,a){let i=new Set,s=!1,l=a.map(()=>he()),o=Promise.all(l.map(f=>f.promise)),h=he(),m=Ne(B(n.url)),u=await z(n),d={},y=Promise.all(a.map(async(f,p)=>f.resolve(async g=>{if(l[p].resolve(),!f.shouldLoad){var E;if(!r.state.initialized)return;if(f.route.id in r.state.loaderData&&e.routes[f.route.id]&&(E=t[f.route.id])!==null&&E!==void 0&&E.shouldRevalidate){e.routes[f.route.id].hasLoader&&(s=!0);return}}if(e.routes[f.route.id].hasClientLoader){e.routes[f.route.id].hasLoader&&(s=!0);try{let b=await De(g,m,u,f.route.id);d[f.route.id]={type:"data",result:b}}catch(b){d[f.route.id]={type:"error",result:b}}return}e.routes[f.route.id].hasLoader&&i.add(f.route.id);try{let b=await g(async()=>{let x=await h.promise;return Te(x,f.route.id)});d[f.route.id]={type:"data",result:b}}catch(b){d[f.route.id]={type:"error",result:b}}})));if(await o,(!r.state.initialized||i.size===0)&&!window.__remixHdrActive)h.resolve({});else try{s&&i.size>0&&m.searchParams.set("_routes",a.filter(p=>i.has(p.route.id)).map(p=>p.route.id).join(","));let f=await re(m,u);h.resolve(f.data)}catch(f){h.reject(f)}return await y,d}async function Yt(e,t){let r=t.find(a=>a.shouldLoad);P(r,"No fetcher match found");let n=await r.resolve(async a=>{let i=Ne(B(e.url)),s=await z(e);return De(a,i,s,r.route.id)});return{[r.route.id]:n}}function De(e,t,r,n){return e(async()=>{let a=new URL(t);a.searchParams.set("_routes",n);let{data:i}=await re(a,r);return Te(i,n)})}function Ne(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let n of t)n&&r.push(n);for(let n of r)e.searchParams.append("index",n);return e}function B(e){let t=typeof e=="string"?new URL(e,window.location.origin):e;return t.pathname==="/"?t.pathname="_root.data":t.pathname=`${t.pathname.replace(/\/$/,"")}.data`,t}async function re(e,t){let r=await fetch(e,t);if(new Set([100,101,204,205]).has(r.status))return!t.method||t.method==="GET"?{status:r.status,data:{}}:{status:r.status,data:{data:null}};P(r.body,"No response body to decode");try{let a=await Xt(r.body,window);return{status:r.status,data:a.value}}catch(a){throw console.error(a),new Error(`Unable to decode turbo-stream response from URL: ${e.toString()}`)}}function Xt(e,t){return Et(e,{plugins:[(r,...n)=>{if(r==="SanitizedError"){let[a,i,s]=n,l=Error;a&&a in t&&typeof t[a]=="function"&&(l=t[a]);let o=new l(i);return o.stack=s,{value:o}}if(r==="ErrorResponse"){let[a,i,s]=n;return{value:new U(i,s,a)}}if(r==="SingleFetchRedirect")return{value:{[be]:n[0]}}},(r,n)=>{if(r==="SingleFetchFallback")return{value:void 0};if(r==="SingleFetchClassInstance")return{value:n}}]})}function Te(e,t){let r=e[be];return r?Z(r,t):e[t]!==void 0?Z(e[t],t):null}function Z(e,t){if("error"in e)throw e.error;if("redirect"in e){let r={};throw e.revalidate&&(r["X-Remix-Revalidate"]="yes"),e.reload&&(r["X-Remix-Reload-Document"]="yes"),e.replace&&(r["X-Remix-Replace"]="yes"),ve(e.redirect,{status:e.status,headers:r})}else{if("data"in e)return e.data;throw new Error(`No response found for routeId "${t}"`)}}function he(){let e,t,r=new Promise((n,a)=>{e=async i=>{n(i);try{await r}catch{}},t=async i=>{a(i);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}/**
81
- * @remix-run/react v2.16.2
80
+ */function vr(e,t,r){return async({request:n,matches:a,fetcherKey:i})=>n.method!=="GET"?zt(n,a):i?Yt(n,a):Bt(e,t,r(),n,a)}async function zt(e,t){let r=t.find(i=>i.shouldLoad);P(r,"No action match found");let n,a=await r.resolve(async i=>await i(async()=>{let l=B(e.url),o=await z(e),{data:h,status:m}=await re(l,o);return n=m,Z(h,r.route.id)}));return te(a.result)||pe(a.result)?{[r.route.id]:a}:{[r.route.id]:{type:a.type,result:We(a.result,n)}}}async function Bt(e,t,r,n,a){let i=new Set,s=!1,l=a.map(()=>he()),o=Promise.all(l.map(f=>f.promise)),h=he(),m=Ne(B(n.url)),u=await z(n),d={},y=Promise.all(a.map(async(f,p)=>f.resolve(async g=>{if(l[p].resolve(),!f.shouldLoad){var E;if(!r.state.initialized)return;if(f.route.id in r.state.loaderData&&e.routes[f.route.id]&&(E=t[f.route.id])!==null&&E!==void 0&&E.shouldRevalidate){e.routes[f.route.id].hasLoader&&(s=!0);return}}if(e.routes[f.route.id].hasClientLoader){e.routes[f.route.id].hasLoader&&(s=!0);try{let b=await De(g,m,u,f.route.id);d[f.route.id]={type:"data",result:b}}catch(b){d[f.route.id]={type:"error",result:b}}return}e.routes[f.route.id].hasLoader&&i.add(f.route.id);try{let b=await g(async()=>{let x=await h.promise;return Te(x,f.route.id)});d[f.route.id]={type:"data",result:b}}catch(b){d[f.route.id]={type:"error",result:b}}})));if(await o,(!r.state.initialized||i.size===0)&&!window.__remixHdrActive)h.resolve({});else try{s&&i.size>0&&m.searchParams.set("_routes",a.filter(p=>i.has(p.route.id)).map(p=>p.route.id).join(","));let f=await re(m,u);h.resolve(f.data)}catch(f){h.reject(f)}return await y,d}async function Yt(e,t){let r=t.find(a=>a.shouldLoad);P(r,"No fetcher match found");let n=await r.resolve(async a=>{let i=Ne(B(e.url)),s=await z(e);return De(a,i,s,r.route.id)});return{[r.route.id]:n}}function De(e,t,r,n){return e(async()=>{let a=new URL(t);a.searchParams.set("_routes",n);let{data:i}=await re(a,r);return Te(i,n)})}function Ne(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let n of t)n&&r.push(n);for(let n of r)e.searchParams.append("index",n);return e}function B(e){let t=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return t.pathname==="/"?t.pathname="_root.data":t.pathname=`${t.pathname.replace(/\/$/,"")}.data`,t}async function re(e,t){let r=await fetch(e,t);if(new Set([100,101,204,205]).has(r.status))return!t.method||t.method==="GET"?{status:r.status,data:{}}:{status:r.status,data:{data:null}};P(r.body,"No response body to decode");try{let a=await Xt(r.body,window);return{status:r.status,data:a.value}}catch(a){throw console.error(a),new Error(`Unable to decode turbo-stream response from URL: ${e.toString()}`)}}function Xt(e,t){return Et(e,{plugins:[(r,...n)=>{if(r==="SanitizedError"){let[a,i,s]=n,l=Error;a&&a in t&&typeof t[a]=="function"&&(l=t[a]);let o=new l(i);return o.stack=s,{value:o}}if(r==="ErrorResponse"){let[a,i,s]=n;return{value:new U(i,s,a)}}if(r==="SingleFetchRedirect")return{value:{[be]:n[0]}}},(r,n)=>{if(r==="SingleFetchFallback")return{value:void 0};if(r==="SingleFetchClassInstance")return{value:n}}]})}function Te(e,t){let r=e[be];return r?Z(r,t):e[t]!==void 0?Z(e[t],t):null}function Z(e,t){if("error"in e)throw e.error;if("redirect"in e){let r={};throw e.revalidate&&(r["X-Remix-Revalidate"]="yes"),e.reload&&(r["X-Remix-Reload-Document"]="yes"),e.replace&&(r["X-Remix-Replace"]="yes"),we(e.redirect,{status:e.status,headers:r})}else{if("data"in e)return e.data;throw new Error(`No response found for routeId "${t}"`)}}function he(){let e,t,r=new Promise((n,a)=>{e=async i=>{n(i);try{await r}catch{}},t=async i=>{a(i);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}/**
81
+ * @remix-run/react v2.17.4
82
82
  *
83
83
  * Copyright (c) Remix Software Inc.
84
84
  *
@@ -91,7 +91,7 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
91
91
  "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information."
92
92
  );
93
93
  `}});if(pe(e))return c.createElement(Q,{title:"Unhandled Thrown Response!"},c.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let n;if(e instanceof Error)n=e;else{let a=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);n=new Error(a)}return c.createElement(Q,{title:"Application Error!",isOutsideRemixApp:t},c.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),c.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),r)}function Q({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){var a;let{routeModules:i}=T();return(a=i.root)!==null&&a!==void 0&&a.Layout&&!r?n:c.createElement("html",{lang:"en"},c.createElement("head",null,c.createElement("meta",{charSet:"utf-8"}),c.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),c.createElement("title",null,e)),c.createElement("body",null,c.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?c.createElement(hr,null):null)))}/**
94
- * @remix-run/react v2.16.2
94
+ * @remix-run/react v2.17.4
95
95
  *
96
96
  * Copyright (c) Remix Software Inc.
97
97
  *
@@ -107,7 +107,7 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
107
107
  "for more information."
108
108
  );
109
109
  `}}))}/**
110
- * @remix-run/react v2.16.2
110
+ * @remix-run/react v2.17.4
111
111
  *
112
112
  * Copyright (c) Remix Software Inc.
113
113
  *
@@ -115,8 +115,8 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
115
115
  * LICENSE.md file in the root directory of this source tree.
116
116
  *
117
117
  * @license MIT
118
- */function Ce(e){let t={};return Object.values(e).forEach(r=>{let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}),t}function Wt(e,t,r){let n=je(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Vt:void 0,i=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>c.createElement(Ae,{error:Ge()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:c.createElement(t.Layout,null,c.createElement(n,null))}:{Component:n},...i?{errorElement:c.createElement(t.Layout,null,c.createElement(i,null))}:{ErrorBoundary:i},...a?{hydrateFallbackElement:c.createElement(t.Layout,null,c.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:i,HydrateFallback:a}}function Er(e,t,r,n,a,i){return ne(t,r,n,a,i,"",Ce(t),e)}function I(e,t,r){if(r){let s=`You cannot call ${e==="action"?"serverAction()":"serverLoader()"} in SPA Mode (routeId: "${t.id}")`;throw console.error(s),new U(400,"Bad Request",new Error(s),!0)}let a=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction)throw console.error(a),new U(400,"Bad Request",new Error(a),!0)}function W(e,t){let r=e==="clientAction"?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new U(405,"Method Not Allowed",new Error(n),!0)}function ne(e,t,r,n,a,i="",s=Ce(e),l){return(s[i]||[]).map(o=>{let h=t[o.id];async function m(x,w,S){if(typeof S=="function")return await S();let v=await Zt(x,o);return w?Qt(v):v}function u(x,w,S){return o.hasLoader?m(x,w,S):Promise.resolve(null)}function d(x,w,S){if(!o.hasAction)throw W("action",o.id);return m(x,w,S)}async function y(x){let w=t[o.id],S=w?Le(o,w):Promise.resolve();try{return x()}finally{await S}}let f={id:o.id,index:o.index,path:o.path};if(h){var p,g,E;Object.assign(f,{...f,...Wt(o,h,a),handle:h.handle,shouldRevalidate:me(n,h,o.id,l)});let x=r==null||(p=r.loaderData)===null||p===void 0?void 0:p[o.id],w=r==null||(g=r.errors)===null||g===void 0?void 0:g[o.id],S=l==null&&(((E=h.clientLoader)===null||E===void 0?void 0:E.hydrate)===!0||!o.hasLoader);f.loader=async({request:v,params:R},_)=>{try{return await y(async()=>(P(h,"No `routeModule` available for critical-route loader"),h.clientLoader?h.clientLoader({request:v,params:R,async serverLoader(){if(I("loader",o,a),S){if(x!==void 0)return x;if(w!==void 0)throw w;return null}return u(v,!0,_)}}):a?null:u(v,!1,_)))}finally{S=!1}},f.loader.hydrate=er(o,h,a),f.action=({request:v,params:R},_)=>y(async()=>{if(P(h,"No `routeModule` available for critical-route action"),!h.clientAction){if(a)throw W("clientAction",o.id);return d(v,!1,_)}return h.clientAction({request:v,params:R,async serverAction(){return I("action",o,a),d(v,!0,_)}})})}else o.hasClientLoader||(f.loader=({request:x},w)=>y(()=>a?Promise.resolve(null):u(x,!1,w))),o.hasClientAction||(f.action=({request:x},w)=>y(()=>{if(a)throw W("clientAction",o.id);return d(x,!1,w)})),f.lazy=async()=>{let x=await Kt(o,t),w={...x};if(x.clientLoader){let S=x.clientLoader;w.loader=(v,R)=>S({...v,async serverLoader(){return I("loader",o,a),u(v.request,!0,R)}})}if(x.clientAction){let S=x.clientAction;w.action=(v,R)=>S({...v,async serverAction(){return I("action",o,a),d(v.request,!0,R)}})}return{...w.loader?{loader:w.loader}:{},...w.action?{action:w.action}:{},hasErrorBoundary:w.hasErrorBoundary,shouldRevalidate:me(n,w,o.id,l),handle:w.handle,Component:w.Component,ErrorBoundary:w.ErrorBoundary}};let b=ne(e,t,r,n,a,o.id,s,l);return b.length>0&&(f.children=b),f})}function me(e,t,r,n){if(n)return Gt(r,t.shouldRevalidate,n);if(e.v3_singleFetch&&t.shouldRevalidate){let a=t.shouldRevalidate;return i=>a({...i,defaultShouldRevalidate:!0})}return t.shouldRevalidate}function Gt(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function Kt(e,t){let r=await _e(e,t);return await Le(e,r),{Component:je(r),ErrorBoundary:r.ErrorBoundary,clientAction:r.clientAction,clientLoader:r.clientLoader,handle:r.handle,links:r.links,meta:r.meta,shouldRevalidate:r.shouldRevalidate}}async function Zt(e,t){let r=await Pe(e,t.id);if(r instanceof Error)throw r;if(Ft(r))throw qt(r);if(Ct(r))throw r;return It(r)&&r.body?await Ut(r.body):r}function Qt(e){if(Ht(e))return e.data;if(te(e)){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.json():e.text()}return e}function qt(e){let t=parseInt(e.headers.get("X-Remix-Status"),10)||302,r=e.headers.get("X-Remix-Redirect"),n={},a=e.headers.get("X-Remix-Revalidate");a&&(n["X-Remix-Revalidate"]=a);let i=e.headers.get("X-Remix-Reload-Document");i&&(n["X-Remix-Reload-Document"]=i);let s=e.headers.get("X-Remix-Replace");return s&&(n["X-Remix-Replace"]=s),ve(r,{status:t,headers:n})}function je(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function er(e,t,r){return r&&e.id!=="root"||t.clientLoader!=null&&(t.clientLoader.hydrate===!0||e.hasLoader!==!0)}/**
119
- * @remix-run/react v2.16.2
118
+ */function Ce(e){let t={};return Object.values(e).forEach(r=>{let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}),t}function Wt(e,t,r){let n=je(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Vt:void 0,i=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>c.createElement(Ae,{error:Ge()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:c.createElement(t.Layout,null,c.createElement(n,null))}:{Component:n},...i?{errorElement:c.createElement(t.Layout,null,c.createElement(i,null))}:{ErrorBoundary:i},...a?{hydrateFallbackElement:c.createElement(t.Layout,null,c.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:i,HydrateFallback:a}}function Er(e,t,r,n,a,i){return ne(t,r,n,a,i,"",Ce(t),e)}function I(e,t,r){if(r){let s=`You cannot call ${e==="action"?"serverAction()":"serverLoader()"} in SPA Mode (routeId: "${t.id}")`;throw console.error(s),new U(400,"Bad Request",new Error(s),!0)}let a=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction)throw console.error(a),new U(400,"Bad Request",new Error(a),!0)}function W(e,t){let r=e==="clientAction"?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new U(405,"Method Not Allowed",new Error(n),!0)}function ne(e,t,r,n,a,i="",s=Ce(e),l){return(s[i]||[]).map(o=>{let h=t[o.id];async function m(x,v,S){if(typeof S=="function")return await S();let w=await Zt(x,o);return v?Qt(w):w}function u(x,v,S){return o.hasLoader?m(x,v,S):Promise.resolve(null)}function d(x,v,S){if(!o.hasAction)throw W("action",o.id);return m(x,v,S)}async function y(x){let v=t[o.id],S=v?Le(o,v):Promise.resolve();try{return x()}finally{await S}}let f={id:o.id,index:o.index,path:o.path};if(h){var p,g,E;Object.assign(f,{...f,...Wt(o,h,a),handle:h.handle,shouldRevalidate:me(n,h,o.id,l)});let x=r==null||(p=r.loaderData)===null||p===void 0?void 0:p[o.id],v=r==null||(g=r.errors)===null||g===void 0?void 0:g[o.id],S=l==null&&(((E=h.clientLoader)===null||E===void 0?void 0:E.hydrate)===!0||!o.hasLoader);f.loader=async({request:w,params:R},_)=>{try{return await y(async()=>(P(h,"No `routeModule` available for critical-route loader"),h.clientLoader?h.clientLoader({request:w,params:R,async serverLoader(){if(I("loader",o,a),S){if(x!==void 0)return x;if(v!==void 0)throw v;return null}return u(w,!0,_)}}):a?null:u(w,!1,_)))}finally{S=!1}},f.loader.hydrate=er(o,h,a),f.action=({request:w,params:R},_)=>y(async()=>{if(P(h,"No `routeModule` available for critical-route action"),!h.clientAction){if(a)throw W("clientAction",o.id);return d(w,!1,_)}return h.clientAction({request:w,params:R,async serverAction(){return I("action",o,a),d(w,!0,_)}})})}else o.hasClientLoader||(f.loader=({request:x},v)=>y(()=>a?Promise.resolve(null):u(x,!1,v))),o.hasClientAction||(f.action=({request:x},v)=>y(()=>{if(a)throw W("clientAction",o.id);return d(x,!1,v)})),f.lazy=async()=>{let x=await Kt(o,t),v={...x};if(x.clientLoader){let S=x.clientLoader;v.loader=(w,R)=>S({...w,async serverLoader(){return I("loader",o,a),u(w.request,!0,R)}})}if(x.clientAction){let S=x.clientAction;v.action=(w,R)=>S({...w,async serverAction(){return I("action",o,a),d(w.request,!0,R)}})}return{...v.loader?{loader:v.loader}:{},...v.action?{action:v.action}:{},hasErrorBoundary:v.hasErrorBoundary,shouldRevalidate:me(n,v,o.id,l),handle:v.handle,Component:v.Component,ErrorBoundary:v.ErrorBoundary}};let b=ne(e,t,r,n,a,o.id,s,l);return b.length>0&&(f.children=b),f})}function me(e,t,r,n){if(n)return Gt(r,t.shouldRevalidate,n);if(e.v3_singleFetch&&t.shouldRevalidate){let a=t.shouldRevalidate;return i=>a({...i,defaultShouldRevalidate:!0})}return t.shouldRevalidate}function Gt(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function Kt(e,t){let r=await _e(e,t);return await Le(e,r),{Component:je(r),ErrorBoundary:r.ErrorBoundary,clientAction:r.clientAction,clientLoader:r.clientLoader,handle:r.handle,links:r.links,meta:r.meta,shouldRevalidate:r.shouldRevalidate}}async function Zt(e,t){let r=await Pe(e,t.id);if(r instanceof Error)throw r;if(Ft(r))throw qt(r);if(Ct(r))throw r;return It(r)&&r.body?await Ut(r.body):r}function Qt(e){if(Ht(e))return e.data;if(te(e)){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.json():e.text()}return e}function qt(e){let t=parseInt(e.headers.get("X-Remix-Status"),10)||302,r=e.headers.get("X-Remix-Redirect"),n={},a=e.headers.get("X-Remix-Revalidate");a&&(n["X-Remix-Revalidate"]=a);let i=e.headers.get("X-Remix-Reload-Document");i&&(n["X-Remix-Reload-Document"]=i);let s=e.headers.get("X-Remix-Replace");return s&&(n["X-Remix-Replace"]=s),we(r,{status:t,headers:n})}function je(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function er(e,t,r){return r&&e.id!=="root"||t.clientLoader!=null&&(t.clientLoader.hydrate===!0||e.hasLoader!==!0)}/**
119
+ * @remix-run/react v2.17.4
120
120
  *
121
121
  * Copyright (c) Remix Software Inc.
122
122
  *
@@ -124,17 +124,17 @@ var ze=Object.defineProperty;var Be=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,config
124
124
  * LICENSE.md file in the root directory of this source tree.
125
125
  *
126
126
  * @license MIT
127
- */const H=new Set,tr=1e3,J=new Set,rr=7680;function ae(e,t){return e.v3_lazyRouteDiscovery===!0&&!t}function nr(e,t){let r=new Set(t.state.matches.map(s=>s.route.id)),n=t.state.location.pathname.split("/").filter(Boolean),a=["/"];for(n.pop();n.length>0;)a.push(`/${n.join("/")}`),n.pop();a.forEach(s=>{let l=we(t.routes,s,t.basename);l&&l.forEach(o=>r.add(o.route.id))});let i=[...r].reduce((s,l)=>Object.assign(s,{[l]:e.routes[l]}),{});return{...e,routes:i}}function Sr(e,t,r,n,a){if(ae(r,n))return async({path:i,patch:s,signal:l,fetcherKey:o})=>{J.has(i)||await $e([i],o?window.location.href:i,e,t,r,n,a,s,l)}}function Rr(e,t,r,n,a){c.useEffect(()=>{var i;if(!ae(n,a)||((i=navigator.connection)===null||i===void 0?void 0:i.saveData)===!0)return;function s(u){let d=u.tagName==="FORM"?u.getAttribute("action"):u.getAttribute("href");if(!d)return;let y=new URL(d,window.location.origin);J.has(y.pathname)||H.add(y.pathname)}async function l(){let u=Array.from(H.keys()).filter(d=>J.has(d)?(H.delete(d),!1):!0);if(u.length!==0)try{await $e(u,null,t,r,n,a,e.basename,e.patchRoutes)}catch(d){console.error("Failed to fetch manifest patches",d)}}document.body.querySelectorAll("a[data-discover], form[data-discover]").forEach(u=>s(u)),l();let o=ir(l,100);function h(u){return u.nodeType===Node.ELEMENT_NODE}let m=new MutationObserver(u=>{let d=new Set;u.forEach(y=>{[y.target,...y.addedNodes].forEach(f=>{h(f)&&((f.tagName==="A"&&f.getAttribute("data-discover")||f.tagName==="FORM"&&f.getAttribute("data-discover"))&&d.add(f),f.tagName!=="A"&&f.querySelectorAll("a[data-discover], form[data-discover]").forEach(p=>d.add(p)))})}),d.forEach(y=>s(y)),o()});return m.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>m.disconnect()},[n,a,t,r,e])}const G="remix-manifest-version";async function $e(e,t,r,n,a,i,s,l,o){let h=`${s??"/"}/__manifest`.replace(/\/+/g,"/"),m=new URL(h,window.location.origin);if(e.sort().forEach(p=>m.searchParams.append("p",p)),m.searchParams.set("version",r.version),m.toString().length>rr){H.clear();return}let u;try{let p=await fetch(m,{signal:o});if(p.ok){if(p.status===204&&p.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}if(sessionStorage.getItem(G)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}throw sessionStorage.setItem(G,r.version),window.location.href=t,new Error("Detected manifest version mismatch, reloading...")}else if(p.status>=400)throw new Error(await p.text())}else throw new Error(`${p.status} ${p.statusText}`);sessionStorage.removeItem(G),u=await p.json()}catch(p){if(o!=null&&o.aborted)return;throw p}let d=new Set(Object.keys(r.routes)),y=Object.values(u).reduce((p,g)=>d.has(g.id)?p:Object.assign(p,{[g.id]:g}),{});Object.assign(r.routes,y),e.forEach(p=>ar(p,J));let f=new Set;Object.values(y).forEach(p=>{(!p.parentId||!y[p.parentId])&&f.add(p.parentId)}),f.forEach(p=>l(p||null,ne(y,n,null,a,i,p)))}function ar(e,t){if(t.size>=tr){let r=t.values().next().value;typeof r=="string"&&t.delete(r)}t.add(e)}function ir(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}function Fe(){let e=c.useContext(Ke);return P(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Y(){let e=c.useContext(Ze);return P(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}const Ie=c.createContext(void 0);Ie.displayName="Remix";function T(){let e=c.useContext(Ie);return P(e,"You must render this element inside a <Remix> element"),e}function He(e,t){let[r,n]=c.useState(!1),[a,i]=c.useState(!1),{onFocus:s,onBlur:l,onMouseEnter:o,onMouseLeave:h,onTouchStart:m}=t,u=c.useRef(null);c.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let f=g=>{g.forEach(E=>{i(E.isIntersecting)})},p=new IntersectionObserver(f,{threshold:.5});return u.current&&p.observe(u.current),()=>{p.disconnect()}}},[e]);let d=()=>{e==="intent"&&n(!0)},y=()=>{e==="intent"&&(n(!1),i(!1))};return c.useEffect(()=>{if(r){let f=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(f)}}},[r]),[a,u,{onFocus:C(s,d),onBlur:C(l,y),onMouseEnter:C(o,d),onMouseLeave:C(h,y),onTouchStart:C(m,d)}]}const ie=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function oe(e,t,r){return e==="render"&&!t&&!r?"true":void 0}let or=c.forwardRef(({to:e,prefetch:t="none",discover:r="render",...n},a)=>{let i=typeof e=="string"&&ie.test(e),s=Ee(e),[l,o,h]=He(t,n);return c.createElement(c.Fragment,null,c.createElement(et,L({},n,h,{ref:Me(a,o),to:e,"data-discover":oe(r,i,n.reloadDocument)})),l&&!i?c.createElement(se,{page:s}):null)});or.displayName="NavLink";let lr=c.forwardRef(({to:e,prefetch:t="none",discover:r="render",...n},a)=>{let i=typeof e=="string"&&ie.test(e),s=Ee(e),[l,o,h]=He(t,n);return c.createElement(c.Fragment,null,c.createElement(tt,L({},n,h,{ref:Me(a,o),to:e,"data-discover":oe(r,i,n.reloadDocument)})),l&&!i?c.createElement(se,{page:s}):null)});lr.displayName="Link";let sr=c.forwardRef(({discover:e="render",...t},r)=>{let n=typeof t.action=="string"&&ie.test(t.action);return c.createElement(rt,L({},t,{ref:r,"data-discover":oe(e,n,t.reloadDocument)}))});sr.displayName="Form";function C(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function le(e,t,r){if(r&&!M)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]!==void 0);return e.slice(0,n+1)}return e}function xr(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=T(),{errors:a,matches:i}=Y(),s=le(i,a,e),l=c.useMemo(()=>xt(s,r,t),[s,r,t]);return c.createElement(c.Fragment,null,n?c.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,l.map(({key:o,link:h})=>q(h)?c.createElement(se,L({key:o},h)):c.createElement("link",L({key:o},h))))}function se({page:e,...t}){let{router:r}=Fe(),n=c.useMemo(()=>we(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?c.createElement(cr,L({page:e,matches:n},t)):(console.warn(`Tried to prefetch ${e} but no routes matched.`),null)}function ur(e){let{manifest:t,routeModules:r}=T(),[n,a]=c.useState([]);return c.useEffect(()=>{let i=!1;return Lt(e,t,r).then(s=>{i||a(s)}),()=>{i=!0}},[e,t,r]),n}function cr({page:e,matches:t,...r}){let n=ge(),{future:a,manifest:i,routeModules:s}=T(),{loaderData:l,matches:o}=Y(),h=c.useMemo(()=>ce(e,t,o,i,n,a,"data"),[e,t,o,i,n,a]),m=c.useMemo(()=>{if(!a.v3_singleFetch)return Ot(e,h,i);if(e===n.pathname+n.search+n.hash)return[];let f=new Set,p=!1;if(t.forEach(E=>{var b;i.routes[E.route.id].hasLoader&&(!h.some(x=>x.route.id===E.route.id)&&E.route.id in l&&(b=s[E.route.id])!==null&&b!==void 0&&b.shouldRevalidate||i.routes[E.route.id].hasClientLoader?p=!0:f.add(E.route.id))}),f.size===0)return[];let g=B(e);return p&&f.size>0&&g.searchParams.set("_routes",t.filter(E=>f.has(E.route.id)).map(E=>E.route.id).join(",")),[g.pathname+g.search]},[a.v3_singleFetch,l,n,i,h,t,e,s]),u=c.useMemo(()=>ce(e,t,o,i,n,a,"assets"),[e,t,o,i,n,a]),d=c.useMemo(()=>kt(u,i),[u,i]),y=ur(u);return c.createElement(c.Fragment,null,m.map(f=>c.createElement("link",L({key:f,rel:"prefetch",as:"fetch",href:f},r))),d.map(f=>c.createElement("link",L({key:f,rel:"modulepreload",href:f},r))),y.map(({key:f,link:p})=>c.createElement("link",L({key:f},p))))}function br(){let{isSpaMode:e,routeModules:t}=T(),{errors:r,matches:n,loaderData:a}=Y(),i=ge(),s=le(n,r,e),l=null;r&&(l=r[s[s.length-1].route.id]);let o=[],h=null,m=[];for(let u=0;u<s.length;u++){let d=s[u],y=d.route.id,f=a[y],p=d.params,g=t[y],E=[],b={id:y,data:f,meta:[],params:d.params,pathname:d.pathname,handle:d.route.handle,error:l};if(m[u]=b,g!=null&&g.meta?E=typeof g.meta=="function"?g.meta({data:f,params:p,location:i,matches:m,error:l}):Array.isArray(g.meta)?[...g.meta]:g.meta:h&&(E=[...h]),E=E||[],!Array.isArray(E))throw new Error("The route at "+d.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
127
+ */const H=new Set,tr=1e3,J=new Set,rr=7680;function ae(e,t){return e.v3_lazyRouteDiscovery===!0&&!t}function nr(e,t){let r=new Set(t.state.matches.map(s=>s.route.id)),n=t.state.location.pathname.split("/").filter(Boolean),a=["/"];for(n.pop();n.length>0;)a.push(`/${n.join("/")}`),n.pop();a.forEach(s=>{let l=ve(t.routes,s,t.basename);l&&l.forEach(o=>r.add(o.route.id))});let i=[...r].reduce((s,l)=>Object.assign(s,{[l]:e.routes[l]}),{});return{...e,routes:i}}function Sr(e,t,r,n,a){if(ae(r,n))return async({path:i,patch:s,signal:l,fetcherKey:o})=>{J.has(i)||await $e([i],o?window.location.href:i,e,t,r,n,a,s,l)}}function Rr(e,t,r,n,a){c.useEffect(()=>{var i;if(!ae(n,a)||((i=navigator.connection)===null||i===void 0?void 0:i.saveData)===!0)return;function s(u){let d=u.tagName==="FORM"?u.getAttribute("action"):u.getAttribute("href");if(!d)return;let y=new URL(d,window.location.origin);J.has(y.pathname)||H.add(y.pathname)}async function l(){let u=Array.from(H.keys()).filter(d=>J.has(d)?(H.delete(d),!1):!0);if(u.length!==0)try{await $e(u,null,t,r,n,a,e.basename,e.patchRoutes)}catch(d){console.error("Failed to fetch manifest patches",d)}}document.body.querySelectorAll("a[data-discover], form[data-discover]").forEach(u=>s(u)),l();let o=ir(l,100);function h(u){return u.nodeType===Node.ELEMENT_NODE}let m=new MutationObserver(u=>{let d=new Set;u.forEach(y=>{[y.target,...y.addedNodes].forEach(f=>{h(f)&&((f.tagName==="A"&&f.getAttribute("data-discover")||f.tagName==="FORM"&&f.getAttribute("data-discover"))&&d.add(f),f.tagName!=="A"&&f.querySelectorAll("a[data-discover], form[data-discover]").forEach(p=>d.add(p)))})}),d.forEach(y=>s(y)),o()});return m.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>m.disconnect()},[n,a,t,r,e])}const G="remix-manifest-version";async function $e(e,t,r,n,a,i,s,l,o){let h=`${s??"/"}/__manifest`.replace(/\/+/g,"/"),m=new URL(h,window.location.origin);if(e.sort().forEach(p=>m.searchParams.append("p",p)),m.searchParams.set("version",r.version),m.toString().length>rr){H.clear();return}let u;try{let p=await fetch(m,{signal:o});if(p.ok){if(p.status===204&&p.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}if(sessionStorage.getItem(G)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}throw sessionStorage.setItem(G,r.version),window.location.href=t,new Error("Detected manifest version mismatch, reloading...")}else if(p.status>=400)throw new Error(await p.text())}else throw new Error(`${p.status} ${p.statusText}`);sessionStorage.removeItem(G),u=await p.json()}catch(p){if(o!=null&&o.aborted)return;throw p}let d=new Set(Object.keys(r.routes)),y=Object.values(u).reduce((p,g)=>d.has(g.id)?p:Object.assign(p,{[g.id]:g}),{});Object.assign(r.routes,y),e.forEach(p=>ar(p,J));let f=new Set;Object.values(y).forEach(p=>{(!p.parentId||!y[p.parentId])&&f.add(p.parentId)}),f.forEach(p=>l(p||null,ne(y,n,null,a,i,p)))}function ar(e,t){if(t.size>=tr){let r=t.values().next().value;typeof r=="string"&&t.delete(r)}t.add(e)}function ir(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}function Fe(){let e=c.useContext(Ke);return P(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Y(){let e=c.useContext(Ze);return P(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}const Ie=c.createContext(void 0);Ie.displayName="Remix";function T(){let e=c.useContext(Ie);return P(e,"You must render this element inside a <Remix> element"),e}function He(e,t){let[r,n]=c.useState(!1),[a,i]=c.useState(!1),{onFocus:s,onBlur:l,onMouseEnter:o,onMouseLeave:h,onTouchStart:m}=t,u=c.useRef(null);c.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let f=g=>{g.forEach(E=>{i(E.isIntersecting)})},p=new IntersectionObserver(f,{threshold:.5});return u.current&&p.observe(u.current),()=>{p.disconnect()}}},[e]);let d=()=>{e==="intent"&&n(!0)},y=()=>{e==="intent"&&(n(!1),i(!1))};return c.useEffect(()=>{if(r){let f=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(f)}}},[r]),[a,u,{onFocus:C(s,d),onBlur:C(l,y),onMouseEnter:C(o,d),onMouseLeave:C(h,y),onTouchStart:C(m,d)}]}const ie=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function oe(e,t,r){return e==="render"&&!t&&!r?"true":void 0}let or=c.forwardRef(({to:e,prefetch:t="none",discover:r="render",...n},a)=>{let i=typeof e=="string"&&ie.test(e),s=Ee(e),[l,o,h]=He(t,n);return c.createElement(c.Fragment,null,c.createElement(et,L({},n,h,{ref:Me(a,o),to:e,"data-discover":oe(r,i,n.reloadDocument)})),l&&!i?c.createElement(se,{page:s}):null)});or.displayName="NavLink";let lr=c.forwardRef(({to:e,prefetch:t="none",discover:r="render",...n},a)=>{let i=typeof e=="string"&&ie.test(e),s=Ee(e),[l,o,h]=He(t,n);return c.createElement(c.Fragment,null,c.createElement(tt,L({},n,h,{ref:Me(a,o),to:e,"data-discover":oe(r,i,n.reloadDocument)})),l&&!i?c.createElement(se,{page:s}):null)});lr.displayName="Link";let sr=c.forwardRef(({discover:e="render",...t},r)=>{let n=typeof t.action=="string"&&ie.test(t.action);return c.createElement(rt,L({},t,{ref:r,"data-discover":oe(e,n,t.reloadDocument)}))});sr.displayName="Form";function C(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function le(e,t,r){if(r&&!M)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]!==void 0);return e.slice(0,n+1)}return e}function xr(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=T(),{errors:a,matches:i}=Y(),s=le(i,a,e),l=c.useMemo(()=>xt(s,r,t),[s,r,t]);return c.createElement(c.Fragment,null,n?c.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,l.map(({key:o,link:h})=>q(h)?c.createElement(se,L({key:o},h)):c.createElement("link",L({key:o},h))))}function se({page:e,...t}){let{router:r}=Fe(),n=c.useMemo(()=>ve(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?c.createElement(cr,L({page:e,matches:n},t)):(console.warn(`Tried to prefetch ${e} but no routes matched.`),null)}function ur(e){let{manifest:t,routeModules:r}=T(),[n,a]=c.useState([]);return c.useEffect(()=>{let i=!1;return Lt(e,t,r).then(s=>{i||a(s)}),()=>{i=!0}},[e,t,r]),n}function cr({page:e,matches:t,...r}){let n=ge(),{future:a,manifest:i,routeModules:s}=T(),{loaderData:l,matches:o}=Y(),h=c.useMemo(()=>ce(e,t,o,i,n,a,"data"),[e,t,o,i,n,a]),m=c.useMemo(()=>{if(!a.v3_singleFetch)return Ot(e,h,i);if(e===n.pathname+n.search+n.hash)return[];let f=new Set,p=!1;if(t.forEach(E=>{var b;i.routes[E.route.id].hasLoader&&(!h.some(x=>x.route.id===E.route.id)&&E.route.id in l&&(b=s[E.route.id])!==null&&b!==void 0&&b.shouldRevalidate||i.routes[E.route.id].hasClientLoader?p=!0:f.add(E.route.id))}),f.size===0)return[];let g=B(e);return p&&f.size>0&&g.searchParams.set("_routes",t.filter(E=>f.has(E.route.id)).map(E=>E.route.id).join(",")),[g.pathname+g.search]},[a.v3_singleFetch,l,n,i,h,t,e,s]),u=c.useMemo(()=>ce(e,t,o,i,n,a,"assets"),[e,t,o,i,n,a]),d=c.useMemo(()=>kt(u,i),[u,i]),y=ur(u);return c.createElement(c.Fragment,null,m.map(f=>c.createElement("link",L({key:f,rel:"prefetch",as:"fetch",href:f},r))),d.map(f=>c.createElement("link",L({key:f,rel:"modulepreload",href:f},r))),y.map(({key:f,link:p})=>c.createElement("link",L({key:f},p))))}function br(){let{isSpaMode:e,routeModules:t}=T(),{errors:r,matches:n,loaderData:a}=Y(),i=ge(),s=le(n,r,e),l=null;r&&(l=r[s[s.length-1].route.id]);let o=[],h=null,m=[];for(let u=0;u<s.length;u++){let d=s[u],y=d.route.id,f=a[y],p=d.params,g=t[y],E=[],b={id:y,data:f,meta:[],params:d.params,pathname:d.pathname,handle:d.route.handle,error:l};if(m[u]=b,g!=null&&g.meta?E=typeof g.meta=="function"?g.meta({data:f,params:p,location:i,matches:m,error:l}):Array.isArray(g.meta)?[...g.meta]:g.meta:h&&(E=[...h]),E=E||[],!Array.isArray(E))throw new Error("The route at "+d.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
128
128
 
129
- To reference the meta function API, see https://remix.run/route/meta`);b.meta=E,m[u]=b,o=[...E],h=o}return c.createElement(c.Fragment,null,o.flat().map(u=>{if(!u)return null;if("tagName"in u){let{tagName:d,...y}=u;if(!dr(d))return console.warn(`A meta object uses an invalid tagName: ${d}. Expected either 'link' or 'meta'`),null;let f=d;return c.createElement(f,L({key:JSON.stringify(y)},y))}if("title"in u)return c.createElement("title",{key:"title"},String(u.title));if("charset"in u&&(u.charSet??(u.charSet=u.charset),delete u.charset),"charSet"in u&&u.charSet!=null)return typeof u.charSet=="string"?c.createElement("meta",{key:"charSet",charSet:u.charSet}):null;if("script:ld+json"in u)try{let d=JSON.stringify(u["script:ld+json"]);return c.createElement("script",{key:`script:ld+json:${d}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:d}})}catch{return null}return c.createElement("meta",L({key:JSON.stringify(u)},u))}))}function dr(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}function fr(e){return c.createElement(Qe,e)}let M=!1;function hr(e){let{manifest:t,serverHandoffString:r,abortDelay:n,serializeError:a,isSpaMode:i,future:s,renderMeta:l}=T(),{router:o,static:h,staticContext:m}=Fe(),{matches:u}=Y(),d=ae(s,i);l&&(l.didRenderScripts=!0);let y=le(u,null,i);c.useEffect(()=>{M=!0},[]);let f=(v,R)=>{let _;return a&&R instanceof Error?_=a(R):_=R,`${JSON.stringify(v)}:__remixContext.p(!1, ${F(JSON.stringify(_))})`},p=(v,R,_)=>{let O;try{O=JSON.stringify(_)}catch(A){return f(R,A)}return`${JSON.stringify(R)}:__remixContext.p(${F(O)})`},g=(v,R,_)=>{let O;return a&&_ instanceof Error?O=a(_):O=_,`__remixContext.r(${JSON.stringify(v)}, ${JSON.stringify(R)}, !1, ${F(JSON.stringify(O))})`},E=(v,R,_)=>{let O;try{O=JSON.stringify(_)}catch(A){return g(v,R,A)}return`__remixContext.r(${JSON.stringify(v)}, ${JSON.stringify(R)}, ${F(O)})`},b=[],x=c.useMemo(()=>{var v;let R=s.v3_singleFetch?"window.__remixContext.stream = new ReadableStream({start(controller){window.__remixContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());":"",_=m?`window.__remixContext = ${r};${R}`:" ",O=s.v3_singleFetch||m==null?void 0:m.activeDeferreds;_+=O?["__remixContext.p = function(v,e,p,x) {"," if (typeof e !== 'undefined') {",` x=new Error("Unexpected Server Error");
129
+ To reference the meta function API, see https://remix.run/route/meta`);b.meta=E,m[u]=b,o=[...E],h=o}return c.createElement(c.Fragment,null,o.flat().map(u=>{if(!u)return null;if("tagName"in u){let{tagName:d,...y}=u;if(!dr(d))return console.warn(`A meta object uses an invalid tagName: ${d}. Expected either 'link' or 'meta'`),null;let f=d;return c.createElement(f,L({key:JSON.stringify(y)},y))}if("title"in u)return c.createElement("title",{key:"title"},String(u.title));if("charset"in u&&(u.charSet??(u.charSet=u.charset),delete u.charset),"charSet"in u&&u.charSet!=null)return typeof u.charSet=="string"?c.createElement("meta",{key:"charSet",charSet:u.charSet}):null;if("script:ld+json"in u)try{let d=JSON.stringify(u["script:ld+json"]);return c.createElement("script",{key:`script:ld+json:${d}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:j(d)}})}catch{return null}return c.createElement("meta",L({key:JSON.stringify(u)},u))}))}function dr(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}function fr(e){return c.createElement(Qe,e)}let M=!1;function hr(e){let{manifest:t,serverHandoffString:r,abortDelay:n,serializeError:a,isSpaMode:i,future:s,renderMeta:l}=T(),{router:o,static:h,staticContext:m}=Fe(),{matches:u}=Y(),d=ae(s,i);l&&(l.didRenderScripts=!0);let y=le(u,null,i);c.useEffect(()=>{M=!0},[]);let f=(w,R)=>{let _;return a&&R instanceof Error?_=a(R):_=R,`${JSON.stringify(w)}:__remixContext.p(!1, ${j(JSON.stringify(_))})`},p=(w,R,_)=>{let O;try{O=JSON.stringify(_)}catch(A){return f(R,A)}return`${JSON.stringify(R)}:__remixContext.p(${j(O)})`},g=(w,R,_)=>{let O;return a&&_ instanceof Error?O=a(_):O=_,`__remixContext.r(${JSON.stringify(w)}, ${JSON.stringify(R)}, !1, ${j(JSON.stringify(O))})`},E=(w,R,_)=>{let O;try{O=JSON.stringify(_)}catch(A){return g(w,R,A)}return`__remixContext.r(${JSON.stringify(w)}, ${JSON.stringify(R)}, ${j(O)})`},b=[],x=c.useMemo(()=>{var w;let R=s.v3_singleFetch?"window.__remixContext.stream = new ReadableStream({start(controller){window.__remixContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());":"",_=m?`window.__remixContext = ${r};${R}`:" ",O=s.v3_singleFetch||m==null?void 0:m.activeDeferreds;_+=O?["__remixContext.p = function(v,e,p,x) {"," if (typeof e !== 'undefined') {",` x=new Error("Unexpected Server Error");
130
130
  x.stack=undefined;`," p=Promise.reject(x);"," } else {"," p=Promise.resolve(v);"," }"," return p;","};","__remixContext.n = function(i,k) {"," __remixContext.t = __remixContext.t || {};"," __remixContext.t[i] = __remixContext.t[i] || {};"," let p = new Promise((r, e) => {__remixContext.t[i][k] = {r:(v)=>{r(v);},e:(v)=>{e(v);}};});",typeof n=="number"?`setTimeout(() => {if(typeof p._error !== "undefined" || typeof p._data !== "undefined"){return;} __remixContext.t[i][k].e(new Error("Server timeout."))}, ${n});`:""," return p;","};","__remixContext.r = function(i,k,v,e,p,x) {"," p = __remixContext.t[i][k];"," if (typeof e !== 'undefined') {",` x=new Error("Unexpected Server Error");
131
131
  x.stack=undefined;`," p.e(x);"," } else {"," p.r(v);"," }","};"].join(`
132
132
  `)+Object.entries(O).map(([k,D])=>{let Ue=new Set(D.pendingKeys),Je=D.deferredKeys.map(N=>{if(Ue.has(N))return b.push(c.createElement(ye,{key:`${k} | ${N}`,deferredData:D,routeId:k,dataKey:N,scriptProps:e,serializeData:E,serializeError:g})),`${JSON.stringify(N)}:__remixContext.n(${JSON.stringify(k)}, ${JSON.stringify(N)})`;{let X=D.data[N];return typeof X._error<"u"?f(N,X._error):p(k,N,X._data)}}).join(`,
133
133
  `);return`Object.assign(__remixContext.state.loaderData[${JSON.stringify(k)}], {${Je}});`}).join(`
134
- `)+(b.length>0?`__remixContext.a=${b.length};`:""):"";let A=h?`${(v=t.hmr)!==null&&v!==void 0&&v.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${d?"":`import ${JSON.stringify(t.url)}`};
134
+ `)+(b.length>0?`__remixContext.a=${b.length};`:""):"";let A=h?`${(w=t.hmr)!==null&&w!==void 0&&w.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${d?"":`import ${JSON.stringify(t.url)}`};
135
135
  ${y.map((k,D)=>`import * as route${D} from ${JSON.stringify(t.routes[k.route.id].module)};`).join(`
136
136
  `)}
137
137
  ${d?`window.__remixManifest = ${JSON.stringify(nr(t,o),null,2)};`:""}
138
138
  window.__remixRouteModules = {${y.map((k,D)=>`${JSON.stringify(k.route.id)}:route${D}`).join(",")}};
139
139
 
140
- import(${JSON.stringify(t.entry.module)});`:" ";return c.createElement(c.Fragment,null,c.createElement("script",L({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:de(_),type:void 0})),c.createElement("script",L({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:de(A),type:"module",async:!0})))},[]);if(!h&&typeof __remixContext=="object"&&__remixContext.a)for(let v=0;v<__remixContext.a;v++)b.push(c.createElement(ye,{key:v,scriptProps:e,serializeData:E,serializeError:g}));let w=y.map(v=>{let R=t.routes[v.route.id];return(R.imports||[]).concat([R.module])}).flat(1),S=M?[]:t.entry.imports.concat(w);return M?null:c.createElement(c.Fragment,null,d?null:c.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),c.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),yr(S).map(v=>c.createElement("link",{key:v,rel:"modulepreload",href:v,crossOrigin:e.crossOrigin})),x,b)}function ye({dataKey:e,deferredData:t,routeId:r,scriptProps:n,serializeData:a,serializeError:i}){return typeof document>"u"&&t&&e&&r&&P(t.pendingKeys.includes(e),`Deferred data for route ${r} with key ${e} was not pending but tried to render a script for it.`),c.createElement(c.Suspense,{fallback:typeof document>"u"&&t&&e&&r?null:c.createElement("script",L({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&t&&e&&r?c.createElement(fr,{resolve:t.data[e],errorElement:c.createElement(mr,{dataKey:e,routeId:r,scriptProps:n,serializeError:i}),children:s=>c.createElement("script",L({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a(r,e,s)}}))}):c.createElement("script",L({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function mr({dataKey:e,routeId:t,scriptProps:r,serializeError:n}){let a=qe();return c.createElement("script",L({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,a)}}))}function yr(e){return[...new Set(e)]}function Me(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}export{xr as L,br as M,Ie as R,hr as S,L as _,wr as a,Er as b,ne as c,Xt as d,gr as e,T as f,Sr as g,P as i,er as s,Rr as u};
140
+ import(${JSON.stringify(t.entry.module)});`:" ";return c.createElement(c.Fragment,null,c.createElement("script",L({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:de(_),type:void 0})),c.createElement("script",L({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:de(A),type:"module",async:!0})))},[]);if(!h&&typeof __remixContext=="object"&&__remixContext.a)for(let w=0;w<__remixContext.a;w++)b.push(c.createElement(ye,{key:w,scriptProps:e,serializeData:E,serializeError:g}));let v=y.map(w=>{let R=t.routes[w.route.id];return(R.imports||[]).concat([R.module])}).flat(1),S=M?[]:t.entry.imports.concat(v);return M?null:c.createElement(c.Fragment,null,d?null:c.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),c.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),yr(S).map(w=>c.createElement("link",{key:w,rel:"modulepreload",href:w,crossOrigin:e.crossOrigin})),x,b)}function ye({dataKey:e,deferredData:t,routeId:r,scriptProps:n,serializeData:a,serializeError:i}){return typeof document>"u"&&t&&e&&r&&P(t.pendingKeys.includes(e),`Deferred data for route ${r} with key ${e} was not pending but tried to render a script for it.`),c.createElement(c.Suspense,{fallback:typeof document>"u"&&t&&e&&r?null:c.createElement("script",L({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&t&&e&&r?c.createElement(fr,{resolve:t.data[e],errorElement:c.createElement(mr,{dataKey:e,routeId:r,scriptProps:n,serializeError:i}),children:s=>c.createElement("script",L({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a(r,e,s)}}))}):c.createElement("script",L({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function mr({dataKey:e,routeId:t,scriptProps:r,serializeError:n}){let a=qe();return c.createElement("script",L({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,a)}}))}function yr(e){return[...new Set(e)]}function Me(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}export{xr as L,br as M,Ie as R,hr as S,L as _,vr as a,Er as b,ne as c,Xt as d,gr as e,T as f,Sr as g,j as h,P as i,er as s,Rr as u};
@@ -1,5 +1,5 @@
1
- import{E as C,m as h,c as M,a as y,r,R as g,b as E,d as S,j as v}from"./index-DzNKzXrc.js";import{i as b,d as F,c as P,s as D,g as k,a as z,b as H,u as L,R as O,e as T}from"./components-Rk0n-9cK.js";/**
2
- * @remix-run/react v2.16.2
1
+ import{E as C,m as h,c as M,a as y,r,R as g,b as E,d as S,j as v}from"./index-CnFykb2v.js";import{i as b,d as F,c as P,s as D,g as k,a as z,b as H,u as L,R as O,e as T}from"./components-CaC6hG8d.js";/**
2
+ * @remix-run/react v2.17.4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -8,7 +8,7 @@ import{E as C,m as h,c as M,a as y,r,R as g,b as E,d as S,j as v}from"./index-Dz
8
8
  *
9
9
  * @license MIT
10
10
  */function j(n){if(!n)return null;let x=Object.entries(n),u={};for(let[a,e]of x)if(e&&e.__type==="RouteErrorResponse")u[a]=new C(e.status,e.statusText,e.data,e.internal===!0);else if(e&&e.__type==="Error"){if(e.__subType){let i=window[e.__subType];if(typeof i=="function")try{let o=new i(e.message);o.stack=e.stack,u[a]=o}catch{}}if(u[a]==null){let i=new Error(e.message);i.stack=e.stack,u[a]=i}}else u[a]=e;return u}/**
11
- * @remix-run/react v2.16.2
11
+ * @remix-run/react v2.17.4
12
12
  *
13
13
  * Copyright (c) Remix Software Inc.
14
14
  *