ragbits-chat 1.4.0.dev202601300258__tar.gz → 1.4.0.dev202602030301__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/CHANGELOG.md +2 -1
  2. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/PKG-INFO +2 -2
  3. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/pyproject.toml +2 -2
  4. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/api.py +60 -0
  5. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/cli.py +22 -9
  6. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/interface/types.py +3 -2
  7. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/AuthGuard-FL2hbNSz.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/AuthGuard-D7E88Uir.js +1 -1
  8. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/ChatHistory-LRndyrq0.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/ChatHistory-D8uJ-pWz.js +2 -2
  9. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/ChatOptionsForm-C7AySsjS.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/ChatOptionsForm-D2BdUqMs.js +1 -1
  10. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/CredentialsLogin-CjWUo2_0.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/CredentialsLogin-CEserYG_.js +1 -1
  11. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/FeedbackForm-BLuzDSTy.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/FeedbackForm-CihcDF7p.js +1 -1
  12. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/Login-CGHnIvPP.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/Login-DKdY_IGp.js +1 -1
  13. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/LogoutButton-C-wYL6PH.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/LogoutButton-ibzVLLAx.js +1 -1
  14. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/OAuth2Login-CJdQ3WzG.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/OAuth2Login-DepasZu7.js +1 -1
  15. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/ShareButton-Cc7tfnmL.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/ShareButton-BzNoTpD6.js +1 -1
  16. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/UploadButton-_aV-toOW.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/UploadButton-CfKYWcd6.js +1 -1
  17. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/UsageButton-CE7BRQcH.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/UsageButton-ByH8ZKPy.js +1 -1
  18. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/authStore-AVyfzjgs.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/authStore-BIM9JG1Q.js +1 -1
  19. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-BBfo0QFa.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-CbPuRduG.js +1 -1
  20. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-D3GKTPj0.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-DO9BwTof.js +1 -1
  21. ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/index-B-4qdttP.js +1 -0
  22. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/index-DTNGcmXG.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/index-CSaYkt4U.js +2 -2
  23. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/index-CbVbgerL.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/index-Cyzr1kIj.js +5 -5
  24. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/index-B-LIlvZN.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/index-W9apL6ID.js +1 -1
  25. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/useInitializeUserStore-CVYyhiv3.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/useInitializeUserStore-Be1mCLhv.js +1 -1
  26. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/useMenuTriggerState-C5916IcO.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/useMenuTriggerState-DRPPkuuB.js +1 -1
  27. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/useSelectableItem-BWC6EImE.js → ragbits_chat-1.4.0.dev202602030301/src/ragbits/chat/ui-build/assets/useSelectableItem-BHUz-f5B.js +1 -1
  28. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/ui-build/index.html +1 -1
  29. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/test_api.py +43 -0
  30. ragbits_chat-1.4.0.dev202601300258/src/ragbits/chat/ui-build/assets/index-BcnaGCUm.js +0 -1
  31. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/.gitignore +0 -0
  32. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/README.md +0 -0
  33. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/__init__.py +0 -0
  34. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/_utils.py +0 -0
  35. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/auth/__init__.py +0 -0
  36. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/auth/backends.py +0 -0
  37. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/auth/base.py +0 -0
  38. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/auth/oauth2_providers.py +0 -0
  39. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/auth/provider_config.py +0 -0
  40. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/auth/session_store.py +0 -0
  41. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/auth/types.py +0 -0
  42. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/client/__init__.py +0 -0
  43. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/client/client.py +0 -0
  44. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/client/conversation.py +0 -0
  45. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/client/exceptions.py +0 -0
  46. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/config.py +0 -0
  47. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/history/__init__.py +0 -0
  48. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/history/compressors/__init__.py +0 -0
  49. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/history/compressors/base.py +0 -0
  50. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/history/compressors/llm.py +0 -0
  51. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/interface/__init__.py +0 -0
  52. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/interface/_interface.py +0 -0
  53. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/interface/forms.py +0 -0
  54. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/interface/summary.py +0 -0
  55. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/interface/ui_customization.py +0 -0
  56. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/metrics.py +0 -0
  57. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/persistence/__init__.py +0 -0
  58. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/persistence/base.py +0 -0
  59. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/persistence/file.py +0 -0
  60. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/persistence/sql.py +0 -0
  61. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/providers/__init__.py +0 -0
  62. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/providers/model_provider.py +0 -0
  63. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/py.typed +0 -0
  64. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/src/ragbits/chat/ui-build/assets/index-B1u136LF.css +0 -0
  65. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/auth/test_list_auth_backend.py +0 -0
  66. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/auth/test_session_store.py +0 -0
  67. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/history/test_llm_compressor.py +0 -0
  68. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/persistence/test_sql.py +0 -0
  69. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/test_chat_client.py +0 -0
  70. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/test_conversation.py +0 -0
  71. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/test_error_response.py +0 -0
  72. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/test_generic_custom_response.py +0 -0
  73. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/test_types.py +0 -0
  74. {ragbits_chat-1.4.0.dev202601300258 → ragbits_chat-1.4.0.dev202602030301}/tests/unit/test_upload.py +0 -0
@@ -1,6 +1,7 @@
1
1
  # CHANGELOG
2
2
 
3
3
  ## Unreleased
