From 065250c1326b250417f3ed01a6a947a197ffb737 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Fri, 30 Aug 2024 14:08:09 +0000 Subject: [PATCH 01/29] Ground truth generation and evaluation --- .devcontainer/devcontainer.json | 4 -- .vscode/settings.json | 10 +++- evals/README.md | 2 + evals/generate_ground_truth.py | 95 +++++++++++++++++++++++++++++++++ evals/ground_truth.json | 10 ++++ 5 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 evals/README.md create mode 100644 evals/generate_ground_truth.py create mode 100644 evals/ground_truth.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 82967c38..7dea3f2b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -46,10 +46,6 @@ "source.fixAll": "explicit" }, "editor.defaultFormatter": "charliermarsh.ruff" - }, - "files.exclude": { - ".ruff_cache": true, - ".pytest_cache": true } } } diff --git a/.vscode/settings.json b/.vscode/settings.json index aed07e4c..6c6ce906 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -27,5 +27,13 @@ "tests" ], "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true + "python.testing.pytestEnabled": true, + "files.exclude": { + ".ruff_cache": true, + ".pytest_cache": true, + "__pycache__": true, + "htmlcov": true, + ".mypy_cache": true, + ".coverage": true + } } diff --git a/evals/README.md b/evals/README.md new file mode 100644 index 00000000..f4159a97 --- /dev/null +++ b/evals/README.md @@ -0,0 +1,2 @@ +pip install git+https://github.com/Azure-Samples/ai-rag-chat-evaluator/@installable +pip install psycopg2 diff --git a/evals/generate_ground_truth.py b/evals/generate_ground_truth.py new file mode 100644 index 00000000..e2323616 --- /dev/null +++ b/evals/generate_ground_truth.py @@ -0,0 +1,95 @@ +import logging +import os +from collections.abc import Generator +from pathlib import Path + +from azure.identity import DefaultAzureCredential +from dotenv import load_dotenv +from evaltools.gen.generate import generate_test_qa_data +from sqlalchemy import create_engine, select +from sqlalchemy.orm import Session + +from fastapi_app.postgres_models import Item + +logger = logging.getLogger("ragapp") + + +def source_retriever() -> Generator[dict, None, None]: + # Connect to the database + DBHOST = os.environ["POSTGRES_HOST"] + DBUSER = os.environ["POSTGRES_USERNAME"] + DBPASS = os.environ["POSTGRES_PASSWORD"] + DBNAME = os.environ["POSTGRES_DATABASE"] + DATABASE_URI = f"postgresql://{DBUSER}:{DBPASS}@{DBHOST}/{DBNAME}" + engine = create_engine(DATABASE_URI, echo=False) + with Session(engine) as session: + # Fetch all products for a particular type + item_types = session.scalars(select(Item.type).distinct()) + for item_type in item_types: + records = list(session.scalars(select(Item).filter(Item.type == item_type).order_by(Item.id))) + logger.info(f"Processing database records for type: {item_type}") + yield { + "citations": " ".join([f"[{record.id}] - {record.name}" for record in records]), + "content": "\n\n".join([record.to_str_for_rag() for record in records]), + } + # Fetch each item individually + # records = session.scalars(select(Item).order_by(Item.id)) + # for record in records: + # logger.info(f"Processing database record: {record.name}") + # yield {"id": [record.id], "content": record.to_str_for_rag()} + + +def source_to_text(source) -> str: + return source["content"] + + +def answer_formatter(answer, source) -> str: + return f"{answer} {source['citations']}" + + +def get_openai_config_dict() -> dict: + """Return a dictionary with OpenAI configuration based on environment variables.""" + OPENAI_CHAT_HOST = os.getenv("OPENAI_CHAT_HOST") + if OPENAI_CHAT_HOST == "azure": + if api_key := os.getenv("AZURE_OPENAI_KEY"): + logger.info("Using Azure OpenAI Service with API Key from AZURE_OPENAI_KEY") + api_key = os.environ["AZURE_OPENAI_KEY"] + else: + logger.info("Using Azure OpenAI Service with Azure Developer CLI Credential") + azure_credential = DefaultAzureCredential() + api_key = azure_credential.get_token("https://cognitiveservices.azure.com/.default").token + openai_config = { + "api_type": "azure", + "api_base": os.environ["AZURE_OPENAI_ENDPOINT"], + "api_key": api_key, + "api_version": os.environ["AZURE_OPENAI_VERSION"], + "deployment": os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"], + "model": os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"], + } + elif OPENAI_CHAT_HOST == "ollama": + raise NotImplementedError("Ollama OpenAI Service is not supported. Switch to Azure or OpenAI.com") + else: + logger.info("Using OpenAI Service with API Key from OPENAICOM_KEY") + openai_config = { + "api_type": "openai", + "api_key": os.environ["OPENAICOM_KEY"], + "model": os.environ["OPENAICOM_CHAT_MODEL"], + "deployment": "none-needed-for-openaicom", + } + return openai_config + + +if __name__ == "__main__": + logging.basicConfig(level=logging.WARNING) + logger.setLevel(logging.INFO) + load_dotenv(".env", override=True) + + generate_test_qa_data( + get_openai_config_dict(), + 10, + 5, + Path(__file__).parent / "ground_truth.json", + source_retriever, + source_to_text, + answer_formatter, + ) diff --git a/evals/ground_truth.json b/evals/ground_truth.json new file mode 100644 index 00000000..7f1911fa --- /dev/null +++ b/evals/ground_truth.json @@ -0,0 +1,10 @@ +{"question": "What features does the Trailblazer Bike Helmet by Green Equipment offer?", "truth": "The Trailblazer Bike Helmet by Green Equipment offers a lightweight and durable design with an adjustable fit system and ventilation for added comfort. It comes in a vibrant green color and sleek design, suitable for all types of cycling.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} +{"question": "What are the key features of the Daybird Stealth Lite Bike Helmet?", "truth": "The Daybird Stealth Lite Bike Helmet features a sleek matte silver color, lightweight in-mold construction, adjustable retention system, and multiple ventilation channels for optimal airflow. It is designed for cyclists who value safety and style.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} +{"question": "What are the standout features of the Zenith Cycling Jersey by B&R?", "truth": "The Zenith Cycling Jersey by B&R is made from moisture-wicking fabric with a full-length zipper, three rear pockets for storage, and reflective accents for increased visibility in low-light conditions. It is designed for high-performance cycling.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} +{"question": "What are the notable features of the VelociX 2000 Bike Helmet by Raptor Elite?", "truth": "The VelociX 2000 Bike Helmet by Raptor Elite features an aerodynamic design, adjustable fit system, detachable visor, and 14 ventilation channels for optimal airflow. It is suitable for road cycling, mountain biking, and various other cycling activities.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} +{"question": "What features does the Solstix Sprint PRO Carbon Cycling Helmet offer?", "truth": "The Solstix Sprint PRO Carbon Cycling Helmet is crafted from carbon fiber for optimal impact protection and durability. It features an aerodynamic design, adjustable fit system, and ventilation channels for cooling during long rides. The rainbow color with the Solstix emblem adds a stylish touch to the helmet. ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} +{"question": "What features do the Alpine Fusion Goggles offer for skiing?", "truth": "The Alpine Fusion Goggles from WildRunner offer full UV protection and anti-fog lenses to keep vision clear on the slopes. They have a stylish silver frame and orange lenses for a standout look, with adjustable straps for a secure fit and soft foam padding for all-day comfort. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} +{"question": "What is the price and brand of the Blizzard Rider Snowboard?", "truth": "The price of the Blizzard Rider Snowboard by B&R is 299.99. The brand of this versatile snowboard is B&R. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} +{"question": "What are the key features of the Powder Pro Snowboard by Zephyr?", "truth": "The Powder Pro Snowboard by Zephyr is designed for deep snow with floating camber for effortless turns and carbon fiber construction for control at high speeds. It comes in a vibrant turquoise color and is priced at 399.0. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} +{"question": "Describe the features of the Zero Gravity Ski Goggles by Gravitator.", "truth": "The Gravitator Zero Gravity Ski Goggles offer style, performance, and comfort with a sleek white frame, red mirrored lenses, anti-fog coating, and 100% UV protection. They have an adjustable strap for a secure fit and are priced at 79.99. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} +{"question": "What are the standout features of the Gravity 5000 All-Mountain Skis by Gravitator?", "truth": "The Gravity 5000 All-Mountain Skis by Gravitator excel in all conditions with a lightweight wood core, carbon inserts for responsiveness, and ABS sidewalls for durability. They come in a striking blue color and are priced at 699.0. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} From 66a443b738a7e702dfad0a0b440f8d734e404ada Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Fri, 30 Aug 2024 17:44:15 +0000 Subject: [PATCH 02/29] Evaluation --- docs/evaluation.md | 50 +++++ evals/README.md | 10 +- evals/eval_config.json | 16 ++ evals/evaluate.py | 48 +++++ evals/generate_ground_truth.py | 34 +-- evals/ground_truth.json | 10 - evals/ground_truth.jsonl | 199 ++++++++++++++++++ evals/results/baseline/config.json | 16 ++ evals/results/baseline/eval_results.jsonl | 20 ++ .../results/baseline/evaluate_parameters.json | 15 ++ evals/results/baseline/summary.json | 26 +++ requirements-dev.txt | 2 + 12 files changed, 417 insertions(+), 29 deletions(-) create mode 100644 docs/evaluation.md create mode 100644 evals/eval_config.json create mode 100644 evals/evaluate.py delete mode 100644 evals/ground_truth.json create mode 100644 evals/ground_truth.jsonl create mode 100644 evals/results/baseline/config.json create mode 100644 evals/results/baseline/eval_results.jsonl create mode 100644 evals/results/baseline/evaluate_parameters.json create mode 100644 evals/results/baseline/summary.json diff --git a/docs/evaluation.md b/docs/evaluation.md new file mode 100644 index 00000000..238f0ae9 --- /dev/null +++ b/docs/evaluation.md @@ -0,0 +1,50 @@ +# Evaluating the RAG answer quality + +Install all the dependencies for the evaluation script by running the following command: + +```bash +pip install -r requirements-dev.txt +``` + +## Generate ground truth data + +Generate ground truth data by running the following command: + +```bash +python evals/generate.py +``` + +Review the generated data after running that script, removing any question/answer pairs that don't seem like realistic user input. + +## Evaluate the RAG answer quality + +Review the configuration in `evals/eval_config.json` to ensure that everything is correctly setup. You may want to adjust the metrics used. [TODO: link to evaluator docs] + +By default, the evaluation script will evaluate every question in the ground truth data. +Run the evaluation script by running the following command: + +```bash +python evals/evaluate.py +``` + +## Review the evaluation results + +The evaluation script will output a summary of the evaluation results, inside the `evals/results` directory. + +You can see a summary of results across all evaluation runs by running the following command: + +```bash +python -m evaltools summary evals/results +``` + +Compare answers across runs by running the following command: + +```bash +python -m evaltools diff evals/results/baseline/ +``` + +## Run the evaluation in GitHub actions + + +# TODO: Add GPT-4 deployment with high capacity for evaluation +# TODO: Add CI workflow that can be triggered to run the evaluate on the local app diff --git a/evals/README.md b/evals/README.md index f4159a97..1c8dc515 100644 --- a/evals/README.md +++ b/evals/README.md @@ -1,2 +1,8 @@ -pip install git+https://github.com/Azure-Samples/ai-rag-chat-evaluator/@installable -pip install psycopg2 +pip install -r requirements-dev.txt + +python evals/generate.py + +python evals/evaluate.py + +# TODO: Add GPT-4 deployment with high capacity for evaluation +# TODO: Add CI workflow that can be triggered to run the evaluate on the local app diff --git a/evals/eval_config.json b/evals/eval_config.json new file mode 100644 index 00000000..82653d21 --- /dev/null +++ b/evals/eval_config.json @@ -0,0 +1,16 @@ +{ + "testdata_path": "ground_truth.jsonl", + "results_dir": "results/experiment", + "requested_metrics": ["gpt_groundedness", "gpt_relevance", "answer_length", "latency", "citation_match"], + "target_url": "http://host.docker.internal:8000/chat", + "target_parameters": { + "overrides": { + "use_advanced_flow": true, + "top": 3, + "retrieval_mode": "hybrid", + "temperature": 0.3 + } + }, + "target_response_answer_jmespath": "message.content", + "target_response_context_jmespath": "context.data_points" +} diff --git a/evals/evaluate.py b/evals/evaluate.py new file mode 100644 index 00000000..5f25fe3d --- /dev/null +++ b/evals/evaluate.py @@ -0,0 +1,48 @@ +import logging +import os +from pathlib import Path + +from dotenv import load_dotenv +from evaltools.eval.evaluate import run_evaluate_from_config +from promptflow.core import AzureOpenAIModelConfiguration, ModelConfiguration, OpenAIModelConfiguration + +logger = logging.getLogger("ragapp") + + +def get_openai_config() -> ModelConfiguration: + if os.environ.get("OPENAI_CHAT_HOST") == "azure": + azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] + azure_deployment = os.environ.get("AZURE_OPENAI_CHAT_DEPLOYMENT") + api_version = "2023-07-01-preview" + if os.environ.get("AZURE_OPENAI_KEY"): + logger.info("Using Azure OpenAI Service with API Key from AZURE_OPENAI_KEY") + openai_config = AzureOpenAIModelConfiguration( + azure_endpoint=azure_endpoint, + azure_deployment=azure_deployment, + api_version=api_version, + api_key=os.environ["AZURE_OPENAI_KEY"], + ) + else: + logger.info("Using Azure OpenAI Service with Azure Developer CLI Credential") + openai_config = AzureOpenAIModelConfiguration( + azure_endpoint=azure_endpoint, azure_deployment=azure_deployment, api_version=api_version + ) + # PromptFlow will call DefaultAzureCredential behind the scenes + openai_config.model = os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"] + else: + logger.info("Using OpenAI Service with API Key from OPENAICOM_KEY") + openai_config = OpenAIModelConfiguration( + model=os.environ["OPENAICOM_CHAT_MODEL"], api_key=os.environ.get("OPENAICOM_KEY") + ) + return openai_config + + +if __name__ == "__main__": + logging.basicConfig(level=logging.WARNING) + logger.setLevel(logging.INFO) + load_dotenv(".env", override=True) + + openai_config = get_openai_config() + run_evaluate_from_config( + working_dir=Path(__file__).parent, config_path="eval_config.json", openai_config=openai_config, num_questions=20 + ) diff --git a/evals/generate_ground_truth.py b/evals/generate_ground_truth.py index e2323616..a923488f 100644 --- a/evals/generate_ground_truth.py +++ b/evals/generate_ground_truth.py @@ -27,16 +27,16 @@ def source_retriever() -> Generator[dict, None, None]: item_types = session.scalars(select(Item.type).distinct()) for item_type in item_types: records = list(session.scalars(select(Item).filter(Item.type == item_type).order_by(Item.id))) - logger.info(f"Processing database records for type: {item_type}") - yield { - "citations": " ".join([f"[{record.id}] - {record.name}" for record in records]), - "content": "\n\n".join([record.to_str_for_rag() for record in records]), - } + # logger.info(f"Processing database records for type: {item_type}") + # yield { + # "citations": " ".join([f"[{record.id}] - {record.name}" for record in records]), + # "content": "\n\n".join([record.to_str_for_rag() for record in records]), + # } # Fetch each item individually - # records = session.scalars(select(Item).order_by(Item.id)) - # for record in records: - # logger.info(f"Processing database record: {record.name}") - # yield {"id": [record.id], "content": record.to_str_for_rag()} + records = session.scalars(select(Item).order_by(Item.id)) + for record in records: + logger.info(f"Processing database record: {record.name}") + yield {"id": record.id, "content": record.to_str_for_rag()} def source_to_text(source) -> str: @@ -44,7 +44,7 @@ def source_to_text(source) -> str: def answer_formatter(answer, source) -> str: - return f"{answer} {source['citations']}" + return f"{answer} [{source['id']}]" def get_openai_config_dict() -> dict: @@ -85,11 +85,11 @@ def get_openai_config_dict() -> dict: load_dotenv(".env", override=True) generate_test_qa_data( - get_openai_config_dict(), - 10, - 5, - Path(__file__).parent / "ground_truth.json", - source_retriever, - source_to_text, - answer_formatter, + openai_config=get_openai_config_dict(), + num_questions_total=202, + num_questions_per_source=2, + output_file=Path(__file__).parent / "ground_truth.jsonl", + source_retriever=source_retriever, + source_to_text=source_to_text, + answer_formatter=answer_formatter, ) diff --git a/evals/ground_truth.json b/evals/ground_truth.json deleted file mode 100644 index 7f1911fa..00000000 --- a/evals/ground_truth.json +++ /dev/null @@ -1,10 +0,0 @@ -{"question": "What features does the Trailblazer Bike Helmet by Green Equipment offer?", "truth": "The Trailblazer Bike Helmet by Green Equipment offers a lightweight and durable design with an adjustable fit system and ventilation for added comfort. It comes in a vibrant green color and sleek design, suitable for all types of cycling.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} -{"question": "What are the key features of the Daybird Stealth Lite Bike Helmet?", "truth": "The Daybird Stealth Lite Bike Helmet features a sleek matte silver color, lightweight in-mold construction, adjustable retention system, and multiple ventilation channels for optimal airflow. It is designed for cyclists who value safety and style.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} -{"question": "What are the standout features of the Zenith Cycling Jersey by B&R?", "truth": "The Zenith Cycling Jersey by B&R is made from moisture-wicking fabric with a full-length zipper, three rear pockets for storage, and reflective accents for increased visibility in low-light conditions. It is designed for high-performance cycling.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} -{"question": "What are the notable features of the VelociX 2000 Bike Helmet by Raptor Elite?", "truth": "The VelociX 2000 Bike Helmet by Raptor Elite features an aerodynamic design, adjustable fit system, detachable visor, and 14 ventilation channels for optimal airflow. It is suitable for road cycling, mountain biking, and various other cycling activities.\n ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} -{"question": "What features does the Solstix Sprint PRO Carbon Cycling Helmet offer?", "truth": "The Solstix Sprint PRO Carbon Cycling Helmet is crafted from carbon fiber for optimal impact protection and durability. It features an aerodynamic design, adjustable fit system, and ventilation channels for cooling during long rides. The rainbow color with the Solstix emblem adds a stylish touch to the helmet. ['[10] - Trailblazer Bike Helmet', '[25] - Stealth Lite Bike Helmet', '[34] - Velocity Red Bike Helmet', '[46] - Zenith Cycling Jersey', '[58] - VelociX 2000 Bike Helmet', '[65] - Sprint PRO Carbon Cycling Helmet', '[76] - Fusion Carbon Cycling Helmet', '[86] - ProVent Bike Helmet', '[95] - AeroLite Cycling Helmet']"} -{"question": "What features do the Alpine Fusion Goggles offer for skiing?", "truth": "The Alpine Fusion Goggles from WildRunner offer full UV protection and anti-fog lenses to keep vision clear on the slopes. They have a stylish silver frame and orange lenses for a standout look, with adjustable straps for a secure fit and soft foam padding for all-day comfort. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} -{"question": "What is the price and brand of the Blizzard Rider Snowboard?", "truth": "The price of the Blizzard Rider Snowboard by B&R is 299.99. The brand of this versatile snowboard is B&R. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} -{"question": "What are the key features of the Powder Pro Snowboard by Zephyr?", "truth": "The Powder Pro Snowboard by Zephyr is designed for deep snow with floating camber for effortless turns and carbon fiber construction for control at high speeds. It comes in a vibrant turquoise color and is priced at 399.0. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} -{"question": "Describe the features of the Zero Gravity Ski Goggles by Gravitator.", "truth": "The Gravitator Zero Gravity Ski Goggles offer style, performance, and comfort with a sleek white frame, red mirrored lenses, anti-fog coating, and 100% UV protection. They have an adjustable strap for a secure fit and are priced at 79.99. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} -{"question": "What are the standout features of the Gravity 5000 All-Mountain Skis by Gravitator?", "truth": "The Gravity 5000 All-Mountain Skis by Gravitator excel in all conditions with a lightweight wood core, carbon inserts for responsiveness, and ABS sidewalls for durability. They come in a striking blue color and are priced at 699.0. ['[3] - Alpine Fusion Goggles', '[5] - Blizzard Rider Snowboard', '[12] - Powder Pro Snowboard', '[16] - Expedition 2022 Goggles', '[22] - Venture 2022 Snowboard', '[30] - Zero Gravity Ski Goggles', '[32] - Cosmic Purple Snowboard', '[39] - Midnight Blue Goggles', '[42] - Gravity 5000 All-Mountain Skis', '[43] - Glacier Frost Snowboard', '[53] - Raven Swift Snowboard', '[60] - SummitRider Snowboard Boots', '[62] - Shadow Black Snowboard', '[72] - GravityZone All-Mountain Skis', '[73] - Omni-Snow Dual Snowboard', '[82] - Maverick Pro Ski Goggles', '[83] - Blizzard Freestyle Snowboard', '[92] - Blizzard Snowboard']"} diff --git a/evals/ground_truth.jsonl b/evals/ground_truth.jsonl new file mode 100644 index 00000000..c6f63907 --- /dev/null +++ b/evals/ground_truth.jsonl @@ -0,0 +1,199 @@ +{"question": "What is the description of the Wanderer Black Hiking Boots?", "truth": "The Wanderer Black Hiking Boots by Daybird are made with a waterproof leather upper and a durable rubber sole for superior traction. They feature a cushioned insole and padded collar for all-day comfort during outdoor adventures. [1]"} +{"question": "What is the price and brand of the Wanderer Black Hiking Boots?", "truth": "The Wanderer Black Hiking Boots are priced at 109.99 and are from the brand Daybird. [1]"} +{"question": "What are the key features of the Summit Pro Harness by Gravitator?", "truth": "The Summit Pro Harness by Gravitator is a lightweight and durable climbing harness with adjustable leg loops and waist belt for a customized fit. It also features a reinforced tie-in point and strong webbing loops for safety. [2]"} +{"question": "What is the price of the Summit Pro Harness by Gravitator and what type of product is it?", "truth": "The price of the Summit Pro Harness by Gravitator is 89.99. It is a climbing harness designed for conquering new heights with style and safety in mind. [2]"} +{"question": "What are the key features of the Alpine Fusion Goggles from WildRunner?", "truth": "The Alpine Fusion Goggles from WildRunner offer full UV protection, anti-fog lenses, a stylish silver frame with orange lenses, adjustable straps for a secure fit, and soft foam padding for comfort during skiing or snowboarding. [3]"} +{"question": "What is the price and brand of the Alpine Fusion Goggles?", "truth": "The Alpine Fusion Goggles from WildRunner are priced at 79.99 and are part of the WildRunner brand. [3]"} +{"question": "What is the description of the Expedition Backpack by Quester?", "truth": "The Expedition Backpack by Quester is described as a must-have for every outdoor enthusiast with its spacious interior, multiple pockets, and durable nylon fabric that can withstand tough conditions. It also features orange accents for added style. [4]"} +{"question": "What is the price of the Expedition Backpack by Quester?", "truth": "The price of the Expedition Backpack by Quester is $129.99. [4]"} +{"question": "What is the description of the Blizzard Rider Snowboard by B&R?", "truth": "The Blizzard Rider Snowboard by B&R is a versatile snowboard perfect for riders of all levels, featuring a medium flex and twin shape. It has a sleek black and blue color scheme and is suitable for carving turns or hitting the terrain park. [5]"} +{"question": "What is the price and brand of the Blizzard Rider Snowboard?", "truth": "The price of the Blizzard Rider Snowboard is 299.99, and it is manufactured by the brand B&R under the type Ski/boarding. [5]"} +{"question": "What are the key features of the Carbon Fiber Trekking Poles by Raptor Elite?", "truth": "The Carbon Fiber Trekking Poles by Raptor Elite are designed with lightweight carbon fiber shafts for excellent support and durability. They have comfortable and adjustable cork grips for a secure hold, and blue accents for a stylish touch. Additionally, they are compact and collapsible for easy transport and storage. [6]"} +{"question": "What is the price of the Carbon Fiber Trekking Poles by Raptor Elite?", "truth": "The price of the Carbon Fiber Trekking Poles by Raptor Elite is $69.99. [6]"} +{"question": "What are the key features of the Explorer 45L Backpack by Solstix?", "truth": "The Explorer 45L Backpack by Solstix is made with waterproof and tear-resistant materials, making it suitable for harsh weather conditions. It has a spacious main compartment, multiple pockets for organization, and a green and black color scheme for a rugged look. [7]"} +{"question": "How much does the Explorer 45L Backpack by Solstix cost and what brand manufactures it?", "truth": "The Explorer 45L Backpack by Solstix is priced at 149.99 and is manufactured by the brand Solstix. [7]"} +{"question": "What are the key features of the Frostbite Insulated Jacket by Grolltex?", "truth": "The Frostbite Insulated Jacket by Grolltex features a water-resistant outer shell, lightweight insulation, adjustable hood, multiple pockets, black and gray color combination, and the Grolltex logo for a touch of sophistication. [8]"} +{"question": "What is the price of the Frostbite Insulated Jacket and which brand manufactures it?", "truth": "The Frostbite Insulated Jacket is priced at 179.99 and is manufactured by Grolltex. [8]"} +{"question": "What features does the VenturePro GPS Watch by AirStrider offer?", "truth": "The VenturePro GPS Watch by AirStrider features a built-in GPS, altimeter, and compass, allowing users to navigate with confidence in any terrain. [9]"} +{"question": "What makes the VenturePro GPS Watch a must-have for adventurers?", "truth": "The VenturePro GPS Watch is described as rugged, durable, stylish, and practical with its sleek black design, easy-to-read display, and essential navigation features like GPS, altimeter, and compass. [9]"} +{"question": "What are the key features of the Trailblazer Bike Helmet by Green Equipment?", "truth": "The Trailblazer Bike Helmet by Green Equipment is lightweight and durable, with an adjustable fit system and ventilation for added comfort. It also features a vibrant green color and sleek design. [10]"} +{"question": "What types of cycling is the Trailblazer Bike Helmet suitable for?", "truth": "The Trailblazer Bike Helmet is perfect for all types of cycling, from mountain biking to road cycling. [10]"} +{"question": "What are the key features of the Vertical Journey Climbing Shoes from WildRunner?", "truth": "The Vertical Journey Climbing Shoes from WildRunner feature an aggressive down-turned toe, sticky rubber outsole, and a reinforced heel cup for added support, providing ultimate performance on challenging climbing routes. [11]"} +{"question": "What is the price of the Vertical Journey Climbing Shoes from WildRunner?", "truth": "The price of the Vertical Journey Climbing Shoes from WildRunner is $129.99. [11]"} +{"question": "What is the description of the Powder Pro Snowboard by Zephyr?", "truth": "The Powder Pro Snowboard by Zephyr is designed for the ultimate ride through deep snow with its floating camber for effortless turns and smooth maneuverability. Its lightweight carbon fiber construction ensures maximum control at high speeds, making it a must-have for any backcountry shredder. [12]"} +{"question": "What are the details provided about the Powder Pro Snowboard's price, brand, and type?", "truth": "The Powder Pro Snowboard by Zephyr is priced at 399.0 and belongs to the brand Zephyr. It falls under the type Ski/boarding. [12]"} +{"question": "What are some key features of the Trailblaze hiking backpack?", "truth": "The Trailblaze hiking backpack features an ergonomic design, adjustable straps for a comfortable fit, ample storage space, and gear protection. It is priced at $89.99 and belongs to the Daybird brand under the category of Bags. [13]"} +{"question": "What are the key features of the Stellar Duffle Bag from Gravitator?", "truth": "The Stellar Duffle Bag from Gravitator is made from waterproof nylon, available in sleek black, and features multiple internal pockets and a separate shoe compartment to keep belongings organized. It also has an adjustable shoulder strap and reinforced handles for functionality and style. [14]"} +{"question": "How much does the Stellar Duffle Bag from Gravitator cost and what type of product is it?", "truth": "The Stellar Duffle Bag from Gravitator is priced at $59.99 and it falls under the category of Bags. [14]"} +{"question": "What are the key features of the Summit Pro Insulated Jacket by Raptor Elite?", "truth": "The Summit Pro Insulated Jacket by Raptor Elite is designed to keep you warm and dry in extreme conditions with its waterproof and breathable construction, heat-sealed seams, insulation made from recycled materials, and eco-friendly yet high-performance design. It also includes a removable hood, plenty of storage pockets, and is available in vibrant red. [15]"} +{"question": "What is the price of the Summit Pro Insulated Jacket by Raptor Elite?", "truth": "The price of the Summit Pro Insulated Jacket by Raptor Elite is $249.99. [15]"} +{"question": "What features do the Solstix Expedition 2022 Goggles offer?", "truth": "The Solstix Expedition 2022 Goggles provide clear vision and optimal protection on the slopes with features like an anti-fog lens, UV protection, and a comfortable foam lining. They ensure a great fit and unrestricted vision even in challenging conditions. [16]"} +{"question": "What is the price and brand of the Expedition 2022 Goggles?", "truth": "The price of the Expedition 2022 Goggles is 89.0 and the brand is Solstix. [16]"} +{"question": "What are the key features of the Apex Climbing Harness by Legend?", "truth": "The Apex Climbing Harness by Legend is a lightweight and durable harness designed for maximum comfort and safety. It features adjustable leg loops, a contoured waistbelt, and a secure buckle system for a secure fit during climbing sessions. [17]"} +{"question": "What is the price of the Apex Climbing Harness by Legend and what color is it available in?", "truth": "The price of the Apex Climbing Harness by Legend is 89.99. It is available in bold orange and also includes gear loops for easy access to climbing equipment. [17]"} +{"question": "What are the key features of the Alpine Tech Crampons by Grolltex?", "truth": "The Alpine Tech Crampons by Grolltex are made from strong and lightweight stainless steel, providing excellent traction and stability on icy mountain terrains. They have a simple adjustment system for easy fitting and quick attachment to most hiking boots. [18]"} +{"question": "What is the price and brand of the Alpine Tech Crampons?", "truth": "The price of the Alpine Tech Crampons is 149.0 and they are manufactured by Grolltex. [18]"} +{"question": "What are the key features of the EcoTrail Running Shoes?", "truth": "The EcoTrail Running Shoes are made from recycled materials, offering a lightweight, breathable, and flexible design in an earthy green color. They also feature a durable Vibram outsole and cushioned midsole for optimal comfort and grip on any trail. [19]"} +{"question": "What is the price of the EcoTrail Running Shoes and who is the brand behind them?", "truth": "The price of the EcoTrail Running Shoes is 119.99, and they are produced by the brand Green Equipment. [19]"} +{"question": "What are the key features of the Explorer Biking Computer by B&R?", "truth": "The Explorer Biking Computer by B&R is equipped with an intuitive touchscreen display, GPS capabilities for tracking routes, monitoring performance metrics, and receiving turn-by-turn directions. Its sleek black design and waterproof construction make it a reliable companion for cycling adventures. [20]"} +{"question": "What is the price and brand of the Explorer Biking Computer?", "truth": "The Explorer Biking Computer by B&R is priced at 199.99 and belongs to the brand B&R. [20]"} +{"question": "What are the key features of the Legend Trailblazer Black Hiking Shoes?", "truth": "The Legend Trailblazer Black Hiking Shoes feature a waterproof GORE-TEX lining, Vibram rubber outsole for enhanced traction, and a reinforced toe cap for added protection. [21]"} +{"question": "What is the price of the Legend Trailblazer Black Hiking Shoes?", "truth": "The price of the Legend Trailblazer Black Hiking Shoes is $129.99. [21]"} +{"question": "What are some key features of the Raptor Elite Venture 2022 Snowboard?", "truth": "The Raptor Elite Venture 2022 Snowboard features a responsive camber profile, carbon fiber laminates for enhanced stability, and a sintered base for maximum speed. It is designed as a true all-mountain performer suitable for riders of all levels. [22]"} +{"question": "What is the price and brand of the Venture 2022 Snowboard?", "truth": "The price of the Venture 2022 Snowboard is 499.0 and the brand is Raptor Elite. [22]"} +{"question": "What are the key features of the Zephyr Summit Pro Climbing Harness?", "truth": "The Zephyr Summit Pro Climbing Harness features 30kN rated webbing, speed-adjust buckles, multiple gear loops for organization, a lightweight design for comfort, and freedom of movement. [23]"} +{"question": "Who is the target audience for the Zephyr Summit Pro Climbing Harness?", "truth": "The Zephyr Summit Pro Climbing Harness is designed for professional climbers who demand reliability and performance. [23]"} +{"question": "What is the description of the Ridgevent Stealth Hiking Backpack?", "truth": "The WildRunner Ridgevent Stealth Hiking Backpack is described as the ultimate companion for outdoor adventures, combining style with functionality. It is made from durable nylon, features multiple compartments, and offers ample storage space for essentials. [24]"} +{"question": "What is the price and brand of the Ridgevent Stealth Hiking Backpack?", "truth": "The price of the Ridgevent Stealth Hiking Backpack is 69.99, and the brand is WildRunner. [24]"} +{"question": "What are the key features of the Daybird Stealth Lite Bike Helmet?", "truth": "The Daybird Stealth Lite Bike Helmet features a lightweight in-mold construction, adjustable retention system, and multiple ventilation channels for optimal airflow. [25]"} +{"question": "What is the price of the Daybird Stealth Lite Bike Helmet?", "truth": "The price of the Daybird Stealth Lite Bike Helmet is $89.99. [25]"} +{"question": "What is the description of the Gravity Beam Climbing Rope?", "truth": "The Gravitator Gravity Beam Climbing Rope is a high-quality climbing rope with kernmantle construction, offering excellent strength and durability. It is vibrant yellow in color, highly visible, and suitable for tackling steep rock faces or frozen waterfalls. [26]"} +{"question": "What are some key details about the Gravity Beam Climbing Rope?", "truth": "The Gravity Beam Climbing Rope is priced at $179.99, branded as Gravitator, and classified as a climbing rope. [26]"} +{"question": "What are the key features of the EcoLodge 45L Travel Backpack?", "truth": "The EcoLodge 45L Travel Backpack is a sustainable and versatile option made from recycled materials. It features multiple compartments, a padded laptop sleeve, and durable zippers. [27]"} +{"question": "What is the price of the Green Equipment EcoLodge 45L Travel Backpack?", "truth": "The price of the Green Equipment EcoLodge 45L Travel Backpack is $129.0. [27]"} +{"question": "What are the key features of the Solstix Alpine Peak Down Jacket?", "truth": "The Solstix Alpine Peak Down Jacket is crafted for extreme cold conditions with high-quality goose down insulation for exceptional warmth and comfort. It features a bold red color, sleek design, removable hood, adjustable cuffs, and multiple zippered pockets for storage. [28]"} +{"question": "What is the price of the Solstix Alpine Peak Down Jacket?", "truth": "The price of the Solstix Alpine Peak Down Jacket is $249.99. [28]"} +{"question": "What are the key features of the B&R Pulse Recon Tactical GPS Watch?", "truth": "The B&R Pulse Recon Tactical GPS Watch features a built-in GPS, altimeter, compass, and multiple sports modes. It is designed for outdoor enthusiasts and comes in a military green color with a durable construction. [29]"} +{"question": "What is the price of the B&R Pulse Recon Tactical GPS Watch?", "truth": "The price of the B&R Pulse Recon Tactical GPS Watch is $169.0. [29]"} +{"question": "What features do the Gravitator Zero Gravity Ski Goggles offer?", "truth": "The Gravitator Zero Gravity Ski Goggles offer an anti-fog coating, 100% UV protection, and an adjustable strap for a secure fit. [30]"} +{"question": "What is the price of the Zero Gravity Ski Goggles and what brand manufactures them?", "truth": "The price of the Zero Gravity Ski Goggles is $79.99, and they are manufactured by the brand Gravitator. [30]"} +{"question": "What are the features of the Guardian Blue Chalk Bag by Legend?", "truth": "The Guardian Blue Chalk Bag by Legend features a spacious compartment for chalk, a drawstring closure, and a waist belt for easy access while climbing. It also comes in a vibrant blue color for a stylish touch to your climbing gear. [31]"} +{"question": "What is the price of the Guardian Blue Chalk Bag by Legend?", "truth": "The price of the Guardian Blue Chalk Bag by Legend is $21.99. [31]"} +{"question": "What is the description of the Cosmic Purple Snowboard by Gravitator?", "truth": "The Cosmic Purple Snowboard by Gravitator is a freestyle board that offers a perfect balance of control and maneuverability. Its bright purple design is complemented by the Gravitator emblem, making it stand out on the mountain. [32]"} +{"question": "What is the price of the Cosmic Purple Snowboard and what brand manufactures it?", "truth": "The price of the Cosmic Purple Snowboard is 419.99 and it is manufactured by the brand Gravitator. [32]"} +{"question": "What is the description of the Venture Grey Trail Shoes by WildRunner?", "truth": "The Venture Grey Trail Shoes by WildRunner are constructed with breathable mesh and a rugged outsole, providing excellent traction and long-lasting durability. They are designed for hitting the trails in style and comfort. [33]"} +{"question": "What is the price of the Venture Grey Trail Shoes and who is the brand?", "truth": "The price of the Venture Grey Trail Shoes by WildRunner is $79.99. The brand of these shoes is WildRunner. [33]"} +{"question": "What are the key features of the Velocity Red Bike Helmet by AirStrider?", "truth": "The Velocity Red Bike Helmet by AirStrider is a lightweight helmet with a streamlined design, adjustable straps, and ventilation channels for optimal airflow. [34]"} +{"question": "What is the price of the Velocity Red Bike Helmet and what type of product is it?", "truth": "The price of the Velocity Red Bike Helmet is $54.99, and it is a cycling helmet from the brand AirStrider. [34]"} +{"question": "What is the description of the Carbon Fiber Trekking Poles?", "truth": "The Raptor Elite Carbon Fiber Trekking Poles are lightweight and durable, providing stability on various terrains and reducing strain on joints. They feature an ergonomic grip and adjustable length, making them essential for outdoor adventures. [35]"} +{"question": "What is the price of the Carbon Fiber Trekking Poles and what brand manufactures them?", "truth": "The price of the Carbon Fiber Trekking Poles is $99.0, and they are manufactured by the brand Raptor Elite. [35]"} +{"question": "What is the description of the Excursion 20L Daypack by B&R?", "truth": "The Excursion 20L Daypack by B&R is a spacious pack made from durable waterproof nylon, featuring multiple pockets, adjustable straps, and a padded back for enhanced comfort. It is described as the perfect companion for hiking or camping trips. [36]"} +{"question": "What are some key features of the Excursion 20L Daypack by B&R?", "truth": "Some key features of the Excursion 20L Daypack by B&R include its durable waterproof nylon material, multiple pockets for storage, adjustable straps for comfort, a padded back, and a sleek design in a versatile white color. [36]"} +{"question": "What is the description of the Stormbreaker Waterproof Jacket by Zephyr?", "truth": "The Stormbreaker Waterproof Jacket by Zephyr offers superior protection with its fully waterproof and windproof design. It comes in a bold red color with the Zephyr logo, adding a stylish touch to your outdoor look. [37]"} +{"question": "What is the price of the Stormbreaker Waterproof Jacket by Zephyr?", "truth": "The price of the Stormbreaker Waterproof Jacket by Zephyr is $139.99. [37]"} +{"question": "What are the key features of the Pathfinder Portable GPS by Solstix?", "truth": "The Pathfinder Portable GPS by Solstix is a compact and reliable navigation device with a color display, preloaded maps, and advanced tracking capabilities. It also offers an intuitive interface and long battery life for confident exploration. [38]"} +{"question": "How much does the Pathfinder Portable GPS by Solstix cost and what brand manufactures it?", "truth": "The price of the Pathfinder Portable GPS by Solstix is 199.0. It is manufactured by the brand Solstix and falls under the type of Navigation device. [38]"} +{"question": "What are the features of the Midnight Blue Goggles by Daybird?", "truth": "The Midnight Blue Goggles by Daybird offer a wide field of vision, anti-fog coating, UV protection, and a blue tinted lens for style. [39]"} +{"question": "What is the price of the Midnight Blue Goggles by Daybird?", "truth": "The price of the Midnight Blue Goggles by Daybird is 89.99. [39]"} +{"question": "What are the key features of the EcoTrek Trail Running Shoes by Green Equipment?", "truth": "The EcoTrek Trail Running Shoes by Green Equipment are designed with eco-friendly materials, offer a comfortable fit, responsive cushioning, and a durable outsole for optimal grip on rugged terrains. The forest green color adds a refreshing touch to the outdoor look. [40]"} +{"question": "What is the price and brand of the EcoTrek Trail Running Shoes?", "truth": "The EcoTrek Trail Running Shoes by Green Equipment are priced at $99.99 and are part of the Green Equipment brand. [40]"} +{"question": "What are the key features of the Trekker Clear Hiking Shoes from WildRunner?", "truth": "The Trekker Clear Hiking Shoes from WildRunner are designed with a waterproof and breathable upper fabric, a rugged carbon-infused sole for excellent traction, and a shock-absorbing midsole for enhanced comfort on long hikes. [41]"} +{"question": "What is the price and brand of the Trekker Clear Hiking Shoes?", "truth": "The Trekker Clear Hiking Shoes are priced at 84.99 and are from the brand WildRunner. [41]"} +{"question": "What are the key features of the Gravity 5000 All-Mountain Skis?", "truth": "The Gravity 5000 All-Mountain Skis by Gravitator feature a versatile design that excels in all conditions, a lightweight wood core, carbon inserts for responsiveness, and ABS sidewalls for added durability. They come in a striking blue color. [42]"} +{"question": "What is the price and brand of the Gravity 5000 All-Mountain Skis?", "truth": "The price of the Gravity 5000 All-Mountain Skis is 699.0 and they are manufactured by the brand Gravitator. [42]"} +{"question": "What are the key features of the Glacier Frost Snowboard from Legend?", "truth": "The Glacier Frost Snowboard from Legend features a hybrid camber profile for excellent edge control and maneuverability, a carbon fiber composite core for lightweight strength and optimal flex, and it is available in a cool white color with a vibrant frost graphic. [43]"} +{"question": "What is the price of the Glacier Frost Snowboard and what type of product is it?", "truth": "The price of the Glacier Frost Snowboard from Legend is 419.99. It is a high-performance snowboard designed for skiing and snowboarding. [43]"} +{"question": "What are the key features of the Summit Pro Climbing Harness by Raptor Elite?", "truth": "The Summit Pro Climbing Harness by Raptor Elite features a lightweight and breathable construction, adjustable leg loops for a personalized fit, reinforced tie-in points for safety and durability, and a vivid green color for style. [44]"} +{"question": "What is the price of the Summit Pro Climbing Harness by Raptor Elite?", "truth": "The price of the Summit Pro Climbing Harness by Raptor Elite is $109.99. [44]"} +{"question": "What are the key features of the Elemental 3-Season Tent by Solstix?", "truth": "The Elemental 3-Season Tent by Solstix is a lightweight and compact tent perfect for backpacking adventures. It offers ample space for two people, features a durable waterproof fabric, sturdy aluminum poles, ventilation panels for optimal airflow, and a vibrant green color for visibility. [45]"} +{"question": "What is the price and brand of the Elemental 3-Season Tent?", "truth": "The price of the Elemental 3-Season Tent by Solstix is 189.99, and the brand is Solstix. [45]"} +{"question": "What are the key features of the Zenith Cycling Jersey by B&R?", "truth": "The Zenith Cycling Jersey by B&R is a high-performance jersey made from moisture-wicking fabric to keep cyclists cool and dry. It features a full-length zipper, three rear pockets for storage, and reflective accents for increased visibility in low-light conditions. [46]"} +{"question": "What is the price of the Zenith Cycling Jersey by B&R and in what color is it available?", "truth": "The Zenith Cycling Jersey by B&R is priced at 64.99 and is available in a vibrant red color. [46]"} +{"question": "What are the key features of the Edge Pro Ice Axe from Grolltex?", "truth": "The Edge Pro Ice Axe from Grolltex features a lightweight aluminum shaft, a durable stainless steel pick, and a comfortable hand grip for maximum control. It is designed for tackling steep ice walls and mixed alpine terrain. [47]"} +{"question": "What is the price and brand of the Edge Pro Ice Axe?", "truth": "The Edge Pro Ice Axe is priced at 129.0 and is from the brand Grolltex. [47]"} +{"question": "What are the key features of the Trailblazer 45L Backpack by Zephyr?", "truth": "The Trailblazer 45L Backpack by Zephyr features multiple compartments for easy organization, adjustable shoulder straps and hip belt for a customized fit, and durable waterproof construction for ultimate protection against the elements. It comes in a classic yellow color that is timeless and versatile. [48]"} +{"question": "How much does the Trailblazer 45L Backpack by Zephyr cost and what brand manufactures it?", "truth": "The Trailblazer 45L Backpack by Zephyr is priced at $124.99 and is manufactured by the brand Zephyr. [48]"} +{"question": "What are the key features of the Arctic Shield Insulated Jacket by Daybird?", "truth": "The Arctic Shield Insulated Jacket by Daybird features a water-resistant outer shell, insulated fill for exceptional warmth, and a detachable hood for added versatility. It comes in a sleek pink color, perfect for any outdoor occasion. [49]"} +{"question": "How much does the Arctic Shield Insulated Jacket by Daybird cost?", "truth": "The price of the Arctic Shield Insulated Jacket by Daybird is $169.99. [49]"} +{"question": "What are the key features of the Astro GPS Navigator by AirStrider?", "truth": "The Astro GPS Navigator by AirStrider comes loaded with topographic maps, GPS tracking, waypoint storage, and a long-lasting battery. It is equipped with a high-resolution color display for easy navigation in any lighting condition. [50]"} +{"question": "What is the price and color option available for the Astro GPS Navigator by AirStrider?", "truth": "The Astro GPS Navigator by AirStrider is available in a sleek gray color and is priced at 249.99. [50]"} +{"question": "What is the description of the SummitStone Chalk Bag?", "truth": "The SummitStone Chalk Bag in forest green is a durable and compact bag designed to keep climbers' hands dry and provide easy access to chalk. It features a drawstring closure, adjustable waist strap, and a Loop-Slider buckle for easy attachment to harnesses. [51]"} +{"question": "What is the price of the SummitStone Chalk Bag?", "truth": "The price of the SummitStone Chalk Bag is $29.99. [51]"} +{"question": "What are the features of the TrailHug 50L Backpack?", "truth": "The TrailHug 50L Backpack in navy blue is made from lightweight and water-resistant nylon. It features adjustable padded straps, multiple compartments for organized storage, a breathable back panel for added comfort, and a built-in rain cover for unexpected showers. [52]"} +{"question": "What is the price of the TrailHug 50L Backpack and what brand does it belong to?", "truth": "The TrailHug 50L Backpack is priced at 129.99 and belongs to the Legend brand. [52]"} +{"question": "What are the key features of the Raven Swift Snowboard?", "truth": "The Raven Swift Snowboard features a camber profile for stability and pop, a medium flex for smooth turns and responsive control. It is designed with a striking white color and black logo, suitable for riders of all skill levels. [53]"} +{"question": "What is the price and brand of the Raven Swift Snowboard?", "truth": "The Raven Swift Snowboard is priced at 349.0 and belongs to the brand Daybird. [53]"} +{"question": "What are the features of the Nebula Pro Headlamp?", "truth": "The Nebula Pro Headlamp has 500 lumens of bright white light, adjustable brightness modes, a rechargeable battery, and a sleek design with water-resistant construction in neon color. It is suitable for night hikes, camping trips, and emergencies. [54]"} +{"question": "What is the price of the Nebula Pro Headlamp and what brand manufactures it?", "truth": "The Nebula Pro Headlamp is priced at 59.99 and is manufactured by the brand Gravitator. [54]"} +{"question": "What are the key features of the Vigor 2.0 Insulated Jacket?", "truth": "The Vigor 2.0 Insulated Jacket is waterproof and breathable, made with a 2-layer technical shell. It features a detachable hood, adjustable cuffs, and multiple pockets for storage, offering both style and functionality for winter activities. [55]"} +{"question": "What is the price and brand of the Vigor 2.0 Insulated Jacket?", "truth": "The price of the Vigor 2.0 Insulated Jacket is 189.99, and it is from the brand Solstix. [55]"} +{"question": "What are the features of the Traveler's Companion Duffel Bag?", "truth": "The Traveler's Companion Duffel Bag is made from durable waxed canvas in earthy brown and offers multiple carry options such as shoulder straps and handles. It includes multiple compartments for organized packing and a padded laptop sleeve, making it suitable for both adventure and work. [56]"} +{"question": "What is the price of the Traveler's Companion Duffel Bag and what brand does it belong to?", "truth": "The price of the Traveler's Companion Duffel Bag is $79.99, and it belongs to the brand B&R under the type Bags. [56]"} +{"question": "What are the key features of the Ascend XT Trail Running Shoes?", "truth": "The Ascend XT Trail Running Shoes in charcoal gray are lightweight yet rugged, offering excellent grip and support with a durable rubber outsole and advanced cushioning technology. The breathable mesh upper keeps feet cool during outdoor adventures. [57]"} +{"question": "What is the price and brand of the Ascend XT Trail Running Shoes?", "truth": "The Ascend XT Trail Running Shoes are priced at 109.99 and are from the brand Zephyr. [57]"} +{"question": "What are the features of the VelociX 2000 Bike Helmet?", "truth": "The VelociX 2000 Bike Helmet in glossy black features an adjustable fit system, detachable visor, and 14 ventilation channels to keep the rider cool during intense rides. It is aerodynamic, sleek in design, and lightweight, making it suitable for road cycling, mountain biking, and various other activities. [58]"} +{"question": "What is the price and brand of the VelociX 2000 Bike Helmet?", "truth": "The VelociX 2000 Bike Helmet is priced at 79.99 and belongs to the Raptor Elite brand. [58]"} +{"question": "What features does the TrailSeeker GPS Watch offer?", "truth": "The TrailSeeker GPS Watch is packed with features like GPS navigation, heart rate monitoring, and activity tracking. It also offers a long battery life for uninterrupted usage. [59]"} +{"question": "What type of users is the TrailSeeker GPS Watch designed for?", "truth": "The TrailSeeker GPS Watch is designed for outdoor enthusiasts who love to explore, offering them a durable design in stealth black and features like GPS navigation, heart rate monitoring, and activity tracking. [59]"} +{"question": "What are the key features of the SummitRider Snowboard Boots?", "truth": "The SummitRider Snowboard Boots in matte black offer a heat-moldable liner, dual-zone lacing system, and impact-resistant outsole for a precise and snug fit, enhancing control on any terrain. [60]"} +{"question": "What is the price and brand of the SummitRider Snowboard Boots?", "truth": "The SummitRider Snowboard Boots are priced at 249.0 and belong to the WildRunner brand in the Ski/boarding category. [60]"} +{"question": "What are the key features of the Trailblaze Steel-Blue Hiking Shoes by WildRunner?", "truth": "The Trailblaze Steel-Blue Hiking Shoes by WildRunner feature a steel-blue color, a waterproof membrane, a high-traction rubber outsole for superior grip, a breathable upper for comfort, and a reinforced toe cap for extra protection. [61]"} +{"question": "What activities are the Trailblaze Steel-Blue Hiking Shoes suitable for?", "truth": "The Trailblaze Steel-Blue Hiking Shoes are perfect for hiking, camping, and other outdoor adventures. [61]"} +{"question": "What are the key features of the Daybird Shadow Black Snowboard?", "truth": "The Daybird Shadow Black Snowboard features a black colorway, a camber profile for stability, a medium-flex rating for responsive turns, a lightweight construction for maneuverability, and a sintered base for speed and durability. [62]"} +{"question": "What type of performance is the Daybird Shadow Black Snowboard designed to deliver?", "truth": "The Daybird Shadow Black Snowboard is designed to deliver peak performance whether you're shredding on groomed runs or exploring the backcountry. [62]"} +{"question": "What are the key features of the Raptor Elite Razor Climbing Harness?", "truth": "The Raptor Elite Razor Climbing Harness is lightweight, breathable, and designed for maximum comfort and performance. It has adjustable waist and leg loops for a secure and customized fit, razor-shaped webbing for style, and durable construction with reinforced tie-in points. [63]"} +{"question": "What is the price of the Raptor Elite Razor Climbing Harness?", "truth": "The price of the Raptor Elite Razor Climbing Harness is $94.99. [63]"} +{"question": "What are the key features of the EcoVenture Olive Green Backpack?", "truth": "The EcoVenture Olive Green Backpack is made from recycled materials, has a spacious main compartment, multiple pockets for organizing gear, and adjustable padded shoulder straps for comfortable carrying. The backpack is eco-friendly, functional, and comes in an olive green color. [64]"} +{"question": "What is the price of the EcoVenture Olive Green Backpack and what brand manufactures it?", "truth": "The price of the EcoVenture Olive Green Backpack is $69.99, and it is manufactured by the brand Green Equipment. [64]"} +{"question": "What material is the Solstix Sprint PRO Carbon Cycling Helmet made of?", "truth": "The Solstix Sprint PRO Carbon Cycling Helmet is crafted from carbon fiber for optimal impact protection and durability. [65]"} +{"question": "What features does the Solstix Sprint PRO Carbon Cycling Helmet offer?", "truth": "The Solstix Sprint PRO Carbon Cycling Helmet features an aerodynamic design, adjustable fit system, ventilation channels for cooling, and a stylish rainbow color with the Solstix emblem. [65]"} +{"question": "What are the key features of the Compass Pro A-320 Professional Compass?", "truth": "The Compass Pro A-320 Professional Compass is designed for outdoor enthusiasts and professionals, featuring a liquid-filled housing for accurate readings, a rotating bezel for easy navigation, and a lanyard for convenient carrying. Its gunmetal color with white markings ensures clarity and visibility even in low-light conditions. [66]"} +{"question": "What is the price of the Compass Pro A-320 Professional Compass and what brand manufactures it?", "truth": "The Compass Pro A-320 Professional Compass is priced at $59.99 and is manufactured by B&R. [66]"} +{"question": "What are the key features of the Venture 2.0 40L Waterproof Duffel Bag?", "truth": "The Venture 2.0 40L Waterproof Duffel Bag is made from waterproof nylon material with taped seams for protection against the elements. It includes a spacious main compartment, external zippered pockets, and adjustable shoulder straps for easy carrying. The vibrant orange color adds excitement to outdoor adventures. [67]"} +{"question": "What is the price of the Venture 2.0 40L Waterproof Duffel Bag and what brand manufactures it?", "truth": "The price of the Venture 2.0 40L Waterproof Duffel Bag is $79.99. It is manufactured by Quester and falls under the category of Bags. [67]"} +{"question": "What are the key features of the Mens Horizon 80s Softshell Jacket?", "truth": "The Mens Horizon 80s Softshell Jacket is made from a water-resistant and breathable fabric in retro 1980s style. It features multiple colors, a detachable hood, adjustable cuffs, and multiple pockets for storing essentials. [68]"} +{"question": "What activities is the Mens Horizon 80s Softshell Jacket suitable for?", "truth": "The Mens Horizon 80s Softshell Jacket is suitable for activities like hiking, skiing, or exploring the city, as it combines style and functionality to keep you dry and comfortable in any weather. [68]"} +{"question": "What are the key features of the Gravitator Expedition 200 GPS Navigator?", "truth": "The Gravitator Expedition 200 GPS Navigator features a built-in GPS antenna for accurate positioning, preloaded maps, a user-friendly interface with intuitive controls, a sleek design in black color with the Gravitator logo, long battery life, and durable construction. [69]"} +{"question": "What is the price and brand of the Expedition 200 GPS Navigator?", "truth": "The price of the Expedition 200 GPS Navigator is 299.0 and the brand is Gravitator. [69]"} +{"question": "What is the description of the GripTrek Hiking Poles by WildRunner?", "truth": "The GripTrek hiking poles by WildRunner are described as a must-have for adventurers due to their durable aluminum construction and anti-slip handles, providing stability and support on any terrain. They are available in sleek yellow color, perfect for tackling steep inclines and rough trails. [70]"} +{"question": "What is the price and brand of the GripTrek Hiking Poles?", "truth": "The price of the GripTrek Hiking Poles is $79.99, and the brand is WildRunner. [70]"} +{"question": "What is the description of the Explorer Frost Boots by Daybird?", "truth": "The Explorer Frost Boots by Daybird are premium boots designed with a waterproof and insulated shell to keep your feet warm and protected in icy conditions. The sleek black design with blue accents adds a touch of style to your outdoor gear. [71]"} +{"question": "What is the price of the Explorer Frost Boots by Daybird?", "truth": "The price of the Explorer Frost Boots by Daybird is 149.99. [71]"} +{"question": "What is the description of the GravityZone All-Mountain Skis by Gravitator?", "truth": "The GravityZone All-Mountain Skis by Gravitator are high-performance skis designed for precision and control on all types of terrain. They feature a sleek metallic blue design and are constructed with carbon fiber for lightweight durability. [72]"} +{"question": "What is the price of the GravityZone All-Mountain Skis by Gravitator?", "truth": "The price of the GravityZone All-Mountain Skis by Gravitator is 699.0. [72]"} +{"question": "What is the description of the Omni-Snow Dual Snowboard by WildRunner?", "truth": "The Omni-Snow Dual Snowboard by WildRunner combines the maneuverability of a skateboard with the speed and stability of a snowboard. It is designed to unleash snowboarding skills with its innovative design. [73]"} +{"question": "What is the price and brand of the Omni-Snow Dual Snowboard?", "truth": "The price of the Omni-Snow Dual Snowboard is 289.99 and it is manufactured by WildRunner. [73]"} +{"question": "What is the description of the Apex Climbing Harness by Raptor Elite?", "truth": "The Apex Climbing Harness by Raptor Elite is constructed with high-strength nylon webbing and features adjustable leg loops for a secure and comfortable fit. It has a sleek white design with a vibrant orange emblem. [74]"} +{"question": "What is the price of the Apex Climbing Harness by Raptor Elite?", "truth": "The price of the Apex Climbing Harness by Raptor Elite is $99.99. [74]"} +{"question": "What features do the TrailTracker Hiking Shoes have?", "truth": "The TrailTracker Hiking Shoes by AirStrider are lightweight and breathable with a rugged rubber sole for excellent traction and stability. They come in a cool gray color with green accents for added style. [75]"} +{"question": "What material is the Fusion Carbon Cycling Helmet made of?", "truth": "The Fusion Carbon Cycling Helmet is made from lightweight carbon fiber. [76]"} +{"question": "What features does the Fusion Carbon Cycling Helmet have?", "truth": "The Fusion Carbon Cycling Helmet features an aerodynamic design for maximum speed and a colorful finish with a bold blue stripe to make the wearer stand out on the road. [76]"} +{"question": "What is the name of the tent and who is the manufacturer?", "truth": "The name of the tent is Survivor 2-Person Tent by XE. [77]"} +{"question": "What are some features of the Survivor 2-Person Tent?", "truth": "The Survivor 2-Person Tent is made from durable ripstop nylon with a waterproof coating, ensuring dryness in any weather. It also comes in a vibrant orange color for high visibility in the wild. [77]"} +{"question": "What is the description of the Basecamp Duffle Bag by Solstix?", "truth": "The Basecamp Duffle Bag by Solstix is described as the ultimate adventure companion made from durable nylon with multiple compartments for optimal organization. Its sleek red design with gray accents combines style and functionality. [78]"} +{"question": "What is the price and brand of the Basecamp Duffle Bag?", "truth": "The price of the Basecamp Duffle Bag is $129.0, and the brand is Solstix. [78]"} +{"question": "What is the description of the Everest Insulated Jacket by Legend?", "truth": "The Everest Insulated Jacket by Legend is designed to conquer the cold with its insulated design and sleek grey color. It combines warmth and style, featuring a water-resistant shell to keep you dry during unexpected showers and a cozy fleece lining for extra comfort. [79]"} +{"question": "What is the price of the Everest Insulated Jacket by Legend?", "truth": "The price of the Everest Insulated Jacket by Legend is $179.99. [79]"} +{"question": "What features does the Pathfinder GPS Watch by XE include?", "truth": "The Pathfinder GPS Watch by XE includes GPS tracking, altimeter, barometer, and compass functions to guide you on your outdoor adventures. [80]"} +{"question": "What is the design of the Pathfinder GPS Watch by XE?", "truth": "The Pathfinder GPS Watch by XE has a sleek pink design with a vibrant green dial, adding a sporty touch to your wrist. [80]"} +{"question": "What is the description of the Trail Breeze Hiking Shoes by AirStrider?", "truth": "The Trail Breeze hiking shoes by AirStrider offer ultimate comfort and stability with a lightweight design featuring a breathable mesh upper in vivid blue, ideal for hot summer hikes. The durable rubber outsole provides exceptional grip on various terrains. [81]"} +{"question": "How much do the Trail Breeze Hiking Shoes by AirStrider cost?", "truth": "The Trail Breeze Hiking Shoes by AirStrider are priced at 109.99. [81]"} +{"question": "What are the key features of the Maverick Pro ski goggles by WildRunner?", "truth": "The Maverick Pro ski goggles by WildRunner feature a sleek black frame, mirrored polarized lenses that reduce glare, and a comfortable foam lining with an adjustable strap for a secure fit. [82]"} +{"question": "What is the price of the Maverick Pro ski goggles by WildRunner?", "truth": "The price of the Maverick Pro ski goggles by WildRunner is $139.99. [82]"} +{"question": "What are the key features of the Blizzard Freestyle Snowboard from Zephyr?", "truth": "The Blizzard snowboard from Zephyr features a vibrant orange and black design, a durable bamboo core, and carbon fiber reinforcement. It offers riders an optimal blend of flexibility and responsiveness, making it perfect for those who crave speed and control. [83]"} +{"question": "What is the price and brand of the Blizzard Freestyle Snowboard?", "truth": "The price of the Blizzard Freestyle Snowboard is 379.0 and it is from the brand Zephyr. [83]"} +{"question": "What is the description of the Gravity Harness?", "truth": "The Gravity Harness is described as a tool to reach new heights with its innovative design and sturdy construction. It ensures safety while climbing, offers maximum comfort and freedom of movement, and features a sleek black and red color scheme for style. [84]"} +{"question": "What is the price of the Gravity Harness?", "truth": "The price of the Gravity Harness is $89.99. [84]"} +{"question": "What are the key features of the LumenHead headlamp by Daybird?", "truth": "The LumenHead headlamp by Daybird is compact yet powerful, featuring a bright LED light in a vibrant green housing. It offers multiple lighting modes, including a red light for preserving night vision, providing exceptional visibility in any conditions. [85]"} +{"question": "How much does the LumenHead headlamp by Daybird cost and what type of outdoor activity is it suitable for?", "truth": "The LumenHead headlamp by Daybird is priced at $49.99 and is designed for trekking. [85]"} +{"question": "What are the key features of the ProVent Bike Helmet?", "truth": "The ProVent Bike Helmet features a matte black finish with striking red accents, ProVent technology for optimal airflow, an adjustable fit system, and a removable visor. It is suitable for both casual and professional riders. [86]"} +{"question": "What is the price of the ProVent Bike Helmet and what brand manufactures it?", "truth": "The price of the ProVent Bike Helmet is $79.99, and it is manufactured by the brand Raptor Elite. [86]"} +{"question": "What are the key features of the Nomad 2-Person Tent by XE?", "truth": "The Nomad 2-Person Tent by XE is designed for rugged outdoor conditions with a durable waterproof fabric in earthy tones. It offers a spacious interior, easy-to-use setup, and an innovative ventilation system for a comfortable camping experience. [87]"} +{"question": "How much does the Nomad 2-Person Tent by XE cost and what type of tent is it?", "truth": "The Nomad 2-Person Tent by XE is priced at 229.0 and is categorized as a Trekking tent. [87]"} +{"question": "What is the description of the AlpinePack Backpack by Green Equipment?", "truth": "The AlpinePack backpack by Green Equipment is a versatile and durable backpack with a sleek navy design, reinforced straps, a capacity of 45 liters, multiple compartments, and a hydration pack sleeve. It offers ample storage and organization, with an ergonomic back panel for maximum comfort on challenging treks. [88]"} +{"question": "What are the key features of the AlpinePack Backpack by Green Equipment?", "truth": "The key features of the AlpinePack backpack by Green Equipment include a capacity of 45 liters, multiple compartments, a hydration pack sleeve, reinforced straps, a sleek navy design, and an ergonomic back panel for maximum comfort. [88]"} +{"question": "What is the description of the Summit Pro Down Jacket?", "truth": "The Summit Pro Down Jacket is a high-performance jacket filled with premium down insulation for exceptional warmth. It features a sleek design in deep navy blue with contrasting silver zippers and emblems, along with weather-resistant fabric and a removable hood. [89]"} +{"question": "What is the price of the Summit Pro Down Jacket?", "truth": "The price of the Summit Pro Down Jacket is $239.99. [89]"} +{"question": "What are the key features of the TrailTracker GPS Watch?", "truth": "The TrailTracker GPS Watch features a built-in GPS that accurately tracks location, speed, and distance. It has a sleek camo design with a vivid orange strap, long battery life, and water-resistant construction. [90]"} +{"question": "What is the price of the TrailTracker GPS Watch and what brand manufactures it?", "truth": "The price of the TrailTracker GPS Watch is 199.0 and it is manufactured by B&R. [90]"} +{"question": "What are the key features of the Trailblazer Trail Running Shoes by WildRunner?", "truth": "The Trailblazer Trail Running Shoes by WildRunner are lightweight shoes that come in vibrant blue. They feature a rugged outsole for excellent traction, a breathable mesh upper for maximum comfort, and quick-drying materials to keep you dry on your adventures. [91]"} +{"question": "What is the price and brand of the Trailblazer Trail Running Shoes?", "truth": "The Trailblazer Trail Running Shoes by WildRunner are priced at 89.99 and the brand is WildRunner. [91]"} +{"question": "What are the key features of the Blizzard Snowboard by Daybird?", "truth": "The Blizzard Snowboard by Daybird features a sleek design in icy white, a durable wood core, a versatile medium flex, and a precision base that allows for smooth rides and easy turns. [92]"} +{"question": "What is the price of the Blizzard Snowboard by Daybird?", "truth": "The price of the Blizzard Snowboard by Daybird is $449.99. [92]"} +{"question": "What is the description of the Summit Climbing Harness?", "truth": "The Summit Climbing Harness is described as a durable and lightweight harness available in bold red, providing maximum comfort and safety while scaling tricky routes. It features adjustable waistband and leg loops for a snug fit, along with gear loops for easy access to equipment. [93]"} +{"question": "What is the price of the Summit Climbing Harness?", "truth": "The price of the Summit Climbing Harness is $109.99. [93]"} +{"question": "What is the description of the Gravity Hiking Backpack?", "truth": "The Gravity Hiking Backpack is described as a backpack designed for unforgettable hikes, available in tiger stripes. It offers a spacious main compartment, multiple pockets, and a hydration system compatible design. The backpack is lightweight and durable for maximum comfort on the trails. [94]"} +{"question": "What is the price and brand of the Gravity Hiking Backpack?", "truth": "The Gravity Hiking Backpack is priced at $79.99 and is branded as Gravitator. [94]"} +{"question": "What are the features of the AirStrider AeroLite Cycling Helmet?", "truth": "The AirStrider AeroLite Cycling Helmet in glossy grey features a lightweight design, adjustable straps, excellent ventilation, and an aerodynamic shape that reduces air resistance. [95]"} +{"question": "What is the price of the AirStrider AeroLite Cycling Helmet?", "truth": "The price of the AirStrider AeroLite Cycling Helmet is $129.99. [95]"} +{"question": "What is the description of the B&R Explorer Camping Tent?", "truth": "The B&R Explorer Camping Tent is a spacious tent available in forest green that comfortably fits up to six people with a separate sleeping area and a generous living space. Its sturdy construction and weather-resistant materials ensure durability and protection from the elements. [96]"} +{"question": "What is the price and brand of the Explorer Camping Tent?", "truth": "The price of the B&R Explorer Camping Tent is 279.99 and the brand is B&R. [96]"} +{"question": "What are the features of the Quester Gravity Waterproof Dry Bag?", "truth": "The Quester Gravity Waterproof Dry Bag features a roll-top closure system, adjustable shoulder straps, and durable PVC-coated fabric to withstand water, sand, and dirt. It is described as versatile and ideal for adventures on land or water. [97]"} +{"question": "What is the price of the Gravity Waterproof Dry Bag by Quester?", "truth": "The price of the Gravity Waterproof Dry Bag by Quester is $49.99. [97]"} +{"question": "What is the description of the Legend Element Outdoor Jacket?", "truth": "The Legend Element Outdoor Jacket is available in charcoal gray and offers ultimate protection with its waterproof and windproof shell. The breathable fabric and adjustable cuffs ensure comfort, allowing you to explore in any weather condition. [98]"} +{"question": "What is the price of the Legend Element Outdoor Jacket?", "truth": "The price of the Legend Element Outdoor Jacket is $179.99. [98]"} +{"question": "What features does the Solstix Adventurer GPS Watch offer?", "truth": "The Solstix Adventurer GPS Watch features a built-in GPS, altimeter, and compass, allowing users to track routes and monitor progress. It also has multiple sport modes, making it an ideal companion for outdoor enthusiasts. [99]"} +{"question": "What is the price of the Solstix Adventurer GPS Watch?", "truth": "The price of the Solstix Adventurer GPS Watch is 199.99. [99]"} +{"question": "What are the features of the Green Equipment EcoLite Trekking Poles?", "truth": "The Green Equipment EcoLite Trekking Poles are lightweight with adjustable height, shock-absorbing capabilities, and ergonomic cork handles for a comfortable grip. They provide stability and support for challenging trails. [100]"} +{"question": "What is the price of the EcoLite Trekking Poles and what brand manufactures them?", "truth": "The EcoLite Trekking Poles are priced at 79.99 and are manufactured by Green Equipment. [100]"} +{"question": "What features do the Trek Xtreme hiking shoes offer?", "truth": "The Trek Xtreme hiking shoes by Raptor Elite are built with a durable leather upper and rugged rubber sole, providing excellent traction and protection on any trail. They come in a timeless brown color, adding style to outdoor adventures. [101]"} diff --git a/evals/results/baseline/config.json b/evals/results/baseline/config.json new file mode 100644 index 00000000..82653d21 --- /dev/null +++ b/evals/results/baseline/config.json @@ -0,0 +1,16 @@ +{ + "testdata_path": "ground_truth.jsonl", + "results_dir": "results/experiment", + "requested_metrics": ["gpt_groundedness", "gpt_relevance", "answer_length", "latency", "citation_match"], + "target_url": "http://host.docker.internal:8000/chat", + "target_parameters": { + "overrides": { + "use_advanced_flow": true, + "top": 3, + "retrieval_mode": "hybrid", + "temperature": 0.3 + } + }, + "target_response_answer_jmespath": "message.content", + "target_response_context_jmespath": "context.data_points" +} diff --git a/evals/results/baseline/eval_results.jsonl b/evals/results/baseline/eval_results.jsonl new file mode 100644 index 00000000..978afacf --- /dev/null +++ b/evals/results/baseline/eval_results.jsonl @@ -0,0 +1,20 @@ +{"question": "What is the description of the Wanderer Black Hiking Boots?", "truth": "The Wanderer Black Hiking Boots by Daybird are made with a waterproof leather upper and a durable rubber sole for superior traction. They feature a cushioned insole and padded collar for all-day comfort during outdoor adventures. [1]", "answer": "The Wanderer Black Hiking Boots by Daybird are made with a waterproof leather upper and a durable rubber sole for superior traction. They feature a cushioned insole and padded collar for all-day comfort during your outdoor adventures. The price for the Wanderer Black Hiking Boots is $109.99. [1]", "context": "{\"1\": {\"id\": 1, \"type\": \"Footwear\", \"brand\": \"Daybird\", \"name\": \"Wanderer Black Hiking Boots\", \"description\": \"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.\", \"price\": 109.99}, \"21\": {\"id\": 21, \"type\": \"Footwear\", \"brand\": \"Legend\", \"name\": \"Trailblazer Black Hiking Shoes\", \"description\": \"The Legend Trailblazer is a versatile hiking shoe designed to provide unparalleled durability and comfort on any adventure. With its black color, these shoes offer a sleek and minimalist style. The shoes feature a waterproof GORE-TEX lining, Vibram rubber outsole for enhanced traction, and a reinforced toe cap for added protection. Conquer any trail with confidence in the Legend Trailblazer Black Hiking Shoes.\", \"price\": 129.99}, \"61\": {\"id\": 61, \"type\": \"Footwear\", \"brand\": \"WildRunner\", \"name\": \"Trailblaze Steel-Blue Hiking Shoes\", \"description\": \"Explore the great outdoors with the Trailblaze Steel-Blue Hiking Shoes by WildRunner. These rugged and durable shoes feature a steel-blue color, a waterproof membrane, and a high-traction rubber outsole for superior grip on any terrain. The breathable upper keeps your feet cool and comfortable, while the reinforced toe cap adds extra protection. Perfect for hiking, camping, and other outdoor adventures.\", \"price\": 129.99}}", "latency": 1.848982, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 296, "citation_match": true} +{"question": "What is the price and brand of the Wanderer Black Hiking Boots?", "truth": "The Wanderer Black Hiking Boots are priced at 109.99 and are from the brand Daybird. [1]", "answer": "The Wanderer Black Hiking Boots are priced at $109.99 and are made by the brand Daybird. [1]", "context": "{\"1\": {\"id\": 1, \"type\": \"Footwear\", \"brand\": \"Daybird\", \"name\": \"Wanderer Black Hiking Boots\", \"description\": \"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.\", \"price\": 109.99}, \"21\": {\"id\": 21, \"type\": \"Footwear\", \"brand\": \"Legend\", \"name\": \"Trailblazer Black Hiking Shoes\", \"description\": \"The Legend Trailblazer is a versatile hiking shoe designed to provide unparalleled durability and comfort on any adventure. With its black color, these shoes offer a sleek and minimalist style. The shoes feature a waterproof GORE-TEX lining, Vibram rubber outsole for enhanced traction, and a reinforced toe cap for added protection. Conquer any trail with confidence in the Legend Trailblazer Black Hiking Shoes.\", \"price\": 129.99}, \"61\": {\"id\": 61, \"type\": \"Footwear\", \"brand\": \"WildRunner\", \"name\": \"Trailblaze Steel-Blue Hiking Shoes\", \"description\": \"Explore the great outdoors with the Trailblaze Steel-Blue Hiking Shoes by WildRunner. These rugged and durable shoes feature a steel-blue color, a waterproof membrane, and a high-traction rubber outsole for superior grip on any terrain. The breathable upper keeps your feet cool and comfortable, while the reinforced toe cap adds extra protection. Perfect for hiking, camping, and other outdoor adventures.\", \"price\": 129.99}}", "latency": 2.047678, "gpt_groundedness": 5.0, "gpt_relevance": 1.0, "answer_length": 92, "citation_match": true} +{"question": "What are the key features of the Summit Pro Harness by Gravitator?", "truth": "The Summit Pro Harness by Gravitator is a lightweight and durable climbing harness with adjustable leg loops and waist belt for a customized fit. It also features a reinforced tie-in point and strong webbing loops for safety. [2]", "answer": "The Summit Pro Harness by Gravitator [2] is a lightweight and durable climbing harness with adjustable leg loops and waist belt for a customized fit. It features a vibrant blue color for a stylish look while climbing. The harness also has a reinforced tie-in point and strong webbing loops to prioritize safety.", "context": "{\"2\": {\"id\": 2, \"type\": \"Climbing\", \"brand\": \"Gravitator\", \"name\": \"Summit Pro Harness\", \"description\": \"Conquer new heights with the Summit Pro Harness by Gravitator. This lightweight and durable climbing harness features adjustable leg loops and waist belt for a customized fit. With its vibrant blue color, you'll look stylish while maneuvering difficult routes. Safety is a top priority with a reinforced tie-in point and strong webbing loops.\", \"price\": 89.99}, \"84\": {\"id\": 84, \"type\": \"Climbing\", \"brand\": \"Gravitator\", \"name\": \"Gravity Harness\", \"description\": \"Reach new heights with the Gravitator Gravity harness. With its innovative design and sturdy construction, this harness ensures your safety while climbing. The sleek black and red color scheme adds a touch of style. It offers maximum comfort and freedom of movement, giving you the confidence to conquer any climbing challenge.\", \"price\": 89.99}, \"44\": {\"id\": 44, \"type\": \"Climbing\", \"brand\": \"Raptor Elite\", \"name\": \"Summit Pro Climbing Harness\", \"description\": \"Conquer the highest peaks with the Summit Pro Climbing Harness by Raptor Elite. This harness features a lightweight and breathable construction, complete with adjustable leg loops for a personalized fit. It has reinforced tie-in points for maximum safety and durability. The vivid green color adds a touch of style to your climbing gear.\", \"price\": 109.99}}", "latency": 4.400196, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 311, "citation_match": true} +{"question": "What is the price of the Summit Pro Harness by Gravitator and what type of product is it?", "truth": "The price of the Summit Pro Harness by Gravitator is 89.99. It is a climbing harness designed for conquering new heights with style and safety in mind. [2]", "answer": "The Summit Pro Harness by Gravitator [2] is priced at $89.99 and it is a climbing harness.", "context": "{\"2\": {\"id\": 2, \"type\": \"Climbing\", \"brand\": \"Gravitator\", \"name\": \"Summit Pro Harness\", \"description\": \"Conquer new heights with the Summit Pro Harness by Gravitator. This lightweight and durable climbing harness features adjustable leg loops and waist belt for a customized fit. With its vibrant blue color, you'll look stylish while maneuvering difficult routes. Safety is a top priority with a reinforced tie-in point and strong webbing loops.\", \"price\": 89.99}, \"84\": {\"id\": 84, \"type\": \"Climbing\", \"brand\": \"Gravitator\", \"name\": \"Gravity Harness\", \"description\": \"Reach new heights with the Gravitator Gravity harness. With its innovative design and sturdy construction, this harness ensures your safety while climbing. The sleek black and red color scheme adds a touch of style. It offers maximum comfort and freedom of movement, giving you the confidence to conquer any climbing challenge.\", \"price\": 89.99}, \"94\": {\"id\": 94, \"type\": \"Bags\", \"brand\": \"Gravitator\", \"name\": \"Gravity Hiking Backpack\", \"description\": \"Embark on unforgettable hikes with the Gravitator Gravity Hiking Backpack. Available in tiger stripes, this backpack offers a spacious main compartment, multiple pockets, and a hydration system compatible design. The lightweight and durable construction ensures maximum comfort on the trails.\", \"price\": 79.99}}", "latency": 3.497859, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 90, "citation_match": true} +{"question": "What are the key features of the Alpine Fusion Goggles from WildRunner?", "truth": "The Alpine Fusion Goggles from WildRunner offer full UV protection, anti-fog lenses, a stylish silver frame with orange lenses, adjustable straps for a secure fit, and soft foam padding for comfort during skiing or snowboarding. [3]", "answer": "The Alpine Fusion Goggles from WildRunner offer full UV protection and anti-fog lenses to keep your vision clear on the slopes. They have a stylish silver frame with orange lenses, adjustable straps for a secure fit, and soft foam padding for all-day comfort. The price for these goggles is $79.99 [3].", "context": "{\"3\": {\"id\": 3, \"type\": \"Ski/boarding\", \"brand\": \"WildRunner\", \"name\": \"Alpine Fusion Goggles\", \"description\": \"Enhance your skiing experience with the Alpine Fusion Goggles from WildRunner. These goggles offer full UV protection and anti-fog lenses to keep your vision clear on the slopes. With their stylish silver frame and orange lenses, you'll stand out from the crowd. Adjustable straps ensure a secure fit, while the soft foam padding provides comfort all day long.\", \"price\": 79.99}, \"82\": {\"id\": 82, \"type\": \"Ski/boarding\", \"brand\": \"WildRunner\", \"name\": \"Maverick Pro Ski Goggles\", \"description\": \"Conquer the slopes in style with the Maverick Pro ski goggles by WildRunner. Designed for maximum performance, these goggles feature a sleek black frame and mirrored, polarized lenses that reduce glare, enhancing your visibility. With a comfortable foam lining and adjustable strap, these goggles provide a secure and snug fit.\", \"price\": 139.99}, \"16\": {\"id\": 16, \"type\": \"Ski/boarding\", \"brand\": \"Solstix\", \"name\": \"Expedition 2022 Goggles\", \"description\": \"Solstix Expedition 2022 Goggles provide clear vision and optimal protection on the slopes. With an anti-fog lens, UV protection, and a comfortable foam lining, these goggles ensure a great fit and unrestricted vision even in challenging conditions. The matte black frame gives them a sleek and modern look.\", \"price\": 89.0}}", "latency": 3.576792, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 302, "citation_match": true} +{"question": "What is the price and brand of the Alpine Fusion Goggles?", "truth": "The Alpine Fusion Goggles from WildRunner are priced at 79.99 and are part of the WildRunner brand. [3]", "answer": "The Alpine Fusion Goggles are priced at $79.99 and are made by WildRunner. [3]", "context": "{\"3\": {\"id\": 3, \"type\": \"Ski/boarding\", \"brand\": \"WildRunner\", \"name\": \"Alpine Fusion Goggles\", \"description\": \"Enhance your skiing experience with the Alpine Fusion Goggles from WildRunner. These goggles offer full UV protection and anti-fog lenses to keep your vision clear on the slopes. With their stylish silver frame and orange lenses, you'll stand out from the crowd. Adjustable straps ensure a secure fit, while the soft foam padding provides comfort all day long.\", \"price\": 79.99}, \"82\": {\"id\": 82, \"type\": \"Ski/boarding\", \"brand\": \"WildRunner\", \"name\": \"Maverick Pro Ski Goggles\", \"description\": \"Conquer the slopes in style with the Maverick Pro ski goggles by WildRunner. Designed for maximum performance, these goggles feature a sleek black frame and mirrored, polarized lenses that reduce glare, enhancing your visibility. With a comfortable foam lining and adjustable strap, these goggles provide a secure and snug fit.\", \"price\": 139.99}, \"16\": {\"id\": 16, \"type\": \"Ski/boarding\", \"brand\": \"Solstix\", \"name\": \"Expedition 2022 Goggles\", \"description\": \"Solstix Expedition 2022 Goggles provide clear vision and optimal protection on the slopes. With an anti-fog lens, UV protection, and a comfortable foam lining, these goggles ensure a great fit and unrestricted vision even in challenging conditions. The matte black frame gives them a sleek and modern look.\", \"price\": 89.0}}", "latency": 1.402853, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 78, "citation_match": true} +{"question": "What is the description of the Expedition Backpack by Quester?", "truth": "The Expedition Backpack by Quester is described as a must-have for every outdoor enthusiast with its spacious interior, multiple pockets, and durable nylon fabric that can withstand tough conditions. It also features orange accents for added style. [4]", "answer": "The Expedition Backpack by Quester is a must-have for every outdoor enthusiast. It is made with durable nylon fabric, has a spacious interior, multiple pockets for easy organization, and orange accents for a touch of style. The price is $129.99. [4]", "context": "{\"4\": {\"id\": 4, \"type\": \"Bags\", \"brand\": \"Quester\", \"name\": \"Expedition Backpack\", \"description\": \"The Expedition Backpack by Quester is a must-have for every outdoor enthusiast. With its spacious interior and multiple pockets, you can easily carry all your gear and essentials. Made with durable nylon fabric, this backpack is built to withstand the toughest conditions. The orange accents add a touch of style to this functional backpack.\", \"price\": 129.99}, \"67\": {\"id\": 67, \"type\": \"Bags\", \"brand\": \"Quester\", \"name\": \"Venture 2.0 40L Waterproof Duffel Bag\", \"description\": \"Pack your gear in the Quester Venture 2.0 40L Waterproof Duffel Bag. This versatile duffel bag is made from waterproof nylon material and features taped seams to keep your belongings safe from the elements. It offers a spacious main compartment, external zippered pockets, and adjustable shoulder straps for easy carrying. The vibrant orange color adds a pop of excitement to your outdoor adventures.\", \"price\": 79.99}, \"7\": {\"id\": 7, \"type\": \"Bags\", \"brand\": \"Solstix\", \"name\": \"Explorer 45L Backpack\", \"description\": \"The Explorer 45L Backpack by Solstix is perfect for your next outdoor expedition. Made with waterproof and tear-resistant materials, this backpack can withstand even the harshest weather conditions. With its spacious main compartment and multiple pockets, you can easily organize your gear. The green and black color scheme adds a rugged and adventurous edge.\", \"price\": 149.99}}", "latency": 3.85642, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 249, "citation_match": true} +{"question": "What is the price of the Expedition Backpack by Quester?", "truth": "The price of the Expedition Backpack by Quester is $129.99. [4]", "answer": "The price of the Expedition Backpack by Quester is $129.99 [4].", "context": "{\"4\": {\"id\": 4, \"type\": \"Bags\", \"brand\": \"Quester\", \"name\": \"Expedition Backpack\", \"description\": \"The Expedition Backpack by Quester is a must-have for every outdoor enthusiast. With its spacious interior and multiple pockets, you can easily carry all your gear and essentials. Made with durable nylon fabric, this backpack is built to withstand the toughest conditions. The orange accents add a touch of style to this functional backpack.\", \"price\": 129.99}, \"67\": {\"id\": 67, \"type\": \"Bags\", \"brand\": \"Quester\", \"name\": \"Venture 2.0 40L Waterproof Duffel Bag\", \"description\": \"Pack your gear in the Quester Venture 2.0 40L Waterproof Duffel Bag. This versatile duffel bag is made from waterproof nylon material and features taped seams to keep your belongings safe from the elements. It offers a spacious main compartment, external zippered pockets, and adjustable shoulder straps for easy carrying. The vibrant orange color adds a pop of excitement to your outdoor adventures.\", \"price\": 79.99}, \"97\": {\"id\": 97, \"type\": \"Bags\", \"brand\": \"Quester\", \"name\": \"Gravity Waterproof Dry Bag\", \"description\": \"Keep your essentials dry and secure with the Quester Gravity Waterproof Dry Bag. This versatile bag, in vibrant orange, features a roll-top closure system, adjustable shoulder straps, and durable PVC-coated fabric to withstand water, sand, and dirt. Ideal for adventures on land or water.\", \"price\": 49.99}}", "latency": 3.238277, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 63, "citation_match": true} +{"question": "What is the description of the Blizzard Rider Snowboard by B&R?", "truth": "The Blizzard Rider Snowboard by B&R is a versatile snowboard perfect for riders of all levels, featuring a medium flex and twin shape. It has a sleek black and blue color scheme and is suitable for carving turns or hitting the terrain park. [5]", "answer": "The Blizzard Rider Snowboard by B&R is a versatile snowboard perfect for riders of all levels. It has a medium flex, a twin shape, and a sleek black and blue color scheme. Whether you're carving turns or hitting the terrain park, this snowboard will help you shred with confidence. It is priced at $299.99. [5]", "context": "{\"5\": {\"id\": 5, \"type\": \"Ski/boarding\", \"brand\": \"B&R\", \"name\": \"Blizzard Rider Snowboard\", \"description\": \"Get ready to ride the slopes with the Blizzard Rider Snowboard by B&R. This versatile snowboard is perfect for riders of all levels with its medium flex and twin shape. Its black and blue color scheme gives it a sleek and cool look. Whether you're carving turns or hitting the terrain park, this snowboard will help you shred with confidence.\", \"price\": 299.99}, \"92\": {\"id\": 92, \"type\": \"Ski/boarding\", \"brand\": \"Daybird\", \"name\": \"Blizzard Snowboard\", \"description\": \"Take on the slopes with the Daybird Blizzard Snowboard. This powerful board features a sleek design in icy white, with a durable wood core, a versatile medium flex, and a precision base that allows for smooth rides and easy turns. Strap on and carve your way to glory.\", \"price\": 449.99}, \"83\": {\"id\": 83, \"type\": \"Ski/boarding\", \"brand\": \"Zephyr\", \"name\": \"Blizzard Freestyle Snowboard\", \"description\": \"Unleash your freestyle skills on the slopes with the Blizzard snowboard from Zephyr. Featuring a vibrant orange and black design, this snowboard is perfect for riders who crave speed and control. Constructed with a durable bamboo core and carbon fiber reinforcement, the Blizzard offers an optimal blend of flexibility and responsiveness.\", \"price\": 379.0}}", "latency": 2.263607, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 310, "citation_match": true} +{"question": "What is the price and brand of the Blizzard Rider Snowboard?", "truth": "The price of the Blizzard Rider Snowboard is 299.99, and it is manufactured by the brand B&R under the type Ski/boarding. [5]", "answer": "The price of the Blizzard Rider Snowboard is $299.99 and it is made by B&R. [5]", "context": "{\"5\": {\"id\": 5, \"type\": \"Ski/boarding\", \"brand\": \"B&R\", \"name\": \"Blizzard Rider Snowboard\", \"description\": \"Get ready to ride the slopes with the Blizzard Rider Snowboard by B&R. This versatile snowboard is perfect for riders of all levels with its medium flex and twin shape. Its black and blue color scheme gives it a sleek and cool look. Whether you're carving turns or hitting the terrain park, this snowboard will help you shred with confidence.\", \"price\": 299.99}, \"83\": {\"id\": 83, \"type\": \"Ski/boarding\", \"brand\": \"Zephyr\", \"name\": \"Blizzard Freestyle Snowboard\", \"description\": \"Unleash your freestyle skills on the slopes with the Blizzard snowboard from Zephyr. Featuring a vibrant orange and black design, this snowboard is perfect for riders who crave speed and control. Constructed with a durable bamboo core and carbon fiber reinforcement, the Blizzard offers an optimal blend of flexibility and responsiveness.\", \"price\": 379.0}, \"92\": {\"id\": 92, \"type\": \"Ski/boarding\", \"brand\": \"Daybird\", \"name\": \"Blizzard Snowboard\", \"description\": \"Take on the slopes with the Daybird Blizzard Snowboard. This powerful board features a sleek design in icy white, with a durable wood core, a versatile medium flex, and a precision base that allows for smooth rides and easy turns. Strap on and carve your way to glory.\", \"price\": 449.99}}", "latency": 3.283513, "gpt_groundedness": 1.0, "gpt_relevance": 1.0, "answer_length": 79, "citation_match": true} +{"question": "What are the key features of the Carbon Fiber Trekking Poles by Raptor Elite?", "truth": "The Carbon Fiber Trekking Poles by Raptor Elite are designed with lightweight carbon fiber shafts for excellent support and durability. They have comfortable and adjustable cork grips for a secure hold, and blue accents for a stylish touch. Additionally, they are compact and collapsible for easy transport and storage. [6]", "answer": "The Carbon Fiber Trekking Poles by Raptor Elite are designed with lightweight carbon fiber shafts for excellent support and durability. They have comfortable and adjustable cork grips for a secure hold, and stylish blue accents. These poles are compact, collapsible, and easy to transport and store. The price is $69.99 [6].\n\nThe Raptor Elite Carbon Fiber Trekking Poles are lightweight and durable, providing stability on various terrains and reducing strain on your joints. They feature an ergonomic grip and adjustable length, making them essential for outdoor adventures. The price is $99.00 [35].", "context": "{\"6\": {\"id\": 6, \"type\": \"Trekking\", \"brand\": \"Raptor Elite\", \"name\": \"Carbon Fiber Trekking Poles\", \"description\": \"The Carbon Fiber Trekking Poles by Raptor Elite are the ultimate companion for your hiking adventures. Designed with lightweight carbon fiber shafts, these poles provide excellent support and durability. The comfortable and adjustable cork grips ensure a secure hold, while the blue accents add a stylish touch. Compact and collapsible, these trekking poles are easy to transport and store.\", \"price\": 69.99}, \"35\": {\"id\": 35, \"type\": \"Trekking\", \"brand\": \"Raptor Elite\", \"name\": \"Carbon Fiber Trekking Poles\", \"description\": \"Hike with confidence using the Raptor Elite Carbon Fiber Trekking Poles. These lightweight and durable poles provide stability on various terrains and reduce strain on your joints. With an ergonomic grip and adjustable length, these poles are a must-have for your outdoor adventures.\", \"price\": 99.0}, \"100\": {\"id\": 100, \"type\": \"Trekking\", \"brand\": \"Green Equipment\", \"name\": \"EcoLite Trekking Poles\", \"description\": \"Tackle challenging trails with the Green Equipment EcoLite Trekking Poles. These lightweight poles, in vibrant green, feature adjustable height, shock-absorbing capabilities, and ergonomic cork handles for a comfortable grip. Whether ascending or descending, these poles provide stability and support.\", \"price\": 79.99}}", "latency": 7.618347, "gpt_groundedness": 1.0, "gpt_relevance": 4.0, "answer_length": 601, "citation_match": true} +{"question": "What is the price of the Carbon Fiber Trekking Poles by Raptor Elite?", "truth": "The price of the Carbon Fiber Trekking Poles by Raptor Elite is $69.99. [6]", "answer": "The price of the Carbon Fiber Trekking Poles by Raptor Elite is $69.99 [6].", "context": "{\"35\": {\"id\": 35, \"type\": \"Trekking\", \"brand\": \"Raptor Elite\", \"name\": \"Carbon Fiber Trekking Poles\", \"description\": \"Hike with confidence using the Raptor Elite Carbon Fiber Trekking Poles. These lightweight and durable poles provide stability on various terrains and reduce strain on your joints. With an ergonomic grip and adjustable length, these poles are a must-have for your outdoor adventures.\", \"price\": 99.0}, \"6\": {\"id\": 6, \"type\": \"Trekking\", \"brand\": \"Raptor Elite\", \"name\": \"Carbon Fiber Trekking Poles\", \"description\": \"The Carbon Fiber Trekking Poles by Raptor Elite are the ultimate companion for your hiking adventures. Designed with lightweight carbon fiber shafts, these poles provide excellent support and durability. The comfortable and adjustable cork grips ensure a secure hold, while the blue accents add a stylish touch. Compact and collapsible, these trekking poles are easy to transport and store.\", \"price\": 69.99}, \"93\": {\"id\": 93, \"type\": \"Climbing\", \"brand\": \"Raptor Elite\", \"name\": \"Summit Climbing Harness\", \"description\": \"Conquer the highest peaks with the Raptor Elite Summit Climbing Harness. This durable and lightweight harness, available in bold red, provides maximum comfort and safety while scaling tricky routes. Its adjustable waistband and leg loops ensure a snug fit, while the gear loops provide easy access to your equipment.\", \"price\": 109.99}}", "latency": 1.953346, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 75, "citation_match": true} +{"question": "What are the key features of the Explorer 45L Backpack by Solstix?", "truth": "The Explorer 45L Backpack by Solstix is made with waterproof and tear-resistant materials, making it suitable for harsh weather conditions. It has a spacious main compartment, multiple pockets for organization, and a green and black color scheme for a rugged look. [7]", "answer": "The Explorer 45L Backpack by Solstix is made with waterproof and tear-resistant materials, making it durable for harsh weather conditions. It has a spacious main compartment and multiple pockets for easy gear organization. The green and black color scheme adds a rugged and adventurous edge. The price is $149.99. [7]", "context": "{\"7\": {\"id\": 7, \"type\": \"Bags\", \"brand\": \"Solstix\", \"name\": \"Explorer 45L Backpack\", \"description\": \"The Explorer 45L Backpack by Solstix is perfect for your next outdoor expedition. Made with waterproof and tear-resistant materials, this backpack can withstand even the harshest weather conditions. With its spacious main compartment and multiple pockets, you can easily organize your gear. The green and black color scheme adds a rugged and adventurous edge.\", \"price\": 149.99}, \"48\": {\"id\": 48, \"type\": \"Bags\", \"brand\": \"Zephyr\", \"name\": \"Trailblazer 45L Backpack\", \"description\": \"Take everything you need for your next adventure with the Trailblazer 45L Backpack by Zephyr. This spacious backpack features multiple compartments for easy organization, adjustable shoulder straps and hip belt for a customized fit, and durable waterproof construction for ultimate protection against the elements. The classic yellow color is timeless and versatile.\", \"price\": 124.99}, \"78\": {\"id\": 78, \"type\": \"Bags\", \"brand\": \"Solstix\", \"name\": \"Basecamp Duffle Bag\", \"description\": \"The Basecamp Duffle Bag by Solstix is the ultimate adventure companion. This spacious bag is made from durable nylon and features multiple compartments for optimal organization. Its sleek red design with gray accents exudes both style and functionality.\", \"price\": 129.0}}", "latency": 24.611204, "gpt_groundedness": 5.0, "gpt_relevance": 4.0, "answer_length": 317, "citation_match": true} +{"question": "How much does the Explorer 45L Backpack by Solstix cost and what brand manufactures it?", "truth": "The Explorer 45L Backpack by Solstix is priced at 149.99 and is manufactured by the brand Solstix. [7]", "answer": "Response from target http://host.docker.internal:8000/chat is not valid JSON:\n\nInternal Server Error \nMake sure that your configuration points at a chat endpoint that returns a single JSON object.\n", "context": "Response from target http://host.docker.internal:8000/chat is not valid JSON:\n\nInternal Server Error \nMake sure that your configuration points at a chat endpoint that returns a single JSON object.\n", "latency": -1, "gpt_groundedness": 1.0, "gpt_relevance": 1.0, "answer_length": 197, "citation_match": true} +{"question": "What are the key features of the Frostbite Insulated Jacket by Grolltex?", "truth": "The Frostbite Insulated Jacket by Grolltex features a water-resistant outer shell, lightweight insulation, adjustable hood, multiple pockets, black and gray color combination, and the Grolltex logo for a touch of sophistication. [8]", "answer": "The Frostbite Insulated Jacket by Grolltex features a water-resistant outer shell, lightweight insulation, adjustable hood, multiple pockets, black and gray color combination, and a Grolltex logo. It is priced at $179.99 [8].", "context": "{\"8\": {\"id\": 8, \"type\": \"Jackets\", \"brand\": \"Grolltex\", \"name\": \"Frostbite Insulated Jacket\", \"description\": \"Stay warm and stylish with the Frostbite Insulated Jacket by Grolltex. Featuring a water-resistant outer shell and lightweight insulation, this jacket is perfect for cold weather adventures. The black and gray color combination and Grolltex logo add a touch of sophistication. With its adjustable hood and multiple pockets, this jacket offers both style and functionality.\", \"price\": 179.99}, \"68\": {\"id\": 68, \"type\": \"Jackets\", \"brand\": \"Grolltex\", \"name\": \"Mens Horizon 80s Softshell Jacket\", \"description\": \"Stay protected from the elements in the Grolltex Mens Horizon 80s Softshell Jacket. Made from a water-resistant and breathable fabric in retro 1980s style, this jacket keeps you dry and comfortable in any weather. It features multiple colors, a detachable hood, adjustable cuffs, and multiple pockets for storing your essentials. Whether you're hiking, skiing, or exploring the city, this jacket combines style and functionality.\", \"price\": 169.99}, \"55\": {\"id\": 55, \"type\": \"Jackets\", \"brand\": \"Solstix\", \"name\": \"Vigor 2.0 Insulated Jacket\", \"description\": \"Stay warm and stylish on the slopes with the Vigor 2.0 Insulated Jacket in vibrant red. This waterproof and breathable jacket is made with a 2-layer technical shell and features a detachable hood, adjustable cuffs, and multiple pockets for storage. With its modern design and ergonomic fit, it's the perfect outer layer for your winter adventures.\", \"price\": 189.99}}", "latency": 3.226864, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 225, "citation_match": true} +{"question": "What is the price of the Frostbite Insulated Jacket and which brand manufactures it?", "truth": "The Frostbite Insulated Jacket is priced at 179.99 and is manufactured by Grolltex. [8]", "answer": "The Frostbite Insulated Jacket is priced at $179.99 and is manufactured by Grolltex [8].", "context": "{\"8\": {\"id\": 8, \"type\": \"Jackets\", \"brand\": \"Grolltex\", \"name\": \"Frostbite Insulated Jacket\", \"description\": \"Stay warm and stylish with the Frostbite Insulated Jacket by Grolltex. Featuring a water-resistant outer shell and lightweight insulation, this jacket is perfect for cold weather adventures. The black and gray color combination and Grolltex logo add a touch of sophistication. With its adjustable hood and multiple pockets, this jacket offers both style and functionality.\", \"price\": 179.99}, \"49\": {\"id\": 49, \"type\": \"Jackets\", \"brand\": \"Daybird\", \"name\": \"Arctic Shield Insulated Jacket\", \"description\": \"Stay warm and stylish in the Arctic Shield Insulated Jacket by Daybird. This jacket features a water-resistant outer shell, insulated fill for exceptional warmth, and a detachable hood for added versatility. The sleek pink color is perfect for any outdoor occasion.\", \"price\": 169.99}, \"79\": {\"id\": 79, \"type\": \"Jackets\", \"brand\": \"Legend\", \"name\": \"Everest Insulated Jacket\", \"description\": \"Conquer the cold with the Everest Insulated Jacket by Legend. This jacket combines warmth and style with its insulated design and sleek grey color. The water-resistant shell will keep you dry during unexpected showers while the cozy fleece lining adds extra comfort.\", \"price\": 179.99}}", "latency": 2.705667, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 88, "citation_match": true} +{"question": "What features does the VenturePro GPS Watch by AirStrider offer?", "truth": "The VenturePro GPS Watch by AirStrider features a built-in GPS, altimeter, and compass, allowing users to navigate with confidence in any terrain. [9]", "answer": "The VenturePro GPS Watch by AirStrider offers a built-in GPS, altimeter, and compass for navigation. It has a sleek black design with an easy-to-read display, making it stylish and practical for adventurers. [9]", "context": "{\"9\": {\"id\": 9, \"type\": \"Navigation\", \"brand\": \"AirStrider\", \"name\": \"VenturePro GPS Watch\", \"description\": \"Navigate with confidence using the VenturePro GPS Watch by AirStrider. This rugged and durable watch features a built-in GPS, altimeter, and compass, allowing you to track your progress and find your way in any terrain. With its sleek black design and easy-to-read display, this watch is both stylish and practical. The VenturePro GPS Watch is a must-have for every adventurer.\", \"price\": 199.99}, \"50\": {\"id\": 50, \"type\": \"Navigation\", \"brand\": \"AirStrider\", \"name\": \"Astro GPS Navigator\", \"description\": \"Never get lost on your outdoor adventures with the Astro GPS Navigator by AirStrider. This compact and rugged device comes loaded with topographic maps, GPS tracking, waypoint storage, and a long-lasting battery. It is equipped with a high-resolution color display for easy navigation in any lighting condition. Available in a sleek gray color.\", \"price\": 249.99}, \"59\": {\"id\": 59, \"type\": \"Navigation\", \"brand\": \"Quester\", \"name\": \"TrailSeeker GPS Watch\", \"description\": \"Stay on track and explore new trails with the TrailSeeker GPS Watch. With its durable design in stealth black, this watch is packed with features like GPS navigation, heart rate monitoring, and activity tracking. It also offers a long battery life, so you can keep going without worrying about recharging. The TrailSeeker is the ultimate companion for outdoor enthusiasts who love to explore.\", \"price\": 149.99}}", "latency": 1.828663, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 211, "citation_match": true} +{"question": "What makes the VenturePro GPS Watch a must-have for adventurers?", "truth": "The VenturePro GPS Watch is described as rugged, durable, stylish, and practical with its sleek black design, easy-to-read display, and essential navigation features like GPS, altimeter, and compass. [9]", "answer": "The VenturePro GPS Watch by AirStrider is a must-have for adventurers because it is a rugged and durable watch that features a built-in GPS, altimeter, and compass. This allows you to track your progress and find your way in any terrain. With its sleek black design and easy-to-read display, the VenturePro GPS Watch is both stylish and practical, making it an essential companion for every adventurer. [9]", "context": "{\"9\": {\"id\": 9, \"type\": \"Navigation\", \"brand\": \"AirStrider\", \"name\": \"VenturePro GPS Watch\", \"description\": \"Navigate with confidence using the VenturePro GPS Watch by AirStrider. This rugged and durable watch features a built-in GPS, altimeter, and compass, allowing you to track your progress and find your way in any terrain. With its sleek black design and easy-to-read display, this watch is both stylish and practical. The VenturePro GPS Watch is a must-have for every adventurer.\", \"price\": 199.99}, \"99\": {\"id\": 99, \"type\": \"Navigation\", \"brand\": \"Solstix\", \"name\": \"Adventurer GPS Watch\", \"description\": \"Take navigation to the next level with the Solstix Adventurer GPS Watch. This sleek and durable watch, in midnight blue, features a built-in GPS, altimeter, and compass, allowing you to track your routes and monitor your progress. With multiple sport modes, it's the ideal companion for outdoor enthusiasts.\", \"price\": 199.99}, \"59\": {\"id\": 59, \"type\": \"Navigation\", \"brand\": \"Quester\", \"name\": \"TrailSeeker GPS Watch\", \"description\": \"Stay on track and explore new trails with the TrailSeeker GPS Watch. With its durable design in stealth black, this watch is packed with features like GPS navigation, heart rate monitoring, and activity tracking. It also offers a long battery life, so you can keep going without worrying about recharging. The TrailSeeker is the ultimate companion for outdoor enthusiasts who love to explore.\", \"price\": 149.99}}", "latency": 3.806653, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 406, "citation_match": true} +{"question": "What are the key features of the Trailblazer Bike Helmet by Green Equipment?", "truth": "The Trailblazer Bike Helmet by Green Equipment is lightweight and durable, with an adjustable fit system and ventilation for added comfort. It also features a vibrant green color and sleek design. [10]", "answer": "The Trailblazer Bike Helmet by Green Equipment features an adjustable fit system, ventilation for added comfort, a vibrant green color, and a sleek design. It is lightweight and durable, suitable for all types of cycling from mountain biking to road cycling. The price is $59.99 [10].", "context": "{\"10\": {\"id\": 10, \"type\": \"Cycling\", \"brand\": \"Green Equipment\", \"name\": \"Trailblazer Bike Helmet\", \"description\": \"Stay safe on your cycling adventures with the Trailblazer Bike Helmet by Green Equipment. This lightweight and durable helmet features an adjustable fit system and ventilation for added comfort. With its vibrant green color and sleek design, you'll stand out on the road. The Trailblazer Bike Helmet is perfect for all types of cycling, from mountain biking to road cycling.\", \"price\": 59.99}, \"34\": {\"id\": 34, \"type\": \"Cycling\", \"brand\": \"AirStrider\", \"name\": \"Velocity Red Bike Helmet\", \"description\": \"Protect yourself while cycling in style with the Velocity Red Bike Helmet by AirStrider. This lightweight helmet features a streamlined design, adjustable straps, and ventilation channels for optimal airflow. Stay safe on the road or trails with this vibrant red helmet.\", \"price\": 54.99}, \"25\": {\"id\": 25, \"type\": \"Cycling\", \"brand\": \"Daybird\", \"name\": \"Stealth Lite Bike Helmet\", \"description\": \"The Daybird Stealth Lite Bike Helmet is designed for cyclists who value both safety and style. With its sleek matte silver color, this helmet will make you stand out on the road. The helmet features a lightweight in-mold construction, adjustable retention system, and multiple ventilation channels for optimal airflow. Stay protected and look cool with the Daybird Stealth Lite Bike Helmet.\", \"price\": 89.99}}", "latency": 3.137111, "gpt_groundedness": 5.0, "gpt_relevance": 5.0, "answer_length": 284, "citation_match": true} +{"question": "What types of cycling is the Trailblazer Bike Helmet suitable for?", "truth": "The Trailblazer Bike Helmet is perfect for all types of cycling, from mountain biking to road cycling. [10]", "answer": "The Trailblazer Bike Helmet [10] is suitable for all types of cycling, from mountain biking to road cycling.", "context": "{\"10\": {\"id\": 10, \"type\": \"Cycling\", \"brand\": \"Green Equipment\", \"name\": \"Trailblazer Bike Helmet\", \"description\": \"Stay safe on your cycling adventures with the Trailblazer Bike Helmet by Green Equipment. This lightweight and durable helmet features an adjustable fit system and ventilation for added comfort. With its vibrant green color and sleek design, you'll stand out on the road. The Trailblazer Bike Helmet is perfect for all types of cycling, from mountain biking to road cycling.\", \"price\": 59.99}, \"34\": {\"id\": 34, \"type\": \"Cycling\", \"brand\": \"AirStrider\", \"name\": \"Velocity Red Bike Helmet\", \"description\": \"Protect yourself while cycling in style with the Velocity Red Bike Helmet by AirStrider. This lightweight helmet features a streamlined design, adjustable straps, and ventilation channels for optimal airflow. Stay safe on the road or trails with this vibrant red helmet.\", \"price\": 54.99}, \"58\": {\"id\": 58, \"type\": \"Cycling\", \"brand\": \"Raptor Elite\", \"name\": \"VelociX 2000 Bike Helmet\", \"description\": \"Protect your head in style with the VelociX 2000 Bike Helmet in glossy black. This aerodynamic helmet features an adjustable fit system, detachable visor, and 14 ventilation channels to keep you cool during intense rides. With its sleek design and lightweight construction, it's the perfect choice for road cycling, mountain biking, and everything in between.\", \"price\": 79.99}}", "latency": 1.530218, "gpt_groundedness": 5.0, "gpt_relevance": 4.0, "answer_length": 108, "citation_match": true} diff --git a/evals/results/baseline/evaluate_parameters.json b/evals/results/baseline/evaluate_parameters.json new file mode 100644 index 00000000..8d94fb06 --- /dev/null +++ b/evals/results/baseline/evaluate_parameters.json @@ -0,0 +1,15 @@ +{ + "evaluation_gpt_model": "chat", + "evaluation_timestamp": 1725037099, + "testdata_path": "/workspace/evals/ground_truth.jsonl", + "target_url": "http://host.docker.internal:8000/chat", + "target_parameters": { + "overrides": { + "use_advanced_flow": true, + "top": 3, + "retrieval_mode": "hybrid", + "temperature": 0.3 + } + }, + "num_questions": 20 +} diff --git a/evals/results/baseline/summary.json b/evals/results/baseline/summary.json new file mode 100644 index 00000000..2c6bfb70 --- /dev/null +++ b/evals/results/baseline/summary.json @@ -0,0 +1,26 @@ +{ + "gpt_groundedness": { + "pass_count": 17, + "pass_rate": 0.85, + "mean_rating": 4.4 + }, + "gpt_relevance": { + "pass_count": 17, + "pass_rate": 0.85, + "mean_rating": 4.25 + }, + "answer_length": { + "mean": 219.1, + "max": 601, + "min": 63 + }, + "latency": { + "mean": 3.94, + "max": 24.611204, + "min": -1.0 + }, + "citation_match": { + "total": 20, + "rate": 1.0 + } +} diff --git a/requirements-dev.txt b/requirements-dev.txt index 08ce71aa..1169d8a2 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -12,3 +12,5 @@ pytest-cov pytest-playwright pytest-snapshot locust +git+https://github.com/Azure-Samples/ai-rag-chat-evaluator/@installable +psycopg2 From 154c4d23af2c964eef84794f575e0257d2c3e5de Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Fri, 30 Aug 2024 23:40:48 +0000 Subject: [PATCH 03/29] Start workflow --- .github/workflows/evaluate.yaml | 129 ++++++++++++++++++++++++++++++++ README.md | 1 + evals/README.md | 8 -- 3 files changed, 130 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/evaluate.yaml delete mode 100644 evals/README.md diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml new file mode 100644 index 00000000..98788aec --- /dev/null +++ b/.github/workflows/evaluate.yaml @@ -0,0 +1,129 @@ +name: Evaluate + +on: + workflow_dispatch: + +# Set up permissions for deploying with secretless Azure federated credentials +# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication +permissions: + id-token: write + contents: read + +jobs: + evaluate: + runs-on: ubuntu-latest + env: + AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }} + AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }} + AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} + AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} + AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }} + AZURE_OPENAI_API_VERSION: ${{ vars.AZURE_OPENAI_API_VERSION }} + AZURE_OPENAI_4_EVAL_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_4_EVAL_DEPLOYMENT_NAME }} + AZURE_OPENAI_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }} + AZURE_OPENAI_35_TURBO_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_35_TURBO_DEPLOYMENT_NAME }} + AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }} + AZURE_SEARCH_ENDPOINT: ${{ vars.AZURE_SEARCH_ENDPOINT }} + AZURE_OPENAI_NAME: ${{ vars.AZURE_OPENAI_NAME }} + + steps: + - uses: actions/checkout@v4 + - name: Check for MacOS Runner + if: matrix.os == 'macos-latest-xlarge' + run: brew install postgresql@14 + - name: Install pgvector on Windows using install-pgvector.bat + if: matrix.os == 'windows-latest' + shell: cmd + run: .github\workflows\install-pgvector.bat + + - name: Install PostgreSQL development libraries + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt update + sudo apt install postgresql-server-dev-14 + + - name: Setup postgres + uses: ikalnytskyi/action-setup-postgres@v6 + with: + username: admin + password: postgres + database: postgres + + - name: Install pgvector on MacOS/Linux using install-pgvector.sh + if: matrix.os != 'windows-latest' + run: .github/workflows/install-pgvector.sh + + - name: Install python + uses: actions/setup-python@v5 + with: + python-version: '3.12' # install the python version needed + + - name: Install azd + uses: Azure/setup-azd@v1.0.0 + + - name: Install dependencies + run: | + python -m pip install -r requirements-dev.txt + + - name: Install app as editable app + run: | + python -m pip install -e src/backend + + - name: Setup local database with seed data + run: | + cp .env.sample .env + python ./src/backend/fastapi_app/setup_postgres_database.py + python ./src/backend/fastapi_app/setup_postgres_seeddata.py + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Build frontend + run: | + cd ./src/frontend + npm install + npm run build + + - name: Install python packages + run: | + python -m pip install --upgrade pip + pip install -r requirements-dev.txt + + - name: Login to Azure + uses: azure/login@v2 + with: + client-id: ${{ env.AZURE_CLIENT_ID }} + tenant-id: ${{ env.AZURE_TENANT_ID }} + subscription-id: ${{ env.AZURE_SUBSCRIPTION_ID }} + + - name: Set az account + uses: azure/CLI@v2 + with: + inlineScript: | + az account set --subscription ${{env.AZURE_SUBSCRIPTION_ID}} + + + - name: Run local server + run: | + python3 -m uvicorn fastapi_app:create_app --factory + + - name: Evaluate local RAG flow + run: | + python evals/evaluate.py + + - name: Upload eval results as build artifact + uses: actions/upload-artifact@v4 + with: + name: eval_result + path: ./src/api/evaluate/eval_results.jsonl + + - name: GitHub Summary Step + if: ${{ success() }} + working-directory: ./src/api + run: | + echo "" >> $GITHUB_STEP_SUMMARY + + echo "📊 Promptflow Evaluation Results" >> $GITHUB_STEP_SUMMARY + cat evaluate/eval_results.md >> $GITHUB_STEP_SUMMARY diff --git a/README.md b/README.md index 7b6325dd..6e290ab2 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,7 @@ Further documentation is available in the `docs/` folder: * [Deploying with existing resources](docs/deploy_existing.md) * [Monitoring with Azure Monitor](docs/monitoring.md) * [Load testing](docs/loadtesting.md) +* [Evaluation](docs/evaluation.md) Please post in the issue tracker with any questions or issues. diff --git a/evals/README.md b/evals/README.md deleted file mode 100644 index 1c8dc515..00000000 --- a/evals/README.md +++ /dev/null @@ -1,8 +0,0 @@ -pip install -r requirements-dev.txt - -python evals/generate.py - -python evals/evaluate.py - -# TODO: Add GPT-4 deployment with high capacity for evaluation -# TODO: Add CI workflow that can be triggered to run the evaluate on the local app From d95076c41b05dfe66a427b7b6da85a577efd8481 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 21:37:45 +0000 Subject: [PATCH 04/29] Bicep for GPT-4 --- .devcontainer/devcontainer.json | 4 +- .env.sample | 9 +- .github/workflows/evaluate.yaml | 26 +- azure.yaml | 11 +- docs/evaluation.md | 25 + evals/evaluate.py | 51 +- evals/generate_ground_truth.py | 2 +- infra/main.bicep | 199 +- infra/main.parameters.json | 42 +- src/backend/fastapi_app/__init__.py | 10 +- src/backend/fastapi_app/dependencies.py | 17 +- src/backend/fastapi_app/openai_clients.py | 4 +- src/backend/fastapi_app/postgres_engine.py | 6 +- src/backend/fastapi_app/update_embeddings.py | 4 +- src/frontend/package-lock.json | 5670 ++++++----------- tests/conftest.py | 8 +- .../advanced_chat_flow_response.json | 8 +- ...ced_chat_streaming_flow_response.jsonlines | 2 +- .../simple_chat_flow_response.json | 4 +- ...ple_chat_streaming_flow_response.jsonlines | 2 +- tests/test_dependencies.py | 10 +- tests/test_openai_clients.py | 2 +- 22 files changed, 2104 insertions(+), 4012 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index dd88b8ff..9220951c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -19,7 +19,9 @@ "ghcr.io/azure/azure-dev/azd:latest": { "version": "1.10.1" }, - "ghcr.io/prulloac/devcontainer-features/ollama:1": {} + "ghcr.io/prulloac/devcontainer-features/ollama:1": {}, + // az feature + "ghcr.io/devcontainers/features/azure-cli": {} }, // Configure tool-specific properties. "customizations": { diff --git a/.env.sample b/.env.sample index f6c8774c..91881fa6 100644 --- a/.env.sample +++ b/.env.sample @@ -13,12 +13,15 @@ OPENAI_EMBED_HOST=azure # You also need to `azd auth login` if running this locally AZURE_OPENAI_ENDPOINT=https://YOUR-AZURE-OPENAI-SERVICE-NAME.openai.azure.com AZURE_OPENAI_VERSION=2024-03-01-preview -AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-35-turbo -AZURE_OPENAI_CHAT_MODEL=gpt-35-turbo +AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-4o-mini +AZURE_OPENAI_CHAT_MODEL=gpt-4o-mini AZURE_OPENAI_EMBED_DEPLOYMENT=text-embedding-ada-002 AZURE_OPENAI_EMBED_MODEL=text-embedding-ada-002 -AZURE_OPENAI_EMBED_MODEL_DIMENSIONS=1536 +AZURE_OPENAI_EMBED_DIMENSIONS=1536 AZURE_OPENAI_EMBEDDING_COLUMN=embedding_ada002 +AZURE_OPENAI_EVAL_DEPLOYMENT=gpt-4 +AZURE_OPENAI_EVAL_MODEL=gpt-4 +AZURE_TENANT_ID= # Only needed when using key-based Azure authentication: AZURE_OPENAI_KEY= # Needed for OpenAI.com: diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index 98788aec..e3a6a2ae 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -2,6 +2,11 @@ name: Evaluate on: workflow_dispatch: + # TODO: change later + push: + branches: [ main ] + pull_request: + branches: [ main ] # Set up permissions for deploying with secretless Azure federated credentials # https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication @@ -17,15 +22,20 @@ jobs: AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }} AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} - AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }} - AZURE_OPENAI_API_VERSION: ${{ vars.AZURE_OPENAI_API_VERSION }} - AZURE_OPENAI_4_EVAL_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_4_EVAL_DEPLOYMENT_NAME }} - AZURE_OPENAI_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }} - AZURE_OPENAI_35_TURBO_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_35_TURBO_DEPLOYMENT_NAME }} AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }} - AZURE_SEARCH_ENDPOINT: ${{ vars.AZURE_SEARCH_ENDPOINT }} - AZURE_OPENAI_NAME: ${{ vars.AZURE_OPENAI_NAME }} - + OPENAI_CHAT_HOST: ${{ vars.OPENAI_CHAT_HOST }} + OPENAI_EMBED_HOST: ${{ vars.OPENAI_EMBED_HOST }} + AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }} + AZURE_OPENAI_VERSION: ${{ vars.AZURE_OPENAI_VERSION }} + AZURE_OPENAI_CHAT_DEPLOYMENT: ${{ vars.AZURE_OPENAI_CHAT_DEPLOYMENT }} + AZURE_OPENAI_CHAT_MODEL: ${{ vars.AZURE_OPENAI_CHAT_MODEL }} + AZURE_OPENAI_EMBED_DEPLOYMENT: ${{ vars.AZURE_OPENAI_EMBED_DEPLOYMENT }} + AZURE_OPENAI_EMBED_MODEL: ${{ vars.AZURE_OPENAI_EMBED_MODEL }} + AZURE_OPENAI_EMBED_DIMENSIONS: ${{ vars.AZURE_OPENAI_EMBED_DIMENSIONS }} + AZURE_OPENAI_EMBEDDING_COLUMN: ${{ vars.AZURE_OPENAI_EMBEDDING_COLUMN }} + AZURE_OPENAI_EVAL_DEPLOYMENT: ${{ vars.AZURE_OPENAI_EVAL_DEPLOYMENT }} + AZURE_OPENAI_EVAL_MODEL: ${{ vars.AZURE_OPENAI_EVAL_MODEL }} + # Postgres environment variables are not needed, as they're passed in below steps: - uses: actions/checkout@v4 - name: Check for MacOS Runner diff --git a/azure.yaml b/azure.yaml index bcc84608..0f719aea 100644 --- a/azure.yaml +++ b/azure.yaml @@ -39,12 +39,19 @@ hooks: pipeline: variables: - DEPLOY_AZURE_OPENAI - - AZURE_OPENAI_CHAT_MODEL + - OPENAI_CHAT_HOST + - OPENAI_EMBED_HOST + - AZURE_OPENAI_ENDPOINT + - AZURE_OPENAI_VERSION - AZURE_OPENAI_CHAT_DEPLOYMENT + - AZURE_OPENAI_CHAT_MODEL - AZURE_OPENAI_CHAT_DEPLOYMENT_VERSION - AZURE_OPENAI_CHAT_DEPLOYMENT_CAPACITY - - AZURE_OPENAI_EMBED_MODEL - AZURE_OPENAI_EMBED_DEPLOYMENT + - AZURE_OPENAI_EMBED_MODEL - AZURE_OPENAI_EMBED_DEPLOYMENT_VERSION - AZURE_OPENAI_EMBED_DEPLOYMENT_CAPACITY - AZURE_OPENAI_EMBED_DIMENSIONS + - AZURE_OPENAI_EMBEDDING_COLUMN + - AZURE_OPENAI_EVAL_DEPLOYMENT + - AZURE_OPENAI_EVAL_MODEL diff --git a/docs/evaluation.md b/docs/evaluation.md index 238f0ae9..4a6c5bd1 100644 --- a/docs/evaluation.md +++ b/docs/evaluation.md @@ -1,5 +1,30 @@ # Evaluating the RAG answer quality +## Deploy a GPT-4 model + + +1. Run this command to tell `azd` to deploy a GPT-4 model for evaluation: + + ```shell + azd env set DEPLOY_EVAL_MODEL true + ``` + +2. Set the capacity to the highest possible value to ensure that the evaluation runs quickly. + + ```shell + azd env set AZURE_OPENAI_EVAL_DEPLOYMENT_CAPACITY 100 + ``` + + By default, that will provision a `gpt-4` model, version `turbo-2024-04-09`. To change those settings, set the `AZURE_OPENAI_EVAL_DEPLOYMENT` and `AZURE_OPENAI_EVAL_DEPLOYMENT_VERSION` environment variables. + +3. Then, run the following command to provision the model: + + ```shell + azd provision + ``` + +## Setup the evaluation environment + Install all the dependencies for the evaluation script by running the following command: ```bash diff --git a/evals/evaluate.py b/evals/evaluate.py index 5f25fe3d..4996e3d4 100644 --- a/evals/evaluate.py +++ b/evals/evaluate.py @@ -2,47 +2,54 @@ import os from pathlib import Path +import azure.identity +from azure.ai.evaluation import AzureOpenAIModelConfiguration, OpenAIModelConfiguration from dotenv import load_dotenv from evaltools.eval.evaluate import run_evaluate_from_config -from promptflow.core import AzureOpenAIModelConfiguration, ModelConfiguration, OpenAIModelConfiguration +from rich.logging import RichHandler logger = logging.getLogger("ragapp") -def get_openai_config() -> ModelConfiguration: +def get_openai_config() -> dict: if os.environ.get("OPENAI_CHAT_HOST") == "azure": azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] - azure_deployment = os.environ.get("AZURE_OPENAI_CHAT_DEPLOYMENT") - api_version = "2023-07-01-preview" + azure_deployment = os.environ.get("AZURE_OPENAI_EVAL_DEPLOYMENT") if os.environ.get("AZURE_OPENAI_KEY"): logger.info("Using Azure OpenAI Service with API Key from AZURE_OPENAI_KEY") - openai_config = AzureOpenAIModelConfiguration( - azure_endpoint=azure_endpoint, - azure_deployment=azure_deployment, - api_version=api_version, - api_key=os.environ["AZURE_OPENAI_KEY"], - ) + openai_config: AzureOpenAIModelConfiguration = { + "azure_endpoint": azure_endpoint, + "azure_deployment": azure_deployment, + "api_key": os.environ["AZURE_OPENAI_KEY"], + } else: - logger.info("Using Azure OpenAI Service with Azure Developer CLI Credential") - openai_config = AzureOpenAIModelConfiguration( - azure_endpoint=azure_endpoint, azure_deployment=azure_deployment, api_version=api_version - ) - # PromptFlow will call DefaultAzureCredential behind the scenes - openai_config.model = os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"] + if tenant_id := os.getenv("AZURE_TENANT_ID"): + logger.info("Authenticating to Azure using Azure Developer CLI Credential for tenant %s", tenant_id) + azure_credential = azure.identity.AzureDeveloperCliCredential(tenant_id=tenant_id, process_timeout=60) + else: + logger.info("Authenticating to Azure using Azure Developer CLI Credential") + azure_credential = azure.identity.AzureDeveloperCliCredential(process_timeout=60) + openai_config: AzureOpenAIModelConfiguration = { + "azure_endpoint": azure_endpoint, + "azure_deployment": azure_deployment, + "credential": azure_credential, + } + # azure-ai-evaluate will call DefaultAzureCredential behind the scenes, + # so we must be logged in to Azure CLI with the correct tenant + openai_config["model"] = os.environ["AZURE_OPENAI_EVAL_MODEL"] else: logger.info("Using OpenAI Service with API Key from OPENAICOM_KEY") - openai_config = OpenAIModelConfiguration( - model=os.environ["OPENAICOM_CHAT_MODEL"], api_key=os.environ.get("OPENAICOM_KEY") - ) + openai_config: OpenAIModelConfiguration = {"api_key": os.environ["OPENAICOM_KEY"], "model": "gpt-4"} return openai_config if __name__ == "__main__": - logging.basicConfig(level=logging.WARNING) - logger.setLevel(logging.INFO) + logging.basicConfig( + level=logging.INFO, format="%(message)s", datefmt="[%X]", handlers=[RichHandler(rich_tracebacks=True)] + ) load_dotenv(".env", override=True) openai_config = get_openai_config() run_evaluate_from_config( - working_dir=Path(__file__).parent, config_path="eval_config.json", openai_config=openai_config, num_questions=20 + working_dir=Path(__file__).parent, config_path="eval_config.json", openai_config=openai_config, num_questions=2 ) diff --git a/evals/generate_ground_truth.py b/evals/generate_ground_truth.py index a923488f..31934cb5 100644 --- a/evals/generate_ground_truth.py +++ b/evals/generate_ground_truth.py @@ -56,7 +56,7 @@ def get_openai_config_dict() -> dict: api_key = os.environ["AZURE_OPENAI_KEY"] else: logger.info("Using Azure OpenAI Service with Azure Developer CLI Credential") - azure_credential = DefaultAzureCredential() + azure_credential = DefaultAzureCredential(process_timeout=60) api_key = azure_credential.get_token("https://cognitiveservices.azure.com/.default").token openai_config = { "api_type": "azure", diff --git a/infra/main.bicep b/infra/main.bicep index 37a6d79f..657b7fb2 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -17,12 +17,31 @@ param principalId string = '' @minLength(1) @description('Location for the OpenAI resource') -// Look for gpt-35-turbo 0125 on the availability table: -// https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#standard-deployment-model-availability +// Look for desired models on the availability table: +// https://learn.microsoft.com/azure/ai-services/openai/concepts/models#global-standard-model-availability @allowed([ + 'australiaeast' + 'brazilsouth' 'canadaeast' + 'eastus' + 'eastus2' + 'francecentral' + 'germanywestcentral' + 'japaneast' + 'koreacentral' 'northcentralus' + 'norwayeast' + 'polandcentral' + 'spaincentral' + 'southafricanorth' 'southcentralus' + 'southindia' + 'swedencentral' + 'switzerlandnorth' + 'uksouth' + 'westeurope' + 'westus' + 'westus3' ]) @metadata({ azd: { @@ -52,16 +71,6 @@ param openAIEmbedHost string = 'azure' @secure() param openAIComKey string = '' -@description('Name of the GPT model to deploy') -param chatModelName string = '' -@description('Name of the model deployment') -param chatDeploymentName string = '' - -@description('Version of the GPT model to deploy') -// See version availability in this table: -// https://learn.microsoft.com/azure/ai-services/openai/concepts/models#gpt-4-and-gpt-4-turbo-preview-models -param chatDeploymentVersion string = '' - param azureOpenAIAPIVersion string = '2024-03-01-preview' @secure() param azureOpenAIKey string = '' @@ -69,30 +78,70 @@ param azureOpenAIKey string = '' @description('Azure OpenAI endpoint to use, if not using the one deployed here.') param azureOpenAIEndpoint string = '' -@description('Capacity of the GPT deployment') +// Chat completion model +@description('Name of the chat model to deploy') +param chatModelName string // Set in main.parameters.json +@description('Name of the model deployment') +param chatDeploymentName string // Set in main.parameters.json + +@description('Version of the chat model to deploy') +// See version availability in this table: +// https://learn.microsoft.com/azure/ai-services/openai/concepts/models#global-standard-model-availability +param chatDeploymentVersion string // Set in main.parameters.json + +@description('Sku of the chat deployment') +param chatDeploymentSku string // Set in main.parameters.json + +@description('Capacity of the chat deployment') // You can increase this, but capacity is limited per model/region, so you will get errors if you go over // https://learn.microsoft.com/en-us/azure/ai-services/openai/quotas-limits -param chatDeploymentCapacity int = 0 -var chatConfig = { - modelName: !empty(chatModelName) ? chatModelName : (openAIChatHost == 'azure' ? 'gpt-35-turbo' : 'gpt-3.5-turbo') - deploymentName: !empty(chatDeploymentName) ? chatDeploymentName : 'gpt-35-turbo' - deploymentVersion: !empty(chatDeploymentVersion) ? chatDeploymentVersion : '0125' - deploymentCapacity: chatDeploymentCapacity != 0 ? chatDeploymentCapacity : 30 -} +param chatDeploymentCapacity int // Set in main.parameters.json + +@description('Whether to deploy the evaluation model') +param deployEvalModel bool // Set in main.parameters.json + +// Chat completion model used for evaluations (use most powerful model) +@description('Name of the chat model to use for evaluations') +param evalModelName string // Set in main.parameters.json +@description('Name of the model deployment for the evaluation model') +param evalDeploymentName string // Set in main.parameters.json + +@description('Version of the chat model to deploy for evaluations') +// See version availability in this table: +// https://learn.microsoft.com/azure/ai-services/openai/concepts/models#global-standard-model-availability +param evalDeploymentVersion string // Set in main.parameters.json + +@description('Sku of the model deployment for evaluations') +param evalDeploymentSku string // Set in main.parameters.json + +@description('Capacity of the chat deployment for evaluations (Go as high as possible)') +// You can increase this, but capacity is limited per model/region, so you will get errors if you go over +// https://learn.microsoft.com/en-us/azure/ai-services/openai/quotas-limits +param evalDeploymentCapacity string // Set in main.parameters.json + + +// Embedding model +@description('Name of the embedding model to deploy') +param embedModelName string // Set in main.parameters.json +@description('Name of the embedding model deployment') +param embedDeploymentName string // Set in main.parameters.json + +@description('Version of the embedding model to deploy') +// See version availability in this table: +// https://learn.microsoft.com/azure/ai-services/openai/concepts/models#embeddings-models +param embedDeploymentVersion string // Set in main.parameters.json -param embedModelName string = '' -param embedDeploymentName string = '' -param embedDeploymentVersion string = '' -param embedDeploymentCapacity int = 0 +@description('Sku of the embeddings model deployment') +param embedDeploymentSku string // Set in main.parameters.json + +@description('Capacity of the embedding deployment') +// You can increase this, but capacity is limited per model/region, so you will get errors if you go over +// https://learn.microsoft.com/en-us/azure/ai-services/openai/quotas-limits +param embedDeploymentCapacity int // Set in main.parameters.json + +@description('Dimensions of the embedding model') param embedDimensions int = 0 -var embedConfig = { - modelName: !empty(embedModelName) ? embedModelName : 'text-embedding-ada-002' - deploymentName: !empty(embedDeploymentName) ? embedDeploymentName : 'text-embedding-ada-002' - deploymentVersion: !empty(embedDeploymentVersion) ? embedDeploymentVersion : '2' - deploymentCapacity: embedDeploymentCapacity != 0 ? embedDeploymentCapacity : 30 - dimensions: embedDimensions != 0 ? embedDimensions : 1536 -} param webAppExists bool = false @@ -236,11 +285,11 @@ var webAppEnv = union(azureOpenAIKeyEnv, openAIComKeyEnv, [ } { name: 'AZURE_OPENAI_CHAT_DEPLOYMENT' - value: openAIChatHost == 'azure' ? chatConfig.deploymentName : '' + value: openAIChatHost == 'azure' ? chatDeploymentName : '' } { name: 'AZURE_OPENAI_CHAT_MODEL' - value: openAIChatHost == 'azure' ? chatConfig.modelName : '' + value: openAIChatHost == 'azure' ? chatModelName : '' } { name: 'OPENAICOM_CHAT_MODEL' @@ -260,15 +309,15 @@ var webAppEnv = union(azureOpenAIKeyEnv, openAIComKeyEnv, [ } { name: 'AZURE_OPENAI_EMBED_MODEL' - value: openAIEmbedHost == 'azure' ? embedConfig.modelName : '' + value: openAIEmbedHost == 'azure' ? embedModelName : '' } { name: 'AZURE_OPENAI_EMBED_DEPLOYMENT' - value: openAIEmbedHost == 'azure' ? embedConfig.deploymentName : '' + value: openAIEmbedHost == 'azure' ? embedDeploymentName : '' } { - name: 'AZURE_OPENAI_EMBED_MODEL_DIMENSIONS' - value: openAIEmbedHost == 'azure' ? string(embedConfig.dimensions) : '' + name: 'AZURE_OPENAI_EMBED_DIMENSIONS' + value: openAIEmbedHost == 'azure' ? string(embedDimensions) : '' } { name: 'AZURE_OPENAI_ENDPOINT' @@ -300,6 +349,48 @@ resource openAIResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' exi name: !empty(openAIResourceGroupName) ? openAIResourceGroupName : resourceGroup.name } +var defaultDeployments = [ + { + name: chatDeploymentName + model: { + format: 'OpenAI' + name: chatModelName + version: chatDeploymentVersion + } + sku: { + name: chatDeploymentSku + capacity: chatDeploymentCapacity + } +} +{ + name: embedDeploymentName + model: { + format: 'OpenAI' + name: embedModelName + version: embedDeploymentVersion + } + sku: { + name: embedDeploymentSku + capacity: embedDeploymentCapacity + } +}] + +var evalDeployment = { + name: evalDeploymentName + model: { + format: 'OpenAI' + name: evalModelName + version: evalDeploymentVersion + } + sku: { + name: evalDeploymentSku + capacity: evalDeploymentCapacity + } +} + +var openAiDeployments = deployEvalModel ? union([evalDeployment], defaultDeployments) : defaultDeployments + + module openAI 'core/ai/cognitiveservices.bicep' = if (deployAzureOpenAI) { name: 'openai' scope: openAIResourceGroup @@ -311,32 +402,7 @@ module openAI 'core/ai/cognitiveservices.bicep' = if (deployAzureOpenAI) { name: 'S0' } disableLocalAuth: true - deployments: [ - { - name: chatConfig.deploymentName - model: { - format: 'OpenAI' - name: chatConfig.modelName - version: chatConfig.deploymentVersion - } - sku: { - name: 'Standard' - capacity: chatConfig.deploymentCapacity - } - } - { - name: embedConfig.deploymentName - model: { - format: 'OpenAI' - name: embedConfig.modelName - version: embedConfig.deploymentVersion - } - sku: { - name: 'Standard' - capacity: embedConfig.deploymentCapacity - } - } - ] + deployments: openAiDeployments } } @@ -363,6 +429,7 @@ module openAIRoleBackend 'core/security/role.bicep' = { } output AZURE_LOCATION string = location +output AZURE_TENANT_ID string = tenant().tenantId output APPLICATIONINSIGHTS_NAME string = monitoring.outputs.applicationInsightsName output AZURE_CONTAINER_ENVIRONMENT_NAME string = containerApps.outputs.environmentName @@ -378,8 +445,10 @@ output SERVICE_WEB_IMAGE_NAME string = web.outputs.SERVICE_WEB_IMAGE_NAME output AZURE_OPENAI_ENDPOINT string = !empty(azureOpenAIEndpoint) ? azureOpenAIEndpoint : (deployAzureOpenAI ? openAI.outputs.endpoint : '') -output AZURE_OPENAI_CHAT_DEPLOYMENT string = deployAzureOpenAI ? chatConfig.deploymentName : '' -output AZURE_OPENAI_EMBED_DEPLOYMENT string = deployAzureOpenAI ? embedConfig.deploymentName : '' +output AZURE_OPENAI_CHAT_DEPLOYMENT string = deployAzureOpenAI ? chatDeploymentName : '' +output AZURE_OPENAI_EMBED_DEPLOYMENT string = deployAzureOpenAI ? embedDeploymentName : '' +output AZURE_OPENAI_EVAL_DEPLOYMENT string = deployAzureOpenAI ? evalDeploymentName : '' +output AZURE_OPENAI_EVAL_MODEL string = deployAzureOpenAI ? evalModelName : '' output POSTGRES_HOST string = postgresServer.outputs.POSTGRES_DOMAIN_NAME output POSTGRES_USERNAME string = postgresEntraAdministratorName diff --git a/infra/main.parameters.json b/infra/main.parameters.json index b67e6682..5899c214 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -33,34 +33,58 @@ "value": "${OPENAI_CHAT_HOST=azure}" }, "chatModelName": { - "value": "${AZURE_OPENAI_CHAT_MODEL}" + "value": "${AZURE_OPENAI_CHAT_MODEL=gpt-4o-mini}" }, "chatDeploymentName": { - "value": "${AZURE_OPENAI_CHAT_DEPLOYMENT}" + "value": "${AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-4o-mini}" }, "chatDeploymentVersion":{ - "value": "${AZURE_OPENAI_CHAT_DEPLOYMENT_VERSION}" + "value": "${AZURE_OPENAI_CHAT_DEPLOYMENT_VERSION=2024-07-18}" + }, + "chatDeploymentSku": { + "value": "${AZURE_OPENAI_CHAT_DEPLOYMENT_SKU=GlobalStandard}" }, "chatDeploymentCapacity":{ - "value": "${AZURE_OPENAI_CHAT_DEPLOYMENT_CAPACITY}" + "value": "${AZURE_OPENAI_CHAT_DEPLOYMENT_CAPACITY=30}" + }, + "deployEvalModel": { + "value": "${DEPLOY_EVAL_MODEL=false}" + }, + "evalModelName": { + "value": "${AZURE_OPENAI_EVAL_MODEL=gpt-4}" + }, + "evalDeploymentName": { + "value": "${AZURE_OPENAI_EVAL_DEPLOYMENT=gpt-4}" + }, + "evalDeploymentVersion":{ + "value": "${AZURE_OPENAI_EVAL_DEPLOYMENT_VERSION=turbo-2024-04-09}" + }, + "evalDeploymentSku": { + "value": "${AZURE_OPENAI_EVAL_DEPLOYMENT_SKU=GlobalStandard}" + }, + "evalDeploymentCapacity":{ + "value": "${AZURE_OPENAI_EVAL_DEPLOYMENT_CAPACITY=80}" }, "openAIEmbedHost": { "value": "${OPENAI_EMBED_HOST=azure}" }, "embedModelName":{ - "value": "${AZURE_OPENAI_EMBED_MODEL}" + "value": "${AZURE_OPENAI_EMBED_MODEL=text-embedding-ada-002}" }, "embedDeploymentName": { - "value": "${AZURE_OPENAI_EMBED_DEPLOYMENT}" + "value": "${AZURE_OPENAI_EMBED_DEPLOYMENT=text-embedding-ada-002}" }, "embedDeploymentVersion":{ - "value": "${AZURE_OPENAI_EMBED_DEPLOYMENT_VERSION}" + "value": "${AZURE_OPENAI_EMBED_DEPLOYMENT_VERSION=2}" + }, + "embedDeploymentSku": { + "value": "${AZURE_OPENAI_EMBED_DEPLOYMENT_SKU=Standard}" }, "embedDeploymentCapacity":{ - "value": "${AZURE_OPENAI_EMBED_DEPLOYMENT_CAPACITY}" + "value": "${AZURE_OPENAI_EMBED_DEPLOYMENT_CAPACITY=30}" }, "embedDimensions": { - "value": "${AZURE_OPENAI_EMBED_DIMENSIONS}" + "value": "${AZURE_OPENAI_EMBED_DIMENSIONS=1536}" }, "openAIComKey": { "value": "${OPENAICOM_KEY}" diff --git a/src/backend/fastapi_app/__init__.py b/src/backend/fastapi_app/__init__.py index 318eab97..753d1de3 100644 --- a/src/backend/fastapi_app/__init__.py +++ b/src/backend/fastapi_app/__init__.py @@ -16,7 +16,7 @@ FastAPIAppContext, common_parameters, create_async_sessionmaker, - get_azure_credentials, + get_azure_credential, ) from fastapi_app.openai_clients import create_openai_chat_client, create_openai_embed_client from fastapi_app.postgres_engine import create_postgres_engine_from_env @@ -34,7 +34,7 @@ class State(TypedDict): @asynccontextmanager async def lifespan(app: fastapi.FastAPI) -> AsyncIterator[State]: context = await common_parameters() - azure_credential = await get_azure_credentials() + azure_credential = await get_azure_credential() engine = await create_postgres_engine_from_env(azure_credential) sessionmaker = await create_async_sessionmaker(engine) chat_client = await create_openai_chat_client(azure_credential) @@ -52,10 +52,10 @@ def create_app(testing: bool = False): else: if not testing: load_dotenv(override=True) - logging.basicConfig(level=logging.INFO) + logging.basicConfig(level=logging.DEBUG) # Turn off particularly noisy INFO level logs from Azure Core SDK: - logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.WARNING) - logging.getLogger("azure.identity").setLevel(logging.WARNING) + # logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.WARNING) + # logging.getLogger("azure.identity").setLevel(logging.WARNING) if os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"): logger.info("Configuring Azure Monitor") diff --git a/src/backend/fastapi_app/dependencies.py b/src/backend/fastapi_app/dependencies.py index c7cc666f..d3d0177c 100644 --- a/src/backend/fastapi_app/dependencies.py +++ b/src/backend/fastapi_app/dependencies.py @@ -56,8 +56,8 @@ async def common_parameters(): openai_embed_dimensions = int(os.getenv("OPENAICOM_EMBED_DIMENSIONS", 1536)) embedding_column = os.getenv("OPENAICOM_EMBEDDING_COLUMN", "embedding_ada002") if OPENAI_CHAT_HOST == "azure": - openai_chat_deployment = os.getenv("AZURE_OPENAI_CHAT_DEPLOYMENT", "gpt-35-turbo") - openai_chat_model = os.getenv("AZURE_OPENAI_CHAT_MODEL", "gpt-35-turbo") + openai_chat_deployment = os.getenv("AZURE_OPENAI_CHAT_DEPLOYMENT", "gpt-4o-mini") + openai_chat_model = os.getenv("AZURE_OPENAI_CHAT_MODEL", "gpt-4o-mini") elif OPENAI_CHAT_HOST == "ollama": openai_chat_deployment = None openai_chat_model = os.getenv("OLLAMA_CHAT_MODEL", "phi3:3.8b") @@ -75,8 +75,10 @@ async def common_parameters(): ) -async def get_azure_credentials() -> azure.identity.DefaultAzureCredential | azure.identity.ManagedIdentityCredential: - azure_credential: azure.identity.DefaultAzureCredential | azure.identity.ManagedIdentityCredential +async def get_azure_credential() -> ( + azure.identity.AzureDeveloperCliCredential | azure.identity.ManagedIdentityCredential +): + azure_credential: azure.identity.AzureDeveloperCliCredential | azure.identity.ManagedIdentityCredential try: if client_id := os.getenv("APP_IDENTITY_ID"): # Authenticate using a user-assigned managed identity on Azure @@ -87,7 +89,12 @@ async def get_azure_credentials() -> azure.identity.DefaultAzureCredential | azu ) azure_credential = azure.identity.ManagedIdentityCredential(client_id=client_id) else: - azure_credential = azure.identity.DefaultAzureCredential() + if tenant_id := os.getenv("AZURE_TENANT_ID"): + logger.info("Authenticating to Azure using Azure Developer CLI Credential for tenant %s", tenant_id) + azure_credential = azure.identity.AzureDeveloperCliCredential(tenant_id=tenant_id, process_timeout=60) + else: + logger.info("Authenticating to Azure using Azure Developer CLI Credential") + azure_credential = azure.identity.AzureDeveloperCliCredential(process_timeout=60) return azure_credential except Exception as e: logger.warning("Failed to authenticate to Azure: %s", e) diff --git a/src/backend/fastapi_app/openai_clients.py b/src/backend/fastapi_app/openai_clients.py index 562118e3..db8be9d0 100644 --- a/src/backend/fastapi_app/openai_clients.py +++ b/src/backend/fastapi_app/openai_clients.py @@ -8,7 +8,7 @@ async def create_openai_chat_client( - azure_credential: azure.identity.DefaultAzureCredential | azure.identity.ManagedIdentityCredential, + azure_credential: azure.identity.AzureDeveloperCliCredential | azure.identity.ManagedIdentityCredential, ) -> openai.AsyncAzureOpenAI | openai.AsyncOpenAI: openai_chat_client: openai.AsyncAzureOpenAI | openai.AsyncOpenAI OPENAI_CHAT_HOST = os.getenv("OPENAI_CHAT_HOST") @@ -49,7 +49,7 @@ async def create_openai_chat_client( async def create_openai_embed_client( - azure_credential: azure.identity.DefaultAzureCredential | azure.identity.ManagedIdentityCredential, + azure_credential: azure.identity.AzureDeveloperCliCredential | azure.identity.ManagedIdentityCredential, ) -> openai.AsyncAzureOpenAI | openai.AsyncOpenAI: openai_embed_client: openai.AsyncAzureOpenAI | openai.AsyncOpenAI OPENAI_EMBED_HOST = os.getenv("OPENAI_EMBED_HOST") diff --git a/src/backend/fastapi_app/postgres_engine.py b/src/backend/fastapi_app/postgres_engine.py index 0dcaf814..b51a3b50 100644 --- a/src/backend/fastapi_app/postgres_engine.py +++ b/src/backend/fastapi_app/postgres_engine.py @@ -5,6 +5,8 @@ from sqlalchemy import event from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine +from fastapi_app.dependencies import get_azure_credential + logger = logging.getLogger("ragapp") @@ -44,7 +46,7 @@ def update_password_token(dialect, conn_rec, cargs, cparams): async def create_postgres_engine_from_env(azure_credential=None) -> AsyncEngine: if azure_credential is None and os.environ["POSTGRES_HOST"].endswith(".database.azure.com"): - azure_credential = DefaultAzureCredential() + azure_credential = get_azure_credential() return await create_postgres_engine( host=os.environ["POSTGRES_HOST"], @@ -58,7 +60,7 @@ async def create_postgres_engine_from_env(azure_credential=None) -> AsyncEngine: async def create_postgres_engine_from_args(args, azure_credential=None) -> AsyncEngine: if azure_credential is None and args.host.endswith(".database.azure.com"): - azure_credential = DefaultAzureCredential() + azure_credential = DefaultAzureCredential(process_timeout=60) return await create_postgres_engine( host=args.host, diff --git a/src/backend/fastapi_app/update_embeddings.py b/src/backend/fastapi_app/update_embeddings.py index 15165751..da8df55c 100644 --- a/src/backend/fastapi_app/update_embeddings.py +++ b/src/backend/fastapi_app/update_embeddings.py @@ -8,7 +8,7 @@ from sqlalchemy import select from sqlalchemy.ext.asyncio import async_sessionmaker -from fastapi_app.dependencies import common_parameters, get_azure_credentials +from fastapi_app.dependencies import common_parameters, get_azure_credential from fastapi_app.embeddings import compute_text_embedding from fastapi_app.openai_clients import create_openai_embed_client from fastapi_app.postgres_engine import create_postgres_engine_from_env @@ -18,7 +18,7 @@ async def update_embeddings(in_seed_data=False): - azure_credential = await get_azure_credentials() + azure_credential = await get_azure_credential() engine = await create_postgres_engine_from_env(azure_credential) openai_embed_client = await create_openai_embed_client(azure_credential) common_params = await common_parameters() diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 91ccbd66..0dc04152 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -1,7 +1,7 @@ { "name": "frontend", "version": "0.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -38,63 +38,71 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@azure/msal-browser": { - "version": "3.4.0", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.24.0.tgz", + "integrity": "sha512-JGNV9hTYAa7lsum9IMIibn2kKczAojNihGo1hi7pG0kNrcKej530Fl6jxwM05A44/6I079CSn6WxYxbVhKUmWg==", "license": "MIT", "dependencies": { - "@azure/msal-common": "14.3.0" + "@azure/msal-common": "14.15.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.3.0", + "version": "14.15.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.15.0.tgz", + "integrity": "sha512-ImAQHxmpMneJ/4S8BRFhjt1MZ3bppmpRPYYNyzeQPeFN288YKbb8TmmISQEbtfkQ1BPASvYZU5doIZOPBAqENQ==", "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-react": { - "version": "2.0.6", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@azure/msal-react/-/msal-react-2.1.0.tgz", + "integrity": "sha512-XsEAaOONTOi69ufzks0ycnf/MlqXMWRL2ITSmZYOM4RnuGPWP04f3QsuiKRRcwerDTZFwZBJQX+nr9ecODeP1A==", "license": "MIT", - "dependencies": { - "@rollup/plugin-typescript": "^11.1.0", - "rollup": "^3.20.2" - }, "engines": { "node": ">=10" }, "peerDependencies": { - "@azure/msal-browser": "^3.4.0", + "@azure/msal-browser": "^3.24.0", "react": "^16.8.0 || ^17 || ^18" } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", "dev": true, "license": "MIT", "engines": { @@ -102,20 +110,22 @@ } }, "node_modules/@babel/core": { - "version": "7.23.2", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -131,13 +141,15 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -145,13 +157,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -159,58 +173,31 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -220,7 +207,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "license": "MIT", "engines": { @@ -228,29 +217,23 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, "license": "MIT", "engines": { @@ -258,7 +241,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "license": "MIT", "engines": { @@ -266,7 +251,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "license": "MIT", "engines": { @@ -274,35 +261,44 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.2", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.0", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -311,11 +307,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -325,11 +323,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.22.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -339,7 +339,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.15", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -349,32 +351,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.2", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -382,12 +385,14 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -395,786 +400,963 @@ } }, "node_modules/@emotion/hash": { - "version": "0.9.1", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", "license": "MIT" }, - "node_modules/@floating-ui/core": { - "version": "1.5.0", + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.1.3" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@floating-ui/dom": { - "version": "1.5.3", + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@floating-ui/utils": { - "version": "0.1.6", - "license": "MIT" - }, - "node_modules/@fluentui/date-time-utilities": { - "version": "8.5.14", + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/dom-utilities": { - "version": "2.2.12", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/font-icons-mdl2": { - "version": "8.5.26", + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/utilities": "^8.13.20", - "tslib": "^2.1.0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/foundation-legacy": { - "version": "8.2.46", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/utilities": "^8.13.20", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "react": ">=16.8.0 <19.0.0" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/keyboard-key": { - "version": "0.4.12", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/keyboard-keys": { - "version": "9.0.7", + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@swc/helpers": "^0.5.1" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/merge-styles": { - "version": "8.5.13", + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/priority-overflow": { - "version": "9.1.10", + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@swc/helpers": "^0.5.1" - } - }, - "node_modules/@fluentui/react": { - "version": "8.112.5", - "license": "MIT", - "dependencies": { - "@fluentui/date-time-utilities": "^8.5.14", - "@fluentui/font-icons-mdl2": "^8.5.26", - "@fluentui/foundation-legacy": "^8.2.46", - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/react-focus": "^8.8.33", - "@fluentui/react-hooks": "^8.6.32", - "@fluentui/react-portal-compat-context": "^9.0.9", - "@fluentui/react-window-provider": "^2.2.16", - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/theme": "^2.6.37", - "@fluentui/utilities": "^8.13.20", - "@microsoft/load-themed-styles": "^1.10.26", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", - "react": ">=16.8.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-alert": { - "version": "9.0.0-beta.90", + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-alert/node_modules/@fluentui/react-avatar": { - "version": "9.5.48", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-alert/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-alert/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-aria": { - "version": "9.4.0", + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-badge": { - "version": "9.2.15", + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-button": { - "version": "9.3.53", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@fluentui/react-card": { - "version": "9.0.52", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/devtools": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/devtools/-/devtools-0.2.1.tgz", + "integrity": "sha512-8PHJLbD6VhBh+LJ1uty/Bz30qs02NXCE5u8WpOhSewlYXUWl03GNXknr9AS2yaAWJEQaY27x7eByJs44gODBcw==", "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "@floating-ui/dom": ">=1.5.4" } }, - "node_modules/@fluentui/react-checkbox": { - "version": "9.1.54", + "node_modules/@floating-ui/dom": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", + "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" } }, - "node_modules/@fluentui/react-components": { - "version": "9.37.3", - "license": "MIT", - "dependencies": { - "@fluentui/react-accordion": "^9.3.26", - "@fluentui/react-alert": "9.0.0-beta.90", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-badge": "^9.2.12", - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-card": "^9.0.52", - "@fluentui/react-checkbox": "^9.1.54", - "@fluentui/react-combobox": "^9.5.28", - "@fluentui/react-dialog": "^9.8.2", - "@fluentui/react-divider": "^9.2.48", - "@fluentui/react-drawer": "9.0.0-beta.40", - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-image": "^9.1.45", - "@fluentui/react-infobutton": "9.0.0-beta.74", - "@fluentui/react-infolabel": "^9.0.2", - "@fluentui/react-input": "^9.4.50", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-link": "^9.1.32", - "@fluentui/react-menu": "^9.12.30", - "@fluentui/react-message-bar": "^9.0.4", - "@fluentui/react-overflow": "^9.0.42", - "@fluentui/react-persona": "^9.2.54", - "@fluentui/react-popover": "^9.8.19", - "@fluentui/react-portal": "^9.3.27", - "@fluentui/react-positioning": "^9.9.23", - "@fluentui/react-progress": "^9.1.50", - "@fluentui/react-provider": "^9.11.1", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-select": "^9.1.50", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-skeleton": "^9.0.38", - "@fluentui/react-slider": "^9.1.54", - "@fluentui/react-spinbutton": "^9.2.50", - "@fluentui/react-spinner": "^9.3.28", - "@fluentui/react-switch": "^9.1.54", - "@fluentui/react-table": "^9.10.9", - "@fluentui/react-tabs": "^9.3.55", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-tags": "^9.0.8", - "@fluentui/react-text": "^9.3.45", - "@fluentui/react-textarea": "^9.3.50", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-toast": "^9.3.15", - "@fluentui/react-toolbar": "^9.1.54", - "@fluentui/react-tooltip": "^9.3.20", - "@fluentui/react-tree": "^9.4.11", - "@fluentui/react-utilities": "^9.15.1", - "@fluentui/react-virtualizer": "9.0.0-alpha.55", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==", + "license": "MIT" + }, + "node_modules/@fluentui/date-time-utilities": { + "version": "8.6.9", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.6.9.tgz", + "integrity": "sha512-dgOlVm4nXBWDLqijmvn4iAtyv1hVpQZjN6p0So74BW+7ASUTkQGe3lf8PHV/OjBiXfZa4qwONvmTQBGCheNU0w==", + "license": "MIT", + "dependencies": { + "@fluentui/set-version": "^8.2.23", + "tslib": "^2.1.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-accordion": { - "version": "9.3.30", + "node_modules/@fluentui/dom-utilities": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.3.7.tgz", + "integrity": "sha512-AaTR9BhJEF0i042NS1Ju8l95f24p2tBMq6jVVbUEDtYnKaxWnpv8R9eYjOwy8SDniQc1ino+BkolIgCVXXvDmw==", "license": "MIT", "dependencies": { - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "@fluentui/set-version": "^8.2.23", + "tslib": "^2.1.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-accordion/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/font-icons-mdl2": { + "version": "8.5.51", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.5.51.tgz", + "integrity": "sha512-JpDHfQ/ZRSoTc95WIyl4/29d1CxxswQLVClr35LFbZcFOTHHnApSj3m+9u/Cvffcp0uV6NP/TSsW6KMvBWg19w==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "@fluentui/set-version": "^8.2.23", + "@fluentui/style-utilities": "^8.11.0", + "@fluentui/utilities": "^8.15.16", + "tslib": "^2.1.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-avatar": { - "version": "9.5.48", + "node_modules/@fluentui/foundation-legacy": { + "version": "8.4.17", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.4.17.tgz", + "integrity": "sha512-IQsecJHtjavZaEFDim48JKo+ovj7FH2Mbc1eRMd1yzlOjiKV0u4n3qIaEaORSsPeLoXIaB3Ytg4l36+RCUXWTQ==", "license": "MIT", "dependencies": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/set-version": "^8.2.23", + "@fluentui/style-utilities": "^8.11.0", + "@fluentui/utilities": "^8.15.16", + "tslib": "^2.1.0" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "@types/react": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-avatar/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/keyboard-key": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.23.tgz", + "integrity": "sha512-9GXeyUqNJUdg5JiQUZeGPiKnRzMRi9YEUn1l9zq6X/imYdMhxHrxpVZS12129cBfgvPyxt9ceJpywSfmLWqlKA==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "tslib": "^2.1.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-combobox": { - "version": "9.5.32", + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-keys/-/keyboard-keys-9.0.7.tgz", + "integrity": "sha512-vaQ+lOveQTdoXJYqDQXWb30udSfTVcIuKk1rV0X0eGAgcHeSDeP1HxMy+OgHOQZH3OiBH4ZYeWxb+tmfiDiygQ==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-combobox/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/merge-styles": { + "version": "8.6.13", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.6.13.tgz", + "integrity": "sha512-IWgvi2CC+mcQ7/YlCvRjsmHL2+PUz7q+Pa2Rqk3a+QHN0V1uBvgIbKk5y/Y/awwDXy1yJHiqMCcDHjBNmS1d4A==", + "license": "MIT", + "dependencies": { + "@fluentui/set-version": "^8.2.23", + "tslib": "^2.1.0" + } + }, + "node_modules/@fluentui/priority-overflow": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.1.13.tgz", + "integrity": "sha512-yDojVpkhBZTXOYExrCgW1GXbw3x9pYIS617xlNJIc2t06Cd3H32y2p51QXFt94sBmlVyAvPu7UKBHaq1Yw7u+w==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react": { + "version": "8.121.0", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.121.0.tgz", + "integrity": "sha512-LU1bmrasc2+Af0walSH31nYYq4abZdyGdOTwr8wNmCuZgqXIsNHp0lxvACW1F5/FUEPODGh3xlchz47JP1RshA==", + "license": "MIT", + "dependencies": { + "@fluentui/date-time-utilities": "^8.6.9", + "@fluentui/font-icons-mdl2": "^8.5.51", + "@fluentui/foundation-legacy": "^8.4.17", + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/react-focus": "^8.9.14", + "@fluentui/react-hooks": "^8.8.13", + "@fluentui/react-portal-compat-context": "^9.0.12", + "@fluentui/react-window-provider": "^2.2.28", + "@fluentui/set-version": "^8.2.23", + "@fluentui/style-utilities": "^8.11.0", + "@fluentui/theme": "^2.6.60", + "@fluentui/utilities": "^8.15.16", + "@microsoft/load-themed-styles": "^1.10.26", + "tslib": "^2.1.0" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-menu": { - "version": "9.12.35", + "node_modules/@fluentui/react-accordion": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.5.5.tgz", + "integrity": "sha512-4zwtmZTcD2jgjxbMTHajhMxRNkFFHIXG060dSVoK73H4vWLKtDYuwQJesfgi2swUim+xhemvcInrLXIoY8pLZw==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-motion": "^9.5.2", + "@fluentui/react-motion-components-preview": "^0.1.4", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-menu/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-alert": { + "version": "9.0.0-beta.124", + "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.124.tgz", + "integrity": "sha512-yFBo3B5H9hnoaXxlkuz8wRz04DEyQ+ElYA/p5p+Vojf19Zuta8DmFZZ6JtWdtxcdnnQ4LvAfC5OYYlzdReozPA==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-avatar": "^9.6.29", + "@fluentui/react-button": "^9.3.83", + "@fluentui/react-icons": "^2.0.239", + "@fluentui/react-jsx-runtime": "^9.0.39", + "@fluentui/react-tabster": "^9.21.5", + "@fluentui/react-theme": "^9.1.19", + "@fluentui/react-utilities": "^9.18.10", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-overflow": { - "version": "9.1.1", + "node_modules/@fluentui/react-aria": { + "version": "9.13.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.13.6.tgz", + "integrity": "sha512-/bepLd2SKL+WHhiHJ8O/Lt+1FxvVeGB+pgbUuSjtPVwafwcA4RNXVlkMQaoYk8sQvnG4oqVa4ToTxUWURaOeNA==", "license": "MIT", "dependencies": { - "@fluentui/priority-overflow": "^9.1.10", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-utilities": "^9.18.15", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-overflow/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-avatar": { + "version": "9.6.39", + "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.6.39.tgz", + "integrity": "sha512-of2XMrwTZ4xKsiPEgayJupeI29dAiNBbWos4MCzBJaBS6u9BcaHRenSyzDFViC4jFyvoJQDqftWYThaSwH3PHw==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-badge": "^9.2.43", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-popover": "^9.9.21", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-tooltip": "^9.4.39", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "node_modules/@fluentui/react-badge": { + "version": "9.2.43", + "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.2.43.tgz", + "integrity": "sha512-E+J08RIj2UZ5daq1kN+IgOCf5x4VVnFQTO+XI2bXsqoc/6wFHS2FZ8I7pNQqkWbvZ6cspR7cG7S8RfTR5pQz1Q==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-popover/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-breadcrumb": { + "version": "9.0.39", + "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.0.39.tgz", + "integrity": "sha512-Y/d3+qwco1WPB/t7BpEES1LIqBrR1A/7r4jdVuNylgiK5OoRRDgRdu7+7ecT0sjnfyhHwv+PnImtXIOnGyKgrQ==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-button": "^9.3.92", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-link": "^9.2.32", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-radio": { - "version": "9.1.58", + "node_modules/@fluentui/react-button": { + "version": "9.3.92", + "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.3.92.tgz", + "integrity": "sha512-awMMtr3MnXB5Q8ItYJ6s4k5U3RKJImm8qAh0Zm/quK1Aj62fKa4Ro/P+dMzKhi+86VmE9wqVwWr9vim/MHGgow==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-tabs": { - "version": "9.3.59", + "node_modules/@fluentui/react-card": { + "version": "9.0.94", + "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.0.94.tgz", + "integrity": "sha512-TUzQLdCFcBkESgj6fVRH201OHvYPWB1n8b7unDSX5VjxcnHT8MKu2DWj5KHFmVaEd6sNEgNm58qiAGGjTSvkgg==", "license": "MIT", "dependencies": { - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-text": "^9.4.25", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-components/node_modules/@fluentui/react-tabs/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-checkbox": { + "version": "9.2.37", + "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.2.37.tgz", + "integrity": "sha512-qNJIsZaTqD7vYz547bp14q/nXd5le1bZKApR0NORVf6qLfID0/B5hJ48pUpQV03HrbgBFf8ZiVGzHfwwfHZiLQ==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-label": "^9.1.76", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-dialog": { - "version": "9.8.2", + "node_modules/@fluentui/react-combobox": { + "version": "9.13.8", + "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.13.8.tgz", + "integrity": "sha512-+QuiFt1P93JwjtAy2b0cXah9BT0h9I2T1+fm4aX9j1sWME/r5XI/gGgYT15+PvAjxmBxcabYtd+VYYB0MKUoxw==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-portal": "^9.3.27", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "react-transition-group": "^4.4.1" + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-positioning": "^9.15.9", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-components": { + "version": "9.54.17", + "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.54.17.tgz", + "integrity": "sha512-brnvcEGQG+S16hc9o+cXB9EEJmpicjP1+plYBuc5xKtz2Ljo1fAijM5MGP/pwMcQUU0GATFiVkIzvGwyD7y5aQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-accordion": "^9.5.5", + "@fluentui/react-alert": "9.0.0-beta.124", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-avatar": "^9.6.39", + "@fluentui/react-badge": "^9.2.43", + "@fluentui/react-breadcrumb": "^9.0.39", + "@fluentui/react-button": "^9.3.92", + "@fluentui/react-card": "^9.0.94", + "@fluentui/react-checkbox": "^9.2.37", + "@fluentui/react-combobox": "^9.13.8", + "@fluentui/react-dialog": "^9.11.16", + "@fluentui/react-divider": "^9.2.75", + "@fluentui/react-drawer": "^9.5.16", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-image": "^9.1.73", + "@fluentui/react-infobutton": "9.0.0-beta.102", + "@fluentui/react-infolabel": "^9.0.46", + "@fluentui/react-input": "^9.4.89", + "@fluentui/react-label": "^9.1.76", + "@fluentui/react-link": "^9.2.32", + "@fluentui/react-menu": "^9.14.16", + "@fluentui/react-message-bar": "^9.2.12", + "@fluentui/react-motion": "^9.5.2", + "@fluentui/react-overflow": "^9.1.30", + "@fluentui/react-persona": "^9.2.98", + "@fluentui/react-popover": "^9.9.21", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-positioning": "^9.15.9", + "@fluentui/react-progress": "^9.1.87", + "@fluentui/react-provider": "^9.17.4", + "@fluentui/react-radio": "^9.2.32", + "@fluentui/react-rating": "^9.0.19", + "@fluentui/react-search": "^9.0.18", + "@fluentui/react-select": "^9.1.87", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-skeleton": "^9.1.16", + "@fluentui/react-slider": "^9.1.94", + "@fluentui/react-spinbutton": "^9.2.88", + "@fluentui/react-spinner": "^9.4.14", + "@fluentui/react-swatch-picker": "^9.1.10", + "@fluentui/react-switch": "^9.1.94", + "@fluentui/react-table": "^9.15.18", + "@fluentui/react-tabs": "^9.5.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-tag-picker": "^9.3.4", + "@fluentui/react-tags": "^9.3.18", + "@fluentui/react-teaching-popover": "^9.1.18", + "@fluentui/react-text": "^9.4.25", + "@fluentui/react-textarea": "^9.3.88", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-toast": "^9.3.56", + "@fluentui/react-toolbar": "^9.2.6", + "@fluentui/react-tooltip": "^9.4.39", + "@fluentui/react-tree": "^9.8.2", + "@fluentui/react-utilities": "^9.18.15", + "@fluentui/react-virtualizer": "9.0.0-alpha.85", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-dialog/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-context-selector": { + "version": "9.1.67", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.1.67.tgz", + "integrity": "sha512-1jpOjt3NVOlyLcMY/nycyhyXvcPw57+0gkF7Eln4c9Hb2xFUlsAFX0x8MDLNsvyjGgKekLX9p+tPt9TUENWPOw==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-utilities": "^9.18.15", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "scheduler": ">=0.19.0 <=0.23.0" } }, - "node_modules/@fluentui/react-divider": { - "version": "9.2.48", + "node_modules/@fluentui/react-dialog": { + "version": "9.11.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.11.16.tgz", + "integrity": "sha512-PP15i+mN6XI7knfrdTNexNHtGLBNbf7WmJZGiXZViBWrlGEAUyxdRqmNwQEXwz0xYduqMX7ddEw26e/Ag/BzwA==", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-motion": "^9.5.2", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-drawer": { - "version": "9.0.0-beta.40", + "node_modules/@fluentui/react-divider": { + "version": "9.2.75", + "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.2.75.tgz", + "integrity": "sha512-pWWJH7ZLG4sHcfhwUO5nnhA0TsGK/JlSkcyEnndK76umQlWAzLrN4JWEHKTWplUIIa6STKWObAYPXkiTnkLEkQ==", "license": "MIT", "dependencies": { - "@fluentui/react-dialog": "^9.8.2", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-motion-preview": "^0.5.0", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-field": { - "version": "9.1.43", + "node_modules/@fluentui/react-drawer": { + "version": "9.5.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.5.16.tgz", + "integrity": "sha512-GORGm43E981KHfg2HB/picUwpf3BbdwcfPUVslAdyqaR2A6OJ+fQGKjGDcHn/CPIfgPsg0wHVpVTkvJLTt/BzA==", "license": "MIT", "dependencies": { - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-dialog": "^9.11.16", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-motion": "^9.5.2", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-field/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-field": { + "version": "9.1.76", + "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.1.76.tgz", + "integrity": "sha512-eV1MKB97lgvgiVEps9OakqXXeLGHTdLSK7Zd/QmD4HzSSV/XapRLCw+7fITBoG19Tp8AVkGbZI753iPPOv9RZA==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-label": "^9.1.76", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-focus": { - "version": "8.8.33", + "version": "8.9.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.9.14.tgz", + "integrity": "sha512-KDek7Db8iSHKXWNw+CXO6Mmo5zmiqjdXmD9Blv8AqCY2NIuBm72hUYvNXg3osA09Zoq6cfNV1sr7MCFxp1nDNQ==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-key": "^0.4.12", - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/utilities": "^8.13.20", + "@fluentui/keyboard-key": "^0.4.23", + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/set-version": "^8.2.23", + "@fluentui/style-utilities": "^8.11.0", + "@fluentui/utilities": "^8.15.16", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1183,12 +1365,14 @@ } }, "node_modules/@fluentui/react-hooks": { - "version": "8.6.32", + "version": "8.8.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.8.13.tgz", + "integrity": "sha512-WMcc0YO34XA0uVBuWTKUWrvFleLgw5lPZ0Qoew/kFz//1s3itP6tBm7a6z+8utk/Bj0E4N4iz6SdJa4jNWiyKQ==", "license": "MIT", "dependencies": { - "@fluentui/react-window-provider": "^2.2.16", - "@fluentui/set-version": "^8.2.12", - "@fluentui/utilities": "^8.13.20", + "@fluentui/react-window-provider": "^2.2.28", + "@fluentui/set-version": "^8.2.23", + "@fluentui/utilities": "^8.15.16", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1197,7 +1381,9 @@ } }, "node_modules/@fluentui/react-icons": { - "version": "2.0.221", + "version": "2.0.259", + "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.259.tgz", + "integrity": "sha512-vVI0BMYi2S5uBpUxjkSRWj21MS3nbxJUE96F+9DV1laYkDWZxHS2RDni27dmbbAAgrMKKRTxlzyXa+eHUzaelw==", "license": "MIT", "dependencies": { "@griffel/react": "^1.0.0", @@ -1208,359 +1394,325 @@ } }, "node_modules/@fluentui/react-image": { - "version": "9.1.45", + "version": "9.1.73", + "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.1.73.tgz", + "integrity": "sha512-aVpillfiEIqqlyQGGFf17WtiKKFhhGyUMVUv3zLksick/5kifk7zdAW623PA8mpeQf6U1tSPJc8iaXSwr+5cwQ==", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-infobutton": { - "version": "9.0.0-beta.74", + "version": "9.0.0-beta.102", + "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.102.tgz", + "integrity": "sha512-3kA4F0Vga8Ds6JGlBajLCCDOo/LmPuS786Wg7ui4ZTDYVIMzy1yp2XuVcZniifBFvEp0HQCUoDPWUV0VI3FfzQ==", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-popover": "^9.8.19", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", + "@fluentui/react-icons": "^2.0.237", + "@fluentui/react-jsx-runtime": "^9.0.36", + "@fluentui/react-label": "^9.1.68", + "@fluentui/react-popover": "^9.9.6", + "@fluentui/react-tabster": "^9.21.0", + "@fluentui/react-theme": "^9.1.19", + "@fluentui/react-utilities": "^9.18.7", "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-infobutton/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-infolabel": { + "version": "9.0.46", + "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.0.46.tgz", + "integrity": "sha512-sDJDlRLroP+9XOj76mpLBpyUVng/+cJDPVNuNvJtS7JBVCs9owlQlq8RBcKFzdbLNh7GZgpi2qe0kUPCNOZYOQ==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-label": "^9.1.76", + "@fluentui/react-popover": "^9.9.21", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-infobutton/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "node_modules/@fluentui/react-input": { + "version": "9.4.89", + "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.4.89.tgz", + "integrity": "sha512-O6THfgikbwpPgUYBcQBXbQ1dHpP6qY1P31gb7+epaX54AJMuo0xeANfSMBBhTkbLshyn6AS9OMOwrc/Zkvmfew==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-infolabel": { - "version": "9.0.2", + "node_modules/@fluentui/react-jsx-runtime": { + "version": "9.0.44", + "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.0.44.tgz", + "integrity": "sha512-cnFjiFaztl3zV2bL/Pgsa/dvLES/gNzSKkBUD3ShWeaEi7LbInc3+tnCcttBSTSNdLh8mcuzQkUCImVSD857VA==", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-popover": "^9.8.19", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" + "@fluentui/react-utilities": "^9.18.15", + "@swc/helpers": "^0.5.1", + "react-is": "^17.0.2" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", - "react": ">=16.8.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-infolabel/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-label": { + "version": "9.1.76", + "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.1.76.tgz", + "integrity": "sha512-7lqil5XIYkxSQNy/GEqFypAo0eQyjYIPYu0LO2z8UPCuRyaItHA/ArSc3GnyIL/naY9Wz1EG2WvakLbgB+PkGg==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-infolabel/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "node_modules/@fluentui/react-link": { + "version": "9.2.32", + "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.2.32.tgz", + "integrity": "sha512-BsjDm8ixFMoh+7Hi7WRgDxLEKYj61gc0VjCs9ah0JxJoM1o+OoJhXKc29a13qRJHMSB3Gfndw6nYCineRPcFiA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-input": { - "version": "9.4.50", + "node_modules/@fluentui/react-menu": { + "version": "9.14.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.14.16.tgz", + "integrity": "sha512-q0FVqSjTXQL8jO6Zf+fTFRbJglGBQS7dfkINZ966p9Kqq7zyHFMuaadXil2TpTkGcpo/Qva3wlFJoEeHki2PLQ==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-positioning": "^9.15.9", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-jsx-runtime": { - "version": "9.0.20", - "license": "MIT", - "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "node_modules/@fluentui/react-message-bar": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.2.12.tgz", + "integrity": "sha512-d18VBkEJnKqhhkiuxzoan91BEt/x/at6/pR6TH0sn9C7Snvxu88Ywl2ZrKEpaNUAvG0Ww3qE0lNepm/fOEuR+g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.3.92", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1", - "react-is": "^17.0.2" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0" - } - }, - "node_modules/@fluentui/react-label": { - "version": "9.1.51", - "license": "MIT", - "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" - } - }, - "node_modules/@fluentui/react-link": { - "version": "9.1.32", - "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" + "react-transition-group": "^4.4.1" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-message-bar": { - "version": "9.0.4", + "node_modules/@fluentui/react-motion": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.5.2.tgz", + "integrity": "sha512-43Y1ZXhGxts8RIqOSyD7FXLAZl6Xyy4aQQuneXQJihY3vgsgMBtaEuQ9ZS2Ewo3zYJAf1kgZK+Q7OdQ3M9jmEg==", "license": "MIT", "dependencies": { - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-utilities": "^9.18.15", "@swc/helpers": "^0.5.1", - "react-transition-group": "^4.4.1" + "react-is": "^17.0.2" }, "peerDependencies": { "@types/react": ">=16.8.0 <19.0.0", "@types/react-dom": ">=16.8.0 <19.0.0", - "react": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-motion-preview": { - "version": "0.5.0", + "node_modules/@fluentui/react-motion-components-preview": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.1.4.tgz", + "integrity": "sha512-nVZNKf+VDOAswQtWv7ZWBpPCZYApALBR/AK+F+TlRPx7qjij1ZOCUq5qtXfAV/mmomeeTHVtI1zKLBtNQIQ43A==", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-motion": "*", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-persona": { - "version": "9.2.54", + "node_modules/@fluentui/react-overflow": { + "version": "9.1.30", + "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.1.30.tgz", + "integrity": "sha512-4r0/YQaSX00OWeQwWsW9cctloTom1GguSaDRTxg2qMdwwr8gr9ZEni4LbCXJfH6soCNFzurnwdSeNOg4ogyT+g==", "license": "MIT", "dependencies": { - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-badge": "^9.2.12", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/priority-overflow": "^9.1.13", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-persona/node_modules/@fluentui/react-avatar": { - "version": "9.5.48", - "license": "MIT", - "dependencies": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" - } - }, - "node_modules/@fluentui/react-persona/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-persona": { + "version": "9.2.98", + "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.2.98.tgz", + "integrity": "sha512-PpgHB1puW1GwwgvPtSwMMUs+CpP3mQCRivHmWq6sf609rZZyV+ItGf4IzEdCDa+rD2GvkN53zfcFU9RJtrJwPg==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-avatar": "^9.6.39", + "@fluentui/react-badge": "^9.2.43", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-persona/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "node_modules/@fluentui/react-popover": { + "version": "9.9.21", + "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.9.21.tgz", + "integrity": "sha512-7pM/+vaSFDc6fFc8gCHw44aX4EKUyz3jAZXXEzUwg6cjQfJrK42Pfq6EAt0ZzftJdmdOXXTBToI3tqRA7ENlSA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-positioning": "^9.15.9", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-portal": { - "version": "9.4.3", + "version": "9.4.35", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.4.35.tgz", + "integrity": "sha512-b0OTtFUmbHOU41wbRITqe3Wlqx3zpmXXUUsFh0KtSTKsMrWy2a2jtl7ZToNRsFfa3opwKsvlk+ohRT5CkDyQ4w==", "license": "MIT", "dependencies": { - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1", "use-disposable": "^1.0.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-portal-compat-context": { - "version": "9.0.9", + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal-compat-context/-/react-portal-compat-context-9.0.12.tgz", + "integrity": "sha512-5AVXWX9GnbvwnJZYUb4LSIF7BsI/N8oTI6+7Yn0w6B3yaWykA8Menlz757X5tgVBjouEj4Eom+AoVvA7u8gPDA==", "license": "MIT", "dependencies": { "@swc/helpers": "^0.5.1" @@ -1571,690 +1723,623 @@ } }, "node_modules/@fluentui/react-positioning": { - "version": "9.10.2", + "version": "9.15.9", + "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.15.9.tgz", + "integrity": "sha512-X/0Fv3XxRdvOMLUgrL9T9RsIB8FQUgwfT9joQsldK4g2KUiRxpQcmGBO6+kOOB2CjakDrGLxlL5TWTwjibLJQQ==", "license": "MIT", "dependencies": { + "@floating-ui/devtools": "0.2.1", "@floating-ui/dom": "^1.2.0", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "floating-ui-devtools": "0.1.2" + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-progress": { - "version": "9.1.50", + "version": "9.1.87", + "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.1.87.tgz", + "integrity": "sha512-B3XK5hZgJDvKTQ536bDCvN8r6RjuA0ndlHjihAzjXefm5u990nEEI0FgjZcIlezEUGfWi5YPo3i3W17KjQ2QCA==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-provider": { - "version": "9.11.1", + "version": "9.17.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.17.4.tgz", + "integrity": "sha512-BjnB8ZSuRPS2h6FP1RiMaR+hiTaX5iogqYktULhFYDeN8DoA6RDkLGrPcaaGqYQTIVKKAJUqN18QoPmh8WBh6A==", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/core": "^1.14.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/core": "^1.16.0", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-select": { - "version": "9.1.50", + "node_modules/@fluentui/react-radio": { + "version": "9.2.32", + "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.2.32.tgz", + "integrity": "sha512-KwpK7rn+ATsRPRLXeNzHreCeoLQnMWIW+GzPfAoaHm3NI/cwQSqSdEItbUnWKq7i8evJpyGbPSooboMwlCo9Zw==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-label": "^9.1.76", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-shared-contexts": { - "version": "9.13.0", + "node_modules/@fluentui/react-rating": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.0.19.tgz", + "integrity": "sha512-c1/tEJXx2DpDeJ8r1AbrCtRQb+4RlM9tMoQDuHqLxscmrrxvvKCbjqCOvA/myiMczuAsp2z6Fvlc4LESjdqxpA==", "license": "MIT", "dependencies": { - "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0" + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-skeleton": { - "version": "9.0.38", + "node_modules/@fluentui/react-search": { + "version": "9.0.18", + "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.0.18.tgz", + "integrity": "sha512-bUxi28d8KfrKKaG61n5YXE/A7qrp6amwrn/+iJo9PXYN4FlY8FAjYQ9vZOjR+1yWmNbaSisuZHKA7IisrmahEQ==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-input": "^9.4.89", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-slider": { - "version": "9.1.54", + "node_modules/@fluentui/react-select": { + "version": "9.1.87", + "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.1.87.tgz", + "integrity": "sha512-LlREKNfCxpXh9j1D27FL/WLgoJs5vKK4HBFpAr4FGII0OFIl2wMCb7SpeaBziuPQU7EnEjeqHlG2hN5oVARoJw==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-spinbutton": { - "version": "9.2.50", + "node_modules/@fluentui/react-shared-contexts": { + "version": "9.20.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.20.1.tgz", + "integrity": "sha512-QoduMl+QkZ3FEyiSc+rCBbCLY88L/uX8o/eXoJOI0v1px/+5iYkCIUlQPiU9nCGjAI+C8AmG4pIJ7h5iLUlAyQ==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-theme": "^9.1.20", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-spinner": { - "version": "9.3.28", + "node_modules/@fluentui/react-skeleton": { + "version": "9.1.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.1.16.tgz", + "integrity": "sha512-bRRB3DOxmX1lM1dAayAsIpVZU2rIOzlHpO7yVV9LhWGnGnfNRhYCcM3WSQXhdCmGdUSbb02lSo85PYB/JyW9Zw==", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-switch": { - "version": "9.1.54", + "node_modules/@fluentui/react-slider": { + "version": "9.1.94", + "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.1.94.tgz", + "integrity": "sha512-7US332rPd6rH8KRFP3TvAwxMGx/UKJo/Bv0i9rtszNPDi0nF1988uvvj1sfC4MA2I343ASajs+lnaav14BUa9g==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-table": { - "version": "9.10.9", - "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-checkbox": "^9.1.54", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "node_modules/@fluentui/react-spinbutton": { + "version": "9.2.88", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.2.88.tgz", + "integrity": "sha512-UDsPhLOqQieGzPF5a9WNTB3qo49y65rhjNd7Fq1j2Vc003P02USl4MyonTkPugsNoMm30slxgErym5bLj3Cbug==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-table/node_modules/@fluentui/react-avatar": { - "version": "9.5.48", + "node_modules/@fluentui/react-spinner": { + "version": "9.4.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.4.14.tgz", + "integrity": "sha512-CT38dZhvXWxcUWZaL0jwuxj5P0ttQp4Njx3ZhIXn87/8HIxGGT9QOirBjp+1nGq5gA5q1AYyPy4sbrcculA48Q==", "license": "MIT", "dependencies": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-label": "^9.1.76", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-table/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-swatch-picker": { + "version": "9.1.10", + "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.1.10.tgz", + "integrity": "sha512-3vymANhAbyD+iV0ENQe4atX0lEDqFfgO5uQzrVl7jQdfmkaBmuzdlqPJ9Tl/wyEsiEys3+1JkgDiS0MoOrTTlg==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-table/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "node_modules/@fluentui/react-switch": { + "version": "9.1.94", + "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.1.94.tgz", + "integrity": "sha512-MXsOmfGHc9b/JEwplZi7LHmk7t8c/rzgK5Z9Avpbj19+sNsHJlnyl7IwLEVJHwxgO3r5dp1fgPbsmUdEoBEyOg==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-label": "^9.1.76", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-table/node_modules/@fluentui/react-radio": { - "version": "9.1.58", + "node_modules/@fluentui/react-table": { + "version": "9.15.18", + "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.15.18.tgz", + "integrity": "sha512-JbQeo8JW3o6kZ/01ynouCv6kTA22+lOUnig5h6npbuxTc8pR8erJ0a+D384a80o+vjN26ww1KXhCpkJLDWG6Bg==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-avatar": "^9.6.39", + "@fluentui/react-checkbox": "^9.2.37", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-radio": "^9.2.32", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-tabster": { - "version": "9.15.0", + "node_modules/@fluentui/react-tabs": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.5.1.tgz", + "integrity": "sha512-tBPyIvTvQnDtTtvWW7qgmK9Wz4DUEZU7MUmG6/n5aKluzutiCA7uC33xa8ndUibxEBSMiVJVHL7VTeo/+1/3eQ==", "license": "MIT", "dependencies": { - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "keyborg": "^2.2.0", - "tabster": "^5.0.1" + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-tags": { - "version": "9.0.8", - "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" + "node_modules/@fluentui/react-tabster": { + "version": "9.22.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.22.7.tgz", + "integrity": "sha512-ITvm69INou9WGVN+l+iJhYFZ+8zEgP++IKu7/oUxOfjNYzqDzEm3Q8u4oxdlv9ofVGT1qXZhA7jSDE6DOnlXmA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.6.0", + "tabster": "^8.0.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-tags/node_modules/@fluentui/react-avatar": { - "version": "9.5.48", + "node_modules/@fluentui/react-tag-picker": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.3.4.tgz", + "integrity": "sha512-eV6snlflC9LCZeqrhPDU/p9OeXC/Kb5CX502/N6yuT25GcV1u3pePvPBKG4ac090nSlC54/GgYBmCHS5m5+r4w==", "license": "MIT", "dependencies": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-combobox": "^9.13.8", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-positioning": "^9.15.9", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-tags": "^9.3.18", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-tags/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "node_modules/@fluentui/react-tags": { + "version": "9.3.18", + "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.3.18.tgz", + "integrity": "sha512-DSZJx95xeF3Hhw5VardJAAApeGdR9BHZt+oJmZl0qdHPShQTh9g848kSXy94iwK2xU3VWfenBWPSk+LqEIwxxg==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-avatar": "^9.6.39", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-tags/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "node_modules/@fluentui/react-teaching-popover": { + "version": "9.1.18", + "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.1.18.tgz", + "integrity": "sha512-v2HMRMj9etIUPs8G+pfv57SODwjTnZ9trNoSq5IfM5Fh1Rg6TnFAUGweWA2k0M0JKtRXkCixOCqNUiBXen0zXw==", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-button": "^9.3.92", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-popover": "^9.9.21", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.8.0 <19.0.0" } }, "node_modules/@fluentui/react-text": { - "version": "9.3.45", + "version": "9.4.25", + "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.4.25.tgz", + "integrity": "sha512-PVEDG1X3z3C8igtI2g2bTSiWPWmzF/6lT2yB70W+lsWmI5+L54aW0rNF2/GOls25N/+MHRAGBIk5SmMWW+SH8g==", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-textarea": { - "version": "9.3.50", + "version": "9.3.88", + "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.3.88.tgz", + "integrity": "sha512-gjSgqvstE2vxUdY11Yw/zcFkXhZ5cAy/GJWppqhLV9KnBT4nTeT7ODmz44qMekJ1rNtwBx8Gk7RJe9HVhKbZTQ==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-field": "^9.1.76", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-theme": { - "version": "9.1.16", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.1.20.tgz", + "integrity": "sha512-Rh3N2ewCBlY9q+bucEKfii7sovp03HgZvN4Xwg8gbnVWA9zgX0QyTTPR+ynV+kMuwP1OiGmGHOiO+daz1k1dbg==", "license": "MIT", "dependencies": { - "@fluentui/tokens": "1.0.0-alpha.13", + "@fluentui/tokens": "1.0.0-alpha.17", "@swc/helpers": "^0.5.1" } }, "node_modules/@fluentui/react-toast": { - "version": "9.3.15", - "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-portal": "^9.3.27", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "react-transition-group": "^4.4.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" - } - }, - "node_modules/@fluentui/react-toolbar": { - "version": "9.1.54", - "license": "MIT", - "dependencies": { - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-divider": "^9.2.48", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" - } - }, - "node_modules/@fluentui/react-toolbar/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", + "version": "9.3.56", + "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.3.56.tgz", + "integrity": "sha512-L3zHGTh32D5tACTCKnXAx4cdXWnY9zBFOVUl/Qpm1PdP4i/4mn4khNRmHDbN9U30a2VyxGWKiU/zQ70NuoMd+w==", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.15.2", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-motion": "^9.5.2", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-toolbar/node_modules/@fluentui/react-radio": { - "version": "9.1.58", + "node_modules/@fluentui/react-toolbar": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.2.6.tgz", + "integrity": "sha512-G+rFX0vuufM+GZVIdcFn15kdVYw2+j32rj3jHHwAbT1wx8W6OVSR0opVGcJTwYAuKXq39J/1sHEcwbX4vAG0TQ==", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-button": "^9.3.92", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-divider": "^9.2.75", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-radio": "^9.2.32", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-tooltip": { - "version": "9.4.1", + "version": "9.4.39", + "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.4.39.tgz", + "integrity": "sha512-j424ZG4stTg3UbWUb1lYIteBCO37TB4pYNnX8ARLeaAE7kdQTD/t5GEDD2fyVhYYi097xJhUA4jMhsPig06Jow==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-portal": "^9.4.35", + "@fluentui/react-positioning": "^9.15.9", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-tree": { - "version": "9.4.11", - "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-checkbox": "^9.1.54", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" - } - }, - "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-avatar": { - "version": "9.5.48", - "license": "MIT", - "dependencies": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" - } - }, - "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-context-selector": { - "version": "9.1.42", - "license": "MIT", - "dependencies": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" - } - }, - "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-popover": { - "version": "9.8.23", + "version": "9.8.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.8.2.tgz", + "integrity": "sha512-b4Zfq+pMQIgHGoQA6V6AnehnmOKoV8KMxNpUOn/73N16NphbhrI8KnsVph1Wst/pLT/7p6ANdKt9nnE9SMai/A==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" - } - }, - "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-radio": { - "version": "9.1.58", - "license": "MIT", - "dependencies": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", + "@fluentui/react-aria": "^9.13.6", + "@fluentui/react-avatar": "^9.6.39", + "@fluentui/react-button": "^9.3.92", + "@fluentui/react-checkbox": "^9.2.37", + "@fluentui/react-context-selector": "^9.1.67", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-motion": "^9.5.2", + "@fluentui/react-motion-components-preview": "^0.1.4", + "@fluentui/react-radio": "^9.2.32", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-tabster": "^9.22.7", + "@fluentui/react-theme": "^9.1.20", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0", - "scheduler": "^0.19.0 || ^0.20.0" + "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-utilities": { - "version": "9.15.2", + "version": "9.18.15", + "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.18.15.tgz", + "integrity": "sha512-eJX6nyfHFRR6cZ3bi9c7s8rxIo6wCQE+phFzLqBke+RUV+p3Hwf6zW1IBVWauoaQKwPAW5RdWRYZrahqwo4DOA==", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-shared-contexts": "^9.20.1", "@swc/helpers": "^0.5.1" }, "peerDependencies": { @@ -2263,27 +2348,31 @@ } }, "node_modules/@fluentui/react-virtualizer": { - "version": "9.0.0-alpha.55", + "version": "9.0.0-alpha.85", + "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.85.tgz", + "integrity": "sha512-zdwqj3sLH1TeMwgXNFOVsWtWrH/zD4vmq1s/WkbB4Wu5h/CeemQEN3//WVpz0AB3cZGvcPiTitKH12AfaCqXIQ==", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", + "@fluentui/react-jsx-runtime": "^9.0.44", + "@fluentui/react-shared-contexts": "^9.20.1", + "@fluentui/react-utilities": "^9.18.15", + "@griffel/react": "^1.5.22", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-window-provider": { - "version": "2.2.16", + "version": "2.2.28", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.28.tgz", + "integrity": "sha512-YdZ74HTaoDwlvLDzoBST80/17ExIl93tLJpTxnqK5jlJOAUVQ+mxLPF2HQEJq+SZr5IMXHsQ56w/KaZVRn72YA==", "license": "MIT", "dependencies": { - "@fluentui/set-version": "^8.2.12", + "@fluentui/set-version": "^8.2.23", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2292,31 +2381,37 @@ } }, "node_modules/@fluentui/set-version": { - "version": "8.2.12", + "version": "8.2.23", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.23.tgz", + "integrity": "sha512-VPXaBsiaa3Xn/AY40nLU9bvDQ62lpMVnFzFTlQ8CbpdwrjxNlRxDUY5vRToNzp1+Zu5gD/+CgsXqIZGcry5L5w==", "license": "MIT", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/style-utilities": { - "version": "8.9.19", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.11.0.tgz", + "integrity": "sha512-UED65za1U3KM7tCLyMiPd/kMpVQguimcqQNIA3ys7mDRes2rMIwLkxaFwFX+OM14cSUw7y+FG8tv42vMKqefYA==", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/theme": "^2.6.37", - "@fluentui/utilities": "^8.13.20", + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/set-version": "^8.2.23", + "@fluentui/theme": "^2.6.60", + "@fluentui/utilities": "^8.15.16", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "node_modules/@fluentui/theme": { - "version": "2.6.37", + "version": "2.6.60", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.60.tgz", + "integrity": "sha512-sDWH13Q/4u0QCBoKLY5uTxDcUvnoXAldnF4DWY3NVbkS4H3SVUF//Kp0T78a0hBcpOdrj6AJ7al9OzMMMv3w7Q==", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/utilities": "^8.13.20", + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/set-version": "^8.2.23", + "@fluentui/utilities": "^8.15.16", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2325,19 +2420,24 @@ } }, "node_modules/@fluentui/tokens": { - "version": "1.0.0-alpha.13", + "version": "1.0.0-alpha.17", + "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.17.tgz", + "integrity": "sha512-tD+sHoY9u31SrgnWOl1XwWawCUQEgLWZkR+WiQbekoj2s2RCe8aO6Bl33qkh+pcskThukBpcFU5lHwqqTgUKJA==", "license": "MIT", "dependencies": { "@swc/helpers": "^0.5.1" } }, "node_modules/@fluentui/utilities": { - "version": "8.13.20", + "version": "8.15.16", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.15.16.tgz", + "integrity": "sha512-azn3XJqsnTUO2hWgImUvxVJEijk92OfJFKW6vYzlN2OuPJAL7tkf9nG9NwcET8SLlimSdav0O3nPcR+fHe/CwQ==", "license": "MIT", "dependencies": { - "@fluentui/dom-utilities": "^2.2.12", - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", + "@fluentui/dom-utilities": "^2.3.7", + "@fluentui/merge-styles": "^8.6.13", + "@fluentui/react-window-provider": "^2.2.28", + "@fluentui/set-version": "^8.2.23", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2346,22 +2446,26 @@ } }, "node_modules/@griffel/core": { - "version": "1.14.4", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.18.0.tgz", + "integrity": "sha512-3Dkn6f7ULeSzJ1wLyLfN1vc+v3q5shuEejeMe4XymBozQo0l35WIfH8FWcwB+Xrgip4fLLOy1p3sYN85gFGZxw==", "license": "MIT", "dependencies": { "@emotion/hash": "^0.9.0", - "@griffel/style-types": "^1.0.2", - "csstype": "^3.1.2", + "@griffel/style-types": "^1.2.0", + "csstype": "^3.1.3", "rtl-css-js": "^1.16.1", "stylis": "^4.2.0", "tslib": "^2.1.0" } }, "node_modules/@griffel/react": { - "version": "1.5.17", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.25.tgz", + "integrity": "sha512-ZGiCdn71VIX56fd3AxM7ouCxgClPvunOFIpXxFKebGJ94/rdj4sIbahuI1QBUFuU4/bqUyD6QonjDEpFBl9ORw==", "license": "MIT", "dependencies": { - "@griffel/core": "^1.14.4", + "@griffel/core": "^1.18.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2369,27 +2473,33 @@ } }, "node_modules/@griffel/style-types": { - "version": "1.0.2", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.2.0.tgz", + "integrity": "sha512-x166MNw0vWe5l5qhinfNT4eyWOaP48iFzPyFOfIB0/BVidKTWsEe5PmqRJDDtrJFS3VHhd/tE0oM6tkEMh2tsg==", "license": "MIT", "dependencies": { - "csstype": "^3.1.2" + "csstype": "^3.1.3" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -2397,7 +2507,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "license": "MIT", "engines": { @@ -2405,54 +2517,60 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true, - "license": "MIT" - }, "node_modules/@microsoft/ai-chat-protocol": { "version": "1.0.0-beta.20240610.1", "resolved": "https://registry.npmjs.org/@microsoft/ai-chat-protocol/-/ai-chat-protocol-1.0.0-beta.20240610.1.tgz", "integrity": "sha512-VGRt4DTCnoCKLqXs1H+3F9yeD8kTATktWxL4j2OUeOoqEiqWUiNm66qQMBzQJRv9Oi+vV9weQyZ6O6mHrf91HQ==", + "license": "MIT", "dependencies": { "@typespec/ts-http-runtime": "^1.0.0-alpha.20240228.1" } }, "node_modules/@microsoft/load-themed-styles": { "version": "1.10.295", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.295.tgz", + "integrity": "sha512-W+IzEBw8a6LOOfRJM02dTT7BDZijxm+Z7lhtOAz1+y9vQm1Kdz9jlAO+qCEKsfxtUOmKilW8DIRqFw2aUgKeGg==", "license": "MIT" }, "node_modules/@react-spring/animated": { - "version": "9.7.3", + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.4.tgz", + "integrity": "sha512-7As+8Pty2QlemJ9O5ecsuPKjmO0NKvmVkRR1n6mEotFgWar8FKuQt2xgxz3RTgxcccghpx1YdS1FCdElQNexmQ==", "license": "MIT", "dependencies": { - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" + "@react-spring/shared": "~9.7.4", + "@react-spring/types": "~9.7.4" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@react-spring/core": { - "version": "9.7.3", + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.4.tgz", + "integrity": "sha512-GzjA44niEJBFUe9jN3zubRDDDP2E4tBlhNlSIkTChiNf9p4ZQlgXBg50qbXfSXHQPHak/ExYxwhipKVsQ/sUTw==", "license": "MIT", "dependencies": { - "@react-spring/animated": "~9.7.3", - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" + "@react-spring/animated": "~9.7.4", + "@react-spring/shared": "~9.7.4", + "@react-spring/types": "~9.7.4" }, "funding": { "type": "opencollective", @@ -2462,28 +2580,41 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@react-spring/rafz": { + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.4.tgz", + "integrity": "sha512-mqDI6rW0Ca8IdryOMiXRhMtVGiEGLIO89vIOyFQXRIwwIMX30HLya24g9z4olDvFyeDW3+kibiKwtZnA4xhldA==", + "license": "MIT" + }, "node_modules/@react-spring/shared": { - "version": "9.7.3", + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.4.tgz", + "integrity": "sha512-bEPI7cQp94dOtCFSEYpxvLxj0+xQfB5r9Ru1h8OMycsIq7zFZon1G0sHrBLaLQIWeMCllc4tVDYRTLIRv70C8w==", "license": "MIT", "dependencies": { - "@react-spring/types": "~9.7.3" + "@react-spring/rafz": "~9.7.4", + "@react-spring/types": "~9.7.4" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@react-spring/types": { - "version": "9.7.3", + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.4.tgz", + "integrity": "sha512-iQVztO09ZVfsletMiY+DpT/JRiBntdsdJ4uqk3UJFhrhS8mIC9ZOZbmfGSRs/kdbNPQkVyzucceDicQ/3Mlj9g==", "license": "MIT" }, "node_modules/@react-spring/web": { - "version": "9.7.3", + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.4.tgz", + "integrity": "sha512-UMvCZp7I5HCVIleSa4BwbNxynqvj+mJjG2m20VO2yPoi2pnCYANy58flvz9v/YcXTAvsmL655FV3pm5fbr6akA==", "license": "MIT", "dependencies": { - "@react-spring/animated": "~9.7.3", - "@react-spring/core": "~9.7.3", - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" + "@react-spring/animated": "~9.7.4", + "@react-spring/core": "~9.7.4", + "@react-spring/shared": "~9.7.4", + "@react-spring/types": "~9.7.4" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -2491,65 +2622,27 @@ } }, "node_modules/@remix-run/router": { - "version": "1.11.0", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rollup/plugin-typescript": { - "version": "11.1.3", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.0.4", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", + "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } } }, "node_modules/@swc/helpers": { - "version": "0.5.3", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@types/babel__core": { - "version": "7.20.3", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", "dependencies": { @@ -2561,7 +2654,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.6", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "license": "MIT", "dependencies": { @@ -2569,7 +2664,9 @@ } }, "node_modules/@types/babel__template": { - "version": "7.4.3", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", "dependencies": { @@ -2578,7 +2675,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.3", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "license": "MIT", "dependencies": { @@ -2586,69 +2685,77 @@ } }, "node_modules/@types/dompurify": { - "version": "3.0.4", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", + "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", "dev": true, "license": "MIT", "dependencies": { "@types/trusted-types": "*" } }, - "node_modules/@types/estree": { - "version": "1.0.1", - "license": "MIT" - }, "node_modules/@types/hast": { - "version": "2.3.7", + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", "license": "MIT", "dependencies": { "@types/unist": "^2" } }, "node_modules/@types/prop-types": { - "version": "15.7.5", + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", "license": "MIT" }, "node_modules/@types/react": { - "version": "18.2.34", + "version": "18.3.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.10.tgz", + "integrity": "sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==", "license": "MIT", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.14", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "license": "MIT", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-syntax-highlighter": { - "version": "15.5.9", + "version": "15.5.13", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", + "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", "dev": true, "license": "MIT", "dependencies": { "@types/react": "*" } }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "license": "MIT" - }, "node_modules/@types/trusted-types": { - "version": "2.0.3", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "dev": true, "license": "MIT" }, "node_modules/@types/unist": { - "version": "2.0.7", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, "node_modules/@typespec/ts-http-runtime": { - "version": "1.0.0-alpha.20240610.1", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-1.0.0-alpha.20240610.1.tgz", - "integrity": "sha512-f1pHRnMpCZG1u7EucgZ00E9MpqI/HpZZ7FOu8oub/QH/9ki+5BtRbQfM17EDTi5w5JDWlp9Os+7fQVWLidozKQ==", + "version": "1.0.0-alpha.20240611.3", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-1.0.0-alpha.20240611.3.tgz", + "integrity": "sha512-fB0HCsQMnaVyX65cUsYBDdcB9oItlmEo9xvafUNzPp1GtlO/Qbg5zCfw9u91d2JwCEoJKi5VEpVnNVEQTioGLw==", + "license": "MIT", "dependencies": { "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", @@ -2659,27 +2766,30 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.1.1", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", + "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.23.2", - "@babel/plugin-transform-react-jsx-self": "^7.22.5", - "@babel/plugin-transform-react-jsx-source": "^7.22.5", - "@types/babel__core": "^7.20.3", - "react-refresh": "^0.14.0" + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0" + "vite": "^4.2.0 || ^5.0.0" } }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -2689,6 +2799,8 @@ }, "node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "dependencies": { @@ -2699,7 +2811,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -2717,10 +2831,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -2730,7 +2844,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001547", + "version": "1.0.30001664", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", "dev": true, "funding": [ { @@ -2750,6 +2866,8 @@ }, "node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2763,6 +2881,8 @@ }, "node_modules/character-entities": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "license": "MIT", "funding": { "type": "github", @@ -2771,6 +2891,8 @@ }, "node_modules/character-entities-legacy": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "license": "MIT", "funding": { "type": "github", @@ -2779,6 +2901,8 @@ }, "node_modules/character-reference-invalid": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "license": "MIT", "funding": { "type": "github", @@ -2787,6 +2911,8 @@ }, "node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "license": "MIT", "dependencies": { @@ -2795,11 +2921,15 @@ }, "node_modules/color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, "license": "MIT" }, "node_modules/comma-separated-tokens": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", "license": "MIT", "funding": { "type": "github", @@ -2808,18 +2938,24 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/csstype": { - "version": "3.1.2", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -2832,6 +2968,8 @@ }, "node_modules/dom-helpers": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", @@ -2839,16 +2977,22 @@ } }, "node_modules/dompurify": { - "version": "3.0.6", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz", + "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==", "license": "(MPL-2.0 OR Apache-2.0)" }, "node_modules/electron-to-chromium": { - "version": "1.4.549", + "version": "1.5.30", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.30.tgz", + "integrity": "sha512-sXI35EBN4lYxzc/pIGorlymYNzDBOqkSlVRe6MkgBsW/hW1tpC/HDJ2fjG7XnjakzfLEuvdmux0Mjs6jHq4UOA==", "dev": true, "license": "ISC" }, "node_modules/esbuild": { - "version": "0.18.11", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2859,32 +3003,34 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.11", - "@esbuild/android-arm64": "0.18.11", - "@esbuild/android-x64": "0.18.11", - "@esbuild/darwin-arm64": "0.18.11", - "@esbuild/darwin-x64": "0.18.11", - "@esbuild/freebsd-arm64": "0.18.11", - "@esbuild/freebsd-x64": "0.18.11", - "@esbuild/linux-arm": "0.18.11", - "@esbuild/linux-arm64": "0.18.11", - "@esbuild/linux-ia32": "0.18.11", - "@esbuild/linux-loong64": "0.18.11", - "@esbuild/linux-mips64el": "0.18.11", - "@esbuild/linux-ppc64": "0.18.11", - "@esbuild/linux-riscv64": "0.18.11", - "@esbuild/linux-s390x": "0.18.11", - "@esbuild/linux-x64": "0.18.11", - "@esbuild/netbsd-x64": "0.18.11", - "@esbuild/openbsd-x64": "0.18.11", - "@esbuild/sunos-x64": "0.18.11", - "@esbuild/win32-arm64": "0.18.11", - "@esbuild/win32-ia32": "0.18.11", - "@esbuild/win32-x64": "0.18.11" + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, "node_modules/escalade": { - "version": "3.1.1", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -2893,18 +3039,18 @@ }, "node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, "node_modules/fault": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "license": "MIT", "dependencies": { "format": "^0.2.0" @@ -2914,14 +3060,10 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/floating-ui-devtools": { - "version": "0.1.2", - "peerDependencies": { - "@floating-ui/dom": ">=1.0.0 <2.0.0" - } - }, "node_modules/format": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", "engines": { "node": ">=0.4.x" } @@ -2930,7 +3072,9 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2939,12 +3083,10 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "engines": { @@ -2953,24 +3095,18 @@ }, "node_modules/globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "license": "MIT", "engines": { @@ -2979,6 +3115,8 @@ }, "node_modules/hast-util-parse-selector": { "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -2987,6 +3125,8 @@ }, "node_modules/hastscript": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", @@ -3002,6 +3142,8 @@ }, "node_modules/highlight.js": { "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", "license": "BSD-3-Clause", "engines": { "node": "*" @@ -3011,6 +3153,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -3020,9 +3163,10 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -3033,6 +3177,8 @@ }, "node_modules/is-alphabetical": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "license": "MIT", "funding": { "type": "github", @@ -3041,6 +3187,8 @@ }, "node_modules/is-alphanumerical": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "license": "MIT", "dependencies": { "is-alphabetical": "^1.0.0", @@ -3051,18 +3199,10 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-core-module": { - "version": "2.13.0", - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-decimal": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "license": "MIT", "funding": { "type": "github", @@ -3071,6 +3211,8 @@ }, "node_modules/is-hexadecimal": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "license": "MIT", "funding": { "type": "github", @@ -3079,10 +3221,14 @@ }, "node_modules/js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, "license": "MIT", "bin": { @@ -3094,6 +3240,8 @@ }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "bin": { @@ -3104,11 +3252,15 @@ } }, "node_modules/keyborg": { - "version": "2.2.0", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/keyborg/-/keyborg-2.6.0.tgz", + "integrity": "sha512-o5kvLbuTF+o326CMVYpjlaykxqYP9DphFQZ2ZpgrvBouyvOxyEB7oqe8nOLFpiV5VCtz0D3pt8gXQYWpLpBnmA==", "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -3119,6 +3271,8 @@ }, "node_modules/lowlight": { "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", + "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", "license": "MIT", "dependencies": { "fault": "^1.0.0", @@ -3131,6 +3285,8 @@ }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { @@ -3141,6 +3297,7 @@ "version": "9.1.6", "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==", + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -3149,11 +3306,15 @@ } }, "node_modules/ms": { - "version": "2.1.2", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.6", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -3170,12 +3331,16 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true, "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3183,6 +3348,8 @@ }, "node_modules/parse-entities": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "license": "MIT", "dependencies": { "character-entities": "^1.0.0", @@ -3197,27 +3364,17 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, "node_modules/picocolors": { - "version": "1.0.0", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "dev": true, "license": "ISC" }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/postcss": { - "version": "8.4.31", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -3235,16 +3392,18 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/prettier": { - "version": "3.0.3", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "license": "MIT", "bin": { @@ -3259,6 +3418,8 @@ }, "node_modules/prismjs": { "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "license": "MIT", "engines": { "node": ">=6" @@ -3266,6 +3427,8 @@ }, "node_modules/prop-types": { "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -3275,10 +3438,14 @@ }, "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, "node_modules/property-information": { "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", "license": "MIT", "dependencies": { "xtend": "^4.0.0" @@ -3289,7 +3456,9 @@ } }, "node_modules/react": { - "version": "18.2.0", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -3299,18 +3468,22 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-dom/node_modules/scheduler": { - "version": "0.23.0", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -3318,10 +3491,14 @@ }, "node_modules/react-is": { "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "license": "MIT" }, "node_modules/react-refresh": { - "version": "0.14.0", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "license": "MIT", "engines": { @@ -3329,10 +3506,12 @@ } }, "node_modules/react-router": { - "version": "6.18.0", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", + "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.11.0" + "@remix-run/router": "1.19.2" }, "engines": { "node": ">=14.0.0" @@ -3342,11 +3521,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.18.0", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", + "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.11.0", - "react-router": "6.18.0" + "@remix-run/router": "1.19.2", + "react-router": "6.26.2" }, "engines": { "node": ">=14.0.0" @@ -3358,6 +3539,8 @@ }, "node_modules/react-syntax-highlighter": { "version": "15.5.0", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", + "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.3.1", @@ -3372,6 +3555,8 @@ }, "node_modules/react-transition-group": { "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", @@ -3386,6 +3571,8 @@ }, "node_modules/refractor": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", + "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", "license": "MIT", "dependencies": { "hastscript": "^6.0.0", @@ -3399,32 +3586,24 @@ }, "node_modules/refractor/node_modules/prismjs": { "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "license": "MIT" }, - "node_modules/resolve": { - "version": "1.22.4", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/rollup": { - "version": "3.29.4", + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "dev": true, "license": "MIT", "bin": { "rollup": "dist/bin/rollup" @@ -3439,6 +3618,8 @@ }, "node_modules/rtl-css-js": { "version": "1.16.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", + "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2" @@ -3446,6 +3627,8 @@ }, "node_modules/scheduler": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", @@ -3454,6 +3637,8 @@ }, "node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -3461,7 +3646,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -3470,6 +3657,8 @@ }, "node_modules/space-separated-tokens": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "license": "MIT", "funding": { "type": "github", @@ -3477,11 +3666,15 @@ } }, "node_modules/stylis": { - "version": "4.3.0", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", + "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==", "license": "MIT" }, "node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "license": "MIT", "dependencies": { @@ -3491,26 +3684,20 @@ "node": ">=4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/tabster": { - "version": "5.1.0", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/tabster/-/tabster-8.2.0.tgz", + "integrity": "sha512-Gvplk/Yl/12aVFA6FPOqGcq31Qv8hbPfYO0N+6IxrRgRT6eSLsipT6gkZBYjyOwGsp6BD5XlZAuJgupfG/GHoA==", "license": "MIT", "dependencies": { - "keyborg": "^2.2.0", + "keyborg": "2.6.0", "tslib": "^2.3.1" } }, "node_modules/to-fast-properties": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "license": "MIT", "engines": { @@ -3518,12 +3705,16 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" }, "node_modules/typescript": { - "version": "5.2.2", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -3534,7 +3725,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -3552,8 +3745,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -3564,6 +3757,8 @@ }, "node_modules/use-disposable": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/use-disposable/-/use-disposable-1.0.2.tgz", + "integrity": "sha512-UMaXVlV77dWOu4GqAFNjRzHzowYKUKbJBQfCexvahrYeIz4OkUYUjna4Tjjdf92NH8Nm8J7wEfFRgTIwYjO5jg==", "license": "MIT", "peerDependencies": { "@types/react": ">=16.8.0 <19.0.0", @@ -3572,11 +3767,21 @@ "react-dom": ">=16.8.0 <19.0.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/vite": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", - "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -3629,6 +3834,8 @@ }, "node_modules/xtend": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "license": "MIT", "engines": { "node": ">=0.4" @@ -3636,2281 +3843,10 @@ }, "node_modules/yallist": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@azure/msal-browser": { - "version": "3.4.0", - "requires": { - "@azure/msal-common": "14.3.0" - } - }, - "@azure/msal-common": { - "version": "14.3.0" - }, - "@azure/msal-react": { - "version": "2.0.6", - "requires": { - "@rollup/plugin-typescript": "^11.1.0", - "rollup": "^3.20.2" - } - }, - "@babel/code-frame": { - "version": "7.22.13", - "dev": true, - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - } - }, - "@babel/compat-data": { - "version": "7.22.20", - "dev": true - }, - "@babel/core": { - "version": "7.23.2", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.23.0", - "dev": true, - "requires": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.22.15", - "dev": true, - "requires": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.22.15", - "dev": true, - "requires": { - "@babel/types": "^7.22.15" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.0", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.22.5", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.22.5", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.22.15", - "dev": true - }, - "@babel/helpers": { - "version": "7.23.2", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - } - }, - "@babel/highlight": { - "version": "7.22.20", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.0", - "dev": true - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.22.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.22.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/runtime": { - "version": "7.22.15", - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "@babel/template": { - "version": "7.22.15", - "dev": true, - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/traverse": { - "version": "7.23.2", - "dev": true, - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.23.0", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@emotion/hash": { - "version": "0.9.1" - }, - "@floating-ui/core": { - "version": "1.5.0", - "requires": { - "@floating-ui/utils": "^0.1.3" - } - }, - "@floating-ui/dom": { - "version": "1.5.3", - "requires": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" - } - }, - "@floating-ui/utils": { - "version": "0.1.6" - }, - "@fluentui/date-time-utilities": { - "version": "8.5.14", - "requires": { - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" - } - }, - "@fluentui/dom-utilities": { - "version": "2.2.12", - "requires": { - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" - } - }, - "@fluentui/font-icons-mdl2": { - "version": "8.5.26", - "requires": { - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/utilities": "^8.13.20", - "tslib": "^2.1.0" - } - }, - "@fluentui/foundation-legacy": { - "version": "8.2.46", - "requires": { - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/utilities": "^8.13.20", - "tslib": "^2.1.0" - } - }, - "@fluentui/keyboard-key": { - "version": "0.4.12", - "requires": { - "tslib": "^2.1.0" - } - }, - "@fluentui/keyboard-keys": { - "version": "9.0.7", - "requires": { - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/merge-styles": { - "version": "8.5.13", - "requires": { - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" - } - }, - "@fluentui/priority-overflow": { - "version": "9.1.10", - "requires": { - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react": { - "version": "8.112.5", - "requires": { - "@fluentui/date-time-utilities": "^8.5.14", - "@fluentui/font-icons-mdl2": "^8.5.26", - "@fluentui/foundation-legacy": "^8.2.46", - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/react-focus": "^8.8.33", - "@fluentui/react-hooks": "^8.6.32", - "@fluentui/react-portal-compat-context": "^9.0.9", - "@fluentui/react-window-provider": "^2.2.16", - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/theme": "^2.6.37", - "@fluentui/utilities": "^8.13.20", - "@microsoft/load-themed-styles": "^1.10.26", - "tslib": "^2.1.0" - } - }, - "@fluentui/react-alert": { - "version": "9.0.0-beta.90", - "requires": { - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-avatar": { - "version": "9.5.48", - "requires": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-aria": { - "version": "9.4.0", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-badge": { - "version": "9.2.15", - "requires": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-button": { - "version": "9.3.53", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-card": { - "version": "9.0.52", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-checkbox": { - "version": "9.1.54", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-components": { - "version": "9.37.3", - "requires": { - "@fluentui/react-accordion": "^9.3.26", - "@fluentui/react-alert": "9.0.0-beta.90", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-badge": "^9.2.12", - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-card": "^9.0.52", - "@fluentui/react-checkbox": "^9.1.54", - "@fluentui/react-combobox": "^9.5.28", - "@fluentui/react-dialog": "^9.8.2", - "@fluentui/react-divider": "^9.2.48", - "@fluentui/react-drawer": "9.0.0-beta.40", - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-image": "^9.1.45", - "@fluentui/react-infobutton": "9.0.0-beta.74", - "@fluentui/react-infolabel": "^9.0.2", - "@fluentui/react-input": "^9.4.50", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-link": "^9.1.32", - "@fluentui/react-menu": "^9.12.30", - "@fluentui/react-message-bar": "^9.0.4", - "@fluentui/react-overflow": "^9.0.42", - "@fluentui/react-persona": "^9.2.54", - "@fluentui/react-popover": "^9.8.19", - "@fluentui/react-portal": "^9.3.27", - "@fluentui/react-positioning": "^9.9.23", - "@fluentui/react-progress": "^9.1.50", - "@fluentui/react-provider": "^9.11.1", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-select": "^9.1.50", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-skeleton": "^9.0.38", - "@fluentui/react-slider": "^9.1.54", - "@fluentui/react-spinbutton": "^9.2.50", - "@fluentui/react-spinner": "^9.3.28", - "@fluentui/react-switch": "^9.1.54", - "@fluentui/react-table": "^9.10.9", - "@fluentui/react-tabs": "^9.3.55", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-tags": "^9.0.8", - "@fluentui/react-text": "^9.3.45", - "@fluentui/react-textarea": "^9.3.50", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-toast": "^9.3.15", - "@fluentui/react-toolbar": "^9.1.54", - "@fluentui/react-tooltip": "^9.3.20", - "@fluentui/react-tree": "^9.4.11", - "@fluentui/react-utilities": "^9.15.1", - "@fluentui/react-virtualizer": "9.0.0-alpha.55", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-accordion": { - "version": "9.3.30", - "requires": { - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-avatar": { - "version": "9.5.48", - "requires": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-combobox": { - "version": "9.5.32", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-menu": { - "version": "9.12.35", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-overflow": { - "version": "9.1.1", - "requires": { - "@fluentui/priority-overflow": "^9.1.10", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-radio": { - "version": "9.1.58", - "requires": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-tabs": { - "version": "9.3.59", - "requires": { - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - } - } - }, - "@fluentui/react-dialog": { - "version": "9.8.2", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-portal": "^9.3.27", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "react-transition-group": "^4.4.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-divider": { - "version": "9.2.48", - "requires": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-drawer": { - "version": "9.0.0-beta.40", - "requires": { - "@fluentui/react-dialog": "^9.8.2", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-motion-preview": "^0.5.0", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-field": { - "version": "9.1.43", - "requires": { - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-focus": { - "version": "8.8.33", - "requires": { - "@fluentui/keyboard-key": "^0.4.12", - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/style-utilities": "^8.9.19", - "@fluentui/utilities": "^8.13.20", - "tslib": "^2.1.0" - } - }, - "@fluentui/react-hooks": { - "version": "8.6.32", - "requires": { - "@fluentui/react-window-provider": "^2.2.16", - "@fluentui/set-version": "^8.2.12", - "@fluentui/utilities": "^8.13.20", - "tslib": "^2.1.0" - } - }, - "@fluentui/react-icons": { - "version": "2.0.221", - "requires": { - "@griffel/react": "^1.0.0", - "tslib": "^2.1.0" - } - }, - "@fluentui/react-image": { - "version": "9.1.45", - "requires": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-infobutton": { - "version": "9.0.0-beta.74", - "requires": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-popover": "^9.8.19", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-infolabel": { - "version": "9.0.2", - "requires": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-popover": "^9.8.19", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-input": { - "version": "9.4.50", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-jsx-runtime": { - "version": "9.0.20", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1", - "react-is": "^17.0.2" - } - }, - "@fluentui/react-label": { - "version": "9.1.51", - "requires": { - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-link": { - "version": "9.1.32", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-message-bar": { - "version": "9.0.4", - "requires": { - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "react-transition-group": "^4.4.1" - } - }, - "@fluentui/react-motion-preview": { - "version": "0.5.0", - "requires": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-persona": { - "version": "9.2.54", - "requires": { - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-badge": "^9.2.12", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-avatar": { - "version": "9.5.48", - "requires": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-portal": { - "version": "9.4.3", - "requires": { - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "use-disposable": "^1.0.1" - } - }, - "@fluentui/react-portal-compat-context": { - "version": "9.0.9", - "requires": { - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-positioning": { - "version": "9.10.2", - "requires": { - "@floating-ui/dom": "^1.2.0", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "floating-ui-devtools": "0.1.2" - } - }, - "@fluentui/react-progress": { - "version": "9.1.50", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-provider": { - "version": "9.11.1", - "requires": { - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/core": "^1.14.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-select": { - "version": "9.1.50", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-shared-contexts": { - "version": "9.13.0", - "requires": { - "@fluentui/react-theme": "^9.1.16", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-skeleton": { - "version": "9.0.38", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-slider": { - "version": "9.1.54", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-spinbutton": { - "version": "9.2.50", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-spinner": { - "version": "9.3.28", - "requires": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-switch": { - "version": "9.1.54", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-label": "^9.1.48", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-table": { - "version": "9.10.9", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-checkbox": "^9.1.54", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-avatar": { - "version": "9.5.48", - "requires": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-radio": { - "version": "9.1.58", - "requires": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-tabster": { - "version": "9.15.0", - "requires": { - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "keyborg": "^2.2.0", - "tabster": "^5.0.1" - } - }, - "@fluentui/react-tags": { - "version": "9.0.8", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-avatar": { - "version": "9.5.48", - "requires": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-text": { - "version": "9.3.45", - "requires": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-textarea": { - "version": "9.3.50", - "requires": { - "@fluentui/react-field": "^9.1.40", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-theme": { - "version": "9.1.16", - "requires": { - "@fluentui/tokens": "1.0.0-alpha.13", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-toast": { - "version": "9.3.15", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-portal": "^9.3.27", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1", - "react-transition-group": "^4.4.1" - } - }, - "@fluentui/react-toolbar": { - "version": "9.1.54", - "requires": { - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-divider": "^9.2.48", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-radio": { - "version": "9.1.58", - "requires": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-tooltip": { - "version": "9.4.1", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-tree": { - "version": "9.4.11", - "requires": { - "@fluentui/keyboard-keys": "^9.0.6", - "@fluentui/react-aria": "^9.3.43", - "@fluentui/react-avatar": "^9.5.44", - "@fluentui/react-button": "^9.3.53", - "@fluentui/react-checkbox": "^9.1.54", - "@fluentui/react-context-selector": "^9.1.41", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-radio": "^9.1.54", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-tabster": "^9.14.3", - "@fluentui/react-theme": "^9.1.15", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - }, - "dependencies": { - "@fluentui/react-avatar": { - "version": "9.5.48", - "requires": { - "@fluentui/react-badge": "^9.2.15", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-popover": "^9.8.23", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-tooltip": "^9.4.1", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-context-selector": { - "version": "9.1.42", - "requires": { - "@fluentui/react-utilities": "^9.15.2", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-popover": { - "version": "9.8.23", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.4.0", - "@fluentui/react-context-selector": "^9.1.42", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-portal": "^9.4.3", - "@fluentui/react-positioning": "^9.10.2", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-radio": { - "version": "9.1.58", - "requires": { - "@fluentui/react-field": "^9.1.43", - "@fluentui/react-icons": "^2.0.217", - "@fluentui/react-jsx-runtime": "^9.0.20", - "@fluentui/react-label": "^9.1.51", - "@fluentui/react-shared-contexts": "^9.13.0", - "@fluentui/react-tabster": "^9.15.0", - "@fluentui/react-theme": "^9.1.16", - "@fluentui/react-utilities": "^9.15.2", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - } - } - }, - "@fluentui/react-utilities": { - "version": "9.15.2", - "requires": { - "@fluentui/keyboard-keys": "^9.0.7", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-virtualizer": { - "version": "9.0.0-alpha.55", - "requires": { - "@fluentui/react-jsx-runtime": "^9.0.18", - "@fluentui/react-shared-contexts": "^9.11.1", - "@fluentui/react-utilities": "^9.15.1", - "@griffel/react": "^1.5.14", - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/react-window-provider": { - "version": "2.2.16", - "requires": { - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" - } - }, - "@fluentui/set-version": { - "version": "8.2.12", - "requires": { - "tslib": "^2.1.0" - } - }, - "@fluentui/style-utilities": { - "version": "8.9.19", - "requires": { - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/theme": "^2.6.37", - "@fluentui/utilities": "^8.13.20", - "@microsoft/load-themed-styles": "^1.10.26", - "tslib": "^2.1.0" - } - }, - "@fluentui/theme": { - "version": "2.6.37", - "requires": { - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "@fluentui/utilities": "^8.13.20", - "tslib": "^2.1.0" - } - }, - "@fluentui/tokens": { - "version": "1.0.0-alpha.13", - "requires": { - "@swc/helpers": "^0.5.1" - } - }, - "@fluentui/utilities": { - "version": "8.13.20", - "requires": { - "@fluentui/dom-utilities": "^2.2.12", - "@fluentui/merge-styles": "^8.5.13", - "@fluentui/set-version": "^8.2.12", - "tslib": "^2.1.0" - } - }, - "@griffel/core": { - "version": "1.14.4", - "requires": { - "@emotion/hash": "^0.9.0", - "@griffel/style-types": "^1.0.2", - "csstype": "^3.1.2", - "rtl-css-js": "^1.16.1", - "stylis": "^4.2.0", - "tslib": "^2.1.0" - } - }, - "@griffel/react": { - "version": "1.5.17", - "requires": { - "@griffel/core": "^1.14.4", - "tslib": "^2.1.0" - } - }, - "@griffel/style-types": { - "version": "1.0.2", - "requires": { - "csstype": "^3.1.2" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true - } - } - }, - "@microsoft/ai-chat-protocol": { - "version": "1.0.0-beta.20240610.1", - "resolved": "https://registry.npmjs.org/@microsoft/ai-chat-protocol/-/ai-chat-protocol-1.0.0-beta.20240610.1.tgz", - "integrity": "sha512-VGRt4DTCnoCKLqXs1H+3F9yeD8kTATktWxL4j2OUeOoqEiqWUiNm66qQMBzQJRv9Oi+vV9weQyZ6O6mHrf91HQ==", - "requires": { - "@typespec/ts-http-runtime": "^1.0.0-alpha.20240228.1" - } - }, - "@microsoft/load-themed-styles": { - "version": "1.10.295" - }, - "@react-spring/animated": { - "version": "9.7.3", - "requires": { - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" - } - }, - "@react-spring/core": { - "version": "9.7.3", - "requires": { - "@react-spring/animated": "~9.7.3", - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" - } - }, - "@react-spring/shared": { - "version": "9.7.3", - "requires": { - "@react-spring/types": "~9.7.3" - } - }, - "@react-spring/types": { - "version": "9.7.3" - }, - "@react-spring/web": { - "version": "9.7.3", - "requires": { - "@react-spring/animated": "~9.7.3", - "@react-spring/core": "~9.7.3", - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" - } - }, - "@remix-run/router": { - "version": "1.11.0" - }, - "@rollup/plugin-typescript": { - "version": "11.1.3", - "requires": { - "@rollup/pluginutils": "^5.0.1", - "resolve": "^1.22.1" - } - }, - "@rollup/pluginutils": { - "version": "5.0.4", - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } - }, - "@swc/helpers": { - "version": "0.5.3", - "requires": { - "tslib": "^2.4.0" - } - }, - "@types/babel__core": { - "version": "7.20.3", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.6", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.3", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.3", - "dev": true, - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/dompurify": { - "version": "3.0.4", - "dev": true, - "requires": { - "@types/trusted-types": "*" - } - }, - "@types/estree": { - "version": "1.0.1" - }, - "@types/hast": { - "version": "2.3.7", - "requires": { - "@types/unist": "^2" - } - }, - "@types/prop-types": { - "version": "15.7.5" - }, - "@types/react": { - "version": "18.2.34", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "18.2.14", - "requires": { - "@types/react": "*" - } - }, - "@types/react-syntax-highlighter": { - "version": "15.5.9", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2" - }, - "@types/trusted-types": { - "version": "2.0.3", - "dev": true - }, - "@types/unist": { - "version": "2.0.7" - }, - "@typespec/ts-http-runtime": { - "version": "1.0.0-alpha.20240610.1", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-1.0.0-alpha.20240610.1.tgz", - "integrity": "sha512-f1pHRnMpCZG1u7EucgZ00E9MpqI/HpZZ7FOu8oub/QH/9ki+5BtRbQfM17EDTi5w5JDWlp9Os+7fQVWLidozKQ==", - "requires": { - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "tslib": "^2.6.2" - } - }, - "@vitejs/plugin-react": { - "version": "4.1.1", - "dev": true, - "requires": { - "@babel/core": "^7.23.2", - "@babel/plugin-transform-react-jsx-self": "^7.22.5", - "@babel/plugin-transform-react-jsx-source": "^7.22.5", - "@types/babel__core": "^7.20.3", - "react-refresh": "^0.14.0" - } - }, - "agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "requires": { - "debug": "^4.3.4" - } - }, - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "browserslist": { - "version": "4.22.1", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001547", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "character-entities": { - "version": "1.2.4" - }, - "character-entities-legacy": { - "version": "1.1.4" - }, - "character-reference-invalid": { - "version": "1.1.4" - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "comma-separated-tokens": { - "version": "1.0.8" - }, - "convert-source-map": { - "version": "2.0.0", - "dev": true - }, - "csstype": { - "version": "3.1.2" - }, - "debug": { - "version": "4.3.4", - "requires": { - "ms": "2.1.2" - } - }, - "dom-helpers": { - "version": "5.2.1", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "dompurify": { - "version": "3.0.6" - }, - "electron-to-chromium": { - "version": "1.4.549", - "dev": true - }, - "esbuild": { - "version": "0.18.11", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.18.11", - "@esbuild/android-arm64": "0.18.11", - "@esbuild/android-x64": "0.18.11", - "@esbuild/darwin-arm64": "0.18.11", - "@esbuild/darwin-x64": "0.18.11", - "@esbuild/freebsd-arm64": "0.18.11", - "@esbuild/freebsd-x64": "0.18.11", - "@esbuild/linux-arm": "0.18.11", - "@esbuild/linux-arm64": "0.18.11", - "@esbuild/linux-ia32": "0.18.11", - "@esbuild/linux-loong64": "0.18.11", - "@esbuild/linux-mips64el": "0.18.11", - "@esbuild/linux-ppc64": "0.18.11", - "@esbuild/linux-riscv64": "0.18.11", - "@esbuild/linux-s390x": "0.18.11", - "@esbuild/linux-x64": "0.18.11", - "@esbuild/netbsd-x64": "0.18.11", - "@esbuild/openbsd-x64": "0.18.11", - "@esbuild/sunos-x64": "0.18.11", - "@esbuild/win32-arm64": "0.18.11", - "@esbuild/win32-ia32": "0.18.11", - "@esbuild/win32-x64": "0.18.11" - } - }, - "escalade": { - "version": "3.1.1", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "estree-walker": { - "version": "2.0.2" - }, - "fault": { - "version": "1.0.4", - "requires": { - "format": "^0.2.0" - } - }, - "floating-ui-devtools": { - "version": "0.1.2", - "requires": {} - }, - "format": { - "version": "0.2.2" - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "function-bind": { - "version": "1.1.1" - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "globals": { - "version": "11.12.0", - "dev": true - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "hast-util-parse-selector": { - "version": "2.2.5" - }, - "hastscript": { - "version": "6.0.0", - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "highlight.js": { - "version": "10.7.3" - }, - "http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - }, - "is-alphabetical": { - "version": "1.0.4" - }, - "is-alphanumerical": { - "version": "1.0.4", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.13.0", - "requires": { - "has": "^1.0.3" - } - }, - "is-decimal": { - "version": "1.0.4" - }, - "is-hexadecimal": { - "version": "1.0.4" - }, - "js-tokens": { - "version": "4.0.0" - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json5": { - "version": "2.2.3", - "dev": true - }, - "keyborg": { - "version": "2.2.0" - }, - "loose-envify": { - "version": "1.4.0", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lowlight": { - "version": "1.20.0", - "requires": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "marked": { - "version": "9.1.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", - "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==" - }, - "ms": { - "version": "2.1.2" - }, - "nanoid": { - "version": "3.3.6", - "dev": true - }, - "node-releases": { - "version": "2.0.13", - "dev": true - }, - "object-assign": { - "version": "4.1.1" - }, - "parse-entities": { - "version": "2.0.0", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "path-parse": { - "version": "1.0.7" - }, - "picocolors": { - "version": "1.0.0", - "dev": true - }, - "picomatch": { - "version": "2.3.1" - }, - "postcss": { - "version": "8.4.31", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "prettier": { - "version": "3.0.3", - "dev": true - }, - "prismjs": { - "version": "1.29.0" - }, - "prop-types": { - "version": "15.8.1", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1" - } - } - }, - "property-information": { - "version": "5.6.0", - "requires": { - "xtend": "^4.0.0" - } - }, - "react": { - "version": "18.2.0", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-dom": { - "version": "18.2.0", - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "dependencies": { - "scheduler": { - "version": "0.23.0", - "requires": { - "loose-envify": "^1.1.0" - } - } - } - }, - "react-is": { - "version": "17.0.2" - }, - "react-refresh": { - "version": "0.14.0", - "dev": true - }, - "react-router": { - "version": "6.18.0", - "requires": { - "@remix-run/router": "1.11.0" - } - }, - "react-router-dom": { - "version": "6.18.0", - "requires": { - "@remix-run/router": "1.11.0", - "react-router": "6.18.0" - } - }, - "react-syntax-highlighter": { - "version": "15.5.0", - "requires": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", - "lowlight": "^1.17.0", - "prismjs": "^1.27.0", - "refractor": "^3.6.0" - } - }, - "react-transition-group": { - "version": "4.4.5", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "refractor": { - "version": "3.6.0", - "requires": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - }, - "dependencies": { - "prismjs": { - "version": "1.27.0" - } - } - }, - "regenerator-runtime": { - "version": "0.14.0" - }, - "resolve": { - "version": "1.22.4", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "rollup": { - "version": "3.29.4", - "requires": { - "fsevents": "~2.3.2" - } - }, - "rtl-css-js": { - "version": "1.16.1", - "requires": { - "@babel/runtime": "^7.1.2" - } - }, - "scheduler": { - "version": "0.20.2", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "semver": { - "version": "6.3.1", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "dev": true - }, - "space-separated-tokens": { - "version": "1.1.5" - }, - "stylis": { - "version": "4.3.0" - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0" - }, - "tabster": { - "version": "5.1.0", - "requires": { - "keyborg": "^2.2.0", - "tslib": "^2.3.1" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" - }, - "typescript": { - "version": "5.2.2" - }, - "update-browserslist-db": { - "version": "1.0.13", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "use-disposable": { - "version": "1.0.2", - "requires": {} - }, - "vite": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", - "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", - "dev": true, - "requires": { - "esbuild": "^0.18.10", - "fsevents": "~2.3.2", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - } - }, - "xtend": { - "version": "4.0.2" - }, - "yallist": { - "version": "3.1.1", - "dev": true - } } } diff --git a/tests/conftest.py b/tests/conftest.py index aaa4bc48..bc0749af 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -61,11 +61,11 @@ def mock_session_env(monkeypatch_session): monkeypatch_session.setenv("OPENAI_EMBED_HOST", "azure") monkeypatch_session.setenv("AZURE_OPENAI_ENDPOINT", "https://api.openai.com") monkeypatch_session.setenv("AZURE_OPENAI_VERSION", "2024-03-01-preview") - monkeypatch_session.setenv("AZURE_OPENAI_CHAT_DEPLOYMENT", "gpt-35-turbo") - monkeypatch_session.setenv("AZURE_OPENAI_CHAT_MODEL", "gpt-35-turbo") + monkeypatch_session.setenv("AZURE_OPENAI_CHAT_DEPLOYMENT", "gpt-4o-mini") + monkeypatch_session.setenv("AZURE_OPENAI_CHAT_MODEL", "gpt-4o-mini") monkeypatch_session.setenv("AZURE_OPENAI_EMBED_DEPLOYMENT", "text-embedding-ada-002") monkeypatch_session.setenv("AZURE_OPENAI_EMBED_MODEL", "text-embedding-ada-002") - monkeypatch_session.setenv("AZURE_OPENAI_EMBED_MODEL_DIMENSIONS", "1536") + monkeypatch_session.setenv("AZURE_OPENAI_EMBED_DIMENSIONS", "1536") monkeypatch_session.setenv("AZURE_OPENAI_KEY", "fakekey") yield @@ -170,7 +170,7 @@ def mock_openai_chatcompletion(monkeypatch_session): class AsyncChatCompletionIterator: def __init__(self, answer: str): chunk_id = "test-id" - model = "gpt-35-turbo" + model = "gpt-4o-mini" self.responses = [ {"object": "chat.completion.chunk", "choices": [], "id": chunk_id, "model": model, "created": 1}, { diff --git a/tests/snapshots/test_api_routes/test_advanced_chat_flow/advanced_chat_flow_response.json b/tests/snapshots/test_api_routes/test_advanced_chat_flow/advanced_chat_flow_response.json index d903a132..7ad46375 100644 --- a/tests/snapshots/test_api_routes/test_advanced_chat_flow/advanced_chat_flow_response.json +++ b/tests/snapshots/test_api_routes/test_advanced_chat_flow/advanced_chat_flow_response.json @@ -72,8 +72,8 @@ } ], "props": { - "model": "gpt-35-turbo", - "deployment": "gpt-35-turbo" + "model": "gpt-4o-mini", + "deployment": "gpt-4o-mini" } }, { @@ -113,8 +113,8 @@ } ], "props": { - "model": "gpt-35-turbo", - "deployment": "gpt-35-turbo" + "model": "gpt-4o-mini", + "deployment": "gpt-4o-mini" } } ], diff --git a/tests/snapshots/test_api_routes/test_advanced_chat_streaming_flow/advanced_chat_streaming_flow_response.jsonlines b/tests/snapshots/test_api_routes/test_advanced_chat_streaming_flow/advanced_chat_streaming_flow_response.jsonlines index cb54ff3a..3615937f 100644 --- a/tests/snapshots/test_api_routes/test_advanced_chat_streaming_flow/advanced_chat_streaming_flow_response.jsonlines +++ b/tests/snapshots/test_api_routes/test_advanced_chat_streaming_flow/advanced_chat_streaming_flow_response.jsonlines @@ -1,2 +1,2 @@ -{"delta":null,"context":{"data_points":{"1":{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}},"thoughts":[{"title":"Prompt to generate search arguments","description":[{"role":"system","content":"Below is a history of the conversation so far, and a new question asked by the user that needs to be answered by searching database rows.\nYou have access to an Azure PostgreSQL database with an items table that has columns for title, description, brand, price, and type.\nGenerate a search query based on the conversation and the new question.\nIf the question is not in English, translate the question to English before generating the search query.\nIf you cannot generate a search query, return the original user question.\nDO NOT return anything besides the query."},{"role":"user","content":"good options for climbing gear that can be used outside?"},{"role":"assistant","tool_calls":[{"id":"call_abc123","type":"function","function":{"arguments":"{\"search_query\":\"climbing gear outside\"}","name":"search_database"}}]},{"role":"tool","tool_call_id":"call_abc123","content":"Search results for climbing gear that can be used outside: ..."},{"role":"user","content":"are there any shoes less than $50?"},{"role":"assistant","tool_calls":[{"id":"call_abc456","type":"function","function":{"arguments":"{\"search_query\":\"shoes\",\"price_filter\":{\"comparison_operator\":\"<\",\"value\":50}}","name":"search_database"}}]},{"role":"tool","tool_call_id":"call_abc456","content":"Search results for shoes cheaper than 50: ..."},{"role":"user","content":"What is the capital of France?"}],"props":{"model":"gpt-35-turbo","deployment":"gpt-35-turbo"}},{"title":"Search using generated search arguments","description":"The capital of France is Paris. [Benefit_Options-2.pdf].","props":{"top":1,"vector_search":true,"text_search":true,"filters":[]}},{"title":"Search results","description":[{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}],"props":{}},{"title":"Prompt to generate answer","description":[{"role":"system","content":"Assistant helps customers with questions about products.\nRespond as if you are a salesperson helping a customer in a store. Do NOT respond with tables.\nAnswer ONLY with the product details listed in the products.\nIf there isn't enough information below, say you don't know.\nDo not generate answers that don't use the sources below.\nEach product has an ID in brackets followed by colon and the product details.\nAlways include the product ID for each product you use in the response.\nUse square brackets to reference the source, for example [52].\nDon't combine citations, list each product separately, for example [27][51]."},{"role":"user","content":"What is the capital of France?\n\nSources:\n[1]:Name:Wanderer Black Hiking Boots Description:Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long. Price:109.99 Brand:Daybird Type:Footwear\n\n"}],"props":{"model":"gpt-35-turbo","deployment":"gpt-35-turbo"}}],"followup_questions":null},"sessionState":null} +{"delta":null,"context":{"data_points":{"1":{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}},"thoughts":[{"title":"Prompt to generate search arguments","description":[{"role":"system","content":"Below is a history of the conversation so far, and a new question asked by the user that needs to be answered by searching database rows.\nYou have access to an Azure PostgreSQL database with an items table that has columns for title, description, brand, price, and type.\nGenerate a search query based on the conversation and the new question.\nIf the question is not in English, translate the question to English before generating the search query.\nIf you cannot generate a search query, return the original user question.\nDO NOT return anything besides the query."},{"role":"user","content":"good options for climbing gear that can be used outside?"},{"role":"assistant","tool_calls":[{"id":"call_abc123","type":"function","function":{"arguments":"{\"search_query\":\"climbing gear outside\"}","name":"search_database"}}]},{"role":"tool","tool_call_id":"call_abc123","content":"Search results for climbing gear that can be used outside: ..."},{"role":"user","content":"are there any shoes less than $50?"},{"role":"assistant","tool_calls":[{"id":"call_abc456","type":"function","function":{"arguments":"{\"search_query\":\"shoes\",\"price_filter\":{\"comparison_operator\":\"<\",\"value\":50}}","name":"search_database"}}]},{"role":"tool","tool_call_id":"call_abc456","content":"Search results for shoes cheaper than 50: ..."},{"role":"user","content":"What is the capital of France?"}],"props":{"model":"gpt-4o-mini","deployment":"gpt-4o-mini"}},{"title":"Search using generated search arguments","description":"The capital of France is Paris. [Benefit_Options-2.pdf].","props":{"top":1,"vector_search":true,"text_search":true,"filters":[]}},{"title":"Search results","description":[{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}],"props":{}},{"title":"Prompt to generate answer","description":[{"role":"system","content":"Assistant helps customers with questions about products.\nRespond as if you are a salesperson helping a customer in a store. Do NOT respond with tables.\nAnswer ONLY with the product details listed in the products.\nIf there isn't enough information below, say you don't know.\nDo not generate answers that don't use the sources below.\nEach product has an ID in brackets followed by colon and the product details.\nAlways include the product ID for each product you use in the response.\nUse square brackets to reference the source, for example [52].\nDon't combine citations, list each product separately, for example [27][51]."},{"role":"user","content":"What is the capital of France?\n\nSources:\n[1]:Name:Wanderer Black Hiking Boots Description:Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long. Price:109.99 Brand:Daybird Type:Footwear\n\n"}],"props":{"model":"gpt-4o-mini","deployment":"gpt-4o-mini"}}],"followup_questions":null},"sessionState":null} {"delta":{"content":"The capital of France is Paris. [Benefit_Options-2.pdf].","role":"assistant"},"context":null,"sessionState":null} diff --git a/tests/snapshots/test_api_routes/test_simple_chat_flow/simple_chat_flow_response.json b/tests/snapshots/test_api_routes/test_simple_chat_flow/simple_chat_flow_response.json index 0a145b99..ca9bc1bb 100644 --- a/tests/snapshots/test_api_routes/test_simple_chat_flow/simple_chat_flow_response.json +++ b/tests/snapshots/test_api_routes/test_simple_chat_flow/simple_chat_flow_response.json @@ -51,8 +51,8 @@ } ], "props": { - "model": "gpt-35-turbo", - "deployment": "gpt-35-turbo" + "model": "gpt-4o-mini", + "deployment": "gpt-4o-mini" } } ], diff --git a/tests/snapshots/test_api_routes/test_simple_chat_streaming_flow/simple_chat_streaming_flow_response.jsonlines b/tests/snapshots/test_api_routes/test_simple_chat_streaming_flow/simple_chat_streaming_flow_response.jsonlines index bcc59765..e79e5461 100644 --- a/tests/snapshots/test_api_routes/test_simple_chat_streaming_flow/simple_chat_streaming_flow_response.jsonlines +++ b/tests/snapshots/test_api_routes/test_simple_chat_streaming_flow/simple_chat_streaming_flow_response.jsonlines @@ -1,2 +1,2 @@ -{"delta":null,"context":{"data_points":{"1":{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}},"thoughts":[{"title":"Search query for database","description":"What is the capital of France?","props":{"top":1,"vector_search":true,"text_search":true}},{"title":"Search results","description":[{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}],"props":{}},{"title":"Prompt to generate answer","description":[{"role":"system","content":"Assistant helps customers with questions about products.\nRespond as if you are a salesperson helping a customer in a store. Do NOT respond with tables.\nAnswer ONLY with the product details listed in the products.\nIf there isn't enough information below, say you don't know.\nDo not generate answers that don't use the sources below.\nEach product has an ID in brackets followed by colon and the product details.\nAlways include the product ID for each product you use in the response.\nUse square brackets to reference the source, for example [52].\nDon't combine citations, list each product separately, for example [27][51]."},{"role":"user","content":"What is the capital of France?\n\nSources:\n[1]:Name:Wanderer Black Hiking Boots Description:Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long. Price:109.99 Brand:Daybird Type:Footwear\n\n"}],"props":{"model":"gpt-35-turbo","deployment":"gpt-35-turbo"}}],"followup_questions":null},"sessionState":null} +{"delta":null,"context":{"data_points":{"1":{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}},"thoughts":[{"title":"Search query for database","description":"What is the capital of France?","props":{"top":1,"vector_search":true,"text_search":true}},{"title":"Search results","description":[{"id":1,"type":"Footwear","brand":"Daybird","name":"Wanderer Black Hiking Boots","description":"Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long.","price":109.99}],"props":{}},{"title":"Prompt to generate answer","description":[{"role":"system","content":"Assistant helps customers with questions about products.\nRespond as if you are a salesperson helping a customer in a store. Do NOT respond with tables.\nAnswer ONLY with the product details listed in the products.\nIf there isn't enough information below, say you don't know.\nDo not generate answers that don't use the sources below.\nEach product has an ID in brackets followed by colon and the product details.\nAlways include the product ID for each product you use in the response.\nUse square brackets to reference the source, for example [52].\nDon't combine citations, list each product separately, for example [27][51]."},{"role":"user","content":"What is the capital of France?\n\nSources:\n[1]:Name:Wanderer Black Hiking Boots Description:Daybird's Wanderer Hiking Boots in sleek black are perfect for all your outdoor adventures. These boots are made with a waterproof leather upper and a durable rubber sole for superior traction. With their cushioned insole and padded collar, these boots will keep you comfortable all day long. Price:109.99 Brand:Daybird Type:Footwear\n\n"}],"props":{"model":"gpt-4o-mini","deployment":"gpt-4o-mini"}}],"followup_questions":null},"sessionState":null} {"delta":{"content":"The capital of France is Paris. [Benefit_Options-2.pdf].","role":"assistant"},"context":null,"sessionState":null} diff --git a/tests/test_dependencies.py b/tests/test_dependencies.py index 732bec88..4565de1f 100644 --- a/tests/test_dependencies.py +++ b/tests/test_dependencies.py @@ -1,15 +1,15 @@ import pytest -from fastapi_app.dependencies import common_parameters, get_azure_credentials +from fastapi_app.dependencies import common_parameters, get_azure_credential @pytest.mark.asyncio async def test_get_common_parameters(mock_session_env): result = await common_parameters() - assert result.openai_chat_model == "gpt-35-turbo" + assert result.openai_chat_model == "gpt-4o-mini" assert result.openai_embed_model == "text-embedding-ada-002" assert result.openai_embed_dimensions == 1536 - assert result.openai_chat_deployment == "gpt-35-turbo" + assert result.openai_chat_deployment == "gpt-4o-mini" assert result.openai_embed_deployment == "text-embedding-ada-002" @@ -34,8 +34,8 @@ async def test_get_common_parameters_openai(mock_session_env_openai): @pytest.mark.asyncio -async def test_get_azure_credentials(mock_session_env, mock_default_azure_credential): - result = await get_azure_credentials() +async def test_get_azure_credential(mock_session_env, mock_default_azure_credential): + result = await get_azure_credential() token = result.get_token("https://vault.azure.net") assert token.expires_on == 9999999999 assert token.token == "" diff --git a/tests/test_openai_clients.py b/tests/test_openai_clients.py index 722445a5..a128356c 100644 --- a/tests/test_openai_clients.py +++ b/tests/test_openai_clients.py @@ -19,6 +19,6 @@ async def test_create_openai_chat_client(mock_default_azure_credential, mock_ope openai_chat_client = await create_openai_chat_client(mock_default_azure_credential) assert openai_chat_client.chat.completions.create is not None response = await openai_chat_client.chat.completions.create( - model="gpt-35-turbo", messages=[{"content": "test", "role": "user"}] + model="gpt-4o-mini", messages=[{"content": "test", "role": "user"}] ) assert response.choices[0].message.content == "The capital of France is Paris. [Benefit_Options-2.pdf]." From a1d56ca2ec50fd753a17659d7bdf3d780f987958 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 21:58:20 +0000 Subject: [PATCH 05/29] Configure Azure Developer Pipeline From b47a2dbd9875c20d7ba845aad16d5696bfa9da77 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 22:01:24 +0000 Subject: [PATCH 06/29] Fix CI --- .github/workflows/evaluate.yaml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index e3a6a2ae..fdcf27fd 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -38,20 +38,10 @@ jobs: # Postgres environment variables are not needed, as they're passed in below steps: - uses: actions/checkout@v4 - - name: Check for MacOS Runner - if: matrix.os == 'macos-latest-xlarge' - run: brew install postgresql@14 - - name: Install pgvector on Windows using install-pgvector.bat - if: matrix.os == 'windows-latest' - shell: cmd - run: .github\workflows\install-pgvector.bat - - name: Install PostgreSQL development libraries - if: matrix.os == 'ubuntu-latest' run: | sudo apt update sudo apt install postgresql-server-dev-14 - - name: Setup postgres uses: ikalnytskyi/action-setup-postgres@v6 with: @@ -60,13 +50,12 @@ jobs: database: postgres - name: Install pgvector on MacOS/Linux using install-pgvector.sh - if: matrix.os != 'windows-latest' run: .github/workflows/install-pgvector.sh - name: Install python uses: actions/setup-python@v5 with: - python-version: '3.12' # install the python version needed + python-version: '3.12' - name: Install azd uses: Azure/setup-azd@v1.0.0 From fa64c0e3772920b1efb0863fc1f0d32a24fb3851 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 22:12:45 +0000 Subject: [PATCH 07/29] Nohup --- .github/workflows/evaluate.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index fdcf27fd..cf386dcd 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -104,9 +104,9 @@ jobs: az account set --subscription ${{env.AZURE_SUBSCRIPTION_ID}} - - name: Run local server + - name: Run local server in background run: | - python3 -m uvicorn fastapi_app:create_app --factory + nohup python3 -m uvicorn fastapi_app:create_app --factory & - name: Evaluate local RAG flow run: | From a01686a961e7151533e0bf6a9845d3d7a9c63e60 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 22:19:43 +0000 Subject: [PATCH 08/29] Update target URL --- evals/eval_config.json | 2 +- evals/evaluate.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/evals/eval_config.json b/evals/eval_config.json index 82653d21..c51f9e79 100644 --- a/evals/eval_config.json +++ b/evals/eval_config.json @@ -2,7 +2,7 @@ "testdata_path": "ground_truth.jsonl", "results_dir": "results/experiment", "requested_metrics": ["gpt_groundedness", "gpt_relevance", "answer_length", "latency", "citation_match"], - "target_url": "http://host.docker.internal:8000/chat", + "target_url": "http://127.0.0.1:8000/chat", "target_parameters": { "overrides": { "use_advanced_flow": true, diff --git a/evals/evaluate.py b/evals/evaluate.py index 4996e3d4..46579ace 100644 --- a/evals/evaluate.py +++ b/evals/evaluate.py @@ -50,6 +50,10 @@ def get_openai_config() -> dict: load_dotenv(".env", override=True) openai_config = get_openai_config() + # TODO: specify the localhost URL using argument + # TODO: specify the experiment name (based on PR number) + # TODO: Specify the num questions using argument + run_evaluate_from_config( working_dir=Path(__file__).parent, config_path="eval_config.json", openai_config=openai_config, num_questions=2 ) From d41ed1abf3af4ea5cdc0349551c8e5bc5d52bed6 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 22:34:37 +0000 Subject: [PATCH 09/29] Keep server running --- .github/workflows/evaluate.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index cf386dcd..340b4ed7 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -106,7 +106,7 @@ jobs: - name: Run local server in background run: | - nohup python3 -m uvicorn fastapi_app:create_app --factory & + RUNNER_TRACKING_ID="" && (nohup python3 -m uvicorn fastapi_app:create_app --factory &) - name: Evaluate local RAG flow run: | From c1d9861b19df0cbbc804727848e91c26700b8aef Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 22:40:58 +0000 Subject: [PATCH 10/29] Login with azd --- .github/workflows/evaluate.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index 340b4ed7..6c270bea 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -103,6 +103,14 @@ jobs: inlineScript: | az account set --subscription ${{env.AZURE_SUBSCRIPTION_ID}} + - name: Log in with Azure (Federated Credentials) + if: ${{ env.AZURE_CLIENT_ID != '' }} + run: | + azd auth login ` + --client-id "$Env:AZURE_CLIENT_ID" ` + --federated-credential-provider "github" ` + --tenant-id "$Env:AZURE_TENANT_ID" + shell: pwsh - name: Run local server in background run: | From c8d4194eb052a7b0db66723317d2faafe748e6cd Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Thu, 3 Oct 2024 22:59:33 +0000 Subject: [PATCH 11/29] Add error output --- src/backend/fastapi_app/routes/api_routes.py | 64 +++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/src/backend/fastapi_app/routes/api_routes.py b/src/backend/fastapi_app/routes/api_routes.py index adc988b0..1aa133b8 100644 --- a/src/backend/fastapi_app/routes/api_routes.py +++ b/src/backend/fastapi_app/routes/api_routes.py @@ -89,7 +89,7 @@ async def search_handler( return [ItemPublic.model_validate(item.to_dict()) for item in results] -@router.post("/chat", response_model=RetrievalResponse) +@router.post("/chat", response_model=RetrievalResponse | dict) async def chat_handler( context: CommonDeps, database_session: DBSession, @@ -97,37 +97,41 @@ async def chat_handler( openai_chat: ChatClient, chat_request: ChatRequest, ): - searcher = PostgresSearcher( - db_session=database_session, - openai_embed_client=openai_embed.client, - embed_deployment=context.openai_embed_deployment, - embed_model=context.openai_embed_model, - embed_dimensions=context.openai_embed_dimensions, - embedding_column=context.embedding_column, - ) - rag_flow: SimpleRAGChat | AdvancedRAGChat - if chat_request.context.overrides.use_advanced_flow: - rag_flow = AdvancedRAGChat( - searcher=searcher, - openai_chat_client=openai_chat.client, - chat_model=context.openai_chat_model, - chat_deployment=context.openai_chat_deployment, + try: + searcher = PostgresSearcher( + db_session=database_session, + openai_embed_client=openai_embed.client, + embed_deployment=context.openai_embed_deployment, + embed_model=context.openai_embed_model, + embed_dimensions=context.openai_embed_dimensions, + embedding_column=context.embedding_column, ) - else: - rag_flow = SimpleRAGChat( - searcher=searcher, - openai_chat_client=openai_chat.client, - chat_model=context.openai_chat_model, - chat_deployment=context.openai_chat_deployment, + rag_flow: SimpleRAGChat | AdvancedRAGChat + if chat_request.context.overrides.use_advanced_flow: + rag_flow = AdvancedRAGChat( + searcher=searcher, + openai_chat_client=openai_chat.client, + chat_model=context.openai_chat_model, + chat_deployment=context.openai_chat_deployment, + ) + else: + rag_flow = SimpleRAGChat( + searcher=searcher, + openai_chat_client=openai_chat.client, + chat_model=context.openai_chat_model, + chat_deployment=context.openai_chat_deployment, + ) + + chat_params = rag_flow.get_params(chat_request.messages, chat_request.context.overrides) + + contextual_messages, results, thoughts = await rag_flow.prepare_context(chat_params) + response = await rag_flow.answer( + chat_params=chat_params, contextual_messages=contextual_messages, results=results, earlier_thoughts=thoughts ) - - chat_params = rag_flow.get_params(chat_request.messages, chat_request.context.overrides) - - contextual_messages, results, thoughts = await rag_flow.prepare_context(chat_params) - response = await rag_flow.answer( - chat_params=chat_params, contextual_messages=contextual_messages, results=results, earlier_thoughts=thoughts - ) - return response + return response + except Exception as e: + # return exception inside JSON + return {"error": str(e)} @router.post("/chat/stream") From ceb09a61266c97ec8230b424c21a2cb319444cf3 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 17:54:57 +0000 Subject: [PATCH 12/29] Try to get server logs --- .github/workflows/evaluate.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index 6c270bea..4212a559 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -114,12 +114,18 @@ jobs: - name: Run local server in background run: | - RUNNER_TRACKING_ID="" && (nohup python3 -m uvicorn fastapi_app:create_app --factory &) + RUNNER_TRACKING_ID="" && (nohup python3 -m uvicorn fastapi_app:create_app --factory > serverlogs.out 2> serverlogs.err &) - name: Evaluate local RAG flow run: | python evals/evaluate.py + - name: Upload server logs as build artifact + uses: actions/upload-artifact@v4 + with: + name: server_logs + path: ./serverlogs.out + - name: Upload eval results as build artifact uses: actions/upload-artifact@v4 with: From 3d77debf76ca328af51c8051361ac424ae63a098 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 18:03:52 +0000 Subject: [PATCH 13/29] More log upload --- .github/workflows/app-tests.yaml | 28 ++++++++++++++-------------- .github/workflows/evaluate.yaml | 6 ++++++ 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/.github/workflows/app-tests.yaml b/.github/workflows/app-tests.yaml index ff5e930f..7e2747ba 100755 --- a/.github/workflows/app-tests.yaml +++ b/.github/workflows/app-tests.yaml @@ -1,20 +1,20 @@ name: App Tests on: - push: - branches: [ main ] - paths-ignore: - - "**.md" - - ".azdo/**" - - ".devcontainer/**" - - ".github/**" - pull_request: - branches: [ main ] - paths-ignore: - - "**.md" - - ".azdo/**" - - ".devcontainer/**" - - ".github/**" + # push: + # branches: [ main ] + # paths-ignore: + # - "**.md" + # - ".azdo/**" + # - ".devcontainer/**" + # - ".github/**" + # pull_request: + # branches: [ main ] + # paths-ignore: + # - "**.md" + # - ".azdo/**" + # - ".devcontainer/**" + # - ".github/**" workflow_dispatch: permissions: diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index 4212a559..edf56186 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -126,6 +126,12 @@ jobs: name: server_logs path: ./serverlogs.out + - name: Upload server error logs as build artifact + uses: actions/upload-artifact@v4 + with: + name: server_error_logs + path: ./serverlogs.err + - name: Upload eval results as build artifact uses: actions/upload-artifact@v4 with: From 9e6db059c25aecc25adb7e45f3737494609bd460 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 18:22:04 +0000 Subject: [PATCH 14/29] Change env, logging --- .github/workflows/evaluate.yaml | 34 +++++++++++++---------- src/backend/fastapi_app/openai_clients.py | 16 ++++++++--- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index edf56186..be3f8c15 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -23,19 +23,6 @@ jobs: AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }} - OPENAI_CHAT_HOST: ${{ vars.OPENAI_CHAT_HOST }} - OPENAI_EMBED_HOST: ${{ vars.OPENAI_EMBED_HOST }} - AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }} - AZURE_OPENAI_VERSION: ${{ vars.AZURE_OPENAI_VERSION }} - AZURE_OPENAI_CHAT_DEPLOYMENT: ${{ vars.AZURE_OPENAI_CHAT_DEPLOYMENT }} - AZURE_OPENAI_CHAT_MODEL: ${{ vars.AZURE_OPENAI_CHAT_MODEL }} - AZURE_OPENAI_EMBED_DEPLOYMENT: ${{ vars.AZURE_OPENAI_EMBED_DEPLOYMENT }} - AZURE_OPENAI_EMBED_MODEL: ${{ vars.AZURE_OPENAI_EMBED_MODEL }} - AZURE_OPENAI_EMBED_DIMENSIONS: ${{ vars.AZURE_OPENAI_EMBED_DIMENSIONS }} - AZURE_OPENAI_EMBEDDING_COLUMN: ${{ vars.AZURE_OPENAI_EMBEDDING_COLUMN }} - AZURE_OPENAI_EVAL_DEPLOYMENT: ${{ vars.AZURE_OPENAI_EVAL_DEPLOYMENT }} - AZURE_OPENAI_EVAL_MODEL: ${{ vars.AZURE_OPENAI_EVAL_MODEL }} - # Postgres environment variables are not needed, as they're passed in below steps: - uses: actions/checkout@v4 - name: Install PostgreSQL development libraries @@ -115,11 +102,28 @@ jobs: - name: Run local server in background run: | RUNNER_TRACKING_ID="" && (nohup python3 -m uvicorn fastapi_app:create_app --factory > serverlogs.out 2> serverlogs.err &) - + env: + OPENAI_CHAT_HOST: ${{ vars.OPENAI_CHAT_HOST }} + OPENAI_EMBED_HOST: ${{ vars.OPENAI_EMBED_HOST }} + AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }} + AZURE_OPENAI_VERSION: ${{ vars.AZURE_OPENAI_VERSION }} + AZURE_OPENAI_CHAT_DEPLOYMENT: ${{ vars.AZURE_OPENAI_CHAT_DEPLOYMENT }} + AZURE_OPENAI_CHAT_MODEL: ${{ vars.AZURE_OPENAI_CHAT_MODEL }} + AZURE_OPENAI_EMBED_DEPLOYMENT: ${{ vars.AZURE_OPENAI_EMBED_DEPLOYMENT }} + AZURE_OPENAI_EMBED_MODEL: ${{ vars.AZURE_OPENAI_EMBED_MODEL }} + AZURE_OPENAI_EMBED_DIMENSIONS: ${{ vars.AZURE_OPENAI_EMBED_DIMENSIONS }} + AZURE_OPENAI_EMBEDDING_COLUMN: ${{ vars.AZURE_OPENAI_EMBEDDING_COLUMN }} - name: Evaluate local RAG flow run: | python evals/evaluate.py - + env: + OPENAI_CHAT_HOST: ${{ vars.OPENAI_CHAT_HOST }} + AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }} + AZURE_OPENAI_VERSION: ${{ vars.AZURE_OPENAI_VERSION }} + AZURE_OPENAI_CHAT_DEPLOYMENT: ${{ vars.AZURE_OPENAI_CHAT_DEPLOYMENT }} + AZURE_OPENAI_CHAT_MODEL: ${{ vars.AZURE_OPENAI_CHAT_MODEL }} + AZURE_OPENAI_EVAL_DEPLOYMENT: ${{ vars.AZURE_OPENAI_EVAL_DEPLOYMENT }} + AZURE_OPENAI_EVAL_MODEL: ${{ vars.AZURE_OPENAI_EVAL_MODEL }} - name: Upload server logs as build artifact uses: actions/upload-artifact@v4 with: diff --git a/src/backend/fastapi_app/openai_clients.py b/src/backend/fastapi_app/openai_clients.py index db8be9d0..7fce43d4 100644 --- a/src/backend/fastapi_app/openai_clients.py +++ b/src/backend/fastapi_app/openai_clients.py @@ -17,7 +17,11 @@ async def create_openai_chat_client( azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] azure_deployment = os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"] if api_key := os.getenv("AZURE_OPENAI_KEY"): - logger.info("Authenticating to Azure OpenAI using API key...") + logger.info( + "Setting up Azure OpenAI client using API key, endpoint %s, deployment %s", + azure_endpoint, + azure_deployment, + ) openai_chat_client = openai.AsyncAzureOpenAI( api_version=api_version, azure_endpoint=azure_endpoint, @@ -25,7 +29,11 @@ async def create_openai_chat_client( api_key=api_key, ) else: - logger.info("Authenticating to Azure OpenAI Chat using Azure Identity...") + logger.info( + "Setting up Azure OpenAI client using Azure Identity, endpoint %s, deployment %s", + azure_endpoint, + azure_deployment, + ) token_provider = azure.identity.get_bearer_token_provider( azure_credential, "https://cognitiveservices.azure.com/.default" ) @@ -36,13 +44,13 @@ async def create_openai_chat_client( azure_ad_token_provider=token_provider, ) elif OPENAI_CHAT_HOST == "ollama": - logger.info("Authenticating to OpenAI using Ollama...") + logger.info("Setting up OpenAI client using Ollama") openai_chat_client = openai.AsyncOpenAI( base_url=os.getenv("OLLAMA_ENDPOINT"), api_key="nokeyneeded", ) else: - logger.info("Authenticating to OpenAI using OpenAI.com API key...") + logger.info("Setting up OpenAI client using OpenAI.com API key") openai_chat_client = openai.AsyncOpenAI(api_key=os.getenv("OPENAICOM_KEY")) return openai_chat_client From 7292376debe2b116aed51de3bf2d94c58d3cc1e0 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 18:32:35 +0000 Subject: [PATCH 15/29] Dix .env --- .github/workflows/evaluate.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index be3f8c15..34b978be 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -57,9 +57,14 @@ jobs: - name: Setup local database with seed data run: | - cp .env.sample .env python ./src/backend/fastapi_app/setup_postgres_database.py python ./src/backend/fastapi_app/setup_postgres_seeddata.py + env: + POSTGRES_HOST: localhost + POSTGRES_USERNAME: admin + POSTGRES_PASSWORD: postgres + POSTGRES_DATABASE: postgres + POSTGRES_SSL: disable - name: Setup node uses: actions/setup-node@v4 @@ -113,6 +118,11 @@ jobs: AZURE_OPENAI_EMBED_MODEL: ${{ vars.AZURE_OPENAI_EMBED_MODEL }} AZURE_OPENAI_EMBED_DIMENSIONS: ${{ vars.AZURE_OPENAI_EMBED_DIMENSIONS }} AZURE_OPENAI_EMBEDDING_COLUMN: ${{ vars.AZURE_OPENAI_EMBEDDING_COLUMN }} + POSTGRES_HOST: localhost + POSTGRES_USERNAME: admin + POSTGRES_PASSWORD: postgres + POSTGRES_DATABASE: postgres + POSTGRES_SSL: disable - name: Evaluate local RAG flow run: | python evals/evaluate.py From 95f1b8d2bc8d98dba4bf06dd1c035da42ac87727 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 18:38:38 +0000 Subject: [PATCH 16/29] Configure Azure Developer Pipeline From ed730fd34657caeaddb02b3686323a341f63bf6b Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 19:10:06 +0000 Subject: [PATCH 17/29] Configure Azure Developer Pipeline --- infra/main.bicep | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index 657b7fb2..8c30402b 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -140,7 +140,7 @@ param embedDeploymentSku string // Set in main.parameters.json param embedDeploymentCapacity int // Set in main.parameters.json @description('Dimensions of the embedding model') -param embedDimensions int = 0 +param embedDimensions int // Set in main.parameters.json param webAppExists bool = false @@ -325,7 +325,7 @@ var webAppEnv = union(azureOpenAIKeyEnv, openAIComKeyEnv, [ } { name: 'AZURE_OPENAI_VERSION' - value: openAIEmbedHost == 'azure' ? azureOpenAIAPIVersion : '' + value: openAIChatHost == 'azure' ? azureOpenAIAPIVersion : '' } ]) @@ -442,11 +442,18 @@ output SERVICE_WEB_NAME string = web.outputs.SERVICE_WEB_NAME output SERVICE_WEB_URI string = web.outputs.SERVICE_WEB_URI output SERVICE_WEB_IMAGE_NAME string = web.outputs.SERVICE_WEB_IMAGE_NAME +output OPENAI_CHAT_HOST string = openAIChatHost +output OPENAI_EMBED_HOST string = openAIEmbedHost output AZURE_OPENAI_ENDPOINT string = !empty(azureOpenAIEndpoint) ? azureOpenAIEndpoint : (deployAzureOpenAI ? openAI.outputs.endpoint : '') +output AZURE_OPENAI_VERSION string = openAIEmbedHost == 'chat' ? azureOpenAIAPIVersion : '' output AZURE_OPENAI_CHAT_DEPLOYMENT string = deployAzureOpenAI ? chatDeploymentName : '' +output AZURE_OPENAI_CHAT_MODEL string = deployAzureOpenAI ? chatModelName : '' output AZURE_OPENAI_EMBED_DEPLOYMENT string = deployAzureOpenAI ? embedDeploymentName : '' +output AZURE_OPENAI_EMBED_MODEL string = deployAzureOpenAI ? embedModelName : '' +output AZURE_OPENAI_EMBED_DIMENSIONS string = deployAzureOpenAI ? string(embedDimensions) : '' + output AZURE_OPENAI_EVAL_DEPLOYMENT string = deployAzureOpenAI ? evalDeploymentName : '' output AZURE_OPENAI_EVAL_MODEL string = deployAzureOpenAI ? evalModelName : '' From 2442d013342c16422afaa273db900d0534fba033 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 19:40:27 +0000 Subject: [PATCH 18/29] Provide default version --- src/backend/fastapi_app/openai_clients.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/fastapi_app/openai_clients.py b/src/backend/fastapi_app/openai_clients.py index 7fce43d4..f049d1f3 100644 --- a/src/backend/fastapi_app/openai_clients.py +++ b/src/backend/fastapi_app/openai_clients.py @@ -13,7 +13,7 @@ async def create_openai_chat_client( openai_chat_client: openai.AsyncAzureOpenAI | openai.AsyncOpenAI OPENAI_CHAT_HOST = os.getenv("OPENAI_CHAT_HOST") if OPENAI_CHAT_HOST == "azure": - api_version = os.environ["AZURE_OPENAI_VERSION"] + api_version = os.environ["AZURE_OPENAI_VERSION"] or "2024-03-01-preview" azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] azure_deployment = os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"] if api_key := os.getenv("AZURE_OPENAI_KEY"): From 6835c8417ba5d5f80e401430cba83a98ae10bb6e Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 19:48:46 +0000 Subject: [PATCH 19/29] Get azd up to finish --- .github/workflows/azure-dev.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/azure-dev.yaml b/.github/workflows/azure-dev.yaml index 4cc9a3c8..7cf0221f 100644 --- a/.github/workflows/azure-dev.yaml +++ b/.github/workflows/azure-dev.yaml @@ -2,10 +2,11 @@ name: Deploy with azd on: workflow_dispatch: + # TODO: change later push: - branches: - - main - + branches: [ main ] + pull_request: + branches: [ main ] # GitHub Actions workflow to deploy to Azure using azd # To configure required secrets for connecting to Azure, simply run `azd pipeline config` From eb2c987889e2193280977ece4bb3486caee20ed9 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 20:02:20 +0000 Subject: [PATCH 20/29] Grant SP the role as well --- infra/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/main.bicep b/infra/main.bicep index 8c30402b..226e9e0d 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -407,7 +407,7 @@ module openAI 'core/ai/cognitiveservices.bicep' = if (deployAzureOpenAI) { } // USER ROLES -module openAIRoleUser 'core/security/role.bicep' = if (empty(runningOnGh)) { +module openAIRoleUser 'core/security/role.bicep' = { scope: openAIResourceGroup name: 'openai-role-user' params: { From cf4f1830e1c609f9329c09e36377a1e04e56ce1a Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 7 Oct 2024 20:20:12 +0000 Subject: [PATCH 21/29] Grant SP the role as well --- infra/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/main.bicep b/infra/main.bicep index 226e9e0d..f3c0aa79 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -413,7 +413,7 @@ module openAIRoleUser 'core/security/role.bicep' = { params: { principalId: principalId roleDefinitionId: '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd' - principalType: 'User' + principalType: empty(runningOnGh) ? 'User' : 'ServicePrincipal' } } From c8f3b031ddb54e60c441d7b7a12857b61ca8ef5e Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 13:34:02 +0000 Subject: [PATCH 22/29] Configure Azure Developer Pipeline --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29801d71..43069b89 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ Once you've opened the project in [Codespaces](#github-codespaces), [Dev Contain azd up ``` - You will be asked to select two locations, first a region for most of the resources (Container Apps, PostgreSQL), then a region specifically for the Azure OpenAI models. This project uses the gpt-3.5-turbo (version 0125) and text-embedding-ada-002 models which may not be available in all Azure regions. Check for [up-to-date region availability](https://learn.microsoft.com/azure/ai-services/openai/concepts/models#standard-deployment-model-availability) and select a region accordingly. + You will be asked to select two locations, first a region for most of the resources (Container Apps, PostgreSQL), then a region specifically for the Azure OpenAI models. This project uses the gpt-4o-mini and text-embedding-ada-002 models which may not be available in all Azure regions. Check for [up-to-date region availability](https://learn.microsoft.com/azure/ai-services/openai/concepts/models#standard-deployment-model-availability) and select a region accordingly. ## Local Development From 7aca63273b750d146a2d91f13fb368b6f65ecda9 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 14:27:14 +0000 Subject: [PATCH 23/29] Add missing outputs --- azure.yaml | 2 ++ infra/main.bicep | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/azure.yaml b/azure.yaml index 0f719aea..0a74a2d6 100644 --- a/azure.yaml +++ b/azure.yaml @@ -47,10 +47,12 @@ pipeline: - AZURE_OPENAI_CHAT_MODEL - AZURE_OPENAI_CHAT_DEPLOYMENT_VERSION - AZURE_OPENAI_CHAT_DEPLOYMENT_CAPACITY + - AZURE_OPENAI_EVAL_DEPLOYMENT_SKU - AZURE_OPENAI_EMBED_DEPLOYMENT - AZURE_OPENAI_EMBED_MODEL - AZURE_OPENAI_EMBED_DEPLOYMENT_VERSION - AZURE_OPENAI_EMBED_DEPLOYMENT_CAPACITY + - AZURE_OPENAI_EMBED_DEPLOYMENT_SKU - AZURE_OPENAI_EMBED_DIMENSIONS - AZURE_OPENAI_EMBEDDING_COLUMN - AZURE_OPENAI_EVAL_DEPLOYMENT diff --git a/infra/main.bicep b/infra/main.bicep index f3c0aa79..e0ee087d 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -449,12 +449,21 @@ output AZURE_OPENAI_ENDPOINT string = !empty(azureOpenAIEndpoint) : (deployAzureOpenAI ? openAI.outputs.endpoint : '') output AZURE_OPENAI_VERSION string = openAIEmbedHost == 'chat' ? azureOpenAIAPIVersion : '' output AZURE_OPENAI_CHAT_DEPLOYMENT string = deployAzureOpenAI ? chatDeploymentName : '' +output AZURE_OPENAI_CHAT_DEPLOYMENT_VERSION string = deployAzureOpenAI ? chatDeploymentVersion : '' +output AZURE_OPENAI_CHAT_DEPLOYMENT_CAPACITY int = deployAzureOpenAI ? chatDeploymentCapacity : 0 +output AZURE_OPENAI_CHAT_DEPLOYMENT_SKU string = deployAzureOpenAI ? chatDeploymentSku : '' output AZURE_OPENAI_CHAT_MODEL string = deployAzureOpenAI ? chatModelName : '' output AZURE_OPENAI_EMBED_DEPLOYMENT string = deployAzureOpenAI ? embedDeploymentName : '' +output AZURE_OPENAI_EMBED_DEPLOYMENT_VERSION string = deployAzureOpenAI ? embedDeploymentVersion : '' +output AZURE_OPENAI_EMBED_DEPLOYMENT_CAPACITY int = deployAzureOpenAI ? embedDeploymentCapacity : 0 +output AZURE_OPENAI_EMBED_DEPLOYMENT_SKU string = deployAzureOpenAI ? embedDeploymentSku : '' output AZURE_OPENAI_EMBED_MODEL string = deployAzureOpenAI ? embedModelName : '' output AZURE_OPENAI_EMBED_DIMENSIONS string = deployAzureOpenAI ? string(embedDimensions) : '' output AZURE_OPENAI_EVAL_DEPLOYMENT string = deployAzureOpenAI ? evalDeploymentName : '' +output AZURE_OPENAI_EVAL_DEPLOYMENT_VERSION string = deployAzureOpenAI ? evalDeploymentVersion : '' +output AZURE_OPENAI_EVAL_DEPLOYMENT_CAPACITY string = deployAzureOpenAI ? evalDeploymentCapacity : '' +output AZURE_OPENAI_EVAL_DEPLOYMENT_SKU string = deployAzureOpenAI ? evalDeploymentSku : '' output AZURE_OPENAI_EVAL_MODEL string = deployAzureOpenAI ? evalModelName : '' output POSTGRES_HOST string = postgresServer.outputs.POSTGRES_DOMAIN_NAME From e15dc6d102b7891ee3dcecd892c6aa84fe7b47e6 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 14:40:04 +0000 Subject: [PATCH 24/29] Also provision --- .github/workflows/evaluate.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index 34b978be..863b05a6 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -104,6 +104,11 @@ jobs: --tenant-id "$Env:AZURE_TENANT_ID" shell: pwsh + - name: Provision Infrastructure + run: azd provision --no-prompt + env: + AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }} + - name: Run local server in background run: | RUNNER_TRACKING_ID="" && (nohup python3 -m uvicorn fastapi_app:create_app --factory > serverlogs.out 2> serverlogs.err &) From f64ddd8bdee5a837f78069ac62cb6afb9b56cd5c Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 16:33:12 +0000 Subject: [PATCH 25/29] Evaluate on comment --- .devcontainer/devcontainer.json | 2 +- .github/workflows/app-tests.yaml | 28 ++++++++++++++-------------- .github/workflows/azure-dev.yaml | 4 +--- .github/workflows/evaluate.yaml | 15 +++++++++------ 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9220951c..0ba3448a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -20,7 +20,7 @@ "version": "1.10.1" }, "ghcr.io/prulloac/devcontainer-features/ollama:1": {}, - // az feature + // az CLI is helpful for being able to login correctly with DefaultAzureCredential: "ghcr.io/devcontainers/features/azure-cli": {} }, // Configure tool-specific properties. diff --git a/.github/workflows/app-tests.yaml b/.github/workflows/app-tests.yaml index 7e2747ba..ff5e930f 100755 --- a/.github/workflows/app-tests.yaml +++ b/.github/workflows/app-tests.yaml @@ -1,20 +1,20 @@ name: App Tests on: - # push: - # branches: [ main ] - # paths-ignore: - # - "**.md" - # - ".azdo/**" - # - ".devcontainer/**" - # - ".github/**" - # pull_request: - # branches: [ main ] - # paths-ignore: - # - "**.md" - # - ".azdo/**" - # - ".devcontainer/**" - # - ".github/**" + push: + branches: [ main ] + paths-ignore: + - "**.md" + - ".azdo/**" + - ".devcontainer/**" + - ".github/**" + pull_request: + branches: [ main ] + paths-ignore: + - "**.md" + - ".azdo/**" + - ".devcontainer/**" + - ".github/**" workflow_dispatch: permissions: diff --git a/.github/workflows/azure-dev.yaml b/.github/workflows/azure-dev.yaml index 7cf0221f..70675e6b 100644 --- a/.github/workflows/azure-dev.yaml +++ b/.github/workflows/azure-dev.yaml @@ -2,11 +2,9 @@ name: Deploy with azd on: workflow_dispatch: - # TODO: change later push: branches: [ main ] - pull_request: - branches: [ main ] + # GitHub Actions workflow to deploy to Azure using azd # To configure required secrets for connecting to Azure, simply run `azd pipeline config` diff --git a/.github/workflows/evaluate.yaml b/.github/workflows/evaluate.yaml index 863b05a6..73220be3 100644 --- a/.github/workflows/evaluate.yaml +++ b/.github/workflows/evaluate.yaml @@ -2,20 +2,18 @@ name: Evaluate on: workflow_dispatch: - # TODO: change later - push: - branches: [ main ] - pull_request: - branches: [ main ] + issue_comment: + types: [created] # Set up permissions for deploying with secretless Azure federated credentials -# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication +# https://learn.microsoft.com/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication permissions: id-token: write contents: read jobs: evaluate: + if: github.event_name == 'workflow_dispatch' || contains(github.event.comment.body, '#evaluate') runs-on: ubuntu-latest env: AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }} @@ -24,6 +22,11 @@ jobs: AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }} AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }} steps: + - name: Check for evaluate hash tag + if: contains(github.event.comment.body, '#evaluate') + run: | + echo "Comment contains #evaluate hashtag" + - uses: actions/checkout@v4 - name: Install PostgreSQL development libraries run: | From 25a26c2cf840d601ef16a4f7e0a6c82d8765a5f3 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 16:36:43 +0000 Subject: [PATCH 26/29] error model --- src/backend/fastapi_app/__init__.py | 6 +++--- src/backend/fastapi_app/api_models.py | 4 ++++ src/backend/fastapi_app/routes/api_routes.py | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/backend/fastapi_app/__init__.py b/src/backend/fastapi_app/__init__.py index 753d1de3..e4cf5be1 100644 --- a/src/backend/fastapi_app/__init__.py +++ b/src/backend/fastapi_app/__init__.py @@ -52,10 +52,10 @@ def create_app(testing: bool = False): else: if not testing: load_dotenv(override=True) - logging.basicConfig(level=logging.DEBUG) + logging.basicConfig(level=logging.INFO) # Turn off particularly noisy INFO level logs from Azure Core SDK: - # logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.WARNING) - # logging.getLogger("azure.identity").setLevel(logging.WARNING) + logging.getLogger("azure.core.pipeline.policies.http_logging_policy").setLevel(logging.WARNING) + logging.getLogger("azure.identity").setLevel(logging.WARNING) if os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"): logger.info("Configuring Azure Monitor") diff --git a/src/backend/fastapi_app/api_models.py b/src/backend/fastapi_app/api_models.py index 616275c2..e1c71b93 100644 --- a/src/backend/fastapi_app/api_models.py +++ b/src/backend/fastapi_app/api_models.py @@ -52,6 +52,10 @@ class RAGContext(BaseModel): followup_questions: list[str] | None = None +class ErrorResponse(BaseModel): + error: str + + class RetrievalResponse(BaseModel): message: Message context: RAGContext diff --git a/src/backend/fastapi_app/routes/api_routes.py b/src/backend/fastapi_app/routes/api_routes.py index 1aa133b8..57cbe3a1 100644 --- a/src/backend/fastapi_app/routes/api_routes.py +++ b/src/backend/fastapi_app/routes/api_routes.py @@ -9,6 +9,7 @@ from fastapi_app.api_models import ( ChatRequest, + ErrorResponse, ItemPublic, ItemWithDistance, RetrievalResponse, @@ -89,7 +90,7 @@ async def search_handler( return [ItemPublic.model_validate(item.to_dict()) for item in results] -@router.post("/chat", response_model=RetrievalResponse | dict) +@router.post("/chat", response_model=RetrievalResponse | ErrorResponse) async def chat_handler( context: CommonDeps, database_session: DBSession, @@ -130,7 +131,6 @@ async def chat_handler( ) return response except Exception as e: - # return exception inside JSON return {"error": str(e)} From 0ec49e3e6dcf5dc904bc2273f254a06ac6e3a8af Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 17:08:25 +0000 Subject: [PATCH 27/29] mypy fixes --- .github/workflows/app-tests.yaml | 5 +++++ evals/evaluate.py | 11 ++++++----- evals/generate_ground_truth.py | 2 +- pyproject.toml | 1 + 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/app-tests.yaml b/.github/workflows/app-tests.yaml index ff5e930f..d608252d 100755 --- a/.github/workflows/app-tests.yaml +++ b/.github/workflows/app-tests.yaml @@ -80,6 +80,11 @@ jobs: cd ./src/frontend npm install npm run build + - name: cache mypy + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + with: + path: ./.mypy_cache + key: mypy${{ matrix.os }}-${{ matrix.python_version }}-${{ hashFiles('requirements-dev.txt', 'src/backend/requirements.txt', 'src/backend/pyproject.toml') }} - name: Run MyPy run: python3 -m mypy . - name: Run Pytest diff --git a/evals/evaluate.py b/evals/evaluate.py index 46579ace..812a3f09 100644 --- a/evals/evaluate.py +++ b/evals/evaluate.py @@ -1,9 +1,9 @@ import logging import os from pathlib import Path +from typing import Any import azure.identity -from azure.ai.evaluation import AzureOpenAIModelConfiguration, OpenAIModelConfiguration from dotenv import load_dotenv from evaltools.eval.evaluate import run_evaluate_from_config from rich.logging import RichHandler @@ -12,12 +12,13 @@ def get_openai_config() -> dict: + openai_config: dict[str, Any] if os.environ.get("OPENAI_CHAT_HOST") == "azure": azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] - azure_deployment = os.environ.get("AZURE_OPENAI_EVAL_DEPLOYMENT") + azure_deployment = os.environ["AZURE_OPENAI_EVAL_DEPLOYMENT"] if os.environ.get("AZURE_OPENAI_KEY"): logger.info("Using Azure OpenAI Service with API Key from AZURE_OPENAI_KEY") - openai_config: AzureOpenAIModelConfiguration = { + openai_config = { "azure_endpoint": azure_endpoint, "azure_deployment": azure_deployment, "api_key": os.environ["AZURE_OPENAI_KEY"], @@ -29,7 +30,7 @@ def get_openai_config() -> dict: else: logger.info("Authenticating to Azure using Azure Developer CLI Credential") azure_credential = azure.identity.AzureDeveloperCliCredential(process_timeout=60) - openai_config: AzureOpenAIModelConfiguration = { + openai_config = { "azure_endpoint": azure_endpoint, "azure_deployment": azure_deployment, "credential": azure_credential, @@ -39,7 +40,7 @@ def get_openai_config() -> dict: openai_config["model"] = os.environ["AZURE_OPENAI_EVAL_MODEL"] else: logger.info("Using OpenAI Service with API Key from OPENAICOM_KEY") - openai_config: OpenAIModelConfiguration = {"api_key": os.environ["OPENAICOM_KEY"], "model": "gpt-4"} + openai_config = {"api_key": os.environ["OPENAICOM_KEY"], "model": "gpt-4"} return openai_config diff --git a/evals/generate_ground_truth.py b/evals/generate_ground_truth.py index 31934cb5..b50eaa8b 100644 --- a/evals/generate_ground_truth.py +++ b/evals/generate_ground_truth.py @@ -33,7 +33,7 @@ def source_retriever() -> Generator[dict, None, None]: # "content": "\n\n".join([record.to_str_for_rag() for record in records]), # } # Fetch each item individually - records = session.scalars(select(Item).order_by(Item.id)) + records = list(session.scalars(select(Item).order_by(Item.id))) for record in records: logger.info(f"Processing database record: {record.name}") yield {"id": record.id, "content": record.to_str_for_rag()} diff --git a/pyproject.toml b/pyproject.toml index 1f168be0..00ca09ac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ filterwarnings = ["ignore::DeprecationWarning"] [[tool.mypy.overrides]] module = [ "pgvector.*", + "evaltools.*" ] ignore_missing_imports = true From f4b79fd8a417470792e02e3bfa3392ba88decd6e Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 17:22:30 +0000 Subject: [PATCH 28/29] Fix credential --- evals/generate_ground_truth.py | 4 ++-- src/backend/fastapi_app/postgres_engine.py | 4 ++-- tests/conftest.py | 16 ++++++++-------- tests/test_dependencies.py | 2 +- tests/test_embeddings.py | 8 ++++---- tests/test_openai_clients.py | 8 ++++---- tests/test_postgres_engine.py | 12 ++++++------ 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/evals/generate_ground_truth.py b/evals/generate_ground_truth.py index b50eaa8b..c0c1e0a6 100644 --- a/evals/generate_ground_truth.py +++ b/evals/generate_ground_truth.py @@ -3,7 +3,7 @@ from collections.abc import Generator from pathlib import Path -from azure.identity import DefaultAzureCredential +from azure.identity import AzureDeveloperCliCredential from dotenv import load_dotenv from evaltools.gen.generate import generate_test_qa_data from sqlalchemy import create_engine, select @@ -56,7 +56,7 @@ def get_openai_config_dict() -> dict: api_key = os.environ["AZURE_OPENAI_KEY"] else: logger.info("Using Azure OpenAI Service with Azure Developer CLI Credential") - azure_credential = DefaultAzureCredential(process_timeout=60) + azure_credential = AzureDeveloperCliCredential(process_timeout=60) api_key = azure_credential.get_token("https://cognitiveservices.azure.com/.default").token openai_config = { "api_type": "azure", diff --git a/src/backend/fastapi_app/postgres_engine.py b/src/backend/fastapi_app/postgres_engine.py index b51a3b50..364dc3e9 100644 --- a/src/backend/fastapi_app/postgres_engine.py +++ b/src/backend/fastapi_app/postgres_engine.py @@ -1,7 +1,7 @@ import logging import os -from azure.identity import DefaultAzureCredential +from azure.identity import AzureDeveloperCliCredential from sqlalchemy import event from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine @@ -60,7 +60,7 @@ async def create_postgres_engine_from_env(azure_credential=None) -> AsyncEngine: async def create_postgres_engine_from_args(args, azure_credential=None) -> AsyncEngine: if azure_credential is None and args.host.endswith(".database.azure.com"): - azure_credential = DefaultAzureCredential(process_timeout=60) + azure_credential = AzureDeveloperCliCredential(process_timeout=60) return await create_postgres_engine( host=args.host, diff --git a/tests/conftest.py b/tests/conftest.py index bc0749af..87a1eb22 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -274,22 +274,22 @@ async def mock_acreate(*args, **kwargs): @pytest.fixture(scope="function") -def mock_default_azure_credential(mock_session_env): +def mock_azure_credential(mock_session_env): """Mock the Azure credential for testing.""" - with mock.patch("azure.identity.DefaultAzureCredential") as mock_default_azure_credential: - mock_default_azure_credential.return_value = MockAzureCredential() - yield mock_default_azure_credential + with mock.patch("azure.identity.AzureDeveloperCliCredential") as mock_azure_credential: + mock_azure_credential.return_value = MockAzureCredential() + yield mock_azure_credential @pytest_asyncio.fixture(scope="function") -async def test_client(app, mock_default_azure_credential, mock_openai_embedding, mock_openai_chatcompletion): +async def test_client(app, mock_azure_credential, mock_openai_embedding, mock_openai_chatcompletion): """Create a test client.""" with TestClient(app) as test_client: yield test_client @pytest_asyncio.fixture(scope="function") -async def db_session(mock_session_env, mock_default_azure_credential): +async def db_session(mock_session_env, mock_azure_credential): """Create a new database session with a rollback at the end of the test.""" engine = await create_postgres_engine_from_env() async_sesion = async_sessionmaker(autocommit=False, autoflush=False, bind=engine) @@ -302,10 +302,10 @@ async def db_session(mock_session_env, mock_default_azure_credential): @pytest_asyncio.fixture(scope="function") -async def postgres_searcher(mock_session_env, mock_default_azure_credential, db_session, mock_openai_embedding): +async def postgres_searcher(mock_session_env, mock_azure_credential, db_session, mock_openai_embedding): from fastapi_app.postgres_searcher import PostgresSearcher - openai_embed_client = await create_openai_embed_client(mock_default_azure_credential) + openai_embed_client = await create_openai_embed_client(mock_azure_credential) yield PostgresSearcher( db_session=db_session, diff --git a/tests/test_dependencies.py b/tests/test_dependencies.py index 4565de1f..66f7495e 100644 --- a/tests/test_dependencies.py +++ b/tests/test_dependencies.py @@ -34,7 +34,7 @@ async def test_get_common_parameters_openai(mock_session_env_openai): @pytest.mark.asyncio -async def test_get_azure_credential(mock_session_env, mock_default_azure_credential): +async def test_get_azure_credential(mock_session_env, mock_azure_credential): result = await get_azure_credential() token = result.get_token("https://vault.azure.net") assert token.expires_on == 9999999999 diff --git a/tests/test_embeddings.py b/tests/test_embeddings.py index c9a5e8e2..9ecf3637 100644 --- a/tests/test_embeddings.py +++ b/tests/test_embeddings.py @@ -6,8 +6,8 @@ @pytest.mark.asyncio -async def test_compute_text_embedding(mock_default_azure_credential, mock_openai_embedding): - openai_embed_client = await create_openai_embed_client(mock_default_azure_credential) +async def test_compute_text_embedding(mock_azure_credential, mock_openai_embedding): + openai_embed_client = await create_openai_embed_client(mock_azure_credential) result = await compute_text_embedding( q="test", openai_client=openai_embed_client, @@ -18,8 +18,8 @@ async def test_compute_text_embedding(mock_default_azure_credential, mock_openai @pytest.mark.asyncio -async def test_compute_text_embedding_dimensions(mock_default_azure_credential, mock_openai_embedding): - openai_embed_client = await create_openai_embed_client(mock_default_azure_credential) +async def test_compute_text_embedding_dimensions(mock_azure_credential, mock_openai_embedding): + openai_embed_client = await create_openai_embed_client(mock_azure_credential) result = await compute_text_embedding( q="test", openai_client=openai_embed_client, diff --git a/tests/test_openai_clients.py b/tests/test_openai_clients.py index a128356c..3ff00264 100644 --- a/tests/test_openai_clients.py +++ b/tests/test_openai_clients.py @@ -5,8 +5,8 @@ @pytest.mark.asyncio -async def test_create_openai_embed_client(mock_default_azure_credential, mock_openai_embedding): - openai_embed_client = await create_openai_embed_client(mock_default_azure_credential) +async def test_create_openai_embed_client(mock_azure_credential, mock_openai_embedding): + openai_embed_client = await create_openai_embed_client(mock_azure_credential) assert openai_embed_client.embeddings.create is not None embeddings = await openai_embed_client.embeddings.create( model="text-embedding-ada-002", input="test", dimensions=1536 @@ -15,8 +15,8 @@ async def test_create_openai_embed_client(mock_default_azure_credential, mock_op @pytest.mark.asyncio -async def test_create_openai_chat_client(mock_default_azure_credential, mock_openai_chatcompletion): - openai_chat_client = await create_openai_chat_client(mock_default_azure_credential) +async def test_create_openai_chat_client(mock_azure_credential, mock_openai_chatcompletion): + openai_chat_client = await create_openai_chat_client(mock_azure_credential) assert openai_chat_client.chat.completions.create is not None response = await openai_chat_client.chat.completions.create( model="gpt-4o-mini", messages=[{"content": "test", "role": "user"}] diff --git a/tests/test_postgres_engine.py b/tests/test_postgres_engine.py index 098110b9..2bef4d6a 100644 --- a/tests/test_postgres_engine.py +++ b/tests/test_postgres_engine.py @@ -11,14 +11,14 @@ @pytest.mark.asyncio -async def test_create_postgres_engine(mock_session_env, mock_default_azure_credential): +async def test_create_postgres_engine(mock_session_env, mock_azure_credential): engine = await create_postgres_engine( host=os.environ["POSTGRES_HOST"], username=os.environ["POSTGRES_USERNAME"], database=os.environ["POSTGRES_DATABASE"], password=os.environ.get("POSTGRES_PASSWORD"), sslmode=os.environ.get("POSTGRES_SSL"), - azure_credential=mock_default_azure_credential, + azure_credential=mock_azure_credential, ) assert engine.url.host == "localhost" assert engine.url.username == "admin" @@ -28,9 +28,9 @@ async def test_create_postgres_engine(mock_session_env, mock_default_azure_crede @pytest.mark.asyncio -async def test_create_postgres_engine_from_env(mock_session_env, mock_default_azure_credential): +async def test_create_postgres_engine_from_env(mock_session_env, mock_azure_credential): engine = await create_postgres_engine_from_env( - azure_credential=mock_default_azure_credential, + azure_credential=mock_azure_credential, ) assert engine.url.host == "localhost" assert engine.url.username == "admin" @@ -40,7 +40,7 @@ async def test_create_postgres_engine_from_env(mock_session_env, mock_default_az @pytest.mark.asyncio -async def test_create_postgres_engine_from_args(mock_default_azure_credential): +async def test_create_postgres_engine_from_args(mock_azure_credential): args = type( "Args", (), @@ -54,7 +54,7 @@ async def test_create_postgres_engine_from_args(mock_default_azure_credential): ) engine = await create_postgres_engine_from_args( args=args, - azure_credential=mock_default_azure_credential, + azure_credential=mock_azure_credential, ) assert engine.url.host == "localhost" assert engine.url.username == "admin" From 1133f50301ff101ee492e9078734a55af24c99e2 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Wed, 9 Oct 2024 17:48:52 +0000 Subject: [PATCH 29/29] Bring in package-lock.json from main --- src/backend/fastapi_app/openai_clients.py | 24 +- src/frontend/package-lock.json | 5666 ++++++++++++++------- 2 files changed, 3884 insertions(+), 1806 deletions(-) diff --git a/src/backend/fastapi_app/openai_clients.py b/src/backend/fastapi_app/openai_clients.py index f049d1f3..0610aece 100644 --- a/src/backend/fastapi_app/openai_clients.py +++ b/src/backend/fastapi_app/openai_clients.py @@ -18,7 +18,7 @@ async def create_openai_chat_client( azure_deployment = os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"] if api_key := os.getenv("AZURE_OPENAI_KEY"): logger.info( - "Setting up Azure OpenAI client using API key, endpoint %s, deployment %s", + "Setting up Azure OpenAI client for chat completions using API key, endpoint %s, deployment %s", azure_endpoint, azure_deployment, ) @@ -30,7 +30,7 @@ async def create_openai_chat_client( ) else: logger.info( - "Setting up Azure OpenAI client using Azure Identity, endpoint %s, deployment %s", + "Setting up Azure OpenAI client for chat completions using Azure Identity, endpoint %s, deployment %s", azure_endpoint, azure_deployment, ) @@ -44,13 +44,13 @@ async def create_openai_chat_client( azure_ad_token_provider=token_provider, ) elif OPENAI_CHAT_HOST == "ollama": - logger.info("Setting up OpenAI client using Ollama") + logger.info("Setting up OpenAI client for chat completions using Ollama") openai_chat_client = openai.AsyncOpenAI( base_url=os.getenv("OLLAMA_ENDPOINT"), api_key="nokeyneeded", ) else: - logger.info("Setting up OpenAI client using OpenAI.com API key") + logger.info("Setting up OpenAI client for chat completions using OpenAI.com API key") openai_chat_client = openai.AsyncOpenAI(api_key=os.getenv("OPENAICOM_KEY")) return openai_chat_client @@ -66,7 +66,11 @@ async def create_openai_embed_client( azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] azure_deployment = os.environ["AZURE_OPENAI_EMBED_DEPLOYMENT"] if api_key := os.getenv("AZURE_OPENAI_KEY"): - logger.info("Authenticating to Azure OpenAI using API key...") + logger.info( + "Setting up Azure OpenAI client for embeddings using API key, endpoint %s, deployment %s", + azure_endpoint, + azure_deployment, + ) openai_embed_client = openai.AsyncAzureOpenAI( api_version=api_version, azure_endpoint=azure_endpoint, @@ -74,7 +78,11 @@ async def create_openai_embed_client( api_key=api_key, ) else: - logger.info("Authenticating to Azure OpenAI Embedding using Azure Identity...") + logger.info( + "Setting up Azure OpenAI client for embeddings using Azure Identity, endpoint %s, deployment %s", + azure_endpoint, + azure_deployment, + ) token_provider = azure.identity.get_bearer_token_provider( azure_credential, "https://cognitiveservices.azure.com/.default" ) @@ -85,12 +93,12 @@ async def create_openai_embed_client( azure_ad_token_provider=token_provider, ) elif OPENAI_EMBED_HOST == "ollama": - logger.info("Authenticating to OpenAI using Ollama...") + logger.info("Setting up OpenAI client for embeddings using Ollama") openai_embed_client = openai.AsyncOpenAI( base_url=os.getenv("OLLAMA_ENDPOINT"), api_key="nokeyneeded", ) else: - logger.info("Authenticating to OpenAI using OpenAI.com API key...") + logger.info("Setting up OpenAI client for embeddings using OpenAI.com API key") openai_embed_client = openai.AsyncOpenAI(api_key=os.getenv("OPENAICOM_KEY")) return openai_embed_client diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 0dc04152..f0aa6253 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -1,7 +1,7 @@ { "name": "frontend", "version": "0.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -15,7 +15,7 @@ "@fluentui/react-icons": "^2.0.221", "@microsoft/ai-chat-protocol": "1.0.0-beta.20240610.1", "@react-spring/web": "^9.7.3", - "dompurify": "^3.0.6", + "dompurify": "^3.1.3", "marked": "^9.1.6", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -31,78 +31,70 @@ "@vitejs/plugin-react": "^4.1.1", "prettier": "^3.0.3", "typescript": "^5.2.2", - "vite": "^4.5.3" + "vite": "^4.5.5" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "version": "2.2.1", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@azure/msal-browser": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.24.0.tgz", - "integrity": "sha512-JGNV9hTYAa7lsum9IMIibn2kKczAojNihGo1hi7pG0kNrcKej530Fl6jxwM05A44/6I079CSn6WxYxbVhKUmWg==", + "version": "3.4.0", "license": "MIT", "dependencies": { - "@azure/msal-common": "14.15.0" + "@azure/msal-common": "14.3.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.15.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.15.0.tgz", - "integrity": "sha512-ImAQHxmpMneJ/4S8BRFhjt1MZ3bppmpRPYYNyzeQPeFN288YKbb8TmmISQEbtfkQ1BPASvYZU5doIZOPBAqENQ==", + "version": "14.3.0", "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-react": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@azure/msal-react/-/msal-react-2.1.0.tgz", - "integrity": "sha512-XsEAaOONTOi69ufzks0ycnf/MlqXMWRL2ITSmZYOM4RnuGPWP04f3QsuiKRRcwerDTZFwZBJQX+nr9ecODeP1A==", + "version": "2.0.6", "license": "MIT", + "dependencies": { + "@rollup/plugin-typescript": "^11.1.0", + "rollup": "^3.20.2" + }, "engines": { "node": ">=10" }, "peerDependencies": { - "@azure/msal-browser": "^3.24.0", + "@azure/msal-browser": "^3.4.0", "react": "^16.8.0 || ^17 || ^18" } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.22.13", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.22.20", "dev": true, "license": "MIT", "engines": { @@ -110,22 +102,20 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.23.2", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -141,15 +131,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.23.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -157,15 +145,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.22.15", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -173,31 +159,58 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.22.15", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.23.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -207,9 +220,7 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.22.5", "dev": true, "license": "MIT", "engines": { @@ -217,23 +228,29 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.22.5", "dev": true, "license": "MIT", "engines": { @@ -241,9 +258,7 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.22.20", "dev": true, "license": "MIT", "engines": { @@ -251,9 +266,7 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.22.15", "dev": true, "license": "MIT", "engines": { @@ -261,44 +274,35 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "version": "7.23.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.22.20", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.23.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.6" - }, "bin": { "parser": "bin/babel-parser.js" }, @@ -307,13 +311,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", - "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "version": "7.22.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -323,13 +325,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", - "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "version": "7.22.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -339,9 +339,7 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "version": "7.22.15", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -351,33 +349,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.22.15", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.23.2", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", - "debug": "^4.3.1", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", "globals": "^11.1.0" }, "engines": { @@ -385,14 +382,12 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.23.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -400,963 +395,786 @@ } }, "node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "version": "0.9.1", "license": "MIT" }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, + "node_modules/@floating-ui/core": { + "version": "1.5.0", "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@floating-ui/utils": "^0.1.3" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "license": "MIT" }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@fluentui/date-time-utilities": { + "version": "8.5.14", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@fluentui/dom-utilities": { + "version": "2.2.12", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@fluentui/font-icons-mdl2": { + "version": "8.5.26", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/utilities": "^8.13.20", + "tslib": "^2.1.0" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@fluentui/foundation-legacy": { + "version": "8.2.46", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/utilities": "^8.13.20", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, + "node_modules/@fluentui/keyboard-key": { + "version": "0.4.12", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.7", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@swc/helpers": "^0.5.1" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, + "node_modules/@fluentui/merge-styles": { + "version": "8.5.13", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, + "node_modules/@fluentui/priority-overflow": { + "version": "9.1.10", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@swc/helpers": "^0.5.1" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "node_modules/@fluentui/react": { + "version": "8.112.5", + "license": "MIT", + "dependencies": { + "@fluentui/date-time-utilities": "^8.5.14", + "@fluentui/font-icons-mdl2": "^8.5.26", + "@fluentui/foundation-legacy": "^8.2.46", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/react-focus": "^8.8.33", + "@fluentui/react-hooks": "^8.6.32", + "@fluentui/react-portal-compat-context": "^9.0.9", + "@fluentui/react-window-provider": "^2.2.16", + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/theme": "^2.6.37", + "@fluentui/utilities": "^8.13.20", + "@microsoft/load-themed-styles": "^1.10.26", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, + "node_modules/@fluentui/react-alert": { + "version": "9.0.0-beta.90", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, + "node_modules/@fluentui/react-alert/node_modules/@fluentui/react-avatar": { + "version": "9.5.48", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, + "node_modules/@fluentui/react-alert/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@fluentui/react-alert/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@fluentui/react-aria": { + "version": "9.4.0", "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", - "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "node_modules/@fluentui/react-badge": { + "version": "9.2.15", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.8" - } - }, - "node_modules/@floating-ui/devtools": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/devtools/-/devtools-0.2.1.tgz", - "integrity": "sha512-8PHJLbD6VhBh+LJ1uty/Bz30qs02NXCE5u8WpOhSewlYXUWl03GNXknr9AS2yaAWJEQaY27x7eByJs44gODBcw==", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, "peerDependencies": { - "@floating-ui/dom": ">=1.5.4" + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@floating-ui/dom": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", - "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", + "node_modules/@fluentui/react-button": { + "version": "9.3.53", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.8" + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@floating-ui/utils": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", - "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==", - "license": "MIT" - }, - "node_modules/@fluentui/date-time-utilities": { - "version": "8.6.9", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.6.9.tgz", - "integrity": "sha512-dgOlVm4nXBWDLqijmvn4iAtyv1hVpQZjN6p0So74BW+7ASUTkQGe3lf8PHV/OjBiXfZa4qwONvmTQBGCheNU0w==", + "node_modules/@fluentui/react-card": { + "version": "9.0.52", "license": "MIT", "dependencies": { - "@fluentui/set-version": "^8.2.23", - "tslib": "^2.1.0" + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/dom-utilities": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.3.7.tgz", - "integrity": "sha512-AaTR9BhJEF0i042NS1Ju8l95f24p2tBMq6jVVbUEDtYnKaxWnpv8R9eYjOwy8SDniQc1ino+BkolIgCVXXvDmw==", + "node_modules/@fluentui/react-checkbox": { + "version": "9.1.54", "license": "MIT", "dependencies": { - "@fluentui/set-version": "^8.2.23", - "tslib": "^2.1.0" + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/font-icons-mdl2": { - "version": "8.5.51", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.5.51.tgz", - "integrity": "sha512-JpDHfQ/ZRSoTc95WIyl4/29d1CxxswQLVClr35LFbZcFOTHHnApSj3m+9u/Cvffcp0uV6NP/TSsW6KMvBWg19w==", - "license": "MIT", - "dependencies": { - "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.11.0", - "@fluentui/utilities": "^8.15.16", - "tslib": "^2.1.0" + "node_modules/@fluentui/react-components": { + "version": "9.37.3", + "license": "MIT", + "dependencies": { + "@fluentui/react-accordion": "^9.3.26", + "@fluentui/react-alert": "9.0.0-beta.90", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-badge": "^9.2.12", + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-card": "^9.0.52", + "@fluentui/react-checkbox": "^9.1.54", + "@fluentui/react-combobox": "^9.5.28", + "@fluentui/react-dialog": "^9.8.2", + "@fluentui/react-divider": "^9.2.48", + "@fluentui/react-drawer": "9.0.0-beta.40", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-image": "^9.1.45", + "@fluentui/react-infobutton": "9.0.0-beta.74", + "@fluentui/react-infolabel": "^9.0.2", + "@fluentui/react-input": "^9.4.50", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-link": "^9.1.32", + "@fluentui/react-menu": "^9.12.30", + "@fluentui/react-message-bar": "^9.0.4", + "@fluentui/react-overflow": "^9.0.42", + "@fluentui/react-persona": "^9.2.54", + "@fluentui/react-popover": "^9.8.19", + "@fluentui/react-portal": "^9.3.27", + "@fluentui/react-positioning": "^9.9.23", + "@fluentui/react-progress": "^9.1.50", + "@fluentui/react-provider": "^9.11.1", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-select": "^9.1.50", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-skeleton": "^9.0.38", + "@fluentui/react-slider": "^9.1.54", + "@fluentui/react-spinbutton": "^9.2.50", + "@fluentui/react-spinner": "^9.3.28", + "@fluentui/react-switch": "^9.1.54", + "@fluentui/react-table": "^9.10.9", + "@fluentui/react-tabs": "^9.3.55", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-tags": "^9.0.8", + "@fluentui/react-text": "^9.3.45", + "@fluentui/react-textarea": "^9.3.50", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-toast": "^9.3.15", + "@fluentui/react-toolbar": "^9.1.54", + "@fluentui/react-tooltip": "^9.3.20", + "@fluentui/react-tree": "^9.4.11", + "@fluentui/react-utilities": "^9.15.1", + "@fluentui/react-virtualizer": "9.0.0-alpha.55", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/foundation-legacy": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.4.17.tgz", - "integrity": "sha512-IQsecJHtjavZaEFDim48JKo+ovj7FH2Mbc1eRMd1yzlOjiKV0u4n3qIaEaORSsPeLoXIaB3Ytg4l36+RCUXWTQ==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-accordion": { + "version": "9.3.30", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.6.13", - "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.11.0", - "@fluentui/utilities": "^8.15.16", - "tslib": "^2.1.0" + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "react": ">=16.8.0 <19.0.0" + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/keyboard-key": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.23.tgz", - "integrity": "sha512-9GXeyUqNJUdg5JiQUZeGPiKnRzMRi9YEUn1l9zq6X/imYdMhxHrxpVZS12129cBfgvPyxt9ceJpywSfmLWqlKA==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-accordion/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/keyboard-keys": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-keys/-/keyboard-keys-9.0.7.tgz", - "integrity": "sha512-vaQ+lOveQTdoXJYqDQXWb30udSfTVcIuKk1rV0X0eGAgcHeSDeP1HxMy+OgHOQZH3OiBH4ZYeWxb+tmfiDiygQ==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-avatar": { + "version": "9.5.48", "license": "MIT", "dependencies": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/merge-styles": { - "version": "8.6.13", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.6.13.tgz", - "integrity": "sha512-IWgvi2CC+mcQ7/YlCvRjsmHL2+PUz7q+Pa2Rqk3a+QHN0V1uBvgIbKk5y/Y/awwDXy1yJHiqMCcDHjBNmS1d4A==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-avatar/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/set-version": "^8.2.23", - "tslib": "^2.1.0" + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/priority-overflow": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.1.13.tgz", - "integrity": "sha512-yDojVpkhBZTXOYExrCgW1GXbw3x9pYIS617xlNJIc2t06Cd3H32y2p51QXFt94sBmlVyAvPu7UKBHaq1Yw7u+w==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-combobox": { + "version": "9.5.32", "license": "MIT", "dependencies": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" - } - }, - "node_modules/@fluentui/react": { - "version": "8.121.0", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.121.0.tgz", - "integrity": "sha512-LU1bmrasc2+Af0walSH31nYYq4abZdyGdOTwr8wNmCuZgqXIsNHp0lxvACW1F5/FUEPODGh3xlchz47JP1RshA==", - "license": "MIT", - "dependencies": { - "@fluentui/date-time-utilities": "^8.6.9", - "@fluentui/font-icons-mdl2": "^8.5.51", - "@fluentui/foundation-legacy": "^8.4.17", - "@fluentui/merge-styles": "^8.6.13", - "@fluentui/react-focus": "^8.9.14", - "@fluentui/react-hooks": "^8.8.13", - "@fluentui/react-portal-compat-context": "^9.0.12", - "@fluentui/react-window-provider": "^2.2.28", - "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.11.0", - "@fluentui/theme": "^2.6.60", - "@fluentui/utilities": "^8.15.16", - "@microsoft/load-themed-styles": "^1.10.26", - "tslib": "^2.1.0" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", - "react": ">=16.8.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-accordion": { - "version": "9.5.5", - "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.5.5.tgz", - "integrity": "sha512-4zwtmZTcD2jgjxbMTHajhMxRNkFFHIXG060dSVoK73H4vWLKtDYuwQJesfgi2swUim+xhemvcInrLXIoY8pLZw==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-combobox/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-motion": "^9.5.2", - "@fluentui/react-motion-components-preview": "^0.1.4", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-alert": { - "version": "9.0.0-beta.124", - "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.124.tgz", - "integrity": "sha512-yFBo3B5H9hnoaXxlkuz8wRz04DEyQ+ElYA/p5p+Vojf19Zuta8DmFZZ6JtWdtxcdnnQ4LvAfC5OYYlzdReozPA==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-menu": { + "version": "9.12.35", "license": "MIT", "dependencies": { - "@fluentui/react-avatar": "^9.6.29", - "@fluentui/react-button": "^9.3.83", - "@fluentui/react-icons": "^2.0.239", - "@fluentui/react-jsx-runtime": "^9.0.39", - "@fluentui/react-tabster": "^9.21.5", - "@fluentui/react-theme": "^9.1.19", - "@fluentui/react-utilities": "^9.18.10", - "@griffel/react": "^1.5.22", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-aria": { - "version": "9.13.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.13.6.tgz", - "integrity": "sha512-/bepLd2SKL+WHhiHJ8O/Lt+1FxvVeGB+pgbUuSjtPVwafwcA4RNXVlkMQaoYk8sQvnG4oqVa4ToTxUWURaOeNA==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-menu/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-utilities": "^9.18.15", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-avatar": { - "version": "9.6.39", - "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.6.39.tgz", - "integrity": "sha512-of2XMrwTZ4xKsiPEgayJupeI29dAiNBbWos4MCzBJaBS6u9BcaHRenSyzDFViC4jFyvoJQDqftWYThaSwH3PHw==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-overflow": { + "version": "9.1.1", "license": "MIT", "dependencies": { - "@fluentui/react-badge": "^9.2.43", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-popover": "^9.9.21", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-tooltip": "^9.4.39", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/priority-overflow": "^9.1.10", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-badge": { - "version": "9.2.43", - "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.2.43.tgz", - "integrity": "sha512-E+J08RIj2UZ5daq1kN+IgOCf5x4VVnFQTO+XI2bXsqoc/6wFHS2FZ8I7pNQqkWbvZ6cspR7cG7S8RfTR5pQz1Q==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-overflow/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-breadcrumb": { - "version": "9.0.39", - "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.0.39.tgz", - "integrity": "sha512-Y/d3+qwco1WPB/t7BpEES1LIqBrR1A/7r4jdVuNylgiK5OoRRDgRdu7+7ecT0sjnfyhHwv+PnImtXIOnGyKgrQ==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", "dependencies": { - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-button": "^9.3.92", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-link": "^9.2.32", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-button": { - "version": "9.3.92", - "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.3.92.tgz", - "integrity": "sha512-awMMtr3MnXB5Q8ItYJ6s4k5U3RKJImm8qAh0Zm/quK1Aj62fKa4Ro/P+dMzKhi+86VmE9wqVwWr9vim/MHGgow==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-popover/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-card": { - "version": "9.0.94", - "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.0.94.tgz", - "integrity": "sha512-TUzQLdCFcBkESgj6fVRH201OHvYPWB1n8b7unDSX5VjxcnHT8MKu2DWj5KHFmVaEd6sNEgNm58qiAGGjTSvkgg==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-radio": { + "version": "9.1.58", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-text": "^9.4.25", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-checkbox": { - "version": "9.2.37", - "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.2.37.tgz", - "integrity": "sha512-qNJIsZaTqD7vYz547bp14q/nXd5le1bZKApR0NORVf6qLfID0/B5hJ48pUpQV03HrbgBFf8ZiVGzHfwwfHZiLQ==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-tabs": { + "version": "9.3.59", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-label": "^9.1.76", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-combobox": { - "version": "9.13.8", - "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.13.8.tgz", - "integrity": "sha512-+QuiFt1P93JwjtAy2b0cXah9BT0h9I2T1+fm4aX9j1sWME/r5XI/gGgYT15+PvAjxmBxcabYtd+VYYB0MKUoxw==", + "node_modules/@fluentui/react-components/node_modules/@fluentui/react-tabs/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-positioning": "^9.15.9", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-components": { - "version": "9.54.17", - "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.54.17.tgz", - "integrity": "sha512-brnvcEGQG+S16hc9o+cXB9EEJmpicjP1+plYBuc5xKtz2Ljo1fAijM5MGP/pwMcQUU0GATFiVkIzvGwyD7y5aQ==", - "license": "MIT", - "dependencies": { - "@fluentui/react-accordion": "^9.5.5", - "@fluentui/react-alert": "9.0.0-beta.124", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-avatar": "^9.6.39", - "@fluentui/react-badge": "^9.2.43", - "@fluentui/react-breadcrumb": "^9.0.39", - "@fluentui/react-button": "^9.3.92", - "@fluentui/react-card": "^9.0.94", - "@fluentui/react-checkbox": "^9.2.37", - "@fluentui/react-combobox": "^9.13.8", - "@fluentui/react-dialog": "^9.11.16", - "@fluentui/react-divider": "^9.2.75", - "@fluentui/react-drawer": "^9.5.16", - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-image": "^9.1.73", - "@fluentui/react-infobutton": "9.0.0-beta.102", - "@fluentui/react-infolabel": "^9.0.46", - "@fluentui/react-input": "^9.4.89", - "@fluentui/react-label": "^9.1.76", - "@fluentui/react-link": "^9.2.32", - "@fluentui/react-menu": "^9.14.16", - "@fluentui/react-message-bar": "^9.2.12", - "@fluentui/react-motion": "^9.5.2", - "@fluentui/react-overflow": "^9.1.30", - "@fluentui/react-persona": "^9.2.98", - "@fluentui/react-popover": "^9.9.21", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-positioning": "^9.15.9", - "@fluentui/react-progress": "^9.1.87", - "@fluentui/react-provider": "^9.17.4", - "@fluentui/react-radio": "^9.2.32", - "@fluentui/react-rating": "^9.0.19", - "@fluentui/react-search": "^9.0.18", - "@fluentui/react-select": "^9.1.87", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-skeleton": "^9.1.16", - "@fluentui/react-slider": "^9.1.94", - "@fluentui/react-spinbutton": "^9.2.88", - "@fluentui/react-spinner": "^9.4.14", - "@fluentui/react-swatch-picker": "^9.1.10", - "@fluentui/react-switch": "^9.1.94", - "@fluentui/react-table": "^9.15.18", - "@fluentui/react-tabs": "^9.5.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-tag-picker": "^9.3.4", - "@fluentui/react-tags": "^9.3.18", - "@fluentui/react-teaching-popover": "^9.1.18", - "@fluentui/react-text": "^9.4.25", - "@fluentui/react-textarea": "^9.3.88", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-toast": "^9.3.56", - "@fluentui/react-toolbar": "^9.2.6", - "@fluentui/react-tooltip": "^9.4.39", - "@fluentui/react-tree": "^9.8.2", - "@fluentui/react-utilities": "^9.18.15", - "@fluentui/react-virtualizer": "9.0.0-alpha.85", - "@griffel/react": "^1.5.22", - "@swc/helpers": "^0.5.1" - }, - "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "node_modules/@fluentui/react-dialog": { + "version": "9.8.2", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-portal": "^9.3.27", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-context-selector": { - "version": "9.1.67", - "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.1.67.tgz", - "integrity": "sha512-1jpOjt3NVOlyLcMY/nycyhyXvcPw57+0gkF7Eln4c9Hb2xFUlsAFX0x8MDLNsvyjGgKekLX9p+tPt9TUENWPOw==", + "node_modules/@fluentui/react-dialog/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.18.15", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0", - "scheduler": ">=0.19.0 <=0.23.0" + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-dialog": { - "version": "9.11.16", - "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.11.16.tgz", - "integrity": "sha512-PP15i+mN6XI7knfrdTNexNHtGLBNbf7WmJZGiXZViBWrlGEAUyxdRqmNwQEXwz0xYduqMX7ddEw26e/Ag/BzwA==", + "node_modules/@fluentui/react-divider": { + "version": "9.2.48", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-motion": "^9.5.2", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-divider": { - "version": "9.2.75", - "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.2.75.tgz", - "integrity": "sha512-pWWJH7ZLG4sHcfhwUO5nnhA0TsGK/JlSkcyEnndK76umQlWAzLrN4JWEHKTWplUIIa6STKWObAYPXkiTnkLEkQ==", + "node_modules/@fluentui/react-drawer": { + "version": "9.0.0-beta.40", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-dialog": "^9.8.2", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-motion-preview": "^0.5.0", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-drawer": { - "version": "9.5.16", - "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.5.16.tgz", - "integrity": "sha512-GORGm43E981KHfg2HB/picUwpf3BbdwcfPUVslAdyqaR2A6OJ+fQGKjGDcHn/CPIfgPsg0wHVpVTkvJLTt/BzA==", + "node_modules/@fluentui/react-field": { + "version": "9.1.43", "license": "MIT", "dependencies": { - "@fluentui/react-dialog": "^9.11.16", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-motion": "^9.5.2", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-field": { - "version": "9.1.76", - "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.1.76.tgz", - "integrity": "sha512-eV1MKB97lgvgiVEps9OakqXXeLGHTdLSK7Zd/QmD4HzSSV/XapRLCw+7fITBoG19Tp8AVkGbZI753iPPOv9RZA==", + "node_modules/@fluentui/react-field/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-label": "^9.1.76", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, "node_modules/@fluentui/react-focus": { - "version": "8.9.14", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.9.14.tgz", - "integrity": "sha512-KDek7Db8iSHKXWNw+CXO6Mmo5zmiqjdXmD9Blv8AqCY2NIuBm72hUYvNXg3osA09Zoq6cfNV1sr7MCFxp1nDNQ==", + "version": "8.8.33", "license": "MIT", "dependencies": { - "@fluentui/keyboard-key": "^0.4.23", - "@fluentui/merge-styles": "^8.6.13", - "@fluentui/set-version": "^8.2.23", - "@fluentui/style-utilities": "^8.11.0", - "@fluentui/utilities": "^8.15.16", + "@fluentui/keyboard-key": "^0.4.12", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/utilities": "^8.13.20", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1365,14 +1183,12 @@ } }, "node_modules/@fluentui/react-hooks": { - "version": "8.8.13", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.8.13.tgz", - "integrity": "sha512-WMcc0YO34XA0uVBuWTKUWrvFleLgw5lPZ0Qoew/kFz//1s3itP6tBm7a6z+8utk/Bj0E4N4iz6SdJa4jNWiyKQ==", + "version": "8.6.32", "license": "MIT", "dependencies": { - "@fluentui/react-window-provider": "^2.2.28", - "@fluentui/set-version": "^8.2.23", - "@fluentui/utilities": "^8.15.16", + "@fluentui/react-window-provider": "^2.2.16", + "@fluentui/set-version": "^8.2.12", + "@fluentui/utilities": "^8.13.20", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1381,9 +1197,7 @@ } }, "node_modules/@fluentui/react-icons": { - "version": "2.0.259", - "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.259.tgz", - "integrity": "sha512-vVI0BMYi2S5uBpUxjkSRWj21MS3nbxJUE96F+9DV1laYkDWZxHS2RDni27dmbbAAgrMKKRTxlzyXa+eHUzaelw==", + "version": "2.0.221", "license": "MIT", "dependencies": { "@griffel/react": "^1.0.0", @@ -1394,325 +1208,359 @@ } }, "node_modules/@fluentui/react-image": { - "version": "9.1.73", - "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.1.73.tgz", - "integrity": "sha512-aVpillfiEIqqlyQGGFf17WtiKKFhhGyUMVUv3zLksick/5kifk7zdAW623PA8mpeQf6U1tSPJc8iaXSwr+5cwQ==", + "version": "9.1.45", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-infobutton": { - "version": "9.0.0-beta.102", - "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.102.tgz", - "integrity": "sha512-3kA4F0Vga8Ds6JGlBajLCCDOo/LmPuS786Wg7ui4ZTDYVIMzy1yp2XuVcZniifBFvEp0HQCUoDPWUV0VI3FfzQ==", + "version": "9.0.0-beta.74", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.237", - "@fluentui/react-jsx-runtime": "^9.0.36", - "@fluentui/react-label": "^9.1.68", - "@fluentui/react-popover": "^9.9.6", - "@fluentui/react-tabster": "^9.21.0", - "@fluentui/react-theme": "^9.1.19", - "@fluentui/react-utilities": "^9.18.7", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-popover": "^9.8.19", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-infolabel": { - "version": "9.0.46", - "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.0.46.tgz", - "integrity": "sha512-sDJDlRLroP+9XOj76mpLBpyUVng/+cJDPVNuNvJtS7JBVCs9owlQlq8RBcKFzdbLNh7GZgpi2qe0kUPCNOZYOQ==", + "node_modules/@fluentui/react-infobutton/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-label": "^9.1.76", - "@fluentui/react-popover": "^9.9.21", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-input": { - "version": "9.4.89", - "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.4.89.tgz", - "integrity": "sha512-O6THfgikbwpPgUYBcQBXbQ1dHpP6qY1P31gb7+epaX54AJMuo0xeANfSMBBhTkbLshyn6AS9OMOwrc/Zkvmfew==", + "node_modules/@fluentui/react-infobutton/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-jsx-runtime": { - "version": "9.0.44", - "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.0.44.tgz", - "integrity": "sha512-cnFjiFaztl3zV2bL/Pgsa/dvLES/gNzSKkBUD3ShWeaEi7LbInc3+tnCcttBSTSNdLh8mcuzQkUCImVSD857VA==", + "node_modules/@fluentui/react-infolabel": { + "version": "9.0.2", "license": "MIT", "dependencies": { - "@fluentui/react-utilities": "^9.18.15", - "@swc/helpers": "^0.5.1", - "react-is": "^17.0.2" + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-popover": "^9.8.19", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0" + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/@fluentui/react-label": { - "version": "9.1.76", - "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.1.76.tgz", - "integrity": "sha512-7lqil5XIYkxSQNy/GEqFypAo0eQyjYIPYu0LO2z8UPCuRyaItHA/ArSc3GnyIL/naY9Wz1EG2WvakLbgB+PkGg==", + "node_modules/@fluentui/react-infolabel/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-link": { - "version": "9.2.32", - "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.2.32.tgz", - "integrity": "sha512-BsjDm8ixFMoh+7Hi7WRgDxLEKYj61gc0VjCs9ah0JxJoM1o+OoJhXKc29a13qRJHMSB3Gfndw6nYCineRPcFiA==", + "node_modules/@fluentui/react-infolabel/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-menu": { - "version": "9.14.16", - "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.14.16.tgz", - "integrity": "sha512-q0FVqSjTXQL8jO6Zf+fTFRbJglGBQS7dfkINZ966p9Kqq7zyHFMuaadXil2TpTkGcpo/Qva3wlFJoEeHki2PLQ==", + "node_modules/@fluentui/react-input": { + "version": "9.4.50", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-positioning": "^9.15.9", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-message-bar": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.2.12.tgz", - "integrity": "sha512-d18VBkEJnKqhhkiuxzoan91BEt/x/at6/pR6TH0sn9C7Snvxu88Ywl2ZrKEpaNUAvG0Ww3qE0lNepm/fOEuR+g==", - "license": "MIT", - "dependencies": { - "@fluentui/react-button": "^9.3.92", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "node_modules/@fluentui/react-jsx-runtime": { + "version": "9.0.20", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1", - "react-transition-group": "^4.4.1" + "react-is": "^17.0.2" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-motion": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.5.2.tgz", - "integrity": "sha512-43Y1ZXhGxts8RIqOSyD7FXLAZl6Xyy4aQQuneXQJihY3vgsgMBtaEuQ9ZS2Ewo3zYJAf1kgZK+Q7OdQ3M9jmEg==", + "node_modules/@fluentui/react-label": { + "version": "9.1.51", "license": "MIT", "dependencies": { - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-utilities": "^9.18.15", - "@swc/helpers": "^0.5.1", - "react-is": "^17.0.2" + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-motion-components-preview": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.1.4.tgz", - "integrity": "sha512-nVZNKf+VDOAswQtWv7ZWBpPCZYApALBR/AK+F+TlRPx7qjij1ZOCUq5qtXfAV/mmomeeTHVtI1zKLBtNQIQ43A==", + "node_modules/@fluentui/react-link": { + "version": "9.1.32", "license": "MIT", "dependencies": { - "@fluentui/react-motion": "*", + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-overflow": { - "version": "9.1.30", - "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.1.30.tgz", - "integrity": "sha512-4r0/YQaSX00OWeQwWsW9cctloTom1GguSaDRTxg2qMdwwr8gr9ZEni4LbCXJfH6soCNFzurnwdSeNOg4ogyT+g==", + "node_modules/@fluentui/react-message-bar": { + "version": "9.0.4", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-motion-preview": { + "version": "0.5.0", "license": "MIT", "dependencies": { - "@fluentui/priority-overflow": "^9.1.13", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-persona": { - "version": "9.2.98", - "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.2.98.tgz", - "integrity": "sha512-PpgHB1puW1GwwgvPtSwMMUs+CpP3mQCRivHmWq6sf609rZZyV+ItGf4IzEdCDa+rD2GvkN53zfcFU9RJtrJwPg==", + "version": "9.2.54", "license": "MIT", "dependencies": { - "@fluentui/react-avatar": "^9.6.39", - "@fluentui/react-badge": "^9.2.43", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-badge": "^9.2.12", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-popover": { - "version": "9.9.21", - "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.9.21.tgz", - "integrity": "sha512-7pM/+vaSFDc6fFc8gCHw44aX4EKUyz3jAZXXEzUwg6cjQfJrK42Pfq6EAt0ZzftJdmdOXXTBToI3tqRA7ENlSA==", + "node_modules/@fluentui/react-persona/node_modules/@fluentui/react-avatar": { + "version": "9.5.48", + "license": "MIT", + "dependencies": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-persona/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-persona/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-positioning": "^9.15.9", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, "node_modules/@fluentui/react-portal": { - "version": "9.4.35", - "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.4.35.tgz", - "integrity": "sha512-b0OTtFUmbHOU41wbRITqe3Wlqx3zpmXXUUsFh0KtSTKsMrWy2a2jtl7ZToNRsFfa3opwKsvlk+ohRT5CkDyQ4w==", + "version": "9.4.3", "license": "MIT", "dependencies": { - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1", "use-disposable": "^1.0.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-portal-compat-context": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@fluentui/react-portal-compat-context/-/react-portal-compat-context-9.0.12.tgz", - "integrity": "sha512-5AVXWX9GnbvwnJZYUb4LSIF7BsI/N8oTI6+7Yn0w6B3yaWykA8Menlz757X5tgVBjouEj4Eom+AoVvA7u8gPDA==", + "version": "9.0.9", "license": "MIT", "dependencies": { "@swc/helpers": "^0.5.1" @@ -1723,623 +1571,690 @@ } }, "node_modules/@fluentui/react-positioning": { - "version": "9.15.9", - "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.15.9.tgz", - "integrity": "sha512-X/0Fv3XxRdvOMLUgrL9T9RsIB8FQUgwfT9joQsldK4g2KUiRxpQcmGBO6+kOOB2CjakDrGLxlL5TWTwjibLJQQ==", + "version": "9.10.2", "license": "MIT", "dependencies": { - "@floating-ui/devtools": "0.2.1", "@floating-ui/dom": "^1.2.0", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", - "@swc/helpers": "^0.5.1" + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "floating-ui-devtools": "0.1.2" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-progress": { - "version": "9.1.87", - "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.1.87.tgz", - "integrity": "sha512-B3XK5hZgJDvKTQ536bDCvN8r6RjuA0ndlHjihAzjXefm5u990nEEI0FgjZcIlezEUGfWi5YPo3i3W17KjQ2QCA==", + "version": "9.1.50", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-provider": { - "version": "9.17.4", - "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.17.4.tgz", - "integrity": "sha512-BjnB8ZSuRPS2h6FP1RiMaR+hiTaX5iogqYktULhFYDeN8DoA6RDkLGrPcaaGqYQTIVKKAJUqN18QoPmh8WBh6A==", + "version": "9.11.1", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/core": "^1.16.0", - "@griffel/react": "^1.5.22", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/core": "^1.14.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-radio": { - "version": "9.2.32", - "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.2.32.tgz", - "integrity": "sha512-KwpK7rn+ATsRPRLXeNzHreCeoLQnMWIW+GzPfAoaHm3NI/cwQSqSdEItbUnWKq7i8evJpyGbPSooboMwlCo9Zw==", + "node_modules/@fluentui/react-select": { + "version": "9.1.50", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-label": "^9.1.76", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-rating": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.0.19.tgz", - "integrity": "sha512-c1/tEJXx2DpDeJ8r1AbrCtRQb+4RlM9tMoQDuHqLxscmrrxvvKCbjqCOvA/myiMczuAsp2z6Fvlc4LESjdqxpA==", + "node_modules/@fluentui/react-shared-contexts": { + "version": "9.13.0", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-theme": "^9.1.16", "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", - "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-search": { - "version": "9.0.18", - "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.0.18.tgz", - "integrity": "sha512-bUxi28d8KfrKKaG61n5YXE/A7qrp6amwrn/+iJo9PXYN4FlY8FAjYQ9vZOjR+1yWmNbaSisuZHKA7IisrmahEQ==", + "node_modules/@fluentui/react-skeleton": { + "version": "9.0.38", "license": "MIT", "dependencies": { - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-input": "^9.4.89", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-select": { - "version": "9.1.87", - "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.1.87.tgz", - "integrity": "sha512-LlREKNfCxpXh9j1D27FL/WLgoJs5vKK4HBFpAr4FGII0OFIl2wMCb7SpeaBziuPQU7EnEjeqHlG2hN5oVARoJw==", + "node_modules/@fluentui/react-slider": { + "version": "9.1.54", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-shared-contexts": { - "version": "9.20.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.20.1.tgz", - "integrity": "sha512-QoduMl+QkZ3FEyiSc+rCBbCLY88L/uX8o/eXoJOI0v1px/+5iYkCIUlQPiU9nCGjAI+C8AmG4pIJ7h5iLUlAyQ==", + "node_modules/@fluentui/react-spinbutton": { + "version": "9.2.50", "license": "MIT", "dependencies": { - "@fluentui/react-theme": "^9.1.20", + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "react": ">=16.14.0 <19.0.0" + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-skeleton": { - "version": "9.1.16", - "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.1.16.tgz", - "integrity": "sha512-bRRB3DOxmX1lM1dAayAsIpVZU2rIOzlHpO7yVV9LhWGnGnfNRhYCcM3WSQXhdCmGdUSbb02lSo85PYB/JyW9Zw==", + "node_modules/@fluentui/react-spinner": { + "version": "9.3.28", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-slider": { - "version": "9.1.94", - "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.1.94.tgz", - "integrity": "sha512-7US332rPd6rH8KRFP3TvAwxMGx/UKJo/Bv0i9rtszNPDi0nF1988uvvj1sfC4MA2I343ASajs+lnaav14BUa9g==", + "node_modules/@fluentui/react-switch": { + "version": "9.1.54", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-spinbutton": { - "version": "9.2.88", - "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.2.88.tgz", - "integrity": "sha512-UDsPhLOqQieGzPF5a9WNTB3qo49y65rhjNd7Fq1j2Vc003P02USl4MyonTkPugsNoMm30slxgErym5bLj3Cbug==", - "license": "MIT", - "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "node_modules/@fluentui/react-table": { + "version": "9.10.9", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-checkbox": "^9.1.54", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-spinner": { - "version": "9.4.14", - "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.4.14.tgz", - "integrity": "sha512-CT38dZhvXWxcUWZaL0jwuxj5P0ttQp4Njx3ZhIXn87/8HIxGGT9QOirBjp+1nGq5gA5q1AYyPy4sbrcculA48Q==", + "node_modules/@fluentui/react-table/node_modules/@fluentui/react-avatar": { + "version": "9.5.48", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-label": "^9.1.76", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-swatch-picker": { - "version": "9.1.10", - "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.1.10.tgz", - "integrity": "sha512-3vymANhAbyD+iV0ENQe4atX0lEDqFfgO5uQzrVl7jQdfmkaBmuzdlqPJ9Tl/wyEsiEys3+1JkgDiS0MoOrTTlg==", + "node_modules/@fluentui/react-table/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-switch": { - "version": "9.1.94", - "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.1.94.tgz", - "integrity": "sha512-MXsOmfGHc9b/JEwplZi7LHmk7t8c/rzgK5Z9Avpbj19+sNsHJlnyl7IwLEVJHwxgO3r5dp1fgPbsmUdEoBEyOg==", + "node_modules/@fluentui/react-table/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-label": "^9.1.76", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-table": { - "version": "9.15.18", - "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.15.18.tgz", - "integrity": "sha512-JbQeo8JW3o6kZ/01ynouCv6kTA22+lOUnig5h6npbuxTc8pR8erJ0a+D384a80o+vjN26ww1KXhCpkJLDWG6Bg==", + "node_modules/@fluentui/react-table/node_modules/@fluentui/react-radio": { + "version": "9.1.58", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-avatar": "^9.6.39", - "@fluentui/react-checkbox": "^9.2.37", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-radio": "^9.2.32", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-tabs": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.5.1.tgz", - "integrity": "sha512-tBPyIvTvQnDtTtvWW7qgmK9Wz4DUEZU7MUmG6/n5aKluzutiCA7uC33xa8ndUibxEBSMiVJVHL7VTeo/+1/3eQ==", + "node_modules/@fluentui/react-tabster": { + "version": "9.15.0", "license": "MIT", "dependencies": { - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", - "@swc/helpers": "^0.5.1" + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.2.0", + "tabster": "^5.0.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-tabster": { - "version": "9.22.7", - "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.22.7.tgz", - "integrity": "sha512-ITvm69INou9WGVN+l+iJhYFZ+8zEgP++IKu7/oUxOfjNYzqDzEm3Q8u4oxdlv9ofVGT1qXZhA7jSDE6DOnlXmA==", - "license": "MIT", - "dependencies": { - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", - "@swc/helpers": "^0.5.1", - "keyborg": "^2.6.0", - "tabster": "^8.0.1" + "node_modules/@fluentui/react-tags": { + "version": "9.0.8", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, - "node_modules/@fluentui/react-tag-picker": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.3.4.tgz", - "integrity": "sha512-eV6snlflC9LCZeqrhPDU/p9OeXC/Kb5CX502/N6yuT25GcV1u3pePvPBKG4ac090nSlC54/GgYBmCHS5m5+r4w==", + "node_modules/@fluentui/react-tags/node_modules/@fluentui/react-avatar": { + "version": "9.5.48", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-combobox": "^9.13.8", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-positioning": "^9.15.9", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-tags": "^9.3.18", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-tags": { - "version": "9.3.18", - "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.3.18.tgz", - "integrity": "sha512-DSZJx95xeF3Hhw5VardJAAApeGdR9BHZt+oJmZl0qdHPShQTh9g848kSXy94iwK2xU3VWfenBWPSk+LqEIwxxg==", + "node_modules/@fluentui/react-tags/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-avatar": "^9.6.39", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-teaching-popover": { - "version": "9.1.18", - "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.1.18.tgz", - "integrity": "sha512-v2HMRMj9etIUPs8G+pfv57SODwjTnZ9trNoSq5IfM5Fh1Rg6TnFAUGweWA2k0M0JKtRXkCixOCqNUiBXen0zXw==", + "node_modules/@fluentui/react-tags/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", "dependencies": { - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-button": "^9.3.92", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-popover": "^9.9.21", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", - "@swc/helpers": "^0.5.1", - "use-sync-external-store": "^1.2.0" + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" }, "peerDependencies": { - "@types/react": ">=16.8.0 <19.0.0", - "@types/react-dom": ">=16.8.0 <19.0.0", + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.8.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, "node_modules/@fluentui/react-text": { - "version": "9.4.25", - "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.4.25.tgz", - "integrity": "sha512-PVEDG1X3z3C8igtI2g2bTSiWPWmzF/6lT2yB70W+lsWmI5+L54aW0rNF2/GOls25N/+MHRAGBIk5SmMWW+SH8g==", + "version": "9.3.45", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-textarea": { - "version": "9.3.88", - "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.3.88.tgz", - "integrity": "sha512-gjSgqvstE2vxUdY11Yw/zcFkXhZ5cAy/GJWppqhLV9KnBT4nTeT7ODmz44qMekJ1rNtwBx8Gk7RJe9HVhKbZTQ==", + "version": "9.3.50", "license": "MIT", "dependencies": { - "@fluentui/react-field": "^9.1.76", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-theme": { - "version": "9.1.20", - "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.1.20.tgz", - "integrity": "sha512-Rh3N2ewCBlY9q+bucEKfii7sovp03HgZvN4Xwg8gbnVWA9zgX0QyTTPR+ynV+kMuwP1OiGmGHOiO+daz1k1dbg==", + "version": "9.1.16", "license": "MIT", "dependencies": { - "@fluentui/tokens": "1.0.0-alpha.17", + "@fluentui/tokens": "1.0.0-alpha.13", "@swc/helpers": "^0.5.1" } }, "node_modules/@fluentui/react-toast": { - "version": "9.3.56", - "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.3.56.tgz", - "integrity": "sha512-L3zHGTh32D5tACTCKnXAx4cdXWnY9zBFOVUl/Qpm1PdP4i/4mn4khNRmHDbN9U30a2VyxGWKiU/zQ70NuoMd+w==", + "version": "9.3.15", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-portal": "^9.3.27", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-toolbar": { + "version": "9.1.54", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-divider": "^9.2.48", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-toolbar/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", "license": "MIT", "dependencies": { - "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-motion": "^9.5.2", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-utilities": "^9.15.2", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, - "node_modules/@fluentui/react-toolbar": { - "version": "9.2.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.2.6.tgz", - "integrity": "sha512-G+rFX0vuufM+GZVIdcFn15kdVYw2+j32rj3jHHwAbT1wx8W6OVSR0opVGcJTwYAuKXq39J/1sHEcwbX4vAG0TQ==", + "node_modules/@fluentui/react-toolbar/node_modules/@fluentui/react-radio": { + "version": "9.1.58", "license": "MIT", "dependencies": { - "@fluentui/react-button": "^9.3.92", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-divider": "^9.2.75", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-radio": "^9.2.32", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, "node_modules/@fluentui/react-tooltip": { - "version": "9.4.39", - "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.4.39.tgz", - "integrity": "sha512-j424ZG4stTg3UbWUb1lYIteBCO37TB4pYNnX8ARLeaAE7kdQTD/t5GEDD2fyVhYYi097xJhUA4jMhsPig06Jow==", + "version": "9.4.1", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-portal": "^9.4.35", - "@fluentui/react-positioning": "^9.15.9", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-tree": { - "version": "9.8.2", - "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.8.2.tgz", - "integrity": "sha512-b4Zfq+pMQIgHGoQA6V6AnehnmOKoV8KMxNpUOn/73N16NphbhrI8KnsVph1Wst/pLT/7p6ANdKt9nnE9SMai/A==", + "version": "9.4.11", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-checkbox": "^9.1.54", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-avatar": { + "version": "9.5.48", + "license": "MIT", + "dependencies": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-context-selector": { + "version": "9.1.42", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-popover": { + "version": "9.8.23", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-aria": "^9.13.6", - "@fluentui/react-avatar": "^9.6.39", - "@fluentui/react-button": "^9.3.92", - "@fluentui/react-checkbox": "^9.2.37", - "@fluentui/react-context-selector": "^9.1.67", - "@fluentui/react-icons": "^2.0.245", - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-motion": "^9.5.2", - "@fluentui/react-motion-components-preview": "^0.1.4", - "@fluentui/react-radio": "^9.2.32", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-tabster": "^9.22.7", - "@fluentui/react-theme": "^9.1.20", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", - "react-dom": ">=16.14.0 <19.0.0" + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-radio": { + "version": "9.1.58", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" } }, "node_modules/@fluentui/react-utilities": { - "version": "9.18.15", - "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.18.15.tgz", - "integrity": "sha512-eJX6nyfHFRR6cZ3bi9c7s8rxIo6wCQE+phFzLqBke+RUV+p3Hwf6zW1IBVWauoaQKwPAW5RdWRYZrahqwo4DOA==", + "version": "9.15.2", "license": "MIT", "dependencies": { "@fluentui/keyboard-keys": "^9.0.7", - "@fluentui/react-shared-contexts": "^9.20.1", "@swc/helpers": "^0.5.1" }, "peerDependencies": { @@ -2348,31 +2263,27 @@ } }, "node_modules/@fluentui/react-virtualizer": { - "version": "9.0.0-alpha.85", - "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.85.tgz", - "integrity": "sha512-zdwqj3sLH1TeMwgXNFOVsWtWrH/zD4vmq1s/WkbB4Wu5h/CeemQEN3//WVpz0AB3cZGvcPiTitKH12AfaCqXIQ==", + "version": "9.0.0-alpha.55", "license": "MIT", "dependencies": { - "@fluentui/react-jsx-runtime": "^9.0.44", - "@fluentui/react-shared-contexts": "^9.20.1", - "@fluentui/react-utilities": "^9.18.15", - "@griffel/react": "^1.5.22", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", "@swc/helpers": "^0.5.1" }, "peerDependencies": { "@types/react": ">=16.14.0 <19.0.0", - "@types/react-dom": ">=16.9.0 <19.0.0", + "@types/react-dom": ">=16.14.0 <19.0.0", "react": ">=16.14.0 <19.0.0", "react-dom": ">=16.14.0 <19.0.0" } }, "node_modules/@fluentui/react-window-provider": { - "version": "2.2.28", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.28.tgz", - "integrity": "sha512-YdZ74HTaoDwlvLDzoBST80/17ExIl93tLJpTxnqK5jlJOAUVQ+mxLPF2HQEJq+SZr5IMXHsQ56w/KaZVRn72YA==", + "version": "2.2.16", "license": "MIT", "dependencies": { - "@fluentui/set-version": "^8.2.23", + "@fluentui/set-version": "^8.2.12", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2381,37 +2292,31 @@ } }, "node_modules/@fluentui/set-version": { - "version": "8.2.23", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.23.tgz", - "integrity": "sha512-VPXaBsiaa3Xn/AY40nLU9bvDQ62lpMVnFzFTlQ8CbpdwrjxNlRxDUY5vRToNzp1+Zu5gD/+CgsXqIZGcry5L5w==", + "version": "8.2.12", "license": "MIT", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/style-utilities": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.11.0.tgz", - "integrity": "sha512-UED65za1U3KM7tCLyMiPd/kMpVQguimcqQNIA3ys7mDRes2rMIwLkxaFwFX+OM14cSUw7y+FG8tv42vMKqefYA==", + "version": "8.9.19", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.6.13", - "@fluentui/set-version": "^8.2.23", - "@fluentui/theme": "^2.6.60", - "@fluentui/utilities": "^8.15.16", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/theme": "^2.6.37", + "@fluentui/utilities": "^8.13.20", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "node_modules/@fluentui/theme": { - "version": "2.6.60", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.60.tgz", - "integrity": "sha512-sDWH13Q/4u0QCBoKLY5uTxDcUvnoXAldnF4DWY3NVbkS4H3SVUF//Kp0T78a0hBcpOdrj6AJ7al9OzMMMv3w7Q==", + "version": "2.6.37", "license": "MIT", "dependencies": { - "@fluentui/merge-styles": "^8.6.13", - "@fluentui/set-version": "^8.2.23", - "@fluentui/utilities": "^8.15.16", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/utilities": "^8.13.20", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2420,24 +2325,19 @@ } }, "node_modules/@fluentui/tokens": { - "version": "1.0.0-alpha.17", - "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.17.tgz", - "integrity": "sha512-tD+sHoY9u31SrgnWOl1XwWawCUQEgLWZkR+WiQbekoj2s2RCe8aO6Bl33qkh+pcskThukBpcFU5lHwqqTgUKJA==", + "version": "1.0.0-alpha.13", "license": "MIT", "dependencies": { "@swc/helpers": "^0.5.1" } }, "node_modules/@fluentui/utilities": { - "version": "8.15.16", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.15.16.tgz", - "integrity": "sha512-azn3XJqsnTUO2hWgImUvxVJEijk92OfJFKW6vYzlN2OuPJAL7tkf9nG9NwcET8SLlimSdav0O3nPcR+fHe/CwQ==", + "version": "8.13.20", "license": "MIT", "dependencies": { - "@fluentui/dom-utilities": "^2.3.7", - "@fluentui/merge-styles": "^8.6.13", - "@fluentui/react-window-provider": "^2.2.28", - "@fluentui/set-version": "^8.2.23", + "@fluentui/dom-utilities": "^2.2.12", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2446,26 +2346,22 @@ } }, "node_modules/@griffel/core": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.18.0.tgz", - "integrity": "sha512-3Dkn6f7ULeSzJ1wLyLfN1vc+v3q5shuEejeMe4XymBozQo0l35WIfH8FWcwB+Xrgip4fLLOy1p3sYN85gFGZxw==", + "version": "1.14.4", "license": "MIT", "dependencies": { "@emotion/hash": "^0.9.0", - "@griffel/style-types": "^1.2.0", - "csstype": "^3.1.3", + "@griffel/style-types": "^1.0.2", + "csstype": "^3.1.2", "rtl-css-js": "^1.16.1", "stylis": "^4.2.0", "tslib": "^2.1.0" } }, "node_modules/@griffel/react": { - "version": "1.5.25", - "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.25.tgz", - "integrity": "sha512-ZGiCdn71VIX56fd3AxM7ouCxgClPvunOFIpXxFKebGJ94/rdj4sIbahuI1QBUFuU4/bqUyD6QonjDEpFBl9ORw==", + "version": "1.5.17", "license": "MIT", "dependencies": { - "@griffel/core": "^1.18.0", + "@griffel/core": "^1.14.4", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2473,33 +2369,27 @@ } }, "node_modules/@griffel/style-types": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.2.0.tgz", - "integrity": "sha512-x166MNw0vWe5l5qhinfNT4eyWOaP48iFzPyFOfIB0/BVidKTWsEe5PmqRJDDtrJFS3VHhd/tE0oM6tkEMh2tsg==", + "version": "1.0.2", "license": "MIT", "dependencies": { - "csstype": "^3.1.3" + "csstype": "^3.1.2" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.3", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", + "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "version": "3.1.0", "dev": true, "license": "MIT", "engines": { @@ -2507,9 +2397,7 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "version": "1.1.2", "dev": true, "license": "MIT", "engines": { @@ -2517,60 +2405,54 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.4.15", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.18", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, "node_modules/@microsoft/ai-chat-protocol": { "version": "1.0.0-beta.20240610.1", "resolved": "https://registry.npmjs.org/@microsoft/ai-chat-protocol/-/ai-chat-protocol-1.0.0-beta.20240610.1.tgz", "integrity": "sha512-VGRt4DTCnoCKLqXs1H+3F9yeD8kTATktWxL4j2OUeOoqEiqWUiNm66qQMBzQJRv9Oi+vV9weQyZ6O6mHrf91HQ==", - "license": "MIT", "dependencies": { "@typespec/ts-http-runtime": "^1.0.0-alpha.20240228.1" } }, "node_modules/@microsoft/load-themed-styles": { "version": "1.10.295", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.295.tgz", - "integrity": "sha512-W+IzEBw8a6LOOfRJM02dTT7BDZijxm+Z7lhtOAz1+y9vQm1Kdz9jlAO+qCEKsfxtUOmKilW8DIRqFw2aUgKeGg==", "license": "MIT" }, "node_modules/@react-spring/animated": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.4.tgz", - "integrity": "sha512-7As+8Pty2QlemJ9O5ecsuPKjmO0NKvmVkRR1n6mEotFgWar8FKuQt2xgxz3RTgxcccghpx1YdS1FCdElQNexmQ==", + "version": "9.7.3", "license": "MIT", "dependencies": { - "@react-spring/shared": "~9.7.4", - "@react-spring/types": "~9.7.4" + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@react-spring/core": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.4.tgz", - "integrity": "sha512-GzjA44niEJBFUe9jN3zubRDDDP2E4tBlhNlSIkTChiNf9p4ZQlgXBg50qbXfSXHQPHak/ExYxwhipKVsQ/sUTw==", + "version": "9.7.3", "license": "MIT", "dependencies": { - "@react-spring/animated": "~9.7.4", - "@react-spring/shared": "~9.7.4", - "@react-spring/types": "~9.7.4" + "@react-spring/animated": "~9.7.3", + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" }, "funding": { "type": "opencollective", @@ -2580,41 +2462,28 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@react-spring/rafz": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.4.tgz", - "integrity": "sha512-mqDI6rW0Ca8IdryOMiXRhMtVGiEGLIO89vIOyFQXRIwwIMX30HLya24g9z4olDvFyeDW3+kibiKwtZnA4xhldA==", - "license": "MIT" - }, "node_modules/@react-spring/shared": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.4.tgz", - "integrity": "sha512-bEPI7cQp94dOtCFSEYpxvLxj0+xQfB5r9Ru1h8OMycsIq7zFZon1G0sHrBLaLQIWeMCllc4tVDYRTLIRv70C8w==", + "version": "9.7.3", "license": "MIT", "dependencies": { - "@react-spring/rafz": "~9.7.4", - "@react-spring/types": "~9.7.4" + "@react-spring/types": "~9.7.3" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@react-spring/types": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.4.tgz", - "integrity": "sha512-iQVztO09ZVfsletMiY+DpT/JRiBntdsdJ4uqk3UJFhrhS8mIC9ZOZbmfGSRs/kdbNPQkVyzucceDicQ/3Mlj9g==", + "version": "9.7.3", "license": "MIT" }, "node_modules/@react-spring/web": { - "version": "9.7.4", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.4.tgz", - "integrity": "sha512-UMvCZp7I5HCVIleSa4BwbNxynqvj+mJjG2m20VO2yPoi2pnCYANy58flvz9v/YcXTAvsmL655FV3pm5fbr6akA==", + "version": "9.7.3", "license": "MIT", "dependencies": { - "@react-spring/animated": "~9.7.4", - "@react-spring/core": "~9.7.4", - "@react-spring/shared": "~9.7.4", - "@react-spring/types": "~9.7.4" + "@react-spring/animated": "~9.7.3", + "@react-spring/core": "~9.7.3", + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -2622,27 +2491,65 @@ } }, "node_modules/@remix-run/router": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", - "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", + "version": "1.11.0", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.3", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.4", "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, "engines": { "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, "node_modules/@swc/helpers": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", - "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "version": "0.5.3", "license": "Apache-2.0", "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "version": "7.20.3", "dev": true, "license": "MIT", "dependencies": { @@ -2654,9 +2561,7 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "version": "7.6.6", "dev": true, "license": "MIT", "dependencies": { @@ -2664,9 +2569,7 @@ } }, "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "version": "7.4.3", "dev": true, "license": "MIT", "dependencies": { @@ -2675,9 +2578,7 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.20.3", "dev": true, "license": "MIT", "dependencies": { @@ -2685,77 +2586,69 @@ } }, "node_modules/@types/dompurify": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", - "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { "@types/trusted-types": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.1", + "license": "MIT" + }, "node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "version": "2.3.7", "license": "MIT", "dependencies": { "@types/unist": "^2" } }, "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "version": "15.7.5", "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.10.tgz", - "integrity": "sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==", + "version": "18.2.34", "license": "MIT", "dependencies": { "@types/prop-types": "*", + "@types/scheduler": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "18.2.14", "license": "MIT", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-syntax-highlighter": { - "version": "15.5.13", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", - "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", + "version": "15.5.9", "dev": true, "license": "MIT", "dependencies": { "@types/react": "*" } }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "license": "MIT" + }, "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "version": "2.0.3", "dev": true, "license": "MIT" }, "node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "version": "2.0.7", "license": "MIT" }, "node_modules/@typespec/ts-http-runtime": { - "version": "1.0.0-alpha.20240611.3", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-1.0.0-alpha.20240611.3.tgz", - "integrity": "sha512-fB0HCsQMnaVyX65cUsYBDdcB9oItlmEo9xvafUNzPp1GtlO/Qbg5zCfw9u91d2JwCEoJKi5VEpVnNVEQTioGLw==", - "license": "MIT", + "version": "1.0.0-alpha.20240610.1", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-1.0.0-alpha.20240610.1.tgz", + "integrity": "sha512-f1pHRnMpCZG1u7EucgZ00E9MpqI/HpZZ7FOu8oub/QH/9ki+5BtRbQfM17EDTi5w5JDWlp9Os+7fQVWLidozKQ==", "dependencies": { "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", @@ -2766,30 +2659,27 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", - "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "version": "4.1.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" + "@babel/core": "^7.23.2", + "@babel/plugin-transform-react-jsx-self": "^7.22.5", + "@babel/plugin-transform-react-jsx-source": "^7.22.5", + "@types/babel__core": "^7.20.3", + "react-refresh": "^0.14.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0" } }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -2799,8 +2689,6 @@ }, "node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "dependencies": { @@ -2811,9 +2699,7 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.22.1", "dev": true, "funding": [ { @@ -2831,10 +2717,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -2844,9 +2730,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001664", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", - "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", + "version": "1.0.30001547", "dev": true, "funding": [ { @@ -2866,8 +2750,6 @@ }, "node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2881,8 +2763,6 @@ }, "node_modules/character-entities": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "license": "MIT", "funding": { "type": "github", @@ -2891,8 +2771,6 @@ }, "node_modules/character-entities-legacy": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "license": "MIT", "funding": { "type": "github", @@ -2901,8 +2779,6 @@ }, "node_modules/character-reference-invalid": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "license": "MIT", "funding": { "type": "github", @@ -2911,8 +2787,6 @@ }, "node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "license": "MIT", "dependencies": { @@ -2921,15 +2795,11 @@ }, "node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, "license": "MIT" }, "node_modules/comma-separated-tokens": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", "license": "MIT", "funding": { "type": "github", @@ -2938,24 +2808,18 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "version": "3.1.2", "license": "MIT" }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.3.4", "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "ms": "2.1.2" }, "engines": { "node": ">=6.0" @@ -2968,8 +2832,6 @@ }, "node_modules/dom-helpers": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", @@ -2977,22 +2839,17 @@ } }, "node_modules/dompurify": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz", - "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==", - "license": "(MPL-2.0 OR Apache-2.0)" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.3.tgz", + "integrity": "sha512-5sOWYSNPaxz6o2MUPvtyxTTqR4D3L77pr5rUQoWgD5ROQtVIZQgJkXbo1DLlK3vj11YGw5+LnF4SYti4gZmwng==" }, "node_modules/electron-to-chromium": { - "version": "1.5.30", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.30.tgz", - "integrity": "sha512-sXI35EBN4lYxzc/pIGorlymYNzDBOqkSlVRe6MkgBsW/hW1tpC/HDJ2fjG7XnjakzfLEuvdmux0Mjs6jHq4UOA==", + "version": "1.4.549", "dev": true, "license": "ISC" }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.18.11", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3003,34 +2860,32 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/android-arm": "0.18.11", + "@esbuild/android-arm64": "0.18.11", + "@esbuild/android-x64": "0.18.11", + "@esbuild/darwin-arm64": "0.18.11", + "@esbuild/darwin-x64": "0.18.11", + "@esbuild/freebsd-arm64": "0.18.11", + "@esbuild/freebsd-x64": "0.18.11", + "@esbuild/linux-arm": "0.18.11", + "@esbuild/linux-arm64": "0.18.11", + "@esbuild/linux-ia32": "0.18.11", + "@esbuild/linux-loong64": "0.18.11", + "@esbuild/linux-mips64el": "0.18.11", + "@esbuild/linux-ppc64": "0.18.11", + "@esbuild/linux-riscv64": "0.18.11", + "@esbuild/linux-s390x": "0.18.11", + "@esbuild/linux-x64": "0.18.11", + "@esbuild/netbsd-x64": "0.18.11", + "@esbuild/openbsd-x64": "0.18.11", + "@esbuild/sunos-x64": "0.18.11", + "@esbuild/win32-arm64": "0.18.11", + "@esbuild/win32-ia32": "0.18.11", + "@esbuild/win32-x64": "0.18.11" } }, "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "version": "3.1.1", "dev": true, "license": "MIT", "engines": { @@ -3039,18 +2894,18 @@ }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, "node_modules/fault": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "license": "MIT", "dependencies": { "format": "^0.2.0" @@ -3060,10 +2915,14 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/floating-ui-devtools": { + "version": "0.1.2", + "peerDependencies": { + "@floating-ui/dom": ">=1.0.0 <2.0.0" + } + }, "node_modules/format": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", "engines": { "node": ">=0.4.x" } @@ -3072,9 +2931,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -3083,10 +2940,12 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.1", + "license": "MIT" + }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "engines": { @@ -3095,18 +2954,24 @@ }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/has": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "license": "MIT", "engines": { @@ -3115,8 +2980,6 @@ }, "node_modules/hast-util-parse-selector": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -3125,8 +2988,6 @@ }, "node_modules/hastscript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", @@ -3142,8 +3003,6 @@ }, "node_modules/highlight.js": { "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", "license": "BSD-3-Clause", "engines": { "node": "*" @@ -3153,7 +3012,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -3163,10 +3021,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "license": "MIT", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -3177,8 +3034,6 @@ }, "node_modules/is-alphabetical": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "license": "MIT", "funding": { "type": "github", @@ -3187,8 +3042,6 @@ }, "node_modules/is-alphanumerical": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "license": "MIT", "dependencies": { "is-alphabetical": "^1.0.0", @@ -3199,10 +3052,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-core-module": { + "version": "2.13.0", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-decimal": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "license": "MIT", "funding": { "type": "github", @@ -3211,8 +3072,6 @@ }, "node_modules/is-hexadecimal": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "license": "MIT", "funding": { "type": "github", @@ -3221,14 +3080,10 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, "license": "MIT", "bin": { @@ -3240,8 +3095,6 @@ }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "bin": { @@ -3252,15 +3105,11 @@ } }, "node_modules/keyborg": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/keyborg/-/keyborg-2.6.0.tgz", - "integrity": "sha512-o5kvLbuTF+o326CMVYpjlaykxqYP9DphFQZ2ZpgrvBouyvOxyEB7oqe8nOLFpiV5VCtz0D3pt8gXQYWpLpBnmA==", + "version": "2.2.0", "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -3271,8 +3120,6 @@ }, "node_modules/lowlight": { "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", "license": "MIT", "dependencies": { "fault": "^1.0.0", @@ -3285,8 +3132,6 @@ }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { @@ -3297,7 +3142,6 @@ "version": "9.1.6", "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==", - "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -3306,15 +3150,11 @@ } }, "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "version": "2.1.2", "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.6", "dev": true, "funding": [ { @@ -3331,16 +3171,12 @@ } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.13", "dev": true, "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3348,8 +3184,6 @@ }, "node_modules/parse-entities": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "license": "MIT", "dependencies": { "character-entities": "^1.0.0", @@ -3364,17 +3198,27 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.0.0", "dev": true, "license": "ISC" }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.31", "dev": true, "funding": [ { @@ -3392,18 +3236,16 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.0.3", "dev": true, "license": "MIT", "bin": { @@ -3418,8 +3260,6 @@ }, "node_modules/prismjs": { "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "license": "MIT", "engines": { "node": ">=6" @@ -3427,8 +3267,6 @@ }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -3438,14 +3276,10 @@ }, "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, "node_modules/property-information": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", "license": "MIT", "dependencies": { "xtend": "^4.0.0" @@ -3456,9 +3290,7 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "18.2.0", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -3468,22 +3300,18 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "18.2.0", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^18.2.0" } }, "node_modules/react-dom/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "version": "0.23.0", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -3491,14 +3319,10 @@ }, "node_modules/react-is": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "license": "MIT" }, "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "version": "0.14.0", "dev": true, "license": "MIT", "engines": { @@ -3506,12 +3330,10 @@ } }, "node_modules/react-router": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", - "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", + "version": "6.18.0", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.2" + "@remix-run/router": "1.11.0" }, "engines": { "node": ">=14.0.0" @@ -3521,13 +3343,11 @@ } }, "node_modules/react-router-dom": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", - "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", + "version": "6.18.0", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.2", - "react-router": "6.26.2" + "@remix-run/router": "1.11.0", + "react-router": "6.18.0" }, "engines": { "node": ">=14.0.0" @@ -3539,8 +3359,6 @@ }, "node_modules/react-syntax-highlighter": { "version": "15.5.0", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", - "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.3.1", @@ -3555,8 +3373,6 @@ }, "node_modules/react-transition-group": { "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", @@ -3571,8 +3387,6 @@ }, "node_modules/refractor": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", "license": "MIT", "dependencies": { "hastscript": "^6.0.0", @@ -3586,25 +3400,34 @@ }, "node_modules/refractor/node_modules/prismjs": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "version": "0.14.0", "license": "MIT" }, + "node_modules/resolve": { + "version": "1.22.4", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/rollup": { "version": "3.29.5", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", - "dev": true, - "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -3618,8 +3441,6 @@ }, "node_modules/rtl-css-js": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", - "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2" @@ -3627,8 +3448,6 @@ }, "node_modules/scheduler": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", @@ -3637,8 +3456,6 @@ }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -3646,9 +3463,7 @@ } }, "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "version": "1.0.2", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -3657,8 +3472,6 @@ }, "node_modules/space-separated-tokens": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "license": "MIT", "funding": { "type": "github", @@ -3666,15 +3479,11 @@ } }, "node_modules/stylis": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", - "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==", + "version": "4.3.0", "license": "MIT" }, "node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "license": "MIT", "dependencies": { @@ -3684,20 +3493,26 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tabster": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/tabster/-/tabster-8.2.0.tgz", - "integrity": "sha512-Gvplk/Yl/12aVFA6FPOqGcq31Qv8hbPfYO0N+6IxrRgRT6eSLsipT6gkZBYjyOwGsp6BD5XlZAuJgupfG/GHoA==", + "version": "5.1.0", "license": "MIT", "dependencies": { - "keyborg": "2.6.0", + "keyborg": "^2.2.0", "tslib": "^2.3.1" } }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "license": "MIT", "engines": { @@ -3705,16 +3520,12 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "license": "0BSD" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", - "dev": true, + "version": "5.2.2", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -3725,9 +3536,7 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.0.13", "dev": true, "funding": [ { @@ -3745,8 +3554,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -3757,8 +3566,6 @@ }, "node_modules/use-disposable": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/use-disposable/-/use-disposable-1.0.2.tgz", - "integrity": "sha512-UMaXVlV77dWOu4GqAFNjRzHzowYKUKbJBQfCexvahrYeIz4OkUYUjna4Tjjdf92NH8Nm8J7wEfFRgTIwYjO5jg==", "license": "MIT", "peerDependencies": { "@types/react": ">=16.8.0 <19.0.0", @@ -3767,21 +3574,11 @@ "react-dom": ">=16.8.0 <19.0.0" } }, - "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/vite": { "version": "4.5.5", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -3834,8 +3631,6 @@ }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "license": "MIT", "engines": { "node": ">=0.4" @@ -3843,10 +3638,2285 @@ }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@azure/msal-browser": { + "version": "3.4.0", + "requires": { + "@azure/msal-common": "14.3.0" + } + }, + "@azure/msal-common": { + "version": "14.3.0" + }, + "@azure/msal-react": { + "version": "2.0.6", + "requires": { + "@rollup/plugin-typescript": "^11.1.0", + "rollup": "^3.20.2" + } + }, + "@babel/code-frame": { + "version": "7.22.13", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.22.20", + "dev": true + }, + "@babel/core": { + "version": "7.23.2", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.23.0", + "dev": true, + "requires": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.0", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "dev": true + }, + "@babel/helpers": { + "version": "7.23.2", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + } + }, + "@babel/highlight": { + "version": "7.22.20", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.23.0", + "dev": true + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/runtime": { + "version": "7.22.15", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/template": { + "version": "7.22.15", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.23.0", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/hash": { + "version": "0.9.1" + }, + "@floating-ui/core": { + "version": "1.5.0", + "requires": { + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/dom": { + "version": "1.5.3", + "requires": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/utils": { + "version": "0.1.6" + }, + "@fluentui/date-time-utilities": { + "version": "8.5.14", + "requires": { + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" + } + }, + "@fluentui/dom-utilities": { + "version": "2.2.12", + "requires": { + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" + } + }, + "@fluentui/font-icons-mdl2": { + "version": "8.5.26", + "requires": { + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/utilities": "^8.13.20", + "tslib": "^2.1.0" + } + }, + "@fluentui/foundation-legacy": { + "version": "8.2.46", + "requires": { + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/utilities": "^8.13.20", + "tslib": "^2.1.0" + } + }, + "@fluentui/keyboard-key": { + "version": "0.4.12", + "requires": { + "tslib": "^2.1.0" + } + }, + "@fluentui/keyboard-keys": { + "version": "9.0.7", + "requires": { + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/merge-styles": { + "version": "8.5.13", + "requires": { + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" + } + }, + "@fluentui/priority-overflow": { + "version": "9.1.10", + "requires": { + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react": { + "version": "8.112.5", + "requires": { + "@fluentui/date-time-utilities": "^8.5.14", + "@fluentui/font-icons-mdl2": "^8.5.26", + "@fluentui/foundation-legacy": "^8.2.46", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/react-focus": "^8.8.33", + "@fluentui/react-hooks": "^8.6.32", + "@fluentui/react-portal-compat-context": "^9.0.9", + "@fluentui/react-window-provider": "^2.2.16", + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/theme": "^2.6.37", + "@fluentui/utilities": "^8.13.20", + "@microsoft/load-themed-styles": "^1.10.26", + "tslib": "^2.1.0" + } + }, + "@fluentui/react-alert": { + "version": "9.0.0-beta.90", + "requires": { + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-avatar": { + "version": "9.5.48", + "requires": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-aria": { + "version": "9.4.0", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-badge": { + "version": "9.2.15", + "requires": { + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-button": { + "version": "9.3.53", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-card": { + "version": "9.0.52", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-checkbox": { + "version": "9.1.54", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-components": { + "version": "9.37.3", + "requires": { + "@fluentui/react-accordion": "^9.3.26", + "@fluentui/react-alert": "9.0.0-beta.90", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-badge": "^9.2.12", + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-card": "^9.0.52", + "@fluentui/react-checkbox": "^9.1.54", + "@fluentui/react-combobox": "^9.5.28", + "@fluentui/react-dialog": "^9.8.2", + "@fluentui/react-divider": "^9.2.48", + "@fluentui/react-drawer": "9.0.0-beta.40", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-image": "^9.1.45", + "@fluentui/react-infobutton": "9.0.0-beta.74", + "@fluentui/react-infolabel": "^9.0.2", + "@fluentui/react-input": "^9.4.50", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-link": "^9.1.32", + "@fluentui/react-menu": "^9.12.30", + "@fluentui/react-message-bar": "^9.0.4", + "@fluentui/react-overflow": "^9.0.42", + "@fluentui/react-persona": "^9.2.54", + "@fluentui/react-popover": "^9.8.19", + "@fluentui/react-portal": "^9.3.27", + "@fluentui/react-positioning": "^9.9.23", + "@fluentui/react-progress": "^9.1.50", + "@fluentui/react-provider": "^9.11.1", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-select": "^9.1.50", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-skeleton": "^9.0.38", + "@fluentui/react-slider": "^9.1.54", + "@fluentui/react-spinbutton": "^9.2.50", + "@fluentui/react-spinner": "^9.3.28", + "@fluentui/react-switch": "^9.1.54", + "@fluentui/react-table": "^9.10.9", + "@fluentui/react-tabs": "^9.3.55", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-tags": "^9.0.8", + "@fluentui/react-text": "^9.3.45", + "@fluentui/react-textarea": "^9.3.50", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-toast": "^9.3.15", + "@fluentui/react-toolbar": "^9.1.54", + "@fluentui/react-tooltip": "^9.3.20", + "@fluentui/react-tree": "^9.4.11", + "@fluentui/react-utilities": "^9.15.1", + "@fluentui/react-virtualizer": "9.0.0-alpha.55", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-accordion": { + "version": "9.3.30", + "requires": { + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-avatar": { + "version": "9.5.48", + "requires": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-combobox": { + "version": "9.5.32", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-menu": { + "version": "9.12.35", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-overflow": { + "version": "9.1.1", + "requires": { + "@fluentui/priority-overflow": "^9.1.10", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-radio": { + "version": "9.1.58", + "requires": { + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-tabs": { + "version": "9.3.59", + "requires": { + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + } + } + }, + "@fluentui/react-dialog": { + "version": "9.8.2", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-portal": "^9.3.27", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-divider": { + "version": "9.2.48", + "requires": { + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-drawer": { + "version": "9.0.0-beta.40", + "requires": { + "@fluentui/react-dialog": "^9.8.2", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-motion-preview": "^0.5.0", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-field": { + "version": "9.1.43", + "requires": { + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-focus": { + "version": "8.8.33", + "requires": { + "@fluentui/keyboard-key": "^0.4.12", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/style-utilities": "^8.9.19", + "@fluentui/utilities": "^8.13.20", + "tslib": "^2.1.0" + } + }, + "@fluentui/react-hooks": { + "version": "8.6.32", + "requires": { + "@fluentui/react-window-provider": "^2.2.16", + "@fluentui/set-version": "^8.2.12", + "@fluentui/utilities": "^8.13.20", + "tslib": "^2.1.0" + } + }, + "@fluentui/react-icons": { + "version": "2.0.221", + "requires": { + "@griffel/react": "^1.0.0", + "tslib": "^2.1.0" + } + }, + "@fluentui/react-image": { + "version": "9.1.45", + "requires": { + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-infobutton": { + "version": "9.0.0-beta.74", + "requires": { + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-popover": "^9.8.19", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-infolabel": { + "version": "9.0.2", + "requires": { + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-popover": "^9.8.19", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-input": { + "version": "9.4.50", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-jsx-runtime": { + "version": "9.0.20", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1", + "react-is": "^17.0.2" + } + }, + "@fluentui/react-label": { + "version": "9.1.51", + "requires": { + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-link": { + "version": "9.1.32", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-message-bar": { + "version": "9.0.4", + "requires": { + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + } + }, + "@fluentui/react-motion-preview": { + "version": "0.5.0", + "requires": { + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-persona": { + "version": "9.2.54", + "requires": { + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-badge": "^9.2.12", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-avatar": { + "version": "9.5.48", + "requires": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-portal": { + "version": "9.4.3", + "requires": { + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "use-disposable": "^1.0.1" + } + }, + "@fluentui/react-portal-compat-context": { + "version": "9.0.9", + "requires": { + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-positioning": { + "version": "9.10.2", + "requires": { + "@floating-ui/dom": "^1.2.0", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "floating-ui-devtools": "0.1.2" + } + }, + "@fluentui/react-progress": { + "version": "9.1.50", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-provider": { + "version": "9.11.1", + "requires": { + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/core": "^1.14.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-select": { + "version": "9.1.50", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-shared-contexts": { + "version": "9.13.0", + "requires": { + "@fluentui/react-theme": "^9.1.16", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-skeleton": { + "version": "9.0.38", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-slider": { + "version": "9.1.54", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-spinbutton": { + "version": "9.2.50", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-spinner": { + "version": "9.3.28", + "requires": { + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-switch": { + "version": "9.1.54", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-label": "^9.1.48", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-table": { + "version": "9.10.9", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-checkbox": "^9.1.54", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-avatar": { + "version": "9.5.48", + "requires": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-radio": { + "version": "9.1.58", + "requires": { + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-tabster": { + "version": "9.15.0", + "requires": { + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.2.0", + "tabster": "^5.0.1" + } + }, + "@fluentui/react-tags": { + "version": "9.0.8", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-avatar": { + "version": "9.5.48", + "requires": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-text": { + "version": "9.3.45", + "requires": { + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-textarea": { + "version": "9.3.50", + "requires": { + "@fluentui/react-field": "^9.1.40", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-theme": { + "version": "9.1.16", + "requires": { + "@fluentui/tokens": "1.0.0-alpha.13", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-toast": { + "version": "9.3.15", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-portal": "^9.3.27", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + } + }, + "@fluentui/react-toolbar": { + "version": "9.1.54", + "requires": { + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-divider": "^9.2.48", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-radio": { + "version": "9.1.58", + "requires": { + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-tooltip": { + "version": "9.4.1", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-tree": { + "version": "9.4.11", + "requires": { + "@fluentui/keyboard-keys": "^9.0.6", + "@fluentui/react-aria": "^9.3.43", + "@fluentui/react-avatar": "^9.5.44", + "@fluentui/react-button": "^9.3.53", + "@fluentui/react-checkbox": "^9.1.54", + "@fluentui/react-context-selector": "^9.1.41", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-radio": "^9.1.54", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-tabster": "^9.14.3", + "@fluentui/react-theme": "^9.1.15", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "dependencies": { + "@fluentui/react-avatar": { + "version": "9.5.48", + "requires": { + "@fluentui/react-badge": "^9.2.15", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-popover": "^9.8.23", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-tooltip": "^9.4.1", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-context-selector": { + "version": "9.1.42", + "requires": { + "@fluentui/react-utilities": "^9.15.2", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-popover": { + "version": "9.8.23", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@fluentui/react-aria": "^9.4.0", + "@fluentui/react-context-selector": "^9.1.42", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-portal": "^9.4.3", + "@fluentui/react-positioning": "^9.10.2", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-radio": { + "version": "9.1.58", + "requires": { + "@fluentui/react-field": "^9.1.43", + "@fluentui/react-icons": "^2.0.217", + "@fluentui/react-jsx-runtime": "^9.0.20", + "@fluentui/react-label": "^9.1.51", + "@fluentui/react-shared-contexts": "^9.13.0", + "@fluentui/react-tabster": "^9.15.0", + "@fluentui/react-theme": "^9.1.16", + "@fluentui/react-utilities": "^9.15.2", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + } + } + }, + "@fluentui/react-utilities": { + "version": "9.15.2", + "requires": { + "@fluentui/keyboard-keys": "^9.0.7", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-virtualizer": { + "version": "9.0.0-alpha.55", + "requires": { + "@fluentui/react-jsx-runtime": "^9.0.18", + "@fluentui/react-shared-contexts": "^9.11.1", + "@fluentui/react-utilities": "^9.15.1", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/react-window-provider": { + "version": "2.2.16", + "requires": { + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" + } + }, + "@fluentui/set-version": { + "version": "8.2.12", + "requires": { + "tslib": "^2.1.0" + } + }, + "@fluentui/style-utilities": { + "version": "8.9.19", + "requires": { + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/theme": "^2.6.37", + "@fluentui/utilities": "^8.13.20", + "@microsoft/load-themed-styles": "^1.10.26", + "tslib": "^2.1.0" + } + }, + "@fluentui/theme": { + "version": "2.6.37", + "requires": { + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "@fluentui/utilities": "^8.13.20", + "tslib": "^2.1.0" + } + }, + "@fluentui/tokens": { + "version": "1.0.0-alpha.13", + "requires": { + "@swc/helpers": "^0.5.1" + } + }, + "@fluentui/utilities": { + "version": "8.13.20", + "requires": { + "@fluentui/dom-utilities": "^2.2.12", + "@fluentui/merge-styles": "^8.5.13", + "@fluentui/set-version": "^8.2.12", + "tslib": "^2.1.0" + } + }, + "@griffel/core": { + "version": "1.14.4", + "requires": { + "@emotion/hash": "^0.9.0", + "@griffel/style-types": "^1.0.2", + "csstype": "^3.1.2", + "rtl-css-js": "^1.16.1", + "stylis": "^4.2.0", + "tslib": "^2.1.0" + } + }, + "@griffel/react": { + "version": "1.5.17", + "requires": { + "@griffel/core": "^1.14.4", + "tslib": "^2.1.0" + } + }, + "@griffel/style-types": { + "version": "1.0.2", + "requires": { + "csstype": "^3.1.2" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + } + } + }, + "@microsoft/ai-chat-protocol": { + "version": "1.0.0-beta.20240610.1", + "resolved": "https://registry.npmjs.org/@microsoft/ai-chat-protocol/-/ai-chat-protocol-1.0.0-beta.20240610.1.tgz", + "integrity": "sha512-VGRt4DTCnoCKLqXs1H+3F9yeD8kTATktWxL4j2OUeOoqEiqWUiNm66qQMBzQJRv9Oi+vV9weQyZ6O6mHrf91HQ==", + "requires": { + "@typespec/ts-http-runtime": "^1.0.0-alpha.20240228.1" + } + }, + "@microsoft/load-themed-styles": { + "version": "1.10.295" + }, + "@react-spring/animated": { + "version": "9.7.3", + "requires": { + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" + } + }, + "@react-spring/core": { + "version": "9.7.3", + "requires": { + "@react-spring/animated": "~9.7.3", + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" + } + }, + "@react-spring/shared": { + "version": "9.7.3", + "requires": { + "@react-spring/types": "~9.7.3" + } + }, + "@react-spring/types": { + "version": "9.7.3" + }, + "@react-spring/web": { + "version": "9.7.3", + "requires": { + "@react-spring/animated": "~9.7.3", + "@react-spring/core": "~9.7.3", + "@react-spring/shared": "~9.7.3", + "@react-spring/types": "~9.7.3" + } + }, + "@remix-run/router": { + "version": "1.11.0" + }, + "@rollup/plugin-typescript": { + "version": "11.1.3", + "requires": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.4", + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@swc/helpers": { + "version": "0.5.3", + "requires": { + "tslib": "^2.4.0" + } + }, + "@types/babel__core": { + "version": "7.20.3", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.6", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.3", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.3", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/dompurify": { + "version": "3.0.4", + "dev": true, + "requires": { + "@types/trusted-types": "*" + } + }, + "@types/estree": { + "version": "1.0.1" + }, + "@types/hast": { + "version": "2.3.7", + "requires": { + "@types/unist": "^2" + } + }, + "@types/prop-types": { + "version": "15.7.5" + }, + "@types/react": { + "version": "18.2.34", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.2.14", + "requires": { + "@types/react": "*" + } + }, + "@types/react-syntax-highlighter": { + "version": "15.5.9", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2" + }, + "@types/trusted-types": { + "version": "2.0.3", + "dev": true + }, + "@types/unist": { + "version": "2.0.7" + }, + "@typespec/ts-http-runtime": { + "version": "1.0.0-alpha.20240610.1", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-1.0.0-alpha.20240610.1.tgz", + "integrity": "sha512-f1pHRnMpCZG1u7EucgZ00E9MpqI/HpZZ7FOu8oub/QH/9ki+5BtRbQfM17EDTi5w5JDWlp9Os+7fQVWLidozKQ==", + "requires": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + } + }, + "@vitejs/plugin-react": { + "version": "4.1.1", + "dev": true, + "requires": { + "@babel/core": "^7.23.2", + "@babel/plugin-transform-react-jsx-self": "^7.22.5", + "@babel/plugin-transform-react-jsx-source": "^7.22.5", + "@types/babel__core": "^7.20.3", + "react-refresh": "^0.14.0" + } + }, + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "requires": { + "debug": "^4.3.4" + } + }, + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.22.1", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + } + }, + "caniuse-lite": { + "version": "1.0.30001547", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-entities": { + "version": "1.2.4" + }, + "character-entities-legacy": { + "version": "1.1.4" + }, + "character-reference-invalid": { + "version": "1.1.4" + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "comma-separated-tokens": { + "version": "1.0.8" + }, + "convert-source-map": { + "version": "2.0.0", + "dev": true + }, + "csstype": { + "version": "3.1.2" + }, + "debug": { + "version": "4.3.4", + "requires": { + "ms": "2.1.2" + } + }, + "dom-helpers": { + "version": "5.2.1", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "dompurify": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.3.tgz", + "integrity": "sha512-5sOWYSNPaxz6o2MUPvtyxTTqR4D3L77pr5rUQoWgD5ROQtVIZQgJkXbo1DLlK3vj11YGw5+LnF4SYti4gZmwng==" + }, + "electron-to-chromium": { + "version": "1.4.549", + "dev": true + }, + "esbuild": { + "version": "0.18.11", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.11", + "@esbuild/android-arm64": "0.18.11", + "@esbuild/android-x64": "0.18.11", + "@esbuild/darwin-arm64": "0.18.11", + "@esbuild/darwin-x64": "0.18.11", + "@esbuild/freebsd-arm64": "0.18.11", + "@esbuild/freebsd-x64": "0.18.11", + "@esbuild/linux-arm": "0.18.11", + "@esbuild/linux-arm64": "0.18.11", + "@esbuild/linux-ia32": "0.18.11", + "@esbuild/linux-loong64": "0.18.11", + "@esbuild/linux-mips64el": "0.18.11", + "@esbuild/linux-ppc64": "0.18.11", + "@esbuild/linux-riscv64": "0.18.11", + "@esbuild/linux-s390x": "0.18.11", + "@esbuild/linux-x64": "0.18.11", + "@esbuild/netbsd-x64": "0.18.11", + "@esbuild/openbsd-x64": "0.18.11", + "@esbuild/sunos-x64": "0.18.11", + "@esbuild/win32-arm64": "0.18.11", + "@esbuild/win32-ia32": "0.18.11", + "@esbuild/win32-x64": "0.18.11" + } + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "estree-walker": { + "version": "2.0.2" + }, + "fault": { + "version": "1.0.4", + "requires": { + "format": "^0.2.0" + } + }, + "floating-ui-devtools": { + "version": "0.1.2", + "requires": {} + }, + "format": { + "version": "0.2.2" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.1" + }, + "gensync": { + "version": "1.0.0-beta.2", + "dev": true + }, + "globals": { + "version": "11.12.0", + "dev": true + }, + "has": { + "version": "1.0.3", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "hast-util-parse-selector": { + "version": "2.2.5" + }, + "hastscript": { + "version": "6.0.0", + "requires": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "highlight.js": { + "version": "10.7.3" + }, + "http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "is-alphabetical": { + "version": "1.0.4" + }, + "is-alphanumerical": { + "version": "1.0.4", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.13.0", + "requires": { + "has": "^1.0.3" + } + }, + "is-decimal": { + "version": "1.0.4" + }, + "is-hexadecimal": { + "version": "1.0.4" + }, + "js-tokens": { + "version": "4.0.0" + }, + "jsesc": { + "version": "2.5.2", + "dev": true + }, + "json5": { + "version": "2.2.3", + "dev": true + }, + "keyborg": { + "version": "2.2.0" + }, + "loose-envify": { + "version": "1.4.0", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowlight": { + "version": "1.20.0", + "requires": { + "fault": "^1.0.0", + "highlight.js": "~10.7.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "marked": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", + "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==" + }, + "ms": { + "version": "2.1.2" + }, + "nanoid": { + "version": "3.3.6", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "dev": true + }, + "object-assign": { + "version": "4.1.1" + }, + "parse-entities": { + "version": "2.0.0", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "path-parse": { + "version": "1.0.7" + }, + "picocolors": { + "version": "1.0.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1" + }, + "postcss": { + "version": "8.4.31", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prettier": { + "version": "3.0.3", + "dev": true + }, + "prismjs": { + "version": "1.29.0" + }, + "prop-types": { + "version": "15.8.1", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1" + } + } + }, + "property-information": { + "version": "5.6.0", + "requires": { + "xtend": "^4.0.0" + } + }, + "react": { + "version": "18.2.0", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "dependencies": { + "scheduler": { + "version": "0.23.0", + "requires": { + "loose-envify": "^1.1.0" + } + } + } + }, + "react-is": { + "version": "17.0.2" + }, + "react-refresh": { + "version": "0.14.0", + "dev": true + }, + "react-router": { + "version": "6.18.0", + "requires": { + "@remix-run/router": "1.11.0" + } + }, + "react-router-dom": { + "version": "6.18.0", + "requires": { + "@remix-run/router": "1.11.0", + "react-router": "6.18.0" + } + }, + "react-syntax-highlighter": { + "version": "15.5.0", + "requires": { + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.4.1", + "lowlight": "^1.17.0", + "prismjs": "^1.27.0", + "refractor": "^3.6.0" + } + }, + "react-transition-group": { + "version": "4.4.5", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "refractor": { + "version": "3.6.0", + "requires": { + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" + }, + "dependencies": { + "prismjs": { + "version": "1.27.0" + } + } + }, + "regenerator-runtime": { + "version": "0.14.0" + }, + "resolve": { + "version": "1.22.4", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "rtl-css-js": { + "version": "1.16.1", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "scheduler": { + "version": "0.20.2", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "6.3.1", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "dev": true + }, + "space-separated-tokens": { + "version": "1.1.5" + }, + "stylis": { + "version": "4.3.0" + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0" + }, + "tabster": { + "version": "5.1.0", + "requires": { + "keyborg": "^2.2.0", + "tslib": "^2.3.1" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "dev": true + }, + "tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "typescript": { + "version": "5.2.2" + }, + "update-browserslist-db": { + "version": "1.0.13", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "use-disposable": { + "version": "1.0.2", + "requires": {} + }, + "vite": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", + "dev": true, + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + } + }, + "xtend": { + "version": "4.0.2" + }, + "yallist": { + "version": "3.1.1", + "dev": true + } } }