4
+ - Autoreload support for UI during development (#924)
4
5
  - Decoupling of components from ragbits specific logic. Introduction of slot based plugin architecture. Minimal history store implementation (#917)
5
6
  - Add timezone field to ChatContext, automatically populated from browser (#916)
6
7
  - Fix PostgreSQL conversation persistence by ensuring session flush after creating new conversation in SQL storage (#903)
@@ -15,7 +16,7 @@
15
16
  - CI/CD for nightlty builds improvements (#874)
16
17
  - Add automatic topic extraction to be used as conversation title with ability to edit in the client side (#840)
17
18
  - Add todo list component to the UI, add support for todo events in API (#827)
18
- - Add support for confirmation requests in chat (#853)
19
+ - Add support for confirmation requests in chat (#853) (#914)
19
20
  - customizable HeroUI theme (#841)
20
21
  - Add error response type to the chat interface with ability to display error messages to the user (#878)
21
22
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ragbits-chat
3
- Version: 1.4.0.dev202601300258
3
+ Version: 1.4.0.dev202602030301
4
4
  Summary: Building blocks for rapid development of GenAI applications
5
5
  Project-URL: Homepage, https://github.com/deepsense-ai/ragbits
6
6
  Project-URL: Bug Reports, https://github.com/deepsense-ai/ragbits/issues
@@ -26,7 +26,7 @@ Requires-Dist: bcrypt>=4.2.0
26
26
  Requires-Dist: fastapi<1.0.0,>=0.115.0
27
27
  Requires-Dist: httpx<1.0.0,>=0.28.1
28
28
  Requires-Dist: python-jose[cryptography]>=3.5.0
29
- Requires-Dist: ragbits-core==1.4.0.dev202601300258
29
+ Requires-Dist: ragbits-core==1.4.0.dev202602030301
30
30
  Requires-Dist: uvicorn<1.0.0,>=0.31.0
31
31
  Provides-Extra: sql
32
32
  Requires-Dist: sqlalchemy<3.0.0,>=2.0.39; extra == 'sql'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ragbits-chat"
3
- version = "1.4.0.dev202601300258"
3
+ version = "1.4.0.dev202602030301"
4
4
  description = "Building blocks for rapid development of GenAI applications"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -31,7 +31,7 @@ classifiers = [
31
31
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
32
32
  "Topic :: Software Development :: Libraries :: Python Modules",
33
33
  ]
34
- dependencies = ["fastapi>=0.115.0,<1.0.0", "uvicorn>=0.31.0,<1.0.0", "httpx>=0.28.1,<1.0.0", "bcrypt>=4.2.0", "python-jose[cryptography]>=3.5.0", "ragbits-core==1.4.0.dev202601300258"]
34
+ dependencies = ["fastapi>=0.115.0,<1.0.0", "uvicorn>=0.31.0,<1.0.0", "httpx>=0.28.1,<1.0.0", "bcrypt>=4.2.0", "python-jose[cryptography]>=3.5.0", "ragbits-core==1.4.0.dev202602030301"]
35
35
 
36
36
  [project.urls]
37
37
  "Homepage" = "https://github.com/deepsense-ai/ragbits"
@@ -3,6 +3,7 @@ import importlib
3
3
  import json
4
4
  import logging
5
5
  import re
6
+ import tempfile
6
7
  import time
7
8
  from collections.abc import AsyncGenerator
8
9
  from contextlib import asynccontextmanager, suppress
@@ -944,9 +945,68 @@ class RagbitsAPI:
944
945
  def run(self, host: str = "127.0.0.1", port: int = 8000) -> None:
945
946
  """
946
947
  Used for starting the API
948
+
949
+ Args:
950
+ host: Host to bind the API server to
951
+ port: Port to bind the API server to
947
952
  """
948
953
  uvicorn.run(self.app, host=host, port=port)
949
954
 
955
+ @staticmethod
956
+ def run_with_reload(
957
+ host: str,
958
+ port: int,
959
+ chat_interface: str | None = None,
960
+ cors_origins: list[str] | None = None,
961
+ ui_build_dir: str | None = None,
962
+ debug_mode: bool = False,
963
+ auth_backend: str | None = None,
964
+ theme_path: str | None = None,
965
+ ) -> None:
966
+ """
967
+ Run the API server with auto-reload enabled for development.
968
+
969
+ This method creates a temporary Python file with the API configuration
970
+ that uvicorn can import and reload when code changes are detected.
971
+
972
+ Args:
973
+ host: Host to bind the API server to
974
+ port: Port to bind the API server to
975
+ chat_interface: Path to chat interface module
976
+ cors_origins: List of allowed CORS origins
977
+ ui_build_dir: Path to custom UI build directory
978
+ debug_mode: Enable debug mode
979
+ auth_backend: Path to authentication backend module
980
+ theme_path: Path to theme configuration file
981
+ """
982
+ temp_file_path: Path | None = None
983
+ try:
984
+ with tempfile.NamedTemporaryFile(
985
+ mode="w", suffix=".py", delete=False, dir=".", prefix="_ragbits_app_"
986
+ ) as temp_file:
987
+ temp_file_path = Path(temp_file.name)
988
+ temp_file.write(
989
+ f"""# Auto-generated file for ragbits reload mode - DO NOT EDIT
990
+ from ragbits.chat.api import RagbitsAPI
991
+
992
+ api = RagbitsAPI(
993
+ chat_interface={repr(chat_interface)},
994
+ cors_origins={repr(cors_origins)},
995
+ ui_build_dir={repr(ui_build_dir)},
996
+ debug_mode={repr(debug_mode)},
997
+ auth_backend={repr(auth_backend)},
998
+ theme_path={repr(theme_path)},
999
+ )
1000
+ app = api.app
1001
+ """
1002
+ )
1003
+
1004
+ module_name = temp_file_path.stem
1005
+ uvicorn.run(f"{module_name}:app", host=host, port=port, reload=True)
1006
+ finally:
1007
+ if temp_file_path:
1008
+ temp_file_path.unlink(missing_ok=True)
1009
+
950
1010
  @staticmethod
951
1011
  def _convert_heroui_json_to_css(json_content: str) -> str:
952
1012
  """Convert HeroUI JSON theme configuration to CSS variables."""
@@ -37,16 +37,29 @@ def run(
37
37
  "--theme",
38
38
  help="Path to a HeroUI theme JSON file from heroui.com/themes",
39
39
  ),
40
+ reload: bool = typer.Option(False, "--reload", help="Enable auto-reload on code changes for debugging"),
40
41
  ) -> None:
41
42
  """
42
43
  Run API service with UI demo
43
44
  """
44
- api = RagbitsAPI(
45
- chat_interface=chat_interface,
46
- cors_origins=cors_origins,
47
- ui_build_dir=ui_build_dir,
48
- debug_mode=debug_mode,
49
- auth_backend=auth,
50
- theme_path=theme,
51
- )
52
- api.run(host=host, port=port)
45
+ if reload:
46
+ RagbitsAPI.run_with_reload(
47
+ host=host,
48
+ port=port,
49
+ chat_interface=chat_interface,
50
+ cors_origins=cors_origins,
51
+ ui_build_dir=ui_build_dir,
52
+ debug_mode=debug_mode,
53
+ auth_backend=auth,
54
+ theme_path=theme,
55
+ )
56
+ else:
57
+ api = RagbitsAPI(
58
+ chat_interface=chat_interface,
59
+ cors_origins=cors_origins,
60
+ ui_build_dir=ui_build_dir,
61
+ debug_mode=debug_mode,
62
+ auth_backend=auth,
63
+ theme_path=theme,
64
+ )
65
+ api.run(host=host, port=port)
@@ -311,9 +311,10 @@ class ChatContext(BaseModel):
311
311
  state: dict[str, Any] = Field(default_factory=dict)
312
312
  user: User | None = None
313
313
  session_id: str | None = None
314
- confirmed_tools: list[dict[str, Any]] | None = Field(
314
+ tool_confirmations: list[dict[str, Any]] | None = Field(
315
315
  default=None,
316
- description="List of confirmed/declined tools from the frontend",
316
+ description="List of confirmed/declined tool executions from the frontend. Each entry has 'confirmation_id' "
317
+ "and 'confirmed' (bool)",
317
318
  )
318
319
  timezone: str | None = Field(
319
320
  default=None,
@@ -1 +1 @@
1
- import{r as h,j as e,aW as c,aE as p,c as S,bo as x,bp as l,bq as d,br as m,bs as b}from"./index-CbVbgerL.js";import{a}from"./authStore-AVyfzjgs.js";import{u as j}from"./useInitializeUserStore-CVYyhiv3.js";const v=h.createContext(null);function y({children:t}){const[o]=h.useState(()=>a);return e.jsx(v.Provider,{value:o,children:t})}function U(){const{logout:t,login:o,setHydrated:u}=c(a,f=>f),i=j(),n=p(),s=S("/api/user"),g=x();return h.useEffect(()=>{(async()=>{try{const r=await s.call();r?(o(r),i?i(r.user_id):console.error("Failed to initialize store for user, initializeUserStore() is not defined. Check current HistoryStoreContextProvider implementation."),g.pathname==="/login"&&n("/")):t()}catch(r){console.error("Failed to check session:",r),t(),n("/login")}finally{u()}})()},[]),null}function P({children:t}){const o=x(),u=c(a,s=>s.isAuthenticated),i=c(a,s=>s.hasHydrated),n=c(a,s=>s.logout);return i?o.pathname==="/login"?e.jsx(l,{baseUrl:d,auth:{credentials:"include"},children:t}):u?e.jsx(y,{children:e.jsx(l,{baseUrl:d,auth:{onUnauthorized:n,credentials:"include"},children:t})}):e.jsx(b,{to:"/login",replace:!0}):e.jsxs(l,{baseUrl:d,auth:{credentials:"include"},children:[e.jsx(U,{}),e.jsx(m,{})]})}export{P as default};
1
+ import{r as h,j as e,aW as c,aE as p,c as S,bo as x,bp as l,bq as d,br as m,bs as b}from"./index-Cyzr1kIj.js";import{a}from"./authStore-BIM9JG1Q.js";import{u as j}from"./useInitializeUserStore-Be1mCLhv.js";const v=h.createContext(null);function y({children:t}){const[o]=h.useState(()=>a);return e.jsx(v.Provider,{value:o,children:t})}function U(){const{logout:t,login:o,setHydrated:u}=c(a,f=>f),i=j(),n=p(),s=S("/api/user"),g=x();return h.useEffect(()=>{(async()=>{try{const r=await s.call();r?(o(r),i?i(r.user_id):console.error("Failed to initialize store for user, initializeUserStore() is not defined. Check current HistoryStoreContextProvider implementation."),g.pathname==="/login"&&n("/")):t()}catch(r){console.error("Failed to check session:",r),t(),n("/login")}finally{u()}})()},[]),null}function P({children:t}){const o=x(),u=c(a,s=>s.isAuthenticated),i=c(a,s=>s.hasHydrated),n=c(a,s=>s.logout);return i?o.pathname==="/login"?e.jsx(l,{baseUrl:d,auth:{credentials:"include"},children:t}):u?e.jsx(y,{children:e.jsx(l,{baseUrl:d,auth:{onUnauthorized:n,credentials:"include"},children:t})}):e.jsx(b,{to:"/login",replace:!0}):e.jsxs(l,{baseUrl:d,auth:{credentials:"include"},children:[e.jsx(U,{}),e.jsx(m,{})]})}export{P as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BcnaGCUm.js","assets/index-CbVbgerL.js","assets/index-B1u136LF.css"])))=>i.map(i=>d[i]);
2
- import{r as P,t as ae,k as Xe,Z as W,ax as Me,$ as Ze,j as t,q as me,L as xe,_ as Ye,n as ye,T as Pe,s as et,v as R,V as tt,d as X,l as se,aq as Ie,o as ot,H as ke,a9 as rt,J as Ne,ay as at,ac as pe,U as st,X as _e,af as he,az as nt,aA as lt,ag as it,K as dt,O as be,Q as ct,W as ut,a0 as pt,ah as ft,a2 as K,a3 as Ae,ai as vt,R as ht,aB as bt,a8 as gt,aC as mt,aD as xt,a5 as yt,a as Pt,aE as Ct,i as fe,aF as Ce,aG as ve,D as we,I as Q,as as wt,aH as $t,aI as $e}from"./index-CbVbgerL.js";import{u as jt,b as St,c as je,d as Dt,e as Mt,m as It,$ as kt,a as Nt}from"./useMenuTriggerState-C5916IcO.js";import{$ as _t}from"./useSelectableItem-BWC6EImE.js";import{i as At}from"./chunk-SSA7SXE4-D3GKTPj0.js";var Ot=(e,r)=>{var n;let s=[];const a=(n=P.Children.map(e,d=>P.isValidElement(d)&&d.type===r?(s.push(d),null):d))==null?void 0:n.filter(Boolean),u=s.length>=0?s:void 0;return[a,u]},Ft=ae({base:["w-full","p-1","min-w-[200px]"]});ae({slots:{base:["flex","group","gap-2","items-center","justify-between","relative","px-2","py-1.5","w-full","h-full","box-border","rounded-small","outline-hidden","cursor-pointer","tap-highlight-transparent","data-[pressed=true]:opacity-70",...Xe,"data-[focus-visible=true]:dark:ring-offset-background-content1"],wrapper:"w-full flex flex-col items-start justify-center",title:"flex-1 text-small font-normal truncate",description:["w-full","text-tiny","text-foreground-500","group-hover:text-current"],selectedIcon:["text-inherit","w-3","h-3","shrink-0"],shortcut:["px-1","py-0.5","rounded-sm","font-sans","text-foreground-500","text-tiny","border-small","border-default-300","group-hover:border-current"]},variants:{variant:{solid:{base:""},bordered:{base:"border-medium border-transparent bg-transparent"},light:{base:"bg-transparent"},faded:{base:"border-small border-transparent hover:border-default data-[hover=true]:bg-default-100"},flat:{base:""},shadow:{base:"data-[hover=true]:shadow-lg"}},color:{default:{},primary:{},secondary:{},success:{},warning:{},danger:{}},isDisabled:{true:{base:"opacity-disabled pointer-events-none"}},disableAnimation:{true:{},false:{}}},defaultVariants:{variant:"solid",color:"default"},compoundVariants:[{variant:"solid",color:"default",class:{base:"data-[hover=true]:bg-default data-[hover=true]:text-default-foreground"}},{variant:"solid",color:"primary",class:{base:"data-[hover=true]:bg-primary data-[hover=true]:text-primary-foreground"}},{variant:"solid",color:"secondary",class:{base:"data-[hover=true]:bg-secondary data-[hover=true]:text-secondary-foreground"}},{variant:"solid",color:"success",class:{base:"data-[hover=true]:bg-success data-[hover=true]:text-success-foreground"}},{variant:"solid",color:"warning",class:{base:"data-[hover=true]:bg-warning data-[hover=true]:text-warning-foreground"}},{variant:"solid",color:"danger",class:{base:"data-[hover=true]:bg-danger data-[hover=true]:text-danger-foreground"}},{variant:"shadow",color:"default",class:{base:"data-[hover=true]:shadow-default/50 data-[hover=true]:bg-default data-[hover=true]:text-default-foreground"}},{variant:"shadow",color:"primary",class:{base:"data-[hover=true]:shadow-primary/30 data-[hover=true]:bg-primary data-[hover=true]:text-primary-foreground"}},{variant:"shadow",color:"secondary",class:{base:"data-[hover=true]:shadow-secondary/30 data-[hover=true]:bg-secondary data-[hover=true]:text-secondary-foreground"}},{variant:"shadow",color:"success",class:{base:"data-[hover=true]:shadow-success/30 data-[hover=true]:bg-success data-[hover=true]:text-success-foreground"}},{variant:"shadow",color:"warning",class:{base:"data-[hover=true]:shadow-warning/30 data-[hover=true]:bg-warning data-[hover=true]:text-warning-foreground"}},{variant:"shadow",color:"danger",class:{base:"data-[hover=true]:shadow-danger/30 data-[hover=true]:bg-danger data-[hover=true]:text-danger-foreground"}},{variant:"bordered",color:"default",class:{base:"data-[hover=true]:border-default"}},{variant:"bordered",color:"primary",class:{base:"data-[hover=true]:border-primary data-[hover=true]:text-primary"}},{variant:"bordered",color:"secondary",class:{base:"data-[hover=true]:border-secondary data-[hover=true]:text-secondary"}},{variant:"bordered",color:"success",class:{base:"data-[hover=true]:border-success data-[hover=true]:text-success"}},{variant:"bordered",color:"warning",class:{base:"data-[hover=true]:border-warning data-[hover=true]:text-warning"}},{variant:"bordered",color:"danger",class:{base:"data-[hover=true]:border-danger data-[hover=true]:text-danger"}},{variant:"flat",color:"default",class:{base:"data-[hover=true]:bg-default/40 data-[hover=true]:text-default-foreground"}},{variant:"flat",color:"primary",class:{base:"data-[hover=true]:bg-primary/20 data-[hover=true]:text-primary"}},{variant:"flat",color:"secondary",class:{base:"data-[hover=true]:bg-secondary/20 data-[hover=true]:text-secondary"}},{variant:"flat",color:"success",class:{base:"data-[hover=true]:bg-success/20 data-[hover=true]:text-success "}},{variant:"flat",color:"warning",class:{base:"data-[hover=true]:bg-warning/20 data-[hover=true]:text-warning"}},{variant:"flat",color:"danger",class:{base:"data-[hover=true]:bg-danger/20 data-[hover=true]:text-danger"}},{variant:"faded",color:"default",class:{base:"data-[hover=true]:text-default-foreground"}},{variant:"faded",color:"primary",class:{base:"data-[hover=true]:text-primary"}},{variant:"faded",color:"secondary",class:{base:"data-[hover=true]:text-secondary"}},{variant:"faded",color:"success",class:{base:"data-[hover=true]:text-success"}},{variant:"faded",color:"warning",class:{base:"data-[hover=true]:text-warning"}},{variant:"faded",color:"danger",class:{base:"data-[hover=true]:text-danger"}},{variant:"light",color:"default",class:{base:"data-[hover=true]:text-default-500"}},{variant:"light",color:"primary",class:{base:"data-[hover=true]:text-primary"}},{variant:"light",color:"secondary",class:{base:"data-[hover=true]:text-secondary"}},{variant:"light",color:"success",class:{base:"data-[hover=true]:text-success"}},{variant:"light",color:"warning",class:{base:"data-[hover=true]:text-warning"}},{variant:"light",color:"danger",class:{base:"data-[hover=true]:text-danger"}}]});ae({slots:{base:"relative mb-2",heading:"pl-1 text-tiny text-foreground-500",group:"data-[has-title=true]:pt-1",divider:"mt-2"}});ae({base:"w-full flex flex-col gap-0.5 p-1"});var Et=(e,r)=>{if(!e&&!r)return{};const n=new Set([...Object.keys(e||{}),...Object.keys(r||{})]);return Array.from(n).reduce((s,a)=>({...s,[a]:W(e?.[a],r?.[a])}),{})},[Tt,Oe]=Me({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"}),Se=()=>Ye(()=>import("./index-BcnaGCUm.js"),__vite__mapDeps([0,1,2])).then(e=>e.default),Fe=e=>{const{as:r,children:n,className:s,...a}=e,{Component:u,placement:d,backdrop:h,motionProps:l,disableAnimation:c,getPopoverProps:p,getDialogProps:w,getBackdropProps:b,getContentProps:x,isNonModal:I,onClose:j}=Oe(),f=P.useRef(null),{dialogProps:M,titleProps:D}=Ze({},f),y=w({ref:f,...M,...a}),S=r||u||"div",i=t.jsxs(t.Fragment,{children:[!I&&t.jsx(me,{onDismiss:j}),t.jsx(S,{...y,children:t.jsx("div",{...x({className:s}),children:typeof n=="function"?n(D):n})}),t.jsx(me,{onDismiss:j})]}),v=P.useMemo(()=>h==="transparent"?null:c?t.jsx("div",{...b()}):t.jsx(xe,{features:Se,children:t.jsx(ye.div,{animate:"enter",exit:"exit",initial:"exit",variants:Pe.fade,...b()})}),[h,c,b]),k=d?et(d==="center"?"top":d):void 0,o=t.jsx(t.Fragment,{children:c?i:t.jsx(xe,{features:Se,children:t.jsx(ye.div,{animate:"enter",exit:"exit",initial:"initial",style:k,variants:Pe.scaleSpringOpacity,...l,children:i})})});return t.jsxs("div",{...p(),children:[v,o]})};Fe.displayName="HeroUI.PopoverContent";var Rt=Fe,Ee=e=>{var r;const{triggerRef:n,getTriggerProps:s}=Oe(),{children:a,...u}=e,d=P.useMemo(()=>typeof a=="string"?t.jsx("p",{children:a}):P.Children.only(a),[a]),h=(r=d.props.ref)!=null?r:d.ref,{onPress:l,isDisabled:c,...p}=P.useMemo(()=>s(R(u,d.props),h),[s,d.props,u,h]),[,w]=Ot(a,X),{buttonProps:b}=tt({onPress:l,isDisabled:c},n),x=P.useMemo(()=>w?.[0]!==void 0,[w]);return x||delete p.preventFocusOnPress,P.cloneElement(d,R(p,x?{onPress:l,isDisabled:c}:b))};Ee.displayName="HeroUI.PopoverTrigger";var Ht=Ee,Te=se((e,r)=>{const{children:n,...s}=e,a=jt({...s,ref:r}),[u,d]=P.Children.toArray(n),h=t.jsx(ot,{portalContainer:a.portalContainer,children:d});return t.jsxs(Tt,{value:a,children:[u,a.disableAnimation&&a.isOpen?h:t.jsx(Ie,{children:a.isOpen?h:null})]})});Te.displayName="HeroUI.Popover";var Ut=Te,[Kt,Re]=Me({name:"DropdownContext",errorMessage:"useDropdownContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Dropdown />`"});function Bt(e){const{isSelected:r,disableAnimation:n,...s}=e;return t.jsx("svg",{"aria-hidden":"true","data-selected":r,role:"presentation",viewBox:"0 0 17 18",...s,children:t.jsx("polyline",{fill:"none",points:"1 9 7 14 15 4",stroke:"currentColor",strokeDasharray:22,strokeDashoffset:r?44:66,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,style:n?{}:{transition:"stroke-dashoffset 200ms ease"}})})}const He=new WeakMap;function Vt(e,r,n){let{shouldFocusWrap:s=!0,onKeyDown:a,onKeyUp:u,...d}=e;!e["aria-label"]&&e["aria-labelledby"];let h=ke(e,{labelable:!0}),{listProps:l}=rt({...d,ref:n,selectionManager:r.selectionManager,collection:r.collection,disabledKeys:r.disabledKeys,shouldFocusWrap:s,linkBehavior:"override"});return He.set(r,{onClose:e.onClose,onAction:e.onAction,shouldUseVirtualFocus:e.shouldUseVirtualFocus}),{menuProps:Ne(h,{onKeyDown:a,onKeyUp:u},{role:"menu",...l,onKeyDown:c=>{var p;(c.key!=="Escape"||e.shouldUseVirtualFocus)&&((p=l.onKeyDown)===null||p===void 0||p.call(l,c))}})}}function Lt(e,r,n){let{id:s,key:a,closeOnSelect:u,isVirtualized:d,"aria-haspopup":h,onPressStart:l,onPressUp:c,onPress:p,onPressChange:w,onPressEnd:b,onHoverStart:x,onHoverChange:I,onHoverEnd:j,onKeyDown:f,onKeyUp:M,onFocus:D,onFocusChange:y,onBlur:S,selectionManager:i=r.selectionManager}=e,v=!!h,k=v&&e["aria-expanded"]==="true";var o;let C=(o=e.isDisabled)!==null&&o!==void 0?o:i.isDisabled(a);var _;let A=(_=e.isSelected)!==null&&_!==void 0?_:i.isSelected(a),N=He.get(r),g=r.collection.getItem(a),T=e.onClose||N.onClose,B=at(),$=m=>{var J;if(!v){if(!(g==null||(J=g.props)===null||J===void 0)&&J.onAction?g.props.onAction():e.onAction&&e.onAction(a),N.onAction){let ce=N.onAction;ce(a)}m.target instanceof HTMLAnchorElement&&g&&B.open(m.target,m,g.props.href,g.props.routerOptions)}},E="menuitem";v||(i.selectionMode==="single"?E="menuitemradio":i.selectionMode==="multiple"&&(E="menuitemcheckbox"));let O=pe(),H=pe(),q=pe(),V={id:s,"aria-disabled":C||void 0,role:E,"aria-label":e["aria-label"],"aria-labelledby":O,"aria-describedby":[H,q].filter(Boolean).join(" ")||void 0,"aria-controls":e["aria-controls"],"aria-haspopup":h,"aria-expanded":e["aria-expanded"]};i.selectionMode!=="none"&&!v&&(V["aria-checked"]=A),d&&(V["aria-posinset"]=g?.index,V["aria-setsize"]=St(r.collection));let G=m=>{m.pointerType==="keyboard"&&$(m),l?.(m)},Z=()=>{!v&&T&&(u??(i.selectionMode!=="multiple"||i.isLink(a)))&&T()},Y=m=>{m.pointerType==="mouse"&&($(m),Z()),c?.(m)},ne=m=>{m.pointerType!=="keyboard"&&m.pointerType!=="mouse"&&($(m),Z()),p?.(m)},{itemProps:L,isFocused:ee}=_t({id:s,selectionManager:i,key:a,ref:n,shouldSelectOnPressUp:!0,allowsDifferentPressOrigin:!0,linkBehavior:"none",shouldUseVirtualFocus:N.shouldUseVirtualFocus}),{pressProps:le,isPressed:te}=st({onPressStart:G,onPress:ne,onPressUp:Y,onPressChange:w,onPressEnd:b,isDisabled:C}),{hoverProps:ie}=_e({isDisabled:C,onHoverStart(m){!he()&&!(k&&h)&&(i.setFocused(!0),i.setFocusedKey(a)),x?.(m)},onHoverChange:I,onHoverEnd:j}),{keyboardProps:oe}=nt({onKeyDown:m=>{if(m.repeat){m.continuePropagation();return}switch(m.key){case" ":!C&&i.selectionMode==="none"&&!v&&u!==!1&&T&&T();break;case"Enter":!C&&u!==!1&&!v&&T&&T();break;default:v||m.continuePropagation(),f?.(m);break}},onKeyUp:M}),{focusProps:U}=lt({onBlur:S,onFocus:D,onFocusChange:y}),re=ke(g?.props);delete re.id;let de=it(g?.props);return{menuItemProps:{...V,...Ne(re,de,v?{onFocus:L.onFocus,"data-collection":L["data-collection"],"data-key":L["data-key"]}:L,le,ie,oe,U,N.shouldUseVirtualFocus||v?{onMouseDown:m=>m.preventDefault()}:void 0),tabIndex:L.tabIndex!=null&&k&&!N.shouldUseVirtualFocus?-1:L.tabIndex},labelProps:{id:O},descriptionProps:{id:H},keyboardShortcutProps:{id:q},isFocused:ee,isFocusVisible:ee&&i.isFocused&&he()&&!k,isSelected:A,isPressed:te,isDisabled:C}}function zt(e){let{heading:r,"aria-label":n}=e,s=dt();return{itemProps:{role:"presentation"},headingProps:r?{id:s,role:"presentation"}:{},groupProps:{role:"group","aria-label":n,"aria-labelledby":r?s:void 0}}}function Wt(e){var r,n;const s=be(),[a,u]=ct(e,je.variantKeys),{as:d,item:h,state:l,shortcut:c,description:p,startContent:w,endContent:b,isVirtualized:x,selectedIcon:I,className:j,classNames:f,onAction:M,autoFocus:D,onPress:y,onPressStart:S,onPressUp:i,onPressEnd:v,onPressChange:k,onHoverStart:o,onHoverChange:C,onHoverEnd:_,hideSelectedIcon:A=!1,isReadOnly:N=!1,closeOnSelect:g,onClose:T,onClick:B,...$}=a,E=(n=(r=e.disableAnimation)!=null?r:s?.disableAnimation)!=null?n:!1,O=P.useRef(null),H=d||($?.href?"a":"li"),q=typeof H=="string",{rendered:V,key:G}=h,Z=l.disabledKeys.has(G)||e.isDisabled,Y=l.selectionManager.selectionMode!=="none",ne=Dt(),{isFocusVisible:L,focusProps:ee}=ut({autoFocus:D}),le=P.useCallback(F=>{B?.(F),y?.(F)},[B,y]),{isPressed:te,isFocused:ie,isSelected:oe,isDisabled:U,menuItemProps:re,labelProps:de,descriptionProps:m,keyboardShortcutProps:J}=Lt({key:G,onClose:T,isDisabled:Z,onPress:le,onPressStart:S,onPressUp:i,onPressEnd:v,onPressChange:k,"aria-label":a["aria-label"],closeOnSelect:g,isVirtualized:x,onAction:M},l,O);let{hoverProps:ce,isHovered:ge}=_e({isDisabled:U,onHoverStart(F){he()||(l.selectionManager.setFocused(!0),l.selectionManager.setFocusedKey(G)),o?.(F)},onHoverChange:C,onHoverEnd:_}),ue=re;const z=P.useMemo(()=>je({...u,isDisabled:U,disableAnimation:E,hasTitleTextChild:typeof V=="string",hasDescriptionTextChild:typeof p=="string"}),[pt(u),U,E,V,p]),ze=W(f?.base,j);N&&(ue=ft(ue));const We=(F={})=>({ref:O,...R(N?{}:ee,Ae($,{enabled:q}),ue,ce,F),"data-focus":K(ie),"data-selectable":K(Y),"data-hover":K(ne?ge||te:ge),"data-disabled":K(U),"data-selected":K(oe),"data-pressed":K(te),"data-focus-visible":K(L),className:z.base({class:W(ze,F.className)})}),qe=(F={})=>({...R(de,F),className:z.title({class:f?.title})}),Ge=(F={})=>({...R(m,F),className:z.description({class:f?.description})}),Je=(F={})=>({...R(J,F),className:z.shortcut({class:f?.shortcut})}),Qe=P.useCallback((F={})=>({"aria-hidden":K(!0),"data-disabled":K(U),className:z.selectedIcon({class:f?.selectedIcon}),...F}),[U,z,f]);return{Component:H,domRef:O,slots:z,classNames:f,isSelectable:Y,isSelected:oe,isDisabled:U,rendered:V,shortcut:c,description:p,startContent:w,endContent:b,selectedIcon:I,disableAnimation:E,getItemProps:We,getLabelProps:qe,hideSelectedIcon:A,getDescriptionProps:Ge,getKeyboardShortcutProps:Je,getSelectedIconProps:Qe}}var Ue=e=>{const{Component:r,slots:n,classNames:s,rendered:a,shortcut:u,description:d,isSelectable:h,isSelected:l,isDisabled:c,selectedIcon:p,startContent:w,endContent:b,disableAnimation:x,hideSelectedIcon:I,getItemProps:j,getLabelProps:f,getDescriptionProps:M,getKeyboardShortcutProps:D,getSelectedIconProps:y}=Wt(e),S=P.useMemo(()=>{const i=t.jsx(Bt,{disableAnimation:x,isSelected:l});return typeof p=="function"?p({icon:i,isSelected:l,isDisabled:c}):p||i},[p,l,c,x]);return t.jsxs(r,{...j(),children:[w,d?t.jsxs("div",{className:n.wrapper({class:s?.wrapper}),children:[t.jsx("span",{...f(),children:a}),t.jsx("span",{...M(),children:d})]}):t.jsx("span",{...f(),children:a}),u&&t.jsx("kbd",{...D(),children:u}),h&&!I&&t.jsx("span",{...y(),children:S}),b]})};Ue.displayName="HeroUI.MenuItem";var Ke=Ue,Be=se(({item:e,state:r,as:n,variant:s,color:a,disableAnimation:u,onAction:d,closeOnSelect:h,className:l,classNames:c,showDivider:p=!1,hideSelectedIcon:w,dividerProps:b={},itemClasses:x,title:I,...j},f)=>{const M=n||"li",D=P.useMemo(()=>Mt(),[]),y=W(c?.base,l),S=W(c?.divider,b?.className),{itemProps:i,headingProps:v,groupProps:k}=zt({heading:e.rendered,"aria-label":e["aria-label"]});return t.jsxs(M,{"data-slot":"base",...R(i,j),className:D.base({class:y}),children:[e.rendered&&t.jsx("span",{...v,className:D.heading({class:c?.heading}),"data-slot":"heading",children:e.rendered}),t.jsxs("ul",{...k,className:D.group({class:c?.group}),"data-has-title":!!e.rendered,"data-slot":"group",children:[[...e.childNodes].map(o=>{const{key:C,props:_}=o;let A=t.jsx(Ke,{classNames:x,closeOnSelect:h,color:a,disableAnimation:u,hideSelectedIcon:w,item:o,state:r,variant:s,onAction:d,..._},C);return o.wrapper&&(A=o.wrapper(A)),A}),p&&t.jsx(vt,{as:"li",className:D.divider({class:S}),...b})]})]})});Be.displayName="HeroUI.MenuSection";var qt=Be;function Gt(e){var r;const n=be(),{as:s,ref:a,variant:u,color:d,children:h,disableAnimation:l=(r=n?.disableAnimation)!=null?r:!1,onAction:c,closeOnSelect:p,itemClasses:w,className:b,state:x,topContent:I,bottomContent:j,hideEmptyContent:f=!1,hideSelectedIcon:M=!1,emptyContent:D="No items.",menuProps:y,onClose:S,classNames:i,...v}=e,k=s||"ul",o=ht(a),C=typeof k=="string",_=bt({...v,...y,children:h}),A=x||_,{menuProps:N}=Vt({...v,...y,onAction:c},A,o),g=P.useMemo(()=>It({className:b}),[b]),T=W(i?.base,b);return{Component:k,state:A,variant:u,color:d,disableAnimation:l,onClose:S,topContent:I,bottomContent:j,closeOnSelect:p,className:b,itemClasses:w,getBaseProps:(O={})=>({ref:o,"data-slot":"base",className:g.base({class:T}),...Ae(v,{enabled:C}),...O}),getListProps:(O={})=>({"data-slot":"list",className:g.list({class:i?.list}),...N,...O}),hideEmptyContent:f,hideSelectedIcon:M,getEmptyContentProps:(O={})=>({children:D,className:g.emptyContent({class:i?.emptyContent}),...O})}}var Jt=se(function(r,n){const{Component:s,state:a,closeOnSelect:u,color:d,disableAnimation:h,hideSelectedIcon:l,hideEmptyContent:c,variant:p,onClose:w,topContent:b,bottomContent:x,itemClasses:I,getBaseProps:j,getListProps:f,getEmptyContentProps:M}=Gt({...r,ref:n}),D=t.jsxs(s,{...f(),children:[!a.collection.size&&!c&&t.jsx("li",{children:t.jsx("div",{...M()})}),[...a.collection].map(y=>{const S={closeOnSelect:u,color:d,disableAnimation:h,item:y,state:a,variant:p,onClose:w,hideSelectedIcon:l,...y.props},i=Et(I,S?.classNames);if(y.type==="section")return t.jsx(qt,{...S,itemClasses:i},y.key);let v=t.jsx(Ke,{...S,classNames:i},y.key);return y.wrapper&&(v=y.wrapper(v)),v})]});return t.jsxs("div",{...j(),children:[b,D,x]})}),Qt=Jt,Xt=gt,De=Xt,Zt=se(function(r,n){const{getMenuProps:s}=Re();return t.jsx(Rt,{children:t.jsx(mt,{contain:!0,restoreFocus:!0,children:t.jsx(Qt,{...s(r,n)})})})}),Yt=Zt,Ve=e=>{const{getMenuTriggerProps:r}=Re(),{children:n,...s}=e;return t.jsx(Ht,{...r(s),children:n})};Ve.displayName="HeroUI.DropdownTrigger";var eo=Ve,to=(e,r)=>{if(e){const n=Array.isArray(e.children)?e.children:[...e?.items||[]];if(n&&n.length)return n.find(a=>{if(a&&a.key===r)return a})||{}}return null},oo=(e,r,n)=>{const s=n||to(e,r);return s&&s.props&&"closeOnSelect"in s.props?s.props.closeOnSelect:e?.closeOnSelect};function ro(e){var r;const n=be(),{as:s,triggerRef:a,isOpen:u,defaultOpen:d,onOpenChange:h,isDisabled:l,type:c="menu",trigger:p="press",placement:w="bottom",closeOnSelect:b=!0,shouldBlockScroll:x=!0,classNames:I,disableAnimation:j=(r=n?.disableAnimation)!=null?r:!1,onClose:f,className:M,...D}=e,y=s||"div",S=P.useRef(null),i=a||S,v=P.useRef(null),k=P.useRef(null),o=kt({trigger:p,isOpen:u,defaultOpen:d,onOpenChange:$=>{h?.($),$||f?.()}}),{menuTriggerProps:C,menuProps:_}=Nt({type:c,trigger:p,isDisabled:l},o,i),A=P.useMemo(()=>Ft({className:M}),[M]),N=$=>{$!==void 0&&!$||b&&o.close()},g=($={})=>{const E=R(D,$);return{state:o,placement:w,ref:k,disableAnimation:j,shouldBlockScroll:x,scrollRef:v,triggerRef:i,...E,classNames:{...I,...$.classNames,content:W(A,I?.content,$.className)}}},T=($={})=>{const{onPress:E,onPressStart:O,...H}=C;return R(H,{isDisabled:l},$)},B=($,E=null)=>({ref:xt(E,v),menuProps:_,closeOnSelect:b,...R($,{onAction:(O,H)=>{const q=oo($,O,H);N(q)},onClose:o.close})});return{Component:y,menuRef:v,menuProps:_,closeOnSelect:b,onClose:o.close,autoFocus:o.focusStrategy||!0,disableAnimation:j,getPopoverProps:g,getMenuProps:B,getMenuTriggerProps:T}}var Le=e=>{const{children:r,...n}=e,s=ro(n),[a,u]=yt.Children.toArray(r);return t.jsx(Kt,{value:s,children:t.jsxs(Ut,{...s.getPopoverProps(),children:[a,u]})})};Le.displayName="HeroUI.Dropdown";var ao=Le;function co(){const{selectConversation:e,deleteConversation:r,newConversation:n,setConversationProperties:s}=Pt(),a=Ct(),u=fe(Ce(o=>Object.keys(o.conversations).reverse())),d=fe(Ce(o=>Object.values(o.conversations).reverse().map(C=>C.summary))),h=fe(o=>o.currentConversation),[l,c]=P.useState(!1),[p,w]=P.useState(null),[b,x]=P.useState(""),[I,j]=P.useState(!1),f=P.useRef(null),M=l?"Open sidebar":"Close sidebar",D=t.jsx(Q,{icon:"heroicons:pencil-square"}),y=(o,C)=>{w(o),x(C??""),j(!0),setTimeout(()=>{f.current?.focus?.(),setTimeout(()=>j(!1),120)},0)},S=o=>{if(p!==o)return;const C=(b||"").trim();C&&s(o,{summary:C}),w(null),x(""),j(!1)},i=()=>{w(null),x(""),j(!1)},v=()=>{const o=n();a($e(o))},k=o=>{e(o),a($e(o))};return t.jsx(ve.div,{initial:!1,animate:{maxWidth:l?"4.5rem":"16rem"},className:"rounded-l-medium border-small border-divider ml-4 flex h-full w-full min-w-[4.5rem] flex-grow flex-col space-y-2 overflow-hidden border-r-0 p-4 py-3",children:t.jsxs(Ie,{children:[t.jsx(we,{content:M,placement:"bottom",children:t.jsx(X,{isIconOnly:!0,"aria-label":M,variant:"ghost",onPress:()=>c(o=>!o),"data-testid":"chat-history-collapse-button",className:"ml-auto",children:t.jsx(Q,{icon:l?"heroicons:chevron-double-right":"heroicons:chevron-double-left"})})},"collapse-button"),!l&&t.jsx(ve.p,{initial:!1,animate:{opacity:1,width:"100%",height:"auto"},exit:{opacity:0,width:0,height:0,marginBottom:0},className:"text-small text-foreground truncate leading-5 font-semibold",children:"Conversations"},"conversations"),t.jsx(we,{content:"New conversation",placement:"right",children:t.jsx(X,{"aria-label":"New conversation",variant:"ghost",onPress:v,"data-testid":"chat-history-clear-chat-button",startContent:D,isIconOnly:l,children:!l&&"New conversation"})},"new-conversation-button"),!l&&t.jsx(ve.div,{className:"mt-2 flex flex-1 flex-col gap-2 overflow-auto overflow-x-hidden",initial:!1,animate:{opacity:1,width:"100%"},exit:{opacity:0,width:0},children:wt.zip(u,d).map(([o,C])=>{if(!o||$t(o))return null;const _=o===h,A=o===p,N=_?"solid":"light";return t.jsxs("div",{className:"flex w-full justify-between gap-2",children:[A?t.jsx(At,{ref:f,size:"sm",variant:"bordered",value:b,onChange:g=>x(g.target.value),onBlur:()=>{I||S(o)},onKeyDown:g=>{g.key==="Enter"&&S(o),g.key==="Escape"&&i()},className:"flex-1","data-testid":`input-conversation-${o}`}):t.jsx(X,{variant:N,"aria-label":`Select conversation ${o}`,"data-active":_,onPress:()=>k(o),title:C??o,"data-testid":`select-conversation-${o}`,className:"flex-1 justify-start",children:t.jsx("div",{className:"text-small truncate",children:C??o})}),t.jsxs(ao,{children:[t.jsx(eo,{children:t.jsx(X,{isIconOnly:!0,variant:"light","aria-label":`Conversation actions for ${o}`,"data-testid":`dropdown-conversation-${o}`,children:t.jsx(Q,{icon:"heroicons:ellipsis-vertical",className:"rotate-90"})})}),t.jsxs(Yt,{"aria-label":"Conversation actions",children:[t.jsx(De,{startContent:t.jsx(Q,{icon:"heroicons:pencil-square",className:"mb-0.5"}),onPress:()=>y(o,C??o),"data-testid":`edit-conversation-${o}`,children:"Edit"},"edit"),t.jsx(De,{className:"text-danger mb-0.5",color:"danger",startContent:t.jsx(Q,{icon:"heroicons:trash"}),onPress:()=>r(o),"data-testid":`delete-conversation-${o}`,children:"Delete conversation"},"delete")]})]})]},`${o}-${N}`)})},"conversation-list")]})})}export{co as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B-4qdttP.js","assets/index-Cyzr1kIj.js","assets/index-B1u136LF.css"])))=>i.map(i=>d[i]);
2
+ import{r as P,t as ae,k as Xe,Z as W,ax as Me,$ as Ze,j as t,q as me,L as xe,_ as Ye,n as ye,T as Pe,s as et,v as R,V as tt,d as X,l as se,aq as Ie,o as ot,H as ke,a9 as rt,J as Ne,ay as at,ac as pe,U as st,X as _e,af as he,az as nt,aA as lt,ag as it,K as dt,O as be,Q as ct,W as ut,a0 as pt,ah as ft,a2 as K,a3 as Ae,ai as vt,R as ht,aB as bt,a8 as gt,aC as mt,aD as xt,a5 as yt,a as Pt,aE as Ct,i as fe,aF as Ce,aG as ve,D as we,I as Q,as as wt,aH as $t,aI as $e}from"./index-Cyzr1kIj.js";import{u as jt,b as St,c as je,d as Dt,e as Mt,m as It,$ as kt,a as Nt}from"./useMenuTriggerState-DRPPkuuB.js";import{$ as _t}from"./useSelectableItem-BHUz-f5B.js";import{i as At}from"./chunk-SSA7SXE4-DO9BwTof.js";var Ot=(e,r)=>{var n;let s=[];const a=(n=P.Children.map(e,d=>P.isValidElement(d)&&d.type===r?(s.push(d),null):d))==null?void 0:n.filter(Boolean),u=s.length>=0?s:void 0;return[a,u]},Ft=ae({base:["w-full","p-1","min-w-[200px]"]});ae({slots:{base:["flex","group","gap-2","items-center","justify-between","relative","px-2","py-1.5","w-full","h-full","box-border","rounded-small","outline-hidden","cursor-pointer","tap-highlight-transparent","data-[pressed=true]:opacity-70",...Xe,"data-[focus-visible=true]:dark:ring-offset-background-content1"],wrapper:"w-full flex flex-col items-start justify-center",title:"flex-1 text-small font-normal truncate",description:["w-full","text-tiny","text-foreground-500","group-hover:text-current"],selectedIcon:["text-inherit","w-3","h-3","shrink-0"],shortcut:["px-1","py-0.5","rounded-sm","font-sans","text-foreground-500","text-tiny","border-small","border-default-300","group-hover:border-current"]},variants:{variant:{solid:{base:""},bordered:{base:"border-medium border-transparent bg-transparent"},light:{base:"bg-transparent"},faded:{base:"border-small border-transparent hover:border-default data-[hover=true]:bg-default-100"},flat:{base:""},shadow:{base:"data-[hover=true]:shadow-lg"}},color:{default:{},primary:{},secondary:{},success:{},warning:{},danger:{}},isDisabled:{true:{base:"opacity-disabled pointer-events-none"}},disableAnimation:{true:{},false:{}}},defaultVariants:{variant:"solid",color:"default"},compoundVariants:[{variant:"solid",color:"default",class:{base:"data-[hover=true]:bg-default data-[hover=true]:text-default-foreground"}},{variant:"solid",color:"primary",class:{base:"data-[hover=true]:bg-primary data-[hover=true]:text-primary-foreground"}},{variant:"solid",color:"secondary",class:{base:"data-[hover=true]:bg-secondary data-[hover=true]:text-secondary-foreground"}},{variant:"solid",color:"success",class:{base:"data-[hover=true]:bg-success data-[hover=true]:text-success-foreground"}},{variant:"solid",color:"warning",class:{base:"data-[hover=true]:bg-warning data-[hover=true]:text-warning-foreground"}},{variant:"solid",color:"danger",class:{base:"data-[hover=true]:bg-danger data-[hover=true]:text-danger-foreground"}},{variant:"shadow",color:"default",class:{base:"data-[hover=true]:shadow-default/50 data-[hover=true]:bg-default data-[hover=true]:text-default-foreground"}},{variant:"shadow",color:"primary",class:{base:"data-[hover=true]:shadow-primary/30 data-[hover=true]:bg-primary data-[hover=true]:text-primary-foreground"}},{variant:"shadow",color:"secondary",class:{base:"data-[hover=true]:shadow-secondary/30 data-[hover=true]:bg-secondary data-[hover=true]:text-secondary-foreground"}},{variant:"shadow",color:"success",class:{base:"data-[hover=true]:shadow-success/30 data-[hover=true]:bg-success data-[hover=true]:text-success-foreground"}},{variant:"shadow",color:"warning",class:{base:"data-[hover=true]:shadow-warning/30 data-[hover=true]:bg-warning data-[hover=true]:text-warning-foreground"}},{variant:"shadow",color:"danger",class:{base:"data-[hover=true]:shadow-danger/30 data-[hover=true]:bg-danger data-[hover=true]:text-danger-foreground"}},{variant:"bordered",color:"default",class:{base:"data-[hover=true]:border-default"}},{variant:"bordered",color:"primary",class:{base:"data-[hover=true]:border-primary data-[hover=true]:text-primary"}},{variant:"bordered",color:"secondary",class:{base:"data-[hover=true]:border-secondary data-[hover=true]:text-secondary"}},{variant:"bordered",color:"success",class:{base:"data-[hover=true]:border-success data-[hover=true]:text-success"}},{variant:"bordered",color:"warning",class:{base:"data-[hover=true]:border-warning data-[hover=true]:text-warning"}},{variant:"bordered",color:"danger",class:{base:"data-[hover=true]:border-danger data-[hover=true]:text-danger"}},{variant:"flat",color:"default",class:{base:"data-[hover=true]:bg-default/40 data-[hover=true]:text-default-foreground"}},{variant:"flat",color:"primary",class:{base:"data-[hover=true]:bg-primary/20 data-[hover=true]:text-primary"}},{variant:"flat",color:"secondary",class:{base:"data-[hover=true]:bg-secondary/20 data-[hover=true]:text-secondary"}},{variant:"flat",color:"success",class:{base:"data-[hover=true]:bg-success/20 data-[hover=true]:text-success "}},{variant:"flat",color:"warning",class:{base:"data-[hover=true]:bg-warning/20 data-[hover=true]:text-warning"}},{variant:"flat",color:"danger",class:{base:"data-[hover=true]:bg-danger/20 data-[hover=true]:text-danger"}},{variant:"faded",color:"default",class:{base:"data-[hover=true]:text-default-foreground"}},{variant:"faded",color:"primary",class:{base:"data-[hover=true]:text-primary"}},{variant:"faded",color:"secondary",class:{base:"data-[hover=true]:text-secondary"}},{variant:"faded",color:"success",class:{base:"data-[hover=true]:text-success"}},{variant:"faded",color:"warning",class:{base:"data-[hover=true]:text-warning"}},{variant:"faded",color:"danger",class:{base:"data-[hover=true]:text-danger"}},{variant:"light",color:"default",class:{base:"data-[hover=true]:text-default-500"}},{variant:"light",color:"primary",class:{base:"data-[hover=true]:text-primary"}},{variant:"light",color:"secondary",class:{base:"data-[hover=true]:text-secondary"}},{variant:"light",color:"success",class:{base:"data-[hover=true]:text-success"}},{variant:"light",color:"warning",class:{base:"data-[hover=true]:text-warning"}},{variant:"light",color:"danger",class:{base:"data-[hover=true]:text-danger"}}]});ae({slots:{base:"relative mb-2",heading:"pl-1 text-tiny text-foreground-500",group:"data-[has-title=true]:pt-1",divider:"mt-2"}});ae({base:"w-full flex flex-col gap-0.5 p-1"});var Et=(e,r)=>{if(!e&&!r)return{};const n=new Set([...Object.keys(e||{}),...Object.keys(r||{})]);return Array.from(n).reduce((s,a)=>({...s,[a]:W(e?.[a],r?.[a])}),{})},[Tt,Oe]=Me({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"}),Se=()=>Ye(()=>import("./index-B-4qdttP.js"),__vite__mapDeps([0,1,2])).then(e=>e.default),Fe=e=>{const{as:r,children:n,className:s,...a}=e,{Component:u,placement:d,backdrop:h,motionProps:l,disableAnimation:c,getPopoverProps:p,getDialogProps:w,getBackdropProps:b,getContentProps:x,isNonModal:I,onClose:j}=Oe(),f=P.useRef(null),{dialogProps:M,titleProps:D}=Ze({},f),y=w({ref:f,...M,...a}),S=r||u||"div",i=t.jsxs(t.Fragment,{children:[!I&&t.jsx(me,{onDismiss:j}),t.jsx(S,{...y,children:t.jsx("div",{...x({className:s}),children:typeof n=="function"?n(D):n})}),t.jsx(me,{onDismiss:j})]}),v=P.useMemo(()=>h==="transparent"?null:c?t.jsx("div",{...b()}):t.jsx(xe,{features:Se,children:t.jsx(ye.div,{animate:"enter",exit:"exit",initial:"exit",variants:Pe.fade,...b()})}),[h,c,b]),k=d?et(d==="center"?"top":d):void 0,o=t.jsx(t.Fragment,{children:c?i:t.jsx(xe,{features:Se,children:t.jsx(ye.div,{animate:"enter",exit:"exit",initial:"initial",style:k,variants:Pe.scaleSpringOpacity,...l,children:i})})});return t.jsxs("div",{...p(),children:[v,o]})};Fe.displayName="HeroUI.PopoverContent";var Rt=Fe,Ee=e=>{var r;const{triggerRef:n,getTriggerProps:s}=Oe(),{children:a,...u}=e,d=P.useMemo(()=>typeof a=="string"?t.jsx("p",{children:a}):P.Children.only(a),[a]),h=(r=d.props.ref)!=null?r:d.ref,{onPress:l,isDisabled:c,...p}=P.useMemo(()=>s(R(u,d.props),h),[s,d.props,u,h]),[,w]=Ot(a,X),{buttonProps:b}=tt({onPress:l,isDisabled:c},n),x=P.useMemo(()=>w?.[0]!==void 0,[w]);return x||delete p.preventFocusOnPress,P.cloneElement(d,R(p,x?{onPress:l,isDisabled:c}:b))};Ee.displayName="HeroUI.PopoverTrigger";var Ht=Ee,Te=se((e,r)=>{const{children:n,...s}=e,a=jt({...s,ref:r}),[u,d]=P.Children.toArray(n),h=t.jsx(ot,{portalContainer:a.portalContainer,children:d});return t.jsxs(Tt,{value:a,children:[u,a.disableAnimation&&a.isOpen?h:t.jsx(Ie,{children:a.isOpen?h:null})]})});Te.displayName="HeroUI.Popover";var Ut=Te,[Kt,Re]=Me({name:"DropdownContext",errorMessage:"useDropdownContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Dropdown />`"});function Bt(e){const{isSelected:r,disableAnimation:n,...s}=e;return t.jsx("svg",{"aria-hidden":"true","data-selected":r,role:"presentation",viewBox:"0 0 17 18",...s,children:t.jsx("polyline",{fill:"none",points:"1 9 7 14 15 4",stroke:"currentColor",strokeDasharray:22,strokeDashoffset:r?44:66,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,style:n?{}:{transition:"stroke-dashoffset 200ms ease"}})})}const He=new WeakMap;function Vt(e,r,n){let{shouldFocusWrap:s=!0,onKeyDown:a,onKeyUp:u,...d}=e;!e["aria-label"]&&e["aria-labelledby"];let h=ke(e,{labelable:!0}),{listProps:l}=rt({...d,ref:n,selectionManager:r.selectionManager,collection:r.collection,disabledKeys:r.disabledKeys,shouldFocusWrap:s,linkBehavior:"override"});return He.set(r,{onClose:e.onClose,onAction:e.onAction,shouldUseVirtualFocus:e.shouldUseVirtualFocus}),{menuProps:Ne(h,{onKeyDown:a,onKeyUp:u},{role:"menu",...l,onKeyDown:c=>{var p;(c.key!=="Escape"||e.shouldUseVirtualFocus)&&((p=l.onKeyDown)===null||p===void 0||p.call(l,c))}})}}function Lt(e,r,n){let{id:s,key:a,closeOnSelect:u,isVirtualized:d,"aria-haspopup":h,onPressStart:l,onPressUp:c,onPress:p,onPressChange:w,onPressEnd:b,onHoverStart:x,onHoverChange:I,onHoverEnd:j,onKeyDown:f,onKeyUp:M,onFocus:D,onFocusChange:y,onBlur:S,selectionManager:i=r.selectionManager}=e,v=!!h,k=v&&e["aria-expanded"]==="true";var o;let C=(o=e.isDisabled)!==null&&o!==void 0?o:i.isDisabled(a);var _;let A=(_=e.isSelected)!==null&&_!==void 0?_:i.isSelected(a),N=He.get(r),g=r.collection.getItem(a),T=e.onClose||N.onClose,B=at(),$=m=>{var J;if(!v){if(!(g==null||(J=g.props)===null||J===void 0)&&J.onAction?g.props.onAction():e.onAction&&e.onAction(a),N.onAction){let ce=N.onAction;ce(a)}m.target instanceof HTMLAnchorElement&&g&&B.open(m.target,m,g.props.href,g.props.routerOptions)}},E="menuitem";v||(i.selectionMode==="single"?E="menuitemradio":i.selectionMode==="multiple"&&(E="menuitemcheckbox"));let O=pe(),H=pe(),q=pe(),V={id:s,"aria-disabled":C||void 0,role:E,"aria-label":e["aria-label"],"aria-labelledby":O,"aria-describedby":[H,q].filter(Boolean).join(" ")||void 0,"aria-controls":e["aria-controls"],"aria-haspopup":h,"aria-expanded":e["aria-expanded"]};i.selectionMode!=="none"&&!v&&(V["aria-checked"]=A),d&&(V["aria-posinset"]=g?.index,V["aria-setsize"]=St(r.collection));let G=m=>{m.pointerType==="keyboard"&&$(m),l?.(m)},Z=()=>{!v&&T&&(u??(i.selectionMode!=="multiple"||i.isLink(a)))&&T()},Y=m=>{m.pointerType==="mouse"&&($(m),Z()),c?.(m)},ne=m=>{m.pointerType!=="keyboard"&&m.pointerType!=="mouse"&&($(m),Z()),p?.(m)},{itemProps:L,isFocused:ee}=_t({id:s,selectionManager:i,key:a,ref:n,shouldSelectOnPressUp:!0,allowsDifferentPressOrigin:!0,linkBehavior:"none",shouldUseVirtualFocus:N.shouldUseVirtualFocus}),{pressProps:le,isPressed:te}=st({onPressStart:G,onPress:ne,onPressUp:Y,onPressChange:w,onPressEnd:b,isDisabled:C}),{hoverProps:ie}=_e({isDisabled:C,onHoverStart(m){!he()&&!(k&&h)&&(i.setFocused(!0),i.setFocusedKey(a)),x?.(m)},onHoverChange:I,onHoverEnd:j}),{keyboardProps:oe}=nt({onKeyDown:m=>{if(m.repeat){m.continuePropagation();return}switch(m.key){case" ":!C&&i.selectionMode==="none"&&!v&&u!==!1&&T&&T();break;case"Enter":!C&&u!==!1&&!v&&T&&T();break;default:v||m.continuePropagation(),f?.(m);break}},onKeyUp:M}),{focusProps:U}=lt({onBlur:S,onFocus:D,onFocusChange:y}),re=ke(g?.props);delete re.id;let de=it(g?.props);return{menuItemProps:{...V,...Ne(re,de,v?{onFocus:L.onFocus,"data-collection":L["data-collection"],"data-key":L["data-key"]}:L,le,ie,oe,U,N.shouldUseVirtualFocus||v?{onMouseDown:m=>m.preventDefault()}:void 0),tabIndex:L.tabIndex!=null&&k&&!N.shouldUseVirtualFocus?-1:L.tabIndex},labelProps:{id:O},descriptionProps:{id:H},keyboardShortcutProps:{id:q},isFocused:ee,isFocusVisible:ee&&i.isFocused&&he()&&!k,isSelected:A,isPressed:te,isDisabled:C}}function zt(e){let{heading:r,"aria-label":n}=e,s=dt();return{itemProps:{role:"presentation"},headingProps:r?{id:s,role:"presentation"}:{},groupProps:{role:"group","aria-label":n,"aria-labelledby":r?s:void 0}}}function Wt(e){var r,n;const s=be(),[a,u]=ct(e,je.variantKeys),{as:d,item:h,state:l,shortcut:c,description:p,startContent:w,endContent:b,isVirtualized:x,selectedIcon:I,className:j,classNames:f,onAction:M,autoFocus:D,onPress:y,onPressStart:S,onPressUp:i,onPressEnd:v,onPressChange:k,onHoverStart:o,onHoverChange:C,onHoverEnd:_,hideSelectedIcon:A=!1,isReadOnly:N=!1,closeOnSelect:g,onClose:T,onClick:B,...$}=a,E=(n=(r=e.disableAnimation)!=null?r:s?.disableAnimation)!=null?n:!1,O=P.useRef(null),H=d||($?.href?"a":"li"),q=typeof H=="string",{rendered:V,key:G}=h,Z=l.disabledKeys.has(G)||e.isDisabled,Y=l.selectionManager.selectionMode!=="none",ne=Dt(),{isFocusVisible:L,focusProps:ee}=ut({autoFocus:D}),le=P.useCallback(F=>{B?.(F),y?.(F)},[B,y]),{isPressed:te,isFocused:ie,isSelected:oe,isDisabled:U,menuItemProps:re,labelProps:de,descriptionProps:m,keyboardShortcutProps:J}=Lt({key:G,onClose:T,isDisabled:Z,onPress:le,onPressStart:S,onPressUp:i,onPressEnd:v,onPressChange:k,"aria-label":a["aria-label"],closeOnSelect:g,isVirtualized:x,onAction:M},l,O);let{hoverProps:ce,isHovered:ge}=_e({isDisabled:U,onHoverStart(F){he()||(l.selectionManager.setFocused(!0),l.selectionManager.setFocusedKey(G)),o?.(F)},onHoverChange:C,onHoverEnd:_}),ue=re;const z=P.useMemo(()=>je({...u,isDisabled:U,disableAnimation:E,hasTitleTextChild:typeof V=="string",hasDescriptionTextChild:typeof p=="string"}),[pt(u),U,E,V,p]),ze=W(f?.base,j);N&&(ue=ft(ue));const We=(F={})=>({ref:O,...R(N?{}:ee,Ae($,{enabled:q}),ue,ce,F),"data-focus":K(ie),"data-selectable":K(Y),"data-hover":K(ne?ge||te:ge),"data-disabled":K(U),"data-selected":K(oe),"data-pressed":K(te),"data-focus-visible":K(L),className:z.base({class:W(ze,F.className)})}),qe=(F={})=>({...R(de,F),className:z.title({class:f?.title})}),Ge=(F={})=>({...R(m,F),className:z.description({class:f?.description})}),Je=(F={})=>({...R(J,F),className:z.shortcut({class:f?.shortcut})}),Qe=P.useCallback((F={})=>({"aria-hidden":K(!0),"data-disabled":K(U),className:z.selectedIcon({class:f?.selectedIcon}),...F}),[U,z,f]);return{Component:H,domRef:O,slots:z,classNames:f,isSelectable:Y,isSelected:oe,isDisabled:U,rendered:V,shortcut:c,description:p,startContent:w,endContent:b,selectedIcon:I,disableAnimation:E,getItemProps:We,getLabelProps:qe,hideSelectedIcon:A,getDescriptionProps:Ge,getKeyboardShortcutProps:Je,getSelectedIconProps:Qe}}var Ue=e=>{const{Component:r,slots:n,classNames:s,rendered:a,shortcut:u,description:d,isSelectable:h,isSelected:l,isDisabled:c,selectedIcon:p,startContent:w,endContent:b,disableAnimation:x,hideSelectedIcon:I,getItemProps:j,getLabelProps:f,getDescriptionProps:M,getKeyboardShortcutProps:D,getSelectedIconProps:y}=Wt(e),S=P.useMemo(()=>{const i=t.jsx(Bt,{disableAnimation:x,isSelected:l});return typeof p=="function"?p({icon:i,isSelected:l,isDisabled:c}):p||i},[p,l,c,x]);return t.jsxs(r,{...j(),children:[w,d?t.jsxs("div",{className:n.wrapper({class:s?.wrapper}),children:[t.jsx("span",{...f(),children:a}),t.jsx("span",{...M(),children:d})]}):t.jsx("span",{...f(),children:a}),u&&t.jsx("kbd",{...D(),children:u}),h&&!I&&t.jsx("span",{...y(),children:S}),b]})};Ue.displayName="HeroUI.MenuItem";var Ke=Ue,Be=se(({item:e,state:r,as:n,variant:s,color:a,disableAnimation:u,onAction:d,closeOnSelect:h,className:l,classNames:c,showDivider:p=!1,hideSelectedIcon:w,dividerProps:b={},itemClasses:x,title:I,...j},f)=>{const M=n||"li",D=P.useMemo(()=>Mt(),[]),y=W(c?.base,l),S=W(c?.divider,b?.className),{itemProps:i,headingProps:v,groupProps:k}=zt({heading:e.rendered,"aria-label":e["aria-label"]});return t.jsxs(M,{"data-slot":"base",...R(i,j),className:D.base({class:y}),children:[e.rendered&&t.jsx("span",{...v,className:D.heading({class:c?.heading}),"data-slot":"heading",children:e.rendered}),t.jsxs("ul",{...k,className:D.group({class:c?.group}),"data-has-title":!!e.rendered,"data-slot":"group",children:[[...e.childNodes].map(o=>{const{key:C,props:_}=o;let A=t.jsx(Ke,{classNames:x,closeOnSelect:h,color:a,disableAnimation:u,hideSelectedIcon:w,item:o,state:r,variant:s,onAction:d,..._},C);return o.wrapper&&(A=o.wrapper(A)),A}),p&&t.jsx(vt,{as:"li",className:D.divider({class:S}),...b})]})]})});Be.displayName="HeroUI.MenuSection";var qt=Be;function Gt(e){var r;const n=be(),{as:s,ref:a,variant:u,color:d,children:h,disableAnimation:l=(r=n?.disableAnimation)!=null?r:!1,onAction:c,closeOnSelect:p,itemClasses:w,className:b,state:x,topContent:I,bottomContent:j,hideEmptyContent:f=!1,hideSelectedIcon:M=!1,emptyContent:D="No items.",menuProps:y,onClose:S,classNames:i,...v}=e,k=s||"ul",o=ht(a),C=typeof k=="string",_=bt({...v,...y,children:h}),A=x||_,{menuProps:N}=Vt({...v,...y,onAction:c},A,o),g=P.useMemo(()=>It({className:b}),[b]),T=W(i?.base,b);return{Component:k,state:A,variant:u,color:d,disableAnimation:l,onClose:S,topContent:I,bottomContent:j,closeOnSelect:p,className:b,itemClasses:w,getBaseProps:(O={})=>({ref:o,"data-slot":"base",className:g.base({class:T}),...Ae(v,{enabled:C}),...O}),getListProps:(O={})=>({"data-slot":"list",className:g.list({class:i?.list}),...N,...O}),hideEmptyContent:f,hideSelectedIcon:M,getEmptyContentProps:(O={})=>({children:D,className:g.emptyContent({class:i?.emptyContent}),...O})}}var Jt=se(function(r,n){const{Component:s,state:a,closeOnSelect:u,color:d,disableAnimation:h,hideSelectedIcon:l,hideEmptyContent:c,variant:p,onClose:w,topContent:b,bottomContent:x,itemClasses:I,getBaseProps:j,getListProps:f,getEmptyContentProps:M}=Gt({...r,ref:n}),D=t.jsxs(s,{...f(),children:[!a.collection.size&&!c&&t.jsx("li",{children:t.jsx("div",{...M()})}),[...a.collection].map(y=>{const S={closeOnSelect:u,color:d,disableAnimation:h,item:y,state:a,variant:p,onClose:w,hideSelectedIcon:l,...y.props},i=Et(I,S?.classNames);if(y.type==="section")return t.jsx(qt,{...S,itemClasses:i},y.key);let v=t.jsx(Ke,{...S,classNames:i},y.key);return y.wrapper&&(v=y.wrapper(v)),v})]});return t.jsxs("div",{...j(),children:[b,D,x]})}),Qt=Jt,Xt=gt,De=Xt,Zt=se(function(r,n){const{getMenuProps:s}=Re();return t.jsx(Rt,{children:t.jsx(mt,{contain:!0,restoreFocus:!0,children:t.jsx(Qt,{...s(r,n)})})})}),Yt=Zt,Ve=e=>{const{getMenuTriggerProps:r}=Re(),{children:n,...s}=e;return t.jsx(Ht,{...r(s),children:n})};Ve.displayName="HeroUI.DropdownTrigger";var eo=Ve,to=(e,r)=>{if(e){const n=Array.isArray(e.children)?e.children:[...e?.items||[]];if(n&&n.length)return n.find(a=>{if(a&&a.key===r)return a})||{}}return null},oo=(e,r,n)=>{const s=n||to(e,r);return s&&s.props&&"closeOnSelect"in s.props?s.props.closeOnSelect:e?.closeOnSelect};function ro(e){var r;const n=be(),{as:s,triggerRef:a,isOpen:u,defaultOpen:d,onOpenChange:h,isDisabled:l,type:c="menu",trigger:p="press",placement:w="bottom",closeOnSelect:b=!0,shouldBlockScroll:x=!0,classNames:I,disableAnimation:j=(r=n?.disableAnimation)!=null?r:!1,onClose:f,className:M,...D}=e,y=s||"div",S=P.useRef(null),i=a||S,v=P.useRef(null),k=P.useRef(null),o=kt({trigger:p,isOpen:u,defaultOpen:d,onOpenChange:$=>{h?.($),$||f?.()}}),{menuTriggerProps:C,menuProps:_}=Nt({type:c,trigger:p,isDisabled:l},o,i),A=P.useMemo(()=>Ft({className:M}),[M]),N=$=>{$!==void 0&&!$||b&&o.close()},g=($={})=>{const E=R(D,$);return{state:o,placement:w,ref:k,disableAnimation:j,shouldBlockScroll:x,scrollRef:v,triggerRef:i,...E,classNames:{...I,...$.classNames,content:W(A,I?.content,$.className)}}},T=($={})=>{const{onPress:E,onPressStart:O,...H}=C;return R(H,{isDisabled:l},$)},B=($,E=null)=>({ref:xt(E,v),menuProps:_,closeOnSelect:b,...R($,{onAction:(O,H)=>{const q=oo($,O,H);N(q)},onClose:o.close})});return{Component:y,menuRef:v,menuProps:_,closeOnSelect:b,onClose:o.close,autoFocus:o.focusStrategy||!0,disableAnimation:j,getPopoverProps:g,getMenuProps:B,getMenuTriggerProps:T}}var Le=e=>{const{children:r,...n}=e,s=ro(n),[a,u]=yt.Children.toArray(r);return t.jsx(Kt,{value:s,children:t.jsxs(Ut,{...s.getPopoverProps(),children:[a,u]})})};Le.displayName="HeroUI.Dropdown";var ao=Le;function co(){const{selectConversation:e,deleteConversation:r,newConversation:n,setConversationProperties:s}=Pt(),a=Ct(),u=fe(Ce(o=>Object.keys(o.conversations).reverse())),d=fe(Ce(o=>Object.values(o.conversations).reverse().map(C=>C.summary))),h=fe(o=>o.currentConversation),[l,c]=P.useState(!1),[p,w]=P.useState(null),[b,x]=P.useState(""),[I,j]=P.useState(!1),f=P.useRef(null),M=l?"Open sidebar":"Close sidebar",D=t.jsx(Q,{icon:"heroicons:pencil-square"}),y=(o,C)=>{w(o),x(C??""),j(!0),setTimeout(()=>{f.current?.focus?.(),setTimeout(()=>j(!1),120)},0)},S=o=>{if(p!==o)return;const C=(b||"").trim();C&&s(o,{summary:C}),w(null),x(""),j(!1)},i=()=>{w(null),x(""),j(!1)},v=()=>{const o=n();a($e(o))},k=o=>{e(o),a($e(o))};return t.jsx(ve.div,{initial:!1,animate:{maxWidth:l?"4.5rem":"16rem"},className:"rounded-l-medium border-small border-divider ml-4 flex h-full w-full min-w-[4.5rem] flex-grow flex-col space-y-2 overflow-hidden border-r-0 p-4 py-3",children:t.jsxs(Ie,{children:[t.jsx(we,{content:M,placement:"bottom",children:t.jsx(X,{isIconOnly:!0,"aria-label":M,variant:"ghost",onPress:()=>c(o=>!o),"data-testid":"chat-history-collapse-button",className:"ml-auto",children:t.jsx(Q,{icon:l?"heroicons:chevron-double-right":"heroicons:chevron-double-left"})})},"collapse-button"),!l&&t.jsx(ve.p,{initial:!1,animate:{opacity:1,width:"100%",height:"auto"},exit:{opacity:0,width:0,height:0,marginBottom:0},className:"text-small text-foreground truncate leading-5 font-semibold",children:"Conversations"},"conversations"),t.jsx(we,{content:"New conversation",placement:"right",children:t.jsx(X,{"aria-label":"New conversation",variant:"ghost",onPress:v,"data-testid":"chat-history-clear-chat-button",startContent:D,isIconOnly:l,children:!l&&"New conversation"})},"new-conversation-button"),!l&&t.jsx(ve.div,{className:"mt-2 flex flex-1 flex-col gap-2 overflow-auto overflow-x-hidden",initial:!1,animate:{opacity:1,width:"100%"},exit:{opacity:0,width:0},children:wt.zip(u,d).map(([o,C])=>{if(!o||$t(o))return null;const _=o===h,A=o===p,N=_?"solid":"light";return t.jsxs("div",{className:"flex w-full justify-between gap-2",children:[A?t.jsx(At,{ref:f,size:"sm",variant:"bordered",value:b,onChange:g=>x(g.target.value),onBlur:()=>{I||S(o)},onKeyDown:g=>{g.key==="Enter"&&S(o),g.key==="Escape"&&i()},className:"flex-1","data-testid":`input-conversation-${o}`}):t.jsx(X,{variant:N,"aria-label":`Select conversation ${o}`,"data-active":_,onPress:()=>k(o),title:C??o,"data-testid":`select-conversation-${o}`,className:"flex-1 justify-start",children:t.jsx("div",{className:"text-small truncate",children:C??o})}),t.jsxs(ao,{children:[t.jsx(eo,{children:t.jsx(X,{isIconOnly:!0,variant:"light","aria-label":`Conversation actions for ${o}`,"data-testid":`dropdown-conversation-${o}`,children:t.jsx(Q,{icon:"heroicons:ellipsis-vertical",className:"rotate-90"})})}),t.jsxs(Yt,{"aria-label":"Conversation actions",children:[t.jsx(De,{startContent:t.jsx(Q,{icon:"heroicons:pencil-square",className:"mb-0.5"}),onPress:()=>y(o,C??o),"data-testid":`edit-conversation-${o}`,children:"Edit"},"edit"),t.jsx(De,{className:"text-danger mb-0.5",color:"danger",startContent:t.jsx(Q,{icon:"heroicons:trash"}),onPress:()=>r(o),"data-testid":`delete-conversation-${o}`,children:"Delete conversation"},"delete")]})]})]},`${o}-${N}`)})},"conversation-list")]})})}export{co as default};
@@ -1 +1 @@
1
- import{g as z,r as f,u as ie,h as ce,a as ue,i as le,b as fe,p as Y,C as Q,j as l,D as de,d as A,I as me,m as ge,e as he,f as pe}from"./index-CbVbgerL.js";import{g as Z,v as W,F as ve,t as be}from"./index-DTNGcmXG.js";import{m as Se}from"./chunk-IGSAU2ZA-BBfo0QFa.js";import"./chunk-SSA7SXE4-D3GKTPj0.js";import"./useMenuTriggerState-C5916IcO.js";import"./useSelectableItem-BWC6EImE.js";import"./index-B-LIlvZN.js";var B,V;function xe(){if(V)return B;V=1;var n="Expected a function",t=NaN,s="[object Symbol]",m=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,i=/^0o[0-7]+$/i,b=parseInt,S=typeof z=="object"&&z&&z.Object===Object&&z,y=typeof self=="object"&&self&&self.Object===Object&&self,C=S||y||Function("return this")(),d=Object.prototype,r=d.toString,c=Math.max,O=Math.min,E=function(){return C.Date.now()};function $(e,u,v){var T,L,P,I,p,j,R=0,G=!1,D=!1,k=!0;if(typeof e!="function")throw new TypeError(n);u=q(u)||0,_(v)&&(G=!!v.leading,D="maxWait"in v,P=D?c(q(v.maxWait)||0,u):P,k="trailing"in v?!!v.trailing:k);function H(o){var x=T,F=L;return T=L=void 0,R=o,I=e.apply(F,x),I}function re(o){return R=o,p=setTimeout(N,u),G?H(o):I}function oe(o){var x=o-j,F=o-R,X=u-x;return D?O(X,P-F):X}function U(o){var x=o-j,F=o-R;return j===void 0||x>=u||x<0||D&&F>=P}function N(){var o=E();if(U(o))return K(o);p=setTimeout(N,oe(o))}function K(o){return p=void 0,k&&T?H(o):(T=L=void 0,I)}function se(){p!==void 0&&clearTimeout(p),R=0,T=j=L=p=void 0}function ae(){return p===void 0?I:K(E())}function M(){var o=E(),x=U(o);if(T=arguments,L=this,j=o,x){if(p===void 0)return re(j);if(D)return p=setTimeout(N,u),H(j)}return p===void 0&&(p=setTimeout(N,u)),I}return M.cancel=se,M.flush=ae,M}function _(e){var u=typeof e;return!!e&&(u=="object"||u=="function")}function a(e){return!!e&&typeof e=="object"}function w(e){return typeof e=="symbol"||a(e)&&r.call(e)==s}function q(e){if(typeof e=="number")return e;if(w(e))return t;if(_(e)){var u=typeof e.valueOf=="function"?e.valueOf():e;e=_(u)?u+"":u}if(typeof e!="string")return e===0?e:+e;e=e.replace(m,"");var v=h.test(e);return v||i.test(e)?b(e.slice(2),v?2:8):g.test(e)?t:+e}return B=$,B}xe();var ne=typeof window<"u"?f.useLayoutEffect:f.useEffect;function ee(n,t,s,m){const g=f.useRef(t);ne(()=>{g.current=t},[t]),f.useEffect(()=>{const h=window;if(!(h&&h.addEventListener))return;const i=b=>{g.current(b)};return h.addEventListener(n,i,m),()=>{h.removeEventListener(n,i,m)}},[n,s,m])}function te(n){const t=f.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return ne(()=>{t.current=n},[n]),f.useCallback((...s)=>{var m;return(m=t.current)==null?void 0:m.call(t,...s)},[t])}var J=typeof window>"u";function ye(n,t,s={}){const{initializeWithValue:m=!0}=s,g=f.useCallback(r=>s.serializer?s.serializer(r):JSON.stringify(r),[s]),h=f.useCallback(r=>{if(s.deserializer)return s.deserializer(r);if(r==="undefined")return;const c=t instanceof Function?t():t;let O;try{O=JSON.parse(r)}catch(E){return console.error("Error parsing JSON:",E),c}return O},[s,t]),i=f.useCallback(()=>{const r=t instanceof Function?t():t;if(J)return r;try{const c=window.localStorage.getItem(n);return c?h(c):r}catch(c){return console.warn(`Error reading localStorage key “${n}”:`,c),r}},[t,n,h]),[b,S]=f.useState(()=>m?i():t instanceof Function?t():t),y=te(r=>{J&&console.warn(`Tried setting localStorage key “${n}” even though environment is not a client`);try{const c=r instanceof Function?r(i()):r;window.localStorage.setItem(n,g(c)),S(c),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))}catch(c){console.warn(`Error setting localStorage key “${n}”:`,c)}}),C=te(()=>{J&&console.warn(`Tried removing localStorage key “${n}” even though environment is not a client`);const r=t instanceof Function?t():t;window.localStorage.removeItem(n),S(r),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))});f.useEffect(()=>{S(i())},[n]);const d=f.useCallback(r=>{r.key&&r.key!==n||S(i())},[n,i]);return ee("storage",d),ee("local-storage",d),[b,y,C]}const Ce="ragbits-no-history-chat-options";function Le(){const{isOpen:n,onOpen:t,onClose:s}=ie(),m=ce(a=>a.chatOptions),g=f.useRef(null),{setConversationProperties:h,initializeChatOptions:i}=ue(),b=le(a=>a.currentConversation),{config:{user_settings:S}}=fe(),[y,C]=ye(Ce,null),d=S?.form,r=a=>{Y.isPluginActivated(Q.name)||C(a)},c=()=>{t()},O=(a,w)=>{w.preventDefault(),g.current=a.formData,s()},E=()=>{if(!d)return;const a=Z(W,d);g.current=a,s()},$=()=>{s()},_=a=>{if(a!=="exit"||!g.current)return;const w=g.current;h(b,{chatOptions:w}),r(w),g.current=null};return f.useEffect(()=>{if(!d)return;const a=Z(W,d);Y.isPluginActivated(Q.name)?i(a):y!==null?i(y):(i(a),C(a))},[i,d,b,y,C]),d?l.jsxs(l.Fragment,{children:[l.jsx(de,{content:"Chat Options",placement:"bottom",children:l.jsx(A,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open chat options",onPress:c,"data-testid":"open-chat-options",children:l.jsx(me,{icon:"heroicons:cog-6-tooth"})})}),l.jsx(ge,{isOpen:n,onOpenChange:$,motionProps:{onAnimationComplete:_},children:l.jsxs(he,{children:[l.jsx(Se,{className:"text-default-900 flex flex-col gap-1",children:d.title||"Chat Options"}),l.jsx(pe,{children:l.jsx("div",{className:"flex flex-col gap-4",children:l.jsx(ve,{schema:d,validator:W,formData:m,onSubmit:O,transformErrors:be,liveValidate:!0,children:l.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[l.jsx(A,{className:"mr-auto",color:"primary",variant:"light",onPress:E,"aria-label":"Restore default user settings",children:"Restore defaults"}),l.jsx(A,{color:"danger",variant:"light",onPress:s,"aria-label":"Close chat options form",children:"Cancel"}),l.jsx(A,{color:"primary",type:"submit","aria-label":"Save chat options","data-testid":"chat-options-submit",children:"Save"})]})})})})]})})]}):null}export{Le as default};
1
+ import{g as z,r as f,u as ie,h as ce,a as ue,i as le,b as fe,p as Y,C as Q,j as l,D as de,d as A,I as me,m as ge,e as he,f as pe}from"./index-Cyzr1kIj.js";import{g as Z,v as W,F as ve,t as be}from"./index-CSaYkt4U.js";import{m as Se}from"./chunk-IGSAU2ZA-CbPuRduG.js";import"./chunk-SSA7SXE4-DO9BwTof.js";import"./useMenuTriggerState-DRPPkuuB.js";import"./useSelectableItem-BHUz-f5B.js";import"./index-W9apL6ID.js";var B,V;function xe(){if(V)return B;V=1;var n="Expected a function",t=NaN,s="[object Symbol]",m=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,i=/^0o[0-7]+$/i,b=parseInt,S=typeof z=="object"&&z&&z.Object===Object&&z,y=typeof self=="object"&&self&&self.Object===Object&&self,C=S||y||Function("return this")(),d=Object.prototype,r=d.toString,c=Math.max,O=Math.min,E=function(){return C.Date.now()};function $(e,u,v){var T,L,P,I,p,j,R=0,G=!1,D=!1,k=!0;if(typeof e!="function")throw new TypeError(n);u=q(u)||0,_(v)&&(G=!!v.leading,D="maxWait"in v,P=D?c(q(v.maxWait)||0,u):P,k="trailing"in v?!!v.trailing:k);function H(o){var x=T,F=L;return T=L=void 0,R=o,I=e.apply(F,x),I}function re(o){return R=o,p=setTimeout(N,u),G?H(o):I}function oe(o){var x=o-j,F=o-R,X=u-x;return D?O(X,P-F):X}function U(o){var x=o-j,F=o-R;return j===void 0||x>=u||x<0||D&&F>=P}function N(){var o=E();if(U(o))return K(o);p=setTimeout(N,oe(o))}function K(o){return p=void 0,k&&T?H(o):(T=L=void 0,I)}function se(){p!==void 0&&clearTimeout(p),R=0,T=j=L=p=void 0}function ae(){return p===void 0?I:K(E())}function M(){var o=E(),x=U(o);if(T=arguments,L=this,j=o,x){if(p===void 0)return re(j);if(D)return p=setTimeout(N,u),H(j)}return p===void 0&&(p=setTimeout(N,u)),I}return M.cancel=se,M.flush=ae,M}function _(e){var u=typeof e;return!!e&&(u=="object"||u=="function")}function a(e){return!!e&&typeof e=="object"}function w(e){return typeof e=="symbol"||a(e)&&r.call(e)==s}function q(e){if(typeof e=="number")return e;if(w(e))return t;if(_(e)){var u=typeof e.valueOf=="function"?e.valueOf():e;e=_(u)?u+"":u}if(typeof e!="string")return e===0?e:+e;e=e.replace(m,"");var v=h.test(e);return v||i.test(e)?b(e.slice(2),v?2:8):g.test(e)?t:+e}return B=$,B}xe();var ne=typeof window<"u"?f.useLayoutEffect:f.useEffect;function ee(n,t,s,m){const g=f.useRef(t);ne(()=>{g.current=t},[t]),f.useEffect(()=>{const h=window;if(!(h&&h.addEventListener))return;const i=b=>{g.current(b)};return h.addEventListener(n,i,m),()=>{h.removeEventListener(n,i,m)}},[n,s,m])}function te(n){const t=f.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return ne(()=>{t.current=n},[n]),f.useCallback((...s)=>{var m;return(m=t.current)==null?void 0:m.call(t,...s)},[t])}var J=typeof window>"u";function ye(n,t,s={}){const{initializeWithValue:m=!0}=s,g=f.useCallback(r=>s.serializer?s.serializer(r):JSON.stringify(r),[s]),h=f.useCallback(r=>{if(s.deserializer)return s.deserializer(r);if(r==="undefined")return;const c=t instanceof Function?t():t;let O;try{O=JSON.parse(r)}catch(E){return console.error("Error parsing JSON:",E),c}return O},[s,t]),i=f.useCallback(()=>{const r=t instanceof Function?t():t;if(J)return r;try{const c=window.localStorage.getItem(n);return c?h(c):r}catch(c){return console.warn(`Error reading localStorage key “${n}”:`,c),r}},[t,n,h]),[b,S]=f.useState(()=>m?i():t instanceof Function?t():t),y=te(r=>{J&&console.warn(`Tried setting localStorage key “${n}” even though environment is not a client`);try{const c=r instanceof Function?r(i()):r;window.localStorage.setItem(n,g(c)),S(c),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))}catch(c){console.warn(`Error setting localStorage key “${n}”:`,c)}}),C=te(()=>{J&&console.warn(`Tried removing localStorage key “${n}” even though environment is not a client`);const r=t instanceof Function?t():t;window.localStorage.removeItem(n),S(r),window.dispatchEvent(new StorageEvent("local-storage",{key:n}))});f.useEffect(()=>{S(i())},[n]);const d=f.useCallback(r=>{r.key&&r.key!==n||S(i())},[n,i]);return ee("storage",d),ee("local-storage",d),[b,y,C]}const Ce="ragbits-no-history-chat-options";function Le(){const{isOpen:n,onOpen:t,onClose:s}=ie(),m=ce(a=>a.chatOptions),g=f.useRef(null),{setConversationProperties:h,initializeChatOptions:i}=ue(),b=le(a=>a.currentConversation),{config:{user_settings:S}}=fe(),[y,C]=ye(Ce,null),d=S?.form,r=a=>{Y.isPluginActivated(Q.name)||C(a)},c=()=>{t()},O=(a,w)=>{w.preventDefault(),g.current=a.formData,s()},E=()=>{if(!d)return;const a=Z(W,d);g.current=a,s()},$=()=>{s()},_=a=>{if(a!=="exit"||!g.current)return;const w=g.current;h(b,{chatOptions:w}),r(w),g.current=null};return f.useEffect(()=>{if(!d)return;const a=Z(W,d);Y.isPluginActivated(Q.name)?i(a):y!==null?i(y):(i(a),C(a))},[i,d,b,y,C]),d?l.jsxs(l.Fragment,{children:[l.jsx(de,{content:"Chat Options",placement:"bottom",children:l.jsx(A,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Open chat options",onPress:c,"data-testid":"open-chat-options",children:l.jsx(me,{icon:"heroicons:cog-6-tooth"})})}),l.jsx(ge,{isOpen:n,onOpenChange:$,motionProps:{onAnimationComplete:_},children:l.jsxs(he,{children:[l.jsx(Se,{className:"text-default-900 flex flex-col gap-1",children:d.title||"Chat Options"}),l.jsx(pe,{children:l.jsx("div",{className:"flex flex-col gap-4",children:l.jsx(ve,{schema:d,validator:W,formData:m,onSubmit:O,transformErrors:be,liveValidate:!0,children:l.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[l.jsx(A,{className:"mr-auto",color:"primary",variant:"light",onPress:E,"aria-label":"Restore default user settings",children:"Restore defaults"}),l.jsx(A,{color:"danger",variant:"light",onPress:s,"aria-label":"Close chat options form",children:"Cancel"}),l.jsx(A,{color:"primary",type:"submit","aria-label":"Save chat options","data-testid":"chat-options-submit",children:"Save"})]})})})})]})})]}):null}export{Le as default};
@@ -1 +1 @@
1
- import{r as c,c as x,aW as w,aE as S,j as t,aq as b,aG as j,d as v,bm as C}from"./index-CbVbgerL.js";import{a as P}from"./authStore-AVyfzjgs.js";import{u as q}from"./useInitializeUserStore-CVYyhiv3.js";import{i as m}from"./chunk-SSA7SXE4-D3GKTPj0.js";function z(){const[s,p]=c.useState({username:"",password:""}),l=x("/api/auth/login",{headers:{"Content-Type":"application/json"},method:"POST"}),f=w(P,e=>e.login),g=S(),u=q(),[y,o]=c.useState(!1),h=async e=>{o(!1),e.preventDefault(),e.stopPropagation();const r=new FormData(e.currentTarget),n=r.get("username"),i=r.get("password");try{const a=await l.call({body:{username:n,password:i}});if(!a.success||!a.user){o(!0);return}f(a.user),u?u(a.user.user_id):console.error("Failed to initialize store for user, initializeUserStore() is not defined. Check current HistoryStoreContextProvider implementation."),g("/")}catch(a){console.error("Failed to login",a),o(!0)}},d=e=>r=>p(n=>C(n,i=>{i[e]=r.target.value}));return t.jsxs("form",{className:"flex w-full flex-col gap-4",onSubmit:h,children:[t.jsx(m,{label:"Username",name:"username",labelPlacement:"outside",placeholder:"Your username",required:!0,isRequired:!0,value:s.username,onChange:d("username")}),t.jsx(m,{label:"Password",labelPlacement:"outside",id:"password",name:"password",type:"password",placeholder:"••••••••",required:!0,isRequired:!0,value:s.password,onChange:d("password")}),t.jsx(b,{children:y&&!l.isLoading&&t.jsx(j.div,{className:"text-small text-danger",initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3,ease:"easeOut"},children:"We couldn't sign you in. Please verify your credentials and try again."})}),t.jsx(v,{type:"submit",color:s.password&&s.username?"primary":"default",children:"Sign in"})]})}export{z as default};
1
+ import{r as c,c as x,aW as w,aE as S,j as t,aq as b,aG as j,d as v,bm as C}from"./index-Cyzr1kIj.js";import{a as P}from"./authStore-BIM9JG1Q.js";import{u as q}from"./useInitializeUserStore-Be1mCLhv.js";import{i as m}from"./chunk-SSA7SXE4-DO9BwTof.js";function z(){const[s,p]=c.useState({username:"",password:""}),l=x("/api/auth/login",{headers:{"Content-Type":"application/json"},method:"POST"}),f=w(P,e=>e.login),g=S(),u=q(),[y,o]=c.useState(!1),h=async e=>{o(!1),e.preventDefault(),e.stopPropagation();const r=new FormData(e.currentTarget),n=r.get("username"),i=r.get("password");try{const a=await l.call({body:{username:n,password:i}});if(!a.success||!a.user){o(!0);return}f(a.user),u?u(a.user.user_id):console.error("Failed to initialize store for user, initializeUserStore() is not defined. Check current HistoryStoreContextProvider implementation."),g("/")}catch(a){console.error("Failed to login",a),o(!0)}},d=e=>r=>p(n=>C(n,i=>{i[e]=r.target.value}));return t.jsxs("form",{className:"flex w-full flex-col gap-4",onSubmit:h,children:[t.jsx(m,{label:"Username",name:"username",labelPlacement:"outside",placeholder:"Your username",required:!0,isRequired:!0,value:s.username,onChange:d("username")}),t.jsx(m,{label:"Password",labelPlacement:"outside",id:"password",name:"password",type:"password",placeholder:"••••••••",required:!0,isRequired:!0,value:s.password,onChange:d("password")}),t.jsx(b,{children:y&&!l.isLoading&&t.jsx(j.div,{className:"text-small text-danger",initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3,ease:"easeOut"},children:"We couldn't sign you in. Please verify your credentials and try again."})}),t.jsx(v,{type:"submit",color:s.password&&s.username?"primary":"default",children:"Sign in"})]})}export{z as default};
@@ -1 +1 @@
1
- import{u as g,a as v,b as C,r as _,F as t,c as I,j as e,D as u,d as n,I as b,m as T,e as w,f as D}from"./index-CbVbgerL.js";import{F as O,t as S,v as E}from"./index-DTNGcmXG.js";import{m as N}from"./chunk-IGSAU2ZA-BBfo0QFa.js";import"./chunk-SSA7SXE4-D3GKTPj0.js";import"./useMenuTriggerState-C5916IcO.js";import"./useSelectableItem-BWC6EImE.js";import"./index-B-LIlvZN.js";function z({message:s}){const{isOpen:f,onOpen:h,onClose:r}=g(),{mergeExtensions:p}=v(),{config:{feedback:o}}=C(),[i,x]=_.useState(t.Like),k=I("/api/feedback",{headers:{"Content-Type":"application/json"},method:"POST"});if(!s.serverId)return null;const l=o[i].form,j=()=>{r()},c=async a=>{if(!s.serverId)throw new Error('Feedback is only available for messages with "serverId" set');try{await k.call({body:{message_id:s.serverId,feedback:i,payload:a??{}}})}catch(F){console.error(F)}},y=a=>{p(s.id,{feedbackType:i}),c(a.formData),r()},d=async a=>{if(x(a),o[a].form===null){await c(null);return}h()};if(!l)return null;const m=s.extensions?.feedbackType;return e.jsxs(e.Fragment,{children:[o.like.enabled&&e.jsx(u,{content:"Like",placement:"bottom",children:e.jsx(n,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as helpful",onPress:()=>d(t.Like),"data-testid":"feedback-like",children:e.jsx(b,{icon:m===t.Like?"heroicons:hand-thumb-up-solid":"heroicons:hand-thumb-up"})})}),o.dislike.enabled&&e.jsx(u,{content:"Dislike",placement:"bottom",children:e.jsx(n,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as unhelpful",onPress:()=>d(t.Dislike),"data-testid":"feedback-dislike",children:e.jsx(b,{icon:m===t.Dislike?"heroicons:hand-thumb-down-solid":"heroicons:hand-thumb-down"})})}),e.jsx(T,{isOpen:f,onOpenChange:j,children:e.jsx(w,{children:a=>e.jsxs(e.Fragment,{children:[e.jsx(N,{className:"text-default-900 flex flex-col gap-1",children:l.title}),e.jsx(D,{children:e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx(O,{schema:l,validator:E,onSubmit:y,transformErrors:S,liveValidate:!0,children:e.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[e.jsx(n,{color:"danger",variant:"light",onPress:a,"aria-label":"Close feedback form",children:"Cancel"}),e.jsx(n,{color:"primary",type:"submit","aria-label":"Submit feedback","data-testid":"feedback-submit",children:"Submit"})]})})})})]})})})]})}export{z as default};
1
+ import{u as g,a as v,b as C,r as _,F as t,c as I,j as e,D as u,d as n,I as b,m as T,e as w,f as D}from"./index-Cyzr1kIj.js";import{F as O,t as S,v as E}from"./index-CSaYkt4U.js";import{m as N}from"./chunk-IGSAU2ZA-CbPuRduG.js";import"./chunk-SSA7SXE4-DO9BwTof.js";import"./useMenuTriggerState-DRPPkuuB.js";import"./useSelectableItem-BHUz-f5B.js";import"./index-W9apL6ID.js";function z({message:s}){const{isOpen:f,onOpen:h,onClose:r}=g(),{mergeExtensions:p}=v(),{config:{feedback:o}}=C(),[i,x]=_.useState(t.Like),k=I("/api/feedback",{headers:{"Content-Type":"application/json"},method:"POST"});if(!s.serverId)return null;const l=o[i].form,j=()=>{r()},c=async a=>{if(!s.serverId)throw new Error('Feedback is only available for messages with "serverId" set');try{await k.call({body:{message_id:s.serverId,feedback:i,payload:a??{}}})}catch(F){console.error(F)}},y=a=>{p(s.id,{feedbackType:i}),c(a.formData),r()},d=async a=>{if(x(a),o[a].form===null){await c(null);return}h()};if(!l)return null;const m=s.extensions?.feedbackType;return e.jsxs(e.Fragment,{children:[o.like.enabled&&e.jsx(u,{content:"Like",placement:"bottom",children:e.jsx(n,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as helpful",onPress:()=>d(t.Like),"data-testid":"feedback-like",children:e.jsx(b,{icon:m===t.Like?"heroicons:hand-thumb-up-solid":"heroicons:hand-thumb-up"})})}),o.dislike.enabled&&e.jsx(u,{content:"Dislike",placement:"bottom",children:e.jsx(n,{isIconOnly:!0,variant:"ghost",className:"p-0","aria-label":"Rate message as unhelpful",onPress:()=>d(t.Dislike),"data-testid":"feedback-dislike",children:e.jsx(b,{icon:m===t.Dislike?"heroicons:hand-thumb-down-solid":"heroicons:hand-thumb-down"})})}),e.jsx(T,{isOpen:f,onOpenChange:j,children:e.jsx(w,{children:a=>e.jsxs(e.Fragment,{children:[e.jsx(N,{className:"text-default-900 flex flex-col gap-1",children:l.title}),e.jsx(D,{children:e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx(O,{schema:l,validator:E,onSubmit:y,transformErrors:S,liveValidate:!0,children:e.jsxs("div",{className:"flex justify-end gap-4 py-4",children:[e.jsx(n,{color:"danger",variant:"light",onPress:a,"aria-label":"Close feedback form",children:"Cancel"}),e.jsx(n,{color:"primary",type:"submit","aria-label":"Submit feedback","data-testid":"feedback-submit",children:"Submit"})]})})})})]})})})]})}export{z as default};
@@ -1 +1 @@
1
- import{r as s,j as e}from"./index-CbVbgerL.js";function n({children:t}){return s.useEffect(()=>{document.title="Login"},[]),e.jsx("div",{className:"flex h-screen w-screen",children:e.jsxs("div",{className:"rounded-medium border-small border-divider m-auto flex w-full max-w-xs flex-col gap-4 p-4",children:[e.jsxs("div",{className:"text-small",children:[e.jsx("div",{className:"text-foreground truncate leading-5 font-semibold",children:"Sign in"}),e.jsx("div",{className:"text-default-500 truncate leading-5 font-normal",children:"Sign in to start chatting."})]}),t]})})}export{n as default};
1
+ import{r as s,j as e}from"./index-Cyzr1kIj.js";function n({children:t}){return s.useEffect(()=>{document.title="Login"},[]),e.jsx("div",{className:"flex h-screen w-screen",children:e.jsxs("div",{className:"rounded-medium border-small border-divider m-auto flex w-full max-w-xs flex-col gap-4 p-4",children:[e.jsxs("div",{className:"text-small",children:[e.jsx("div",{className:"text-foreground truncate leading-5 font-semibold",children:"Sign in"}),e.jsx("div",{className:"text-default-500 truncate leading-5 font-normal",children:"Sign in to start chatting."})]}),t]})})}export{n as default};
@@ -1 +1 @@
1
- import{c,aW as a,aE as l,j as o,D as g,d,I as h}from"./index-CbVbgerL.js";import{a as s}from"./authStore-AVyfzjgs.js";function m(){const n=c("/api/auth/logout",{headers:{"Content-Type":"application/json"},method:"POST"}),r=a(s,t=>t.logout),u=a(s,t=>t.isAuthenticated),e=l(),i=async()=>{if(!u){e("/login");return}try{if(!(await n.call()).success)return;r(),e("/login")}catch(t){console.error("Failed to logout",t)}};return o.jsx(g,{content:"Logout",placement:"bottom",children:o.jsx(d,{isIconOnly:!0,"aria-label":"Logout",variant:"ghost",onPress:i,"data-testid":"logout-button",children:o.jsx(h,{icon:"heroicons:arrow-left-start-on-rectangle"})})})}export{m as default};
1
+ import{c,aW as a,aE as l,j as o,D as g,d,I as h}from"./index-Cyzr1kIj.js";import{a as s}from"./authStore-BIM9JG1Q.js";function m(){const n=c("/api/auth/logout",{headers:{"Content-Type":"application/json"},method:"POST"}),r=a(s,t=>t.logout),u=a(s,t=>t.isAuthenticated),e=l(),i=async()=>{if(!u){e("/login");return}try{if(!(await n.call()).success)return;r(),e("/login")}catch(t){console.error("Failed to logout",t)}};return o.jsx(g,{content:"Logout",placement:"bottom",children:o.jsx(d,{isIconOnly:!0,"aria-label":"Logout",variant:"ghost",onPress:i,"data-testid":"logout-button",children:o.jsx(h,{icon:"heroicons:arrow-left-start-on-rectangle"})})})}export{m as default};
@@ -1,2 +1,2 @@
1
- import{ar as An,r as K,c as Sn,j as le,aq as Rn,aG as yn,d as On}from"./index-CbVbgerL.js";var $e,Nt;function Mt(){if(Nt)return $e;Nt=1;const{entries:Z,setPrototypeOf:C,isFrozen:w,getPrototypeOf:ye,getOwnPropertyDescriptor:ce}=Object;let{freeze:T,seal:y,create:k}=Object,{apply:z,construct:H}=typeof Reflect<"u"&&Reflect;T||(T=function(o){return o}),y||(y=function(o){return o}),z||(z=function(o,l){for(var r=arguments.length,c=new Array(r>2?r-2:0),O=2;O<r;O++)c[O-2]=arguments[O];return o.apply(l,c)}),H||(H=function(o){for(var l=arguments.length,r=new Array(l>1?l-1:0),c=1;c<l;c++)r[c-1]=arguments[c];return new o(...r)});const G=A(Array.prototype.forEach),ue=A(Array.prototype.lastIndexOf),fe=A(Array.prototype.pop),b=A(Array.prototype.push),wt=A(Array.prototype.splice),me=A(String.prototype.toLowerCase),Oe=A(String.prototype.toString),Le=A(String.prototype.match),J=A(String.prototype.replace),xt=A(String.prototype.indexOf),Pt=A(String.prototype.trim),D=A(Object.prototype.hasOwnProperty),h=A(RegExp.prototype.test),Q=vt(TypeError);function A(s){return function(o){o instanceof RegExp&&(o.lastIndex=0);for(var l=arguments.length,r=new Array(l>1?l-1:0),c=1;c<l;c++)r[c-1]=arguments[c];return z(s,o,r)}}function vt(s){return function(){for(var o=arguments.length,l=new Array(o),r=0;r<o;r++)l[r]=arguments[r];return H(s,l)}}function a(s,o){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:me;C&&C(s,null);let r=o.length;for(;r--;){let c=o[r];if(typeof c=="string"){const O=l(c);O!==c&&(w(o)||(o[r]=O),c=O)}s[c]=!0}return s}function kt(s){for(let o=0;o<s.length;o++)D(s,o)||(s[o]=null);return s}function I(s){const o=k(null);for(const[l,r]of Z(s))D(s,l)&&(Array.isArray(r)?o[l]=kt(r):r&&typeof r=="object"&&r.constructor===Object?o[l]=I(r):o[l]=r);return o}function ee(s,o){for(;s!==null;){const r=ce(s,o);if(r){if(r.get)return A(r.get);if(typeof r.value=="function")return A(r.value)}s=ye(s)}function l(){return null}return l}const Ve=T(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),be=T(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),De=T(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Ft=T(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Ie=T(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Ut=T(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Ke=T(["#text"]),Ze=T(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),Ne=T(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Je=T(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),pe=T(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),zt=y(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Ht=y(/<%[\w\W]*|[\w\W]*%>/gm),Gt=y(/\$\{[\w\W]*/gm),Wt=y(/^data-[\-\w.\u00B7-\uFFFF]+$/),Bt=y(/^aria-[\-\w]+$/),Qe=y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Yt=y(/^(?:\w+script|data):/i),jt=y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),et=y(/^html$/i),Xt=y(/^[a-z][.\w]*(-[.\w]+)+$/i);var tt=Object.freeze({__proto__:null,ARIA_ATTR:Bt,ATTR_WHITESPACE:jt,CUSTOM_ELEMENT:Xt,DATA_ATTR:Wt,DOCTYPE_NAME:et,ERB_EXPR:Ht,IS_ALLOWED_URI:Qe,IS_SCRIPT_OR_DATA:Yt,MUSTACHE_EXPR:zt,TMPLIT_EXPR:Gt});const te={element:1,text:3,progressingInstruction:7,comment:8,document:9},$t=function(){return typeof window>"u"?null:window},qt=function(o,l){if(typeof o!="object"||typeof o.createPolicy!="function")return null;let r=null;const c="data-tt-policy-suffix";l&&l.hasAttribute(c)&&(r=l.getAttribute(c));const O="dompurify"+(r?"#"+r:"");try{return o.createPolicy(O,{createHTML(W){return W},createScriptURL(W){return W}})}catch{return console.warn("TrustedTypes policy "+O+" could not be created."),null}},nt=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function ot(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$t();const o=i=>ot(i);if(o.version="3.3.1",o.removed=[],!s||!s.document||s.document.nodeType!==te.document||!s.Element)return o.isSupported=!1,o;let{document:l}=s;const r=l,c=r.currentScript,{DocumentFragment:O,HTMLTemplateElement:W,Node:Me,Element:it,NodeFilter:ne,NamedNodeMap:Kt=s.NamedNodeMap||s.MozNamedAttrMap,HTMLFormElement:Zt,DOMParser:Jt,trustedTypes:de}=s,oe=it.prototype,Qt=ee(oe,"cloneNode"),en=ee(oe,"remove"),tn=ee(oe,"nextSibling"),nn=ee(oe,"childNodes"),Te=ee(oe,"parentNode");if(typeof W=="function"){const i=l.createElement("template");i.content&&i.content.ownerDocument&&(l=i.content.ownerDocument)}let S,ie="";const{implementation:Ce,createNodeIterator:on,createDocumentFragment:rn,getElementsByTagName:an}=l,{importNode:sn}=r;let R=nt();o.isSupported=typeof Z=="function"&&typeof Te=="function"&&Ce&&Ce.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:we,ERB_EXPR:xe,TMPLIT_EXPR:Pe,DATA_ATTR:ln,ARIA_ATTR:cn,IS_SCRIPT_OR_DATA:un,ATTR_WHITESPACE:rt,CUSTOM_ELEMENT:fn}=tt;let{IS_ALLOWED_URI:at}=tt,d=null;const st=a({},[...Ve,...be,...De,...Ie,...Ke]);let E=null;const lt=a({},[...Ze,...Ne,...Je,...pe]);let f=Object.seal(k(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),re=null,ve=null;const B=Object.seal(k(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ct=!0,ke=!0,ut=!1,ft=!0,Y=!1,Ee=!0,F=!1,Fe=!1,Ue=!1,j=!1,_e=!1,ge=!1,mt=!0,pt=!1;const mn="user-content-";let ze=!0,ae=!1,X={},N=null;const He=a({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let dt=null;const Tt=a({},["audio","video","img","source","image","track"]);let Ge=null;const Et=a({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),he="http://www.w3.org/1998/Math/MathML",Ae="http://www.w3.org/2000/svg",x="http://www.w3.org/1999/xhtml";let $=x,We=!1,Be=null;const pn=a({},[he,Ae,x],Oe);let Se=a({},["mi","mo","mn","ms","mtext"]),Re=a({},["annotation-xml"]);const dn=a({},["title","style","font","a","script"]);let se=null;const Tn=["application/xhtml+xml","text/html"],En="text/html";let p=null,q=null;const _n=l.createElement("form"),_t=function(e){return e instanceof RegExp||e instanceof Function},Ye=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(q&&q===e)){if((!e||typeof e!="object")&&(e={}),e=I(e),se=Tn.indexOf(e.PARSER_MEDIA_TYPE)===-1?En:e.PARSER_MEDIA_TYPE,p=se==="application/xhtml+xml"?Oe:me,d=D(e,"ALLOWED_TAGS")?a({},e.ALLOWED_TAGS,p):st,E=D(e,"ALLOWED_ATTR")?a({},e.ALLOWED_ATTR,p):lt,Be=D(e,"ALLOWED_NAMESPACES")?a({},e.ALLOWED_NAMESPACES,Oe):pn,Ge=D(e,"ADD_URI_SAFE_ATTR")?a(I(Et),e.ADD_URI_SAFE_ATTR,p):Et,dt=D(e,"ADD_DATA_URI_TAGS")?a(I(Tt),e.ADD_DATA_URI_TAGS,p):Tt,N=D(e,"FORBID_CONTENTS")?a({},e.FORBID_CONTENTS,p):He,re=D(e,"FORBID_TAGS")?a({},e.FORBID_TAGS,p):I({}),ve=D(e,"FORBID_ATTR")?a({},e.FORBID_ATTR,p):I({}),X=D(e,"USE_PROFILES")?e.USE_PROFILES:!1,ct=e.ALLOW_ARIA_ATTR!==!1,ke=e.ALLOW_DATA_ATTR!==!1,ut=e.ALLOW_UNKNOWN_PROTOCOLS||!1,ft=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Y=e.SAFE_FOR_TEMPLATES||!1,Ee=e.SAFE_FOR_XML!==!1,F=e.WHOLE_DOCUMENT||!1,j=e.RETURN_DOM||!1,_e=e.RETURN_DOM_FRAGMENT||!1,ge=e.RETURN_TRUSTED_TYPE||!1,Ue=e.FORCE_BODY||!1,mt=e.SANITIZE_DOM!==!1,pt=e.SANITIZE_NAMED_PROPS||!1,ze=e.KEEP_CONTENT!==!1,ae=e.IN_PLACE||!1,at=e.ALLOWED_URI_REGEXP||Qe,$=e.NAMESPACE||x,Se=e.MATHML_TEXT_INTEGRATION_POINTS||Se,Re=e.HTML_INTEGRATION_POINTS||Re,f=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&_t(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(f.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&_t(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(f.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(f.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Y&&(ke=!1),_e&&(j=!0),X&&(d=a({},Ke),E=[],X.html===!0&&(a(d,Ve),a(E,Ze)),X.svg===!0&&(a(d,be),a(E,Ne),a(E,pe)),X.svgFilters===!0&&(a(d,De),a(E,Ne),a(E,pe)),X.mathMl===!0&&(a(d,Ie),a(E,Je),a(E,pe))),e.ADD_TAGS&&(typeof e.ADD_TAGS=="function"?B.tagCheck=e.ADD_TAGS:(d===st&&(d=I(d)),a(d,e.ADD_TAGS,p))),e.ADD_ATTR&&(typeof e.ADD_ATTR=="function"?B.attributeCheck=e.ADD_ATTR:(E===lt&&(E=I(E)),a(E,e.ADD_ATTR,p))),e.ADD_URI_SAFE_ATTR&&a(Ge,e.ADD_URI_SAFE_ATTR,p),e.FORBID_CONTENTS&&(N===He&&(N=I(N)),a(N,e.FORBID_CONTENTS,p)),e.ADD_FORBID_CONTENTS&&(N===He&&(N=I(N)),a(N,e.ADD_FORBID_CONTENTS,p)),ze&&(d["#text"]=!0),F&&a(d,["html","head","body"]),d.table&&(a(d,["tbody"]),delete re.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!="function")throw Q('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Q('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');S=e.TRUSTED_TYPES_POLICY,ie=S.createHTML("")}else S===void 0&&(S=qt(de,c)),S!==null&&typeof ie=="string"&&(ie=S.createHTML(""));T&&T(e),q=e}},gt=a({},[...be,...De,...Ft]),ht=a({},[...Ie,...Ut]),gn=function(e){let t=Te(e);(!t||!t.tagName)&&(t={namespaceURI:$,tagName:"template"});const n=me(e.tagName),u=me(t.tagName);return Be[e.namespaceURI]?e.namespaceURI===Ae?t.namespaceURI===x?n==="svg":t.namespaceURI===he?n==="svg"&&(u==="annotation-xml"||Se[u]):!!gt[n]:e.namespaceURI===he?t.namespaceURI===x?n==="math":t.namespaceURI===Ae?n==="math"&&Re[u]:!!ht[n]:e.namespaceURI===x?t.namespaceURI===Ae&&!Re[u]||t.namespaceURI===he&&!Se[u]?!1:!ht[n]&&(dn[n]||!gt[n]):!!(se==="application/xhtml+xml"&&Be[e.namespaceURI]):!1},M=function(e){b(o.removed,{element:e});try{Te(e).removeChild(e)}catch{en(e)}},U=function(e,t){try{b(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch{b(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),e==="is")if(j||_e)try{M(t)}catch{}else try{t.setAttribute(e,"")}catch{}},At=function(e){let t=null,n=null;if(Ue)e="<remove></remove>"+e;else{const m=Le(e,/^[\r\n\t ]+/);n=m&&m[0]}se==="application/xhtml+xml"&&$===x&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const u=S?S.createHTML(e):e;if($===x)try{t=new Jt().parseFromString(u,se)}catch{}if(!t||!t.documentElement){t=Ce.createDocument($,"template",null);try{t.documentElement.innerHTML=We?ie:u}catch{}}const g=t.body||t.documentElement;return e&&n&&g.insertBefore(l.createTextNode(n),g.childNodes[0]||null),$===x?an.call(t,F?"html":"body")[0]:F?t.documentElement:g},St=function(e){return on.call(e.ownerDocument||e,e,ne.SHOW_ELEMENT|ne.SHOW_COMMENT|ne.SHOW_TEXT|ne.SHOW_PROCESSING_INSTRUCTION|ne.SHOW_CDATA_SECTION,null)},je=function(e){return e instanceof Zt&&(typeof e.nodeName!="string"||typeof e.textContent!="string"||typeof e.removeChild!="function"||!(e.attributes instanceof Kt)||typeof e.removeAttribute!="function"||typeof e.setAttribute!="function"||typeof e.namespaceURI!="string"||typeof e.insertBefore!="function"||typeof e.hasChildNodes!="function")},Rt=function(e){return typeof Me=="function"&&e instanceof Me};function P(i,e,t){G(i,n=>{n.call(o,e,t,q)})}const yt=function(e){let t=null;if(P(R.beforeSanitizeElements,e,null),je(e))return M(e),!0;const n=p(e.nodeName);if(P(R.uponSanitizeElement,e,{tagName:n,allowedTags:d}),Ee&&e.hasChildNodes()&&!Rt(e.firstElementChild)&&h(/<[/\w!]/g,e.innerHTML)&&h(/<[/\w!]/g,e.textContent)||e.nodeType===te.progressingInstruction||Ee&&e.nodeType===te.comment&&h(/<[/\w]/g,e.data))return M(e),!0;if(!(B.tagCheck instanceof Function&&B.tagCheck(n))&&(!d[n]||re[n])){if(!re[n]&&Lt(n)&&(f.tagNameCheck instanceof RegExp&&h(f.tagNameCheck,n)||f.tagNameCheck instanceof Function&&f.tagNameCheck(n)))return!1;if(ze&&!N[n]){const u=Te(e)||e.parentNode,g=nn(e)||e.childNodes;if(g&&u){const m=g.length;for(let L=m-1;L>=0;--L){const v=Qt(g[L],!0);v.__removalCount=(e.__removalCount||0)+1,u.insertBefore(v,tn(e))}}}return M(e),!0}return e instanceof it&&!gn(e)||(n==="noscript"||n==="noembed"||n==="noframes")&&h(/<\/no(script|embed|frames)/i,e.innerHTML)?(M(e),!0):(Y&&e.nodeType===te.text&&(t=e.textContent,G([we,xe,Pe],u=>{t=J(t,u," ")}),e.textContent!==t&&(b(o.removed,{element:e.cloneNode()}),e.textContent=t)),P(R.afterSanitizeElements,e,null),!1)},Ot=function(e,t,n){if(mt&&(t==="id"||t==="name")&&(n in l||n in _n))return!1;if(!(ke&&!ve[t]&&h(ln,t))){if(!(ct&&h(cn,t))){if(!(B.attributeCheck instanceof Function&&B.attributeCheck(t,e))){if(!E[t]||ve[t]){if(!(Lt(e)&&(f.tagNameCheck instanceof RegExp&&h(f.tagNameCheck,e)||f.tagNameCheck instanceof Function&&f.tagNameCheck(e))&&(f.attributeNameCheck instanceof RegExp&&h(f.attributeNameCheck,t)||f.attributeNameCheck instanceof Function&&f.attributeNameCheck(t,e))||t==="is"&&f.allowCustomizedBuiltInElements&&(f.tagNameCheck instanceof RegExp&&h(f.tagNameCheck,n)||f.tagNameCheck instanceof Function&&f.tagNameCheck(n))))return!1}else if(!Ge[t]){if(!h(at,J(n,rt,""))){if(!((t==="src"||t==="xlink:href"||t==="href")&&e!=="script"&&xt(n,"data:")===0&&dt[e])){if(!(ut&&!h(un,J(n,rt,"")))){if(n)return!1}}}}}}}return!0},Lt=function(e){return e!=="annotation-xml"&&Le(e,fn)},bt=function(e){P(R.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||je(e))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:E,forceKeepAttr:void 0};let u=t.length;for(;u--;){const g=t[u],{name:m,namespaceURI:L,value:v}=g,V=p(m),Xe=v;let _=m==="value"?Xe:Pt(Xe);if(n.attrName=V,n.attrValue=_,n.keepAttr=!0,n.forceKeepAttr=void 0,P(R.uponSanitizeAttribute,e,n),_=n.attrValue,pt&&(V==="id"||V==="name")&&(U(m,e),_=mn+_),Ee&&h(/((--!?|])>)|<\/(style|title|textarea)/i,_)){U(m,e);continue}if(V==="attributename"&&Le(_,"href")){U(m,e);continue}if(n.forceKeepAttr)continue;if(!n.keepAttr){U(m,e);continue}if(!ft&&h(/\/>/i,_)){U(m,e);continue}Y&&G([we,xe,Pe],It=>{_=J(_,It," ")});const Dt=p(e.nodeName);if(!Ot(Dt,V,_)){U(m,e);continue}if(S&&typeof de=="object"&&typeof de.getAttributeType=="function"&&!L)switch(de.getAttributeType(Dt,V)){case"TrustedHTML":{_=S.createHTML(_);break}case"TrustedScriptURL":{_=S.createScriptURL(_);break}}if(_!==Xe)try{L?e.setAttributeNS(L,m,_):e.setAttribute(m,_),je(e)?M(e):fe(o.removed)}catch{U(m,e)}}P(R.afterSanitizeAttributes,e,null)},hn=function i(e){let t=null;const n=St(e);for(P(R.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)P(R.uponSanitizeShadowNode,t,null),yt(t),bt(t),t.content instanceof O&&i(t.content);P(R.afterSanitizeShadowDOM,e,null)};return o.sanitize=function(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=null,n=null,u=null,g=null;if(We=!i,We&&(i="<!-->"),typeof i!="string"&&!Rt(i))if(typeof i.toString=="function"){if(i=i.toString(),typeof i!="string")throw Q("dirty is not a string, aborting")}else throw Q("toString is not a function");if(!o.isSupported)return i;if(Fe||Ye(e),o.removed=[],typeof i=="string"&&(ae=!1),ae){if(i.nodeName){const v=p(i.nodeName);if(!d[v]||re[v])throw Q("root node is forbidden and cannot be sanitized in-place")}}else if(i instanceof Me)t=At("<!---->"),n=t.ownerDocument.importNode(i,!0),n.nodeType===te.element&&n.nodeName==="BODY"||n.nodeName==="HTML"?t=n:t.appendChild(n);else{if(!j&&!Y&&!F&&i.indexOf("<")===-1)return S&&ge?S.createHTML(i):i;if(t=At(i),!t)return j?null:ge?ie:""}t&&Ue&&M(t.firstChild);const m=St(ae?i:t);for(;u=m.nextNode();)yt(u),bt(u),u.content instanceof O&&hn(u.content);if(ae)return i;if(j){if(_e)for(g=rn.call(t.ownerDocument);t.firstChild;)g.appendChild(t.firstChild);else g=t;return(E.shadowroot||E.shadowrootmode)&&(g=sn.call(r,g,!0)),g}let L=F?t.outerHTML:t.innerHTML;return F&&d["!doctype"]&&t.ownerDocument&&t.ownerDocument.doctype&&t.ownerDocument.doctype.name&&h(et,t.ownerDocument.doctype.name)&&(L="<!DOCTYPE "+t.ownerDocument.doctype.name+`>
1
+ import{ar as An,r as K,c as Sn,j as le,aq as Rn,aG as yn,d as On}from"./index-Cyzr1kIj.js";var $e,Nt;function Mt(){if(Nt)return $e;Nt=1;const{entries:Z,setPrototypeOf:C,isFrozen:w,getPrototypeOf:ye,getOwnPropertyDescriptor:ce}=Object;let{freeze:T,seal:y,create:k}=Object,{apply:z,construct:H}=typeof Reflect<"u"&&Reflect;T||(T=function(o){return o}),y||(y=function(o){return o}),z||(z=function(o,l){for(var r=arguments.length,c=new Array(r>2?r-2:0),O=2;O<r;O++)c[O-2]=arguments[O];return o.apply(l,c)}),H||(H=function(o){for(var l=arguments.length,r=new Array(l>1?l-1:0),c=1;c<l;c++)r[c-1]=arguments[c];return new o(...r)});const G=A(Array.prototype.forEach),ue=A(Array.prototype.lastIndexOf),fe=A(Array.prototype.pop),b=A(Array.prototype.push),wt=A(Array.prototype.splice),me=A(String.prototype.toLowerCase),Oe=A(String.prototype.toString),Le=A(String.prototype.match),J=A(String.prototype.replace),xt=A(String.prototype.indexOf),Pt=A(String.prototype.trim),D=A(Object.prototype.hasOwnProperty),h=A(RegExp.prototype.test),Q=vt(TypeError);function A(s){return function(o){o instanceof RegExp&&(o.lastIndex=0);for(var l=arguments.length,r=new Array(l>1?l-1:0),c=1;c<l;c++)r[c-1]=arguments[c];return z(s,o,r)}}function vt(s){return function(){for(var o=arguments.length,l=new Array(o),r=0;r<o;r++)l[r]=arguments[r];return H(s,l)}}function a(s,o){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:me;C&&C(s,null);let r=o.length;for(;r--;){let c=o[r];if(typeof c=="string"){const O=l(c);O!==c&&(w(o)||(o[r]=O),c=O)}s[c]=!0}return s}function kt(s){for(let o=0;o<s.length;o++)D(s,o)||(s[o]=null);return s}function I(s){const o=k(null);for(const[l,r]of Z(s))D(s,l)&&(Array.isArray(r)?o[l]=kt(r):r&&typeof r=="object"&&r.constructor===Object?o[l]=I(r):o[l]=r);return o}function ee(s,o){for(;s!==null;){const r=ce(s,o);if(r){if(r.get)return A(r.get);if(typeof r.value=="function")return A(r.value)}s=ye(s)}function l(){return null}return l}const Ve=T(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),be=T(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),De=T(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Ft=T(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Ie=T(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Ut=T(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Ke=T(["#text"]),Ze=T(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),Ne=T(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Je=T(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),pe=T(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),zt=y(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Ht=y(/<%[\w\W]*|[\w\W]*%>/gm),Gt=y(/\$\{[\w\W]*/gm),Wt=y(/^data-[\-\w.\u00B7-\uFFFF]+$/),Bt=y(/^aria-[\-\w]+$/),Qe=y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Yt=y(/^(?:\w+script|data):/i),jt=y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),et=y(/^html$/i),Xt=y(/^[a-z][.\w]*(-[.\w]+)+$/i);var tt=Object.freeze({__proto__:null,ARIA_ATTR:Bt,ATTR_WHITESPACE:jt,CUSTOM_ELEMENT:Xt,DATA_ATTR:Wt,DOCTYPE_NAME:et,ERB_EXPR:Ht,IS_ALLOWED_URI:Qe,IS_SCRIPT_OR_DATA:Yt,MUSTACHE_EXPR:zt,TMPLIT_EXPR:Gt});const te={element:1,text:3,progressingInstruction:7,comment:8,document:9},$t=function(){return typeof window>"u"?null:window},qt=function(o,l){if(typeof o!="object"||typeof o.createPolicy!="function")return null;let r=null;const c="data-tt-policy-suffix";l&&l.hasAttribute(c)&&(r=l.getAttribute(c));const O="dompurify"+(r?"#"+r:"");try{return o.createPolicy(O,{createHTML(W){return W},createScriptURL(W){return W}})}catch{return console.warn("TrustedTypes policy "+O+" could not be created."),null}},nt=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function ot(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$t();const o=i=>ot(i);if(o.version="3.3.1",o.removed=[],!s||!s.document||s.document.nodeType!==te.document||!s.Element)return o.isSupported=!1,o;let{document:l}=s;const r=l,c=r.currentScript,{DocumentFragment:O,HTMLTemplateElement:W,Node:Me,Element:it,NodeFilter:ne,NamedNodeMap:Kt=s.NamedNodeMap||s.MozNamedAttrMap,HTMLFormElement:Zt,DOMParser:Jt,trustedTypes:de}=s,oe=it.prototype,Qt=ee(oe,"cloneNode"),en=ee(oe,"remove"),tn=ee(oe,"nextSibling"),nn=ee(oe,"childNodes"),Te=ee(oe,"parentNode");if(typeof W=="function"){const i=l.createElement("template");i.content&&i.content.ownerDocument&&(l=i.content.ownerDocument)}let S,ie="";const{implementation:Ce,createNodeIterator:on,createDocumentFragment:rn,getElementsByTagName:an}=l,{importNode:sn}=r;let R=nt();o.isSupported=typeof Z=="function"&&typeof Te=="function"&&Ce&&Ce.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:we,ERB_EXPR:xe,TMPLIT_EXPR:Pe,DATA_ATTR:ln,ARIA_ATTR:cn,IS_SCRIPT_OR_DATA:un,ATTR_WHITESPACE:rt,CUSTOM_ELEMENT:fn}=tt;let{IS_ALLOWED_URI:at}=tt,d=null;const st=a({},[...Ve,...be,...De,...Ie,...Ke]);let E=null;const lt=a({},[...Ze,...Ne,...Je,...pe]);let f=Object.seal(k(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),re=null,ve=null;const B=Object.seal(k(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ct=!0,ke=!0,ut=!1,ft=!0,Y=!1,Ee=!0,F=!1,Fe=!1,Ue=!1,j=!1,_e=!1,ge=!1,mt=!0,pt=!1;const mn="user-content-";let ze=!0,ae=!1,X={},N=null;const He=a({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let dt=null;const Tt=a({},["audio","video","img","source","image","track"]);let Ge=null;const Et=a({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),he="http://www.w3.org/1998/Math/MathML",Ae="http://www.w3.org/2000/svg",x="http://www.w3.org/1999/xhtml";let $=x,We=!1,Be=null;const pn=a({},[he,Ae,x],Oe);let Se=a({},["mi","mo","mn","ms","mtext"]),Re=a({},["annotation-xml"]);const dn=a({},["title","style","font","a","script"]);let se=null;const Tn=["application/xhtml+xml","text/html"],En="text/html";let p=null,q=null;const _n=l.createElement("form"),_t=function(e){return e instanceof RegExp||e instanceof Function},Ye=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(q&&q===e)){if((!e||typeof e!="object")&&(e={}),e=I(e),se=Tn.indexOf(e.PARSER_MEDIA_TYPE)===-1?En:e.PARSER_MEDIA_TYPE,p=se==="application/xhtml+xml"?Oe:me,d=D(e,"ALLOWED_TAGS")?a({},e.ALLOWED_TAGS,p):st,E=D(e,"ALLOWED_ATTR")?a({},e.ALLOWED_ATTR,p):lt,Be=D(e,"ALLOWED_NAMESPACES")?a({},e.ALLOWED_NAMESPACES,Oe):pn,Ge=D(e,"ADD_URI_SAFE_ATTR")?a(I(Et),e.ADD_URI_SAFE_ATTR,p):Et,dt=D(e,"ADD_DATA_URI_TAGS")?a(I(Tt),e.ADD_DATA_URI_TAGS,p):Tt,N=D(e,"FORBID_CONTENTS")?a({},e.FORBID_CONTENTS,p):He,re=D(e,"FORBID_TAGS")?a({},e.FORBID_TAGS,p):I({}),ve=D(e,"FORBID_ATTR")?a({},e.FORBID_ATTR,p):I({}),X=D(e,"USE_PROFILES")?e.USE_PROFILES:!1,ct=e.ALLOW_ARIA_ATTR!==!1,ke=e.ALLOW_DATA_ATTR!==!1,ut=e.ALLOW_UNKNOWN_PROTOCOLS||!1,ft=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Y=e.SAFE_FOR_TEMPLATES||!1,Ee=e.SAFE_FOR_XML!==!1,F=e.WHOLE_DOCUMENT||!1,j=e.RETURN_DOM||!1,_e=e.RETURN_DOM_FRAGMENT||!1,ge=e.RETURN_TRUSTED_TYPE||!1,Ue=e.FORCE_BODY||!1,mt=e.SANITIZE_DOM!==!1,pt=e.SANITIZE_NAMED_PROPS||!1,ze=e.KEEP_CONTENT!==!1,ae=e.IN_PLACE||!1,at=e.ALLOWED_URI_REGEXP||Qe,$=e.NAMESPACE||x,Se=e.MATHML_TEXT_INTEGRATION_POINTS||Se,Re=e.HTML_INTEGRATION_POINTS||Re,f=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&_t(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(f.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&_t(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(f.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(f.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Y&&(ke=!1),_e&&(j=!0),X&&(d=a({},Ke),E=[],X.html===!0&&(a(d,Ve),a(E,Ze)),X.svg===!0&&(a(d,be),a(E,Ne),a(E,pe)),X.svgFilters===!0&&(a(d,De),a(E,Ne),a(E,pe)),X.mathMl===!0&&(a(d,Ie),a(E,Je),a(E,pe))),e.ADD_TAGS&&(typeof e.ADD_TAGS=="function"?B.tagCheck=e.ADD_TAGS:(d===st&&(d=I(d)),a(d,e.ADD_TAGS,p))),e.ADD_ATTR&&(typeof e.ADD_ATTR=="function"?B.attributeCheck=e.ADD_ATTR:(E===lt&&(E=I(E)),a(E,e.ADD_ATTR,p))),e.ADD_URI_SAFE_ATTR&&a(Ge,e.ADD_URI_SAFE_ATTR,p),e.FORBID_CONTENTS&&(N===He&&(N=I(N)),a(N,e.FORBID_CONTENTS,p)),e.ADD_FORBID_CONTENTS&&(N===He&&(N=I(N)),a(N,e.ADD_FORBID_CONTENTS,p)),ze&&(d["#text"]=!0),F&&a(d,["html","head","body"]),d.table&&(a(d,["tbody"]),delete re.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!="function")throw Q('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Q('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');S=e.TRUSTED_TYPES_POLICY,ie=S.createHTML("")}else S===void 0&&(S=qt(de,c)),S!==null&&typeof ie=="string"&&(ie=S.createHTML(""));T&&T(e),q=e}},gt=a({},[...be,...De,...Ft]),ht=a({},[...Ie,...Ut]),gn=function(e){let t=Te(e);(!t||!t.tagName)&&(t={namespaceURI:$,tagName:"template"});const n=me(e.tagName),u=me(t.tagName);return Be[e.namespaceURI]?e.namespaceURI===Ae?t.namespaceURI===x?n==="svg":t.namespaceURI===he?n==="svg"&&(u==="annotation-xml"||Se[u]):!!gt[n]:e.namespaceURI===he?t.namespaceURI===x?n==="math":t.namespaceURI===Ae?n==="math"&&Re[u]:!!ht[n]:e.namespaceURI===x?t.namespaceURI===Ae&&!Re[u]||t.namespaceURI===he&&!Se[u]?!1:!ht[n]&&(dn[n]||!gt[n]):!!(se==="application/xhtml+xml"&&Be[e.namespaceURI]):!1},M=function(e){b(o.removed,{element:e});try{Te(e).removeChild(e)}catch{en(e)}},U=function(e,t){try{b(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch{b(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),e==="is")if(j||_e)try{M(t)}catch{}else try{t.setAttribute(e,"")}catch{}},At=function(e){let t=null,n=null;if(Ue)e="<remove></remove>"+e;else{const m=Le(e,/^[\r\n\t ]+/);n=m&&m[0]}se==="application/xhtml+xml"&&$===x&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const u=S?S.createHTML(e):e;if($===x)try{t=new Jt().parseFromString(u,se)}catch{}if(!t||!t.documentElement){t=Ce.createDocument($,"template",null);try{t.documentElement.innerHTML=We?ie:u}catch{}}const g=t.body||t.documentElement;return e&&n&&g.insertBefore(l.createTextNode(n),g.childNodes[0]||null),$===x?an.call(t,F?"html":"body")[0]:F?t.documentElement:g},St=function(e){return on.call(e.ownerDocument||e,e,ne.SHOW_ELEMENT|ne.SHOW_COMMENT|ne.SHOW_TEXT|ne.SHOW_PROCESSING_INSTRUCTION|ne.SHOW_CDATA_SECTION,null)},je=function(e){return e instanceof Zt&&(typeof e.nodeName!="string"||typeof e.textContent!="string"||typeof e.removeChild!="function"||!(e.attributes instanceof Kt)||typeof e.removeAttribute!="function"||typeof e.setAttribute!="function"||typeof e.namespaceURI!="string"||typeof e.insertBefore!="function"||typeof e.hasChildNodes!="function")},Rt=function(e){return typeof Me=="function"&&e instanceof Me};function P(i,e,t){G(i,n=>{n.call(o,e,t,q)})}const yt=function(e){let t=null;if(P(R.beforeSanitizeElements,e,null),je(e))return M(e),!0;const n=p(e.nodeName);if(P(R.uponSanitizeElement,e,{tagName:n,allowedTags:d}),Ee&&e.hasChildNodes()&&!Rt(e.firstElementChild)&&h(/<[/\w!]/g,e.innerHTML)&&h(/<[/\w!]/g,e.textContent)||e.nodeType===te.progressingInstruction||Ee&&e.nodeType===te.comment&&h(/<[/\w]/g,e.data))return M(e),!0;if(!(B.tagCheck instanceof Function&&B.tagCheck(n))&&(!d[n]||re[n])){if(!re[n]&&Lt(n)&&(f.tagNameCheck instanceof RegExp&&h(f.tagNameCheck,n)||f.tagNameCheck instanceof Function&&f.tagNameCheck(n)))return!1;if(ze&&!N[n]){const u=Te(e)||e.parentNode,g=nn(e)||e.childNodes;if(g&&u){const m=g.length;for(let L=m-1;L>=0;--L){const v=Qt(g[L],!0);v.__removalCount=(e.__removalCount||0)+1,u.insertBefore(v,tn(e))}}}return M(e),!0}return e instanceof it&&!gn(e)||(n==="noscript"||n==="noembed"||n==="noframes")&&h(/<\/no(script|embed|frames)/i,e.innerHTML)?(M(e),!0):(Y&&e.nodeType===te.text&&(t=e.textContent,G([we,xe,Pe],u=>{t=J(t,u," ")}),e.textContent!==t&&(b(o.removed,{element:e.cloneNode()}),e.textContent=t)),P(R.afterSanitizeElements,e,null),!1)},Ot=function(e,t,n){if(mt&&(t==="id"||t==="name")&&(n in l||n in _n))return!1;if(!(ke&&!ve[t]&&h(ln,t))){if(!(ct&&h(cn,t))){if(!(B.attributeCheck instanceof Function&&B.attributeCheck(t,e))){if(!E[t]||ve[t]){if(!(Lt(e)&&(f.tagNameCheck instanceof RegExp&&h(f.tagNameCheck,e)||f.tagNameCheck instanceof Function&&f.tagNameCheck(e))&&(f.attributeNameCheck instanceof RegExp&&h(f.attributeNameCheck,t)||f.attributeNameCheck instanceof Function&&f.attributeNameCheck(t,e))||t==="is"&&f.allowCustomizedBuiltInElements&&(f.tagNameCheck instanceof RegExp&&h(f.tagNameCheck,n)||f.tagNameCheck instanceof Function&&f.tagNameCheck(n))))return!1}else if(!Ge[t]){if(!h(at,J(n,rt,""))){if(!((t==="src"||t==="xlink:href"||t==="href")&&e!=="script"&&xt(n,"data:")===0&&dt[e])){if(!(ut&&!h(un,J(n,rt,"")))){if(n)return!1}}}}}}}return!0},Lt=function(e){return e!=="annotation-xml"&&Le(e,fn)},bt=function(e){P(R.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||je(e))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:E,forceKeepAttr:void 0};let u=t.length;for(;u--;){const g=t[u],{name:m,namespaceURI:L,value:v}=g,V=p(m),Xe=v;let _=m==="value"?Xe:Pt(Xe);if(n.attrName=V,n.attrValue=_,n.keepAttr=!0,n.forceKeepAttr=void 0,P(R.uponSanitizeAttribute,e,n),_=n.attrValue,pt&&(V==="id"||V==="name")&&(U(m,e),_=mn+_),Ee&&h(/((--!?|])>)|<\/(style|title|textarea)/i,_)){U(m,e);continue}if(V==="attributename"&&Le(_,"href")){U(m,e);continue}if(n.forceKeepAttr)continue;if(!n.keepAttr){U(m,e);continue}if(!ft&&h(/\/>/i,_)){U(m,e);continue}Y&&G([we,xe,Pe],It=>{_=J(_,It," ")});const Dt=p(e.nodeName);if(!Ot(Dt,V,_)){U(m,e);continue}if(S&&typeof de=="object"&&typeof de.getAttributeType=="function"&&!L)switch(de.getAttributeType(Dt,V)){case"TrustedHTML":{_=S.createHTML(_);break}case"TrustedScriptURL":{_=S.createScriptURL(_);break}}if(_!==Xe)try{L?e.setAttributeNS(L,m,_):e.setAttribute(m,_),je(e)?M(e):fe(o.removed)}catch{U(m,e)}}P(R.afterSanitizeAttributes,e,null)},hn=function i(e){let t=null;const n=St(e);for(P(R.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)P(R.uponSanitizeShadowNode,t,null),yt(t),bt(t),t.content instanceof O&&i(t.content);P(R.afterSanitizeShadowDOM,e,null)};return o.sanitize=function(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=null,n=null,u=null,g=null;if(We=!i,We&&(i="<!-->"),typeof i!="string"&&!Rt(i))if(typeof i.toString=="function"){if(i=i.toString(),typeof i!="string")throw Q("dirty is not a string, aborting")}else throw Q("toString is not a function");if(!o.isSupported)return i;if(Fe||Ye(e),o.removed=[],typeof i=="string"&&(ae=!1),ae){if(i.nodeName){const v=p(i.nodeName);if(!d[v]||re[v])throw Q("root node is forbidden and cannot be sanitized in-place")}}else if(i instanceof Me)t=At("<!---->"),n=t.ownerDocument.importNode(i,!0),n.nodeType===te.element&&n.nodeName==="BODY"||n.nodeName==="HTML"?t=n:t.appendChild(n);else{if(!j&&!Y&&!F&&i.indexOf("<")===-1)return S&&ge?S.createHTML(i):i;if(t=At(i),!t)return j?null:ge?ie:""}t&&Ue&&M(t.firstChild);const m=St(ae?i:t);for(;u=m.nextNode();)yt(u),bt(u),u.content instanceof O&&hn(u.content);if(ae)return i;if(j){if(_e)for(g=rn.call(t.ownerDocument);t.firstChild;)g.appendChild(t.firstChild);else g=t;return(E.shadowroot||E.shadowrootmode)&&(g=sn.call(r,g,!0)),g}let L=F?t.outerHTML:t.innerHTML;return F&&d["!doctype"]&&t.ownerDocument&&t.ownerDocument.doctype&&t.ownerDocument.doctype.name&&h(et,t.ownerDocument.doctype.name)&&(L="<!DOCTYPE "+t.ownerDocument.doctype.name+`>
2
2
  `+L),Y&&G([we,xe,Pe],v=>{L=J(L,v," ")}),S&&ge?S.createHTML(L):L},o.setConfig=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ye(i),Fe=!0},o.clearConfig=function(){q=null,Fe=!1},o.isValidAttribute=function(i,e,t){q||Ye({});const n=p(i),u=p(e);return Ot(n,u,t)},o.addHook=function(i,e){typeof e=="function"&&b(R[i],e)},o.removeHook=function(i,e){if(e!==void 0){const t=ue(R[i],e);return t===-1?void 0:wt(R[i],t,1)[0]}return fe(R[i])},o.removeHooks=function(i){R[i]=[]},o.removeAllHooks=function(){R=nt()},o}var Vt=ot();return $e=Vt,$e}var qe,Ct;function Ln(){return Ct||(Ct=1,qe=self.DOMPurify||(self.DOMPurify=Mt().default||Mt())),qe}var bn=Ln();const Dn=An(bn);function Nn({provider:Z,displayName:C,visualConfig:w}){const[ye,ce]=K.useState(!1),[T,y]=K.useState(""),[k,z]=K.useState(!1),H=Sn("/api/auth/authorize/:provider"),G=K.useCallback(async()=>{ce(!1),z(!0);try{const b=await H.call({pathParams:{provider:Z}});if(!b.authorize_url)throw new Error(`Failed to get ${C} authorization URL`);window.location.href=b.authorize_url}catch(b){ce(!0),y(`Failed to initiate ${C} login: ${b}`),console.error(`Failed to start ${C} login`,b)}finally{z(!1)}},[H,C,Z]),ue=K.useMemo(()=>{if(w?.buttonColor)return{backgroundColor:w.buttonColor,color:w.textColor||"#FFFFFF"}},[w]),fe=K.useMemo(()=>{if(k||!w?.iconSvg)return null;const b=Dn.sanitize(w.iconSvg,{USE_PROFILES:{svg:!0}});return le.jsx("span",{className:"flex items-center justify-center",dangerouslySetInnerHTML:{__html:b}})},[k,w?.iconSvg]);return le.jsxs("div",{className:"flex flex-col gap-4",children:[le.jsx(Rn,{children:ye&&le.jsx(yn.div,{className:"text-small text-danger",initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3,ease:"easeOut"},children:T||`Failed to sign in with ${C}`})}),le.jsx(On,{onPress:G,color:ue?void 0:"primary",style:ue,isLoading:k,startContent:fe,children:k?"Redirecting...":`Sign in with ${C}`})]})}export{Nn as default};