diff --git a/OAgents.sln b/OAgents.sln index 1dbbf08c..09acdc64 100644 --- a/OAgents.sln +++ b/OAgents.sln @@ -1,4 +1,5 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 + +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 @@ -28,7 +29,17 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oagents.Dapr", "src\Oagents EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oagents.Orleans", "src\Oagents.Orleans\Oagents.Orleans.csproj", "{8E900786-270D-4010-A279-CEDDB52B7422}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SupportCenter", "samples\support-center\src\backend\SupportCenter.csproj", "{A6DCD7B2-8347-4C52-A808-B5E0A5CD453D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "support-center", "support-center", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SupportCenter.ApiService", "samples\support-center\SupportCenter.ApiService\SupportCenter.ApiService.csproj", "{585569C8-C856-AEE4-1C3C-A4C0563AE1E1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SupportCenter.AppHost", "samples\support-center\SupportCenter.AppHost\SupportCenter.AppHost.csproj", "{CD5BEDC0-7828-3D9C-C122-2E1F91F6857D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SupportCenter.Seed.Memory", "samples\support-center\SupportCenter.Seed.Memory\SupportCenter.Seed.Memory.csproj", "{8A0CBD24-EF97-3A62-2546-0A8C6EFC2394}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SupportCenter.ServiceDefaults", "samples\support-center\SupportCenter.ServiceDefaults\SupportCenter.ServiceDefaults.csproj", "{D514E56F-1EBE-8DAC-F6E6-36110B95DF80}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SupportCenter.Shared", "samples\support-center\SupportCenter.Shared\SupportCenter.Shared.csproj", "{09C02E5F-8DDF-119D-A093-FFF12F4C7AEF}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -64,10 +75,26 @@ Global {8E900786-270D-4010-A279-CEDDB52B7422}.Debug|Any CPU.Build.0 = Debug|Any CPU {8E900786-270D-4010-A279-CEDDB52B7422}.Release|Any CPU.ActiveCfg = Release|Any CPU {8E900786-270D-4010-A279-CEDDB52B7422}.Release|Any CPU.Build.0 = Release|Any CPU - {A6DCD7B2-8347-4C52-A808-B5E0A5CD453D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6DCD7B2-8347-4C52-A808-B5E0A5CD453D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6DCD7B2-8347-4C52-A808-B5E0A5CD453D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6DCD7B2-8347-4C52-A808-B5E0A5CD453D}.Release|Any CPU.Build.0 = Release|Any CPU + {585569C8-C856-AEE4-1C3C-A4C0563AE1E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {585569C8-C856-AEE4-1C3C-A4C0563AE1E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {585569C8-C856-AEE4-1C3C-A4C0563AE1E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {585569C8-C856-AEE4-1C3C-A4C0563AE1E1}.Release|Any CPU.Build.0 = Release|Any CPU + {CD5BEDC0-7828-3D9C-C122-2E1F91F6857D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD5BEDC0-7828-3D9C-C122-2E1F91F6857D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD5BEDC0-7828-3D9C-C122-2E1F91F6857D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD5BEDC0-7828-3D9C-C122-2E1F91F6857D}.Release|Any CPU.Build.0 = Release|Any CPU + {8A0CBD24-EF97-3A62-2546-0A8C6EFC2394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A0CBD24-EF97-3A62-2546-0A8C6EFC2394}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A0CBD24-EF97-3A62-2546-0A8C6EFC2394}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A0CBD24-EF97-3A62-2546-0A8C6EFC2394}.Release|Any CPU.Build.0 = Release|Any CPU + {D514E56F-1EBE-8DAC-F6E6-36110B95DF80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D514E56F-1EBE-8DAC-F6E6-36110B95DF80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D514E56F-1EBE-8DAC-F6E6-36110B95DF80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D514E56F-1EBE-8DAC-F6E6-36110B95DF80}.Release|Any CPU.Build.0 = Release|Any CPU + {09C02E5F-8DDF-119D-A093-FFF12F4C7AEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09C02E5F-8DDF-119D-A093-FFF12F4C7AEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09C02E5F-8DDF-119D-A093-FFF12F4C7AEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09C02E5F-8DDF-119D-A093-FFF12F4C7AEF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -84,6 +111,14 @@ Global {B05CE76A-63ED-4F94-A531-A761BD8D6E52} = {290F9824-BAD3-4703-B9B7-FE9C4BE3A1CF} {3D2FDE8E-EB13-4686-B662-1DD5FFFC0366} = {290F9824-BAD3-4703-B9B7-FE9C4BE3A1CF} {8E900786-270D-4010-A279-CEDDB52B7422} = {290F9824-BAD3-4703-B9B7-FE9C4BE3A1CF} - {A6DCD7B2-8347-4C52-A808-B5E0A5CD453D} = {943853E7-513D-45EA-870F-549CFC0AF8E8} + {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} = {943853E7-513D-45EA-870F-549CFC0AF8E8} + {585569C8-C856-AEE4-1C3C-A4C0563AE1E1} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {CD5BEDC0-7828-3D9C-C122-2E1F91F6857D} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {8A0CBD24-EF97-3A62-2546-0A8C6EFC2394} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {D514E56F-1EBE-8DAC-F6E6-36110B95DF80} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {09C02E5F-8DDF-119D-A093-FFF12F4C7AEF} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B5B698EF-0ABD-4DB0-9C3B-31E9C739A00B} EndGlobalSection EndGlobal diff --git a/nuget.config b/nuget.config new file mode 100644 index 00000000..48f06d20 --- /dev/null +++ b/nuget.config @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/Architect/Architect.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/Architect/Architect.cs deleted file mode 100644 index 66812798..00000000 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/Architect/Architect.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Dapr.Actors.Runtime; -using Dapr.Client; -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Dapr; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; - -namespace Microsoft.AI.DevTeam.Dapr; - - -// The architect has Org+Repo scope and is holding the knowledge of the high level architecture of the project -public class Architect : AiAgent,IDaprAgent -{ - public Architect(ActorHost host, DaprClient client, ISemanticTextMemory memory, Kernel kernel) - : base(host, client, memory, kernel) - { - } - - public override Task HandleEvent(Event item) - { - return Task.CompletedTask; - } -} - -public class ArchitectState -{ - public string FilesTree { get; set; } - public string HighLevelArchitecture { get; set; } -} \ No newline at end of file diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/Developer/Developer.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/Developer/Developer.cs index 8648cb60..7f1f01c9 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/Developer/Developer.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/Developer/Developer.cs @@ -1,19 +1,17 @@ -using Dapr.Actors; using Dapr.Actors.Runtime; using Dapr.Client; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Dapr; using Microsoft.AI.DevTeam.Dapr.Events; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; +using Microsoft.Extensions.AI; namespace Microsoft.AI.DevTeam.Dapr; public class Dev : AiAgent, IDaprAgent { private readonly ILogger _logger; - public Dev(ActorHost host, DaprClient client, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(host, client, memory, kernel) + public Dev(ActorHost host, DaprClient client, IChatClient chatClient, ILogger logger) + : base(host, client, chatClient) { _logger = logger; } @@ -59,10 +57,8 @@ public async Task GenerateCode(string ask) try { // TODO: ask the architect for the high level architecture as well as the files structure of the project - var context = new KernelArguments { ["input"] = AppendChatHistory(ask)}; - var instruction = "Consider the following architectural guidelines:!waf!"; - var enhancedContext = await AddKnowledge(instruction, "waf",context); - return await CallFunction(DeveloperSkills.Implement, enhancedContext); + + return await CallFunction(DeveloperSkills.Implement); } catch (Exception ex) { diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/DeveloperLead/DeveloperLead.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/DeveloperLead/DeveloperLead.cs index bae10596..e6cf2b30 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/DeveloperLead/DeveloperLead.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/DeveloperLead/DeveloperLead.cs @@ -1,19 +1,17 @@ -using Dapr.Actors; using Dapr.Actors.Runtime; using Dapr.Client; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Dapr; using Microsoft.AI.DevTeam.Dapr.Events; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; +using Microsoft.Extensions.AI; namespace Microsoft.AI.DevTeam.Dapr; public class DeveloperLead : AiAgent, IDaprAgent { private readonly ILogger _logger; - public DeveloperLead(ActorHost host, DaprClient client, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(host, client, memory, kernel) + public DeveloperLead(ActorHost host, DaprClient client,IChatClient chatClient, ILogger logger) + : base(host, client, chatClient) { _logger = logger; } @@ -58,12 +56,8 @@ public async Task CreatePlan(string ask) { try { - // TODO: Ask the architect for the existing high level architecture - // as well as the file structure - var context = new KernelArguments { ["input"] = AppendChatHistory(ask) }; - var instruction = "Consider the following architectural guidelines:!waf!"; - var enhancedContext = await AddKnowledge(instruction, "waf", context); - return await CallFunction(DevLeadSkills.Plan, enhancedContext); + + return await CallFunction(DevLeadSkills.Plan); } catch (Exception ex) { diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/ProductManager/ProductManager.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/ProductManager/ProductManager.cs index ce08c1d1..6f96a1b6 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/ProductManager/ProductManager.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Agents/ProductManager/ProductManager.cs @@ -4,8 +4,7 @@ using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Dapr; using Microsoft.AI.DevTeam.Dapr.Events; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; +using Microsoft.Extensions.AI; namespace Microsoft.AI.DevTeam.Dapr; @@ -13,8 +12,8 @@ public class ProductManager : AiAgent, IDaprAgent { private readonly ILogger _logger; - public ProductManager(ActorHost host, DaprClient client, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(host, client, memory, kernel) + public ProductManager(ActorHost host, DaprClient client, IChatClient chatClient, ILogger logger) + : base(host, client, chatClient) { _logger = logger; } @@ -59,10 +58,7 @@ public async Task CreateReadme(string ask) { try { - var context = new KernelArguments { ["input"] = AppendChatHistory(ask) }; - var instruction = "Consider the following architectural guidelines:!waf!"; - var enhancedContext = await AddKnowledge(instruction, "waf", context); - return await CallFunction(PMSkills.Readme, enhancedContext); + return await CallFunction(PMSkills.Readme); } catch (Exception ex) { diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Microsoft.AI.DevTeam.Dapr.csproj b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Microsoft.AI.DevTeam.Dapr.csproj index 0173aa2f..0923d88e 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Microsoft.AI.DevTeam.Dapr.csproj +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Microsoft.AI.DevTeam.Dapr.csproj @@ -13,29 +13,21 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + - - + - - - + + diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Program.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Program.cs index 8c938d18..dd9f9e68 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Program.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam.Dapr/Program.cs @@ -1,16 +1,9 @@ using System.Text.Json; -using Azure; -using Azure.AI.OpenAI; using Microsoft.Extensions.Options; -using Microsoft.SemanticKernel; using Octokit.Webhooks; using Octokit.Webhooks.AspNetCore; using Azure.Identity; using Microsoft.Extensions.Azure; -using Microsoft.Extensions.Http.Resilience; -using Microsoft.SemanticKernel.Memory; -using Microsoft.SemanticKernel.Connectors.Qdrant; -using Microsoft.SemanticKernel.Connectors.OpenAI; using Dapr; using Dapr.Actors.Client; using Dapr.Actors; @@ -19,8 +12,6 @@ var builder = WebApplication.CreateBuilder(args); builder.Services.AddSingleton(); -builder.Services.AddTransient(CreateKernel); -builder.Services.AddTransient(CreateMemory); builder.Services.AddHttpClient(); builder.Services.AddSingleton(s => @@ -162,44 +153,4 @@ static async Task HandleEvent(IActorProxyFactory proxyFactory, string type, stri { throw; } -} - -static ISemanticTextMemory CreateMemory(IServiceProvider provider) -{ - var openAiConfig = provider.GetService>().Value; - var qdrantConfig = provider.GetService>().Value; - - var loggerFactory = LoggerFactory.Create(builder => - { - builder - .SetMinimumLevel(LogLevel.Debug) - .AddConsole() - .AddDebug(); - }); - - var memoryBuilder = new MemoryBuilder(); - return memoryBuilder.WithLoggerFactory(loggerFactory) - .WithQdrantMemoryStore(qdrantConfig.Endpoint, qdrantConfig.VectorSize) - .WithAzureOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingDeploymentOrModelId, openAiConfig.Endpoint, openAiConfig.ApiKey) - .Build(); -} - -static Kernel CreateKernel(IServiceProvider provider) -{ - var openAiConfig = provider.GetService>().Value; - var clientOptions = new OpenAIClientOptions(); - clientOptions.Retry.NetworkTimeout = TimeSpan.FromMinutes(5); - var openAIClient = new OpenAIClient(new Uri(openAiConfig.Endpoint), new AzureKeyCredential(openAiConfig.ApiKey), clientOptions); - var builder = Kernel.CreateBuilder(); - builder.Services.AddLogging(c => c.AddConsole().AddDebug().SetMinimumLevel(LogLevel.Debug)); - builder.Services.AddAzureOpenAIChatCompletion(openAiConfig.DeploymentOrModelId, openAIClient); - builder.Services.ConfigureHttpClientDefaults(c => - { - c.AddStandardResilienceHandler().Configure(o => - { - o.Retry.MaxRetryAttempts = 5; - o.Retry.BackoffType = Polly.DelayBackoffType.Exponential; - }); - }); - return builder.Build(); } \ No newline at end of file diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Architect/Architect.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Architect/Architect.cs deleted file mode 100644 index 5fa20dc5..00000000 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Architect/Architect.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; - -namespace Microsoft.AI.DevTeam; - - -// The architect has Org+Repo scope and is holding the knowledge of the high level architecture of the project -[ImplicitStreamSubscription(Consts.MainNamespace)] -public class Architect : AiAgent -{ - protected override string Namespace => Consts.MainNamespace; - public Architect([PersistentState("state", "messages")] IPersistentState> state, ISemanticTextMemory memory, Kernel kernel) - : base(state, memory, kernel) - { - } - - public override Task HandleEvent(Event item) - { - return Task.CompletedTask; - } -} - -[GenerateSerializer] -public class ArchitectState -{ - [Id(0)] - public string FilesTree { get; set; } - [Id(1)] - public string HighLevelArchitecture { get; set; } -} \ No newline at end of file diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer/Developer.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer.cs similarity index 65% rename from samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer/Developer.cs rename to samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer.cs index eed41e55..7bd4a594 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer/Developer.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer.cs @@ -1,26 +1,15 @@ using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; using Microsoft.AI.DevTeam.Events; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; +using Microsoft.Extensions.AI; -namespace Microsoft.AI.DevTeam; +namespace Microsoft.AI.DevTeam.Agents; [ImplicitStreamSubscription(Consts.MainNamespace)] -public class Dev : AiAgent, IDevelopApps +public class Dev([PersistentState("state", "messages")] IPersistentState> state, IChatClient chatClient, ILogger logger) : AiAgent(state), IDevelopApps { protected override string Namespace => Consts.MainNamespace; - private readonly ILogger _logger; - - public Dev([PersistentState("state", "messages")] IPersistentState> state, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(state, memory, kernel) - { - _logger = logger; - } - public async override Task HandleEvent(Event item) { switch (item.Type) @@ -65,20 +54,24 @@ public async Task GenerateCode(string ask) try { // TODO: ask the architect for the high level architecture as well as the files structure of the project - var context = new KernelArguments { ["input"] = AppendChatHistory(ask) }; + var input = AppendChatHistory(ask); var instruction = "Consider the following architectural guidelines:!waf!"; - var enhancedContext = await AddKnowledge(instruction, "waf", context); - var settings = new OpenAIPromptExecutionSettings{ - ResponseFormat = "json_object", - MaxTokens = 32768, - Temperature = 0.4, - TopP = 1 - }; - return await CallFunction(DeveloperSkills.Implement, enhancedContext); + var guidelines = "";// await AddKnowledge(instruction, "waf"); // TODO: fetch from Vector Store + var prompt = $""" + You are a Developer for an application. + Please output the code required to accomplish the task assigned to you below and wrap it in a bash script that creates the files. + Do not use any IDE commands and do not build and run the code. + Make specific choices about implementation. Do not offer a range of options. + Use comments in the code to describe the intent. Do not include other text other than code and code comments. + Input: {input} + {guidelines} + """; + var result = await chatClient.GetResponseAsync(prompt); + return result.Message.Text!; } catch (Exception ex) { - _logger.LogError(ex, "Error generating code"); + logger.LogError(ex, "Error generating code"); return default; } } diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer/DeveloperPrompts.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer/DeveloperPrompts.cs deleted file mode 100644 index d9d66602..00000000 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Developer/DeveloperPrompts.cs +++ /dev/null @@ -1,56 +0,0 @@ - -namespace Microsoft.AI.DevTeam; -public static class DeveloperSkills { - public static string Implement = """ - You are a Developer for an application. - Please output the code required to accomplish the task assigned to you below and wrap it in a bash script that creates the files. - Do not use any IDE commands and do not build and run the code. - Make specific choices about implementation. Do not offer a range of options. - Use comments in the code to describe the intent. Do not include other text other than code and code comments. - Input: {{$input}} - {{$waf}} - """; - - public static string Improve = """ - You are a Developer for an application. Your job is to imrove the code that you are given in the input below. - Please output a new version of code that fixes any problems with this version. - If there is an error message in the input you should fix that error in the code. - Wrap the code output up in a bash script that creates the necessary files by overwriting any previous files. - Do not use any IDE commands and do not build and run the code. - Make specific choices about implementation. Do not offer a range of options. - Use comments in the code to describe the intent. Do not include other text other than code and code comments. - Input: {{$input}} - {{$waf}} - """; - - public static string Explain = """ - You are an experienced software developer, with strong experience in Azure and Microsoft technologies. - Extract the key features and capabilities of the code file below, with the intent to build an understanding of an entire code repository. - You can include references or documentation links in your explanation. Also where appropriate please output a list of keywords to describe the code or its capabilities. - Example: - Keywords: Azure, networking, security, authentication - - ===code=== - {{$input}} - ===end-code=== - Only include the points in a bullet point format and DON'T add anything outside of the bulleted list. - Be short and concise. - If the code's purpose is not clear output an error: - Error: The model could not determine the purpose of the code. - """; - - public static string ConsolidateUnderstanding = """ - You are an experienced software developer, with strong experience in Azure and Microsoft technologies. - You are trying to build an understanding of the codebase from code files. This is the current understanding of the project: - ===current-understanding=== - {{$input}} - ===end-current-understanding=== - and this is the new information that surfaced - ===new-understanding=== - {{$newUnderstanding}} - ===end-new-understanding=== - Your job is to update your current understanding with the new information. - Only include the points in a bullet point format and DON'T add anything outside of the bulleted list. - Be short and concise. - """; -} \ No newline at end of file diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead.cs new file mode 100644 index 00000000..cbaee662 --- /dev/null +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead.cs @@ -0,0 +1,140 @@ +using Microsoft.AI.Agents.Abstractions; +using Microsoft.AI.Agents.Orleans; +using Microsoft.AI.DevTeam.Events; +using Microsoft.Extensions.AI; +using System.Text.Json; + +namespace Microsoft.AI.DevTeam.Agents; +[ImplicitStreamSubscription(Consts.MainNamespace)] +public class DeveloperLead([PersistentState("state", "messages")] IPersistentState> state, IChatClient chatClient, ILogger logger) : AiAgent(state), ILeadDevelopers +{ + protected override string Namespace => Consts.MainNamespace; + + public async override Task HandleEvent(Event item) + { + switch (item.Type) + { + case nameof(GithubFlowEventType.DevPlanRequested): + { + var context = item.ToGithubContext(); + var plan = await CreatePlan(item.Data["input"]); + var data = context.ToData(); + data["result"] = JsonSerializer.Serialize(plan); + await PublishEvent(Consts.MainNamespace, this.GetPrimaryKeyString(), new Event + { + Type = nameof(GithubFlowEventType.DevPlanGenerated), + Subject = context.Subject, + Data = data + }); + } + + break; + case nameof(GithubFlowEventType.DevPlanChainClosed): + { + var context = item.ToGithubContext(); + var latestPlan = _state.State.History.Last().Message; + var data = context.ToData(); + data["plan"] = latestPlan; + await PublishEvent(Consts.MainNamespace, this.GetPrimaryKeyString(), new Event + { + Type = nameof(GithubFlowEventType.DevPlanCreated), + Subject = context.Subject, + Data = data + }); + } + + break; + default: + break; + } + } + public async Task CreatePlan(string ask) + { + try + { + // TODO: Ask the architect for the existing high level architecture + // as well as the file structure + var input = AppendChatHistory(ask); + var instruction = "Consider the following architectural guidelines:!waf!"; + var guidelines = ""; // await AddKnowledge(instruction, "waf"); + var prompt = $$""" + You are a Dev Lead for an application team, building the application described below. + Please break down the steps and modules required to develop the complete application, describe each step in detail. + Make prescriptive architecture, language, and frameowrk choices, do not provide a range of choices. + For each step or module then break down the steps or subtasks required to complete that step or module. + For each subtask write an LLM prompt that would be used to tell a model to write the coee that will accomplish that subtask. If the subtask involves taking action/running commands tell the model to write the script that will run those commands. + In each LLM prompt restrict the model from outputting other text that is not in the form of code or code comments. + Please output a JSON array data structure, in the precise schema shown below, with a list of steps and a description of each step, and the steps or subtasks that each requires, and the LLM prompts for each subtask. + Example: + { + "steps": [ + { + "step": "1", + "description": "This is the first step", + "subtasks": [ + { + "subtask": "Subtask 1", + "description": "This is the first subtask", + "prompt": "Write the code to do the first subtask" + }, + { + "subtask": "Subtask 2", + "description": "This is the second subtask", + "prompt": "Write the code to do the second subtask" + } + ] + } + ] + } + Do not output any other text. + Do not wrap the JSON in any other text, output the JSON format described above, making sure it's a valid JSON. + Input: {{input}} + {{guidelines}} + """; + var result = await chatClient.GetResponseAsync(prompt); + return result.Result; + } + catch (Exception ex) + { + logger.LogError(ex, "Error creating development plan"); + return null; + } + } +} + +public interface ILeadDevelopers +{ + public Task CreatePlan(string ask); +} + +[GenerateSerializer] +public class DevLeadPlanResponse +{ + [Id(0)] + public List steps { get; set; } +} + +[GenerateSerializer] +public class Step +{ + [Id(0)] + public string description { get; set; } + [Id(1)] + public string step { get; set; } + [Id(2)] + public List subtasks { get; set; } +} + +[GenerateSerializer] +public class Subtask +{ + [Id(0)] + public string subtask { get; set; } + [Id(1)] + public string prompt { get; set; } +} + +public class DeveloperLeadState +{ + public string Plan { get; set; } +} \ No newline at end of file diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead/DevLeadPrompts.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead/DevLeadPrompts.cs deleted file mode 100644 index 2c20812a..00000000 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead/DevLeadPrompts.cs +++ /dev/null @@ -1,51 +0,0 @@ -namespace Microsoft.AI.DevTeam; -public static class DevLeadSkills { - public static string Plan = """ - You are a Dev Lead for an application team, building the application described below. - Please break down the steps and modules required to develop the complete application, describe each step in detail. - Make prescriptive architecture, language, and frameowrk choices, do not provide a range of choices. - For each step or module then break down the steps or subtasks required to complete that step or module. - For each subtask write an LLM prompt that would be used to tell a model to write the coee that will accomplish that subtask. If the subtask involves taking action/running commands tell the model to write the script that will run those commands. - In each LLM prompt restrict the model from outputting other text that is not in the form of code or code comments. - Please output a JSON array data structure, in the precise schema shown below, with a list of steps and a description of each step, and the steps or subtasks that each requires, and the LLM prompts for each subtask. - Example: - { - "steps": [ - { - "step": "1", - "description": "This is the first step", - "subtasks": [ - { - "subtask": "Subtask 1", - "description": "This is the first subtask", - "prompt": "Write the code to do the first subtask" - }, - { - "subtask": "Subtask 2", - "description": "This is the second subtask", - "prompt": "Write the code to do the second subtask" - } - ] - } - ] - } - Do not output any other text. - Do not wrap the JSON in any other text, output the JSON format described above, making sure it's a valid JSON. - Input: {{$input}} - {{$waf}} - """; - - public static string Explain = """ - You are a Dev Lead. - Please explain the code that is in the input below. You can include references or documentation links in your explanation. - Also where appropriate please output a list of keywords to describe the code or its capabilities. - example: - Keywords: Azure, networking, security, authentication - - If the code's purpose is not clear output an error: - Error: The model could not determine the purpose of the code. - - -- - Input: {{$input}} - """; -} diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead/DeveloperLead.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead/DeveloperLead.cs deleted file mode 100644 index bb87db69..00000000 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/DeveloperLead/DeveloperLead.cs +++ /dev/null @@ -1,120 +0,0 @@ -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Orleans; -using Microsoft.AI.DevTeam.Events; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; - -namespace Microsoft.AI.DevTeam; -[ImplicitStreamSubscription(Consts.MainNamespace)] -public class DeveloperLead : AiAgent, ILeadDevelopers -{ - protected override string Namespace => Consts.MainNamespace; - private readonly ILogger _logger; - - public DeveloperLead([PersistentState("state", "messages")] IPersistentState> state, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(state, memory, kernel) - { - _logger = logger; - } - - public async override Task HandleEvent(Event item) - { - switch (item.Type) - { - case nameof(GithubFlowEventType.DevPlanRequested): - { - var context = item.ToGithubContext(); - var plan = await CreatePlan(item.Data["input"]); - var data = context.ToData(); - data["result"] = plan; - await PublishEvent(Consts.MainNamespace, this.GetPrimaryKeyString(), new Event - { - Type = nameof(GithubFlowEventType.DevPlanGenerated), - Subject = context.Subject, - Data = data - }); - } - - break; - case nameof(GithubFlowEventType.DevPlanChainClosed): - { - var context = item.ToGithubContext(); - var latestPlan = _state.State.History.Last().Message; - var data = context.ToData(); - data["plan"] = latestPlan; - await PublishEvent(Consts.MainNamespace, this.GetPrimaryKeyString(), new Event - { - Type = nameof(GithubFlowEventType.DevPlanCreated), - Subject = context.Subject, - Data = data - }); - } - - break; - default: - break; - } - } - public async Task CreatePlan(string ask) - { - try - { - // TODO: Ask the architect for the existing high level architecture - // as well as the file structure - var context = new KernelArguments { ["input"] = AppendChatHistory(ask) }; - var instruction = "Consider the following architectural guidelines:!waf!"; - var enhancedContext = await AddKnowledge(instruction, "waf", context); - var settings = new OpenAIPromptExecutionSettings{ - ResponseFormat = "json_object", - MaxTokens = 4096, - Temperature = 0.8, - TopP = 1 - }; - return await CallFunction(DevLeadSkills.Plan, enhancedContext, settings); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error creating development plan"); - return default; - } - } -} - -public interface ILeadDevelopers -{ - public Task CreatePlan(string ask); -} - -[GenerateSerializer] -public class DevLeadPlanResponse -{ - [Id(0)] - public List steps { get; set; } -} - -[GenerateSerializer] -public class Step -{ - [Id(0)] - public string description { get; set; } - [Id(1)] - public string step { get; set; } - [Id(2)] - public List subtasks { get; set; } -} - -[GenerateSerializer] -public class Subtask -{ - [Id(0)] - public string subtask { get; set; } - [Id(1)] - public string prompt { get; set; } -} - -public class DeveloperLeadState -{ - public string Plan { get; set; } -} \ No newline at end of file diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Hubber.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Hubber.cs index 0069f212..94887fcf 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Hubber.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/Hubber.cs @@ -2,6 +2,7 @@ using System.Text.Json; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; +using Microsoft.AI.DevTeam.Agents; using Microsoft.AI.DevTeam.Events; namespace Microsoft.AI.DevTeam; diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager/ProductManager.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager.cs similarity index 60% rename from samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager/ProductManager.cs rename to samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager.cs index 3ffbc8a5..37bab1c3 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager/ProductManager.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager.cs @@ -1,23 +1,14 @@ using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; using Microsoft.AI.DevTeam.Events; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; +using Microsoft.Extensions.AI; namespace Microsoft.AI.DevTeam; [ImplicitStreamSubscription(Consts.MainNamespace)] -public class ProductManager : AiAgent, IManageProducts +public class ProductManager([PersistentState("state", "messages")] IPersistentState> state, IChatClient chatClient, ILogger logger) : AiAgent(state), IManageProducts { protected override string Namespace => Consts.MainNamespace; - private readonly ILogger _logger; - - public ProductManager([PersistentState("state", "messages")] IPersistentState> state, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(state, memory, kernel) - { - _logger = logger; - } public async override Task HandleEvent(Event item) { @@ -60,14 +51,24 @@ public async Task CreateReadme(string ask) { try { - var context = new KernelArguments { ["input"] = AppendChatHistory(ask)}; + var input = AppendChatHistory(ask); var instruction = "Consider the following architectural guidelines:!waf!"; - var enhancedContext = await AddKnowledge(instruction, "waf",context); - return await CallFunction(PMSkills.Readme, enhancedContext); + var guidelines = "";// await AddKnowledge(instruction, "waf"); + var prompt = $$$"""" + """ + You are a program manager on a software development team. You are working on an app described below. + Based on the input below, and any dialog or other context, please output a raw README.MD markdown file documenting the main features of the app and the architecture or code organization. + Do not describe how to create the application. + Write the README as if it were documenting the features and architecture of the application. You may include instructions for how to run the application. + Input: {{input}} + {{guidelines}} + """"; + var result = await chatClient.GetResponseAsync(prompt); + return result.Message.Text!; } catch (Exception ex) { - _logger.LogError(ex, "Error creating readme"); + logger.LogError(ex, "Error creating readme"); return default; } } diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager/PMPrompts.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager/PMPrompts.cs deleted file mode 100644 index 7683010e..00000000 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Agents/ProductManager/PMPrompts.cs +++ /dev/null @@ -1,34 +0,0 @@ -namespace Microsoft.AI.DevTeam; -public static class PMSkills -{ -public static string BootstrapProject = """ - Please write a bash script with the commands that would be required to generate applications as described in the following input. - You may add comments to the script and the generated output but do not add any other text except the bash script. - You may include commands to build the applications but do not run them. - Do not include any git commands. - Input: {{$input}} - {{$waf}} - """; - public static string Readme = """ - You are a program manager on a software development team. You are working on an app described below. - Based on the input below, and any dialog or other context, please output a raw README.MD markdown file documenting the main features of the app and the architecture or code organization. - Do not describe how to create the application. - Write the README as if it were documenting the features and architecture of the application. You may include instructions for how to run the application. - Input: {{$input}} - {{$waf}} - """; - - public static string Explain = """ - You are a Product Manager. - Please explain the code that is in the input below. You can include references or documentation links in your explanation. - Also where appropriate please output a list of keywords to describe the code or its capabilities. - example: - Keywords: Azure, networking, security, authentication - - If the code's purpose is not clear output an error: - Error: The model could not determine the purpose of the code. - - -- - Input: {{$input}} - """; -} diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Microsoft.AI.DevTeam.csproj b/samples/gh-flow/src/Microsoft.AI.DevTeam/Microsoft.AI.DevTeam.csproj index 542b6246..53c042e0 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Microsoft.AI.DevTeam.csproj +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam/Microsoft.AI.DevTeam.csproj @@ -13,34 +13,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + diff --git a/samples/gh-flow/src/Microsoft.AI.DevTeam/Program.cs b/samples/gh-flow/src/Microsoft.AI.DevTeam/Program.cs index 03c77b5d..c6917712 100644 --- a/samples/gh-flow/src/Microsoft.AI.DevTeam/Program.cs +++ b/samples/gh-flow/src/Microsoft.AI.DevTeam/Program.cs @@ -1,24 +1,13 @@ using System.Text.Json; -using Azure; -using Azure.AI.OpenAI; using Microsoft.AI.DevTeam; using Microsoft.Extensions.Options; -using Microsoft.SemanticKernel; using Octokit.Webhooks; using Octokit.Webhooks.AspNetCore; using Azure.Identity; using Microsoft.Extensions.Azure; -using Microsoft.Extensions.Http.Resilience; -using Microsoft.SemanticKernel.Memory; -using Microsoft.SemanticKernel.Connectors.Qdrant; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Orleans.Configuration; -using Orleans.Serialization; var builder = WebApplication.CreateBuilder(args); builder.Services.AddSingleton(); -builder.Services.AddTransient(CreateKernel); -builder.Services.AddTransient(CreateMemory); builder.Services.AddHttpClient(); @@ -87,64 +76,7 @@ builder.Host.UseOrleans(siloBuilder => { siloBuilder.UseDashboard(x => x.HostSelf = true); - if (builder.Environment.IsDevelopment()) - { - siloBuilder.UseLocalhostClustering() - .AddMemoryStreams("StreamProvider") - .AddMemoryGrainStorage("PubSubStore") - .AddMemoryGrainStorage("messages"); - - siloBuilder.UseInMemoryReminderService(); - siloBuilder.UseDashboard(x => x.HostSelf = true); - - siloBuilder.UseInMemoryReminderService(); - } - else - { - var cosmosDbconnectionString = builder.Configuration.GetValue("AzureOptions:CosmosConnectionString"); - siloBuilder.Configure(options => - { - options.ClusterId = "ai-dev-cluster"; - options.ServiceId = "ai-dev-cluster"; - }); - siloBuilder.Configure(options => - { - options.ResponseTimeout = TimeSpan.FromMinutes(3); - options.SystemResponseTimeout = TimeSpan.FromMinutes(3); - }); - siloBuilder.Configure(options => - { - options.ResponseTimeout = TimeSpan.FromMinutes(3); - }); - siloBuilder.UseCosmosClustering(o => - { - o.ConfigureCosmosClient(cosmosDbconnectionString); - o.ContainerName = "devteam"; - o.DatabaseName = "clustering"; - o.IsResourceCreationEnabled = true; - }); - - siloBuilder.UseCosmosReminderService(o => - { - o.ConfigureCosmosClient(cosmosDbconnectionString); - o.ContainerName = "devteam"; - o.DatabaseName = "reminders"; - o.IsResourceCreationEnabled = true; - }); - siloBuilder.AddCosmosGrainStorage( - name: "messages", - configureOptions: o => - { - o.ConfigureCosmosClient(cosmosDbconnectionString); - o.ContainerName = "devteam"; - o.DatabaseName = "persistence"; - o.IsResourceCreationEnabled = true; - }); - //TODO: replace with EventHub - siloBuilder - .AddMemoryStreams("StreamProvider") - .AddMemoryGrainStorage("PubSubStore"); - } + }); builder.Services.Configure(options => @@ -162,44 +94,4 @@ app.Map("/dashboard", x => x.UseOrleansDashboard()); -app.Run(); - -static ISemanticTextMemory CreateMemory(IServiceProvider provider) -{ - var openAiConfig = provider.GetService>().Value; - var qdrantConfig = provider.GetService>().Value; - - var loggerFactory = LoggerFactory.Create(builder => - { - builder - .SetMinimumLevel(LogLevel.Debug) - .AddConsole() - .AddDebug(); - }); - - var memoryBuilder = new MemoryBuilder(); - return memoryBuilder.WithLoggerFactory(loggerFactory) - .WithQdrantMemoryStore(qdrantConfig.Endpoint, qdrantConfig.VectorSize) - .WithAzureOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingDeploymentOrModelId, openAiConfig.Endpoint, openAiConfig.ApiKey) - .Build(); -} - -static Kernel CreateKernel(IServiceProvider provider) -{ - var openAiConfig = provider.GetService>().Value; - var clientOptions = new OpenAIClientOptions(); - clientOptions.Retry.NetworkTimeout = TimeSpan.FromMinutes(5); - var openAIClient = new OpenAIClient(new Uri(openAiConfig.Endpoint), new AzureKeyCredential(openAiConfig.ApiKey), clientOptions); - var builder = Kernel.CreateBuilder(); - builder.Services.AddLogging(c => c.AddConsole().AddDebug().SetMinimumLevel(LogLevel.Debug)); - builder.Services.AddAzureOpenAIChatCompletion(openAiConfig.DeploymentOrModelId, openAIClient); - builder.Services.ConfigureHttpClientDefaults(c => - { - c.AddStandardResilienceHandler().Configure(o => - { - o.Retry.MaxRetryAttempts = 5; - o.Retry.BackoffType = Polly.DelayBackoffType.Exponential; - }); - }); - return builder.Build(); -} \ No newline at end of file +app.Run(); \ No newline at end of file diff --git a/samples/gh-flow/src/seed-memory/Program.cs b/samples/gh-flow/src/seed-memory/Program.cs index af9fc428..8934f981 100644 --- a/samples/gh-flow/src/seed-memory/Program.cs +++ b/samples/gh-flow/src/seed-memory/Program.cs @@ -24,7 +24,7 @@ static async Task Main(string[] args) var memoryBuilder = new MemoryBuilder(); var memory = memoryBuilder.WithLoggerFactory(loggerFactory) .WithQdrantMemoryStore(kernelSettings.QdrantEndpoint, 1536) - .WithAzureOpenAITextEmbeddingGeneration(kernelSettings.EmbeddingDeploymentOrModelId,kernelSettings.Endpoint, kernelSettings.ApiKey) + //.WithAzureOpenAITextEmbeddingGeneration(kernelSettings.EmbeddingDeploymentOrModelId,kernelSettings.Endpoint, kernelSettings.ApiKey) .Build(); await ImportDocumentAsync(memory, WafFileName); diff --git a/samples/gh-flow/src/seed-memory/seed-memory.csproj b/samples/gh-flow/src/seed-memory/seed-memory.csproj index ec8d3327..ac299119 100644 --- a/samples/gh-flow/src/seed-memory/seed-memory.csproj +++ b/samples/gh-flow/src/seed-memory/seed-memory.csproj @@ -10,16 +10,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/samples/marketing/src/backend/Agents/Auditor/Auditor.cs b/samples/marketing/src/backend/Agents/Auditor/Auditor.cs index 98ce95f6..be51bd7b 100644 --- a/samples/marketing/src/backend/Agents/Auditor/Auditor.cs +++ b/samples/marketing/src/backend/Agents/Auditor/Auditor.cs @@ -1,45 +1,45 @@ -using Marketing.Controller; using Marketing.Events; using Marketing.Options; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; +using Microsoft.Extensions.AI; namespace Marketing.Agents; [ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class Auditor : AiAgent +public class Auditor([PersistentState("state", "messages")] IPersistentState> state, IChatClient chatClient, ILogger logger) : AiAgent(state) { protected override string Namespace => Consts.OrleansNamespace; - private readonly ILogger _logger; - - public Auditor([PersistentState("state", "messages")] IPersistentState> state, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(state, memory, kernel) - { - _logger = logger; - } - public async override Task HandleEvent(Event item) { switch (item.Type) { case nameof(EventTypes.AuditText): - { - string text = item.Data["text"]; - _logger.LogInformation($"[{nameof(Auditor)}] Event {nameof(EventTypes.AuditText)}. Text: {text}"); - - var context = new KernelArguments { ["input"] = AppendChatHistory(text) }; - string auditorAnswer = await CallFunction(AuditorPrompts.AuditText, context); - if (auditorAnswer.Contains("NOTFORME")) { - return; + string text = item.Data["text"]; + logger.LogInformation($"[{nameof(Auditor)}] Event {nameof(EventTypes.AuditText)}. Text: {text}"); + + var input = AppendChatHistory(text); + var prompt = $""" + You are an Auditor in a Marketing team + Audit the text bello and make sure we do not give discounts larger than 10% + If the text talks about a larger than 10% discount, reply with a message to the user saying that the discount is too large, and by company policy we are not allowed. + If the message says who wrote it, add that information in the response as well + In any other case, reply with NOTFORME + --- + Input: {input} + --- + """; + var result = await chatClient.GetResponseAsync(prompt); + var auditorAnswer = result.Message.Text!; + if (auditorAnswer.Contains("NOTFORME")) + { + return; + } + await SendAuditorAlertEvent(auditorAnswer, item.Data["UserId"]); + break; } - await SendAuditorAlertEvent(auditorAnswer, item.Data["UserId"]); - break; - } default: break; } diff --git a/samples/marketing/src/backend/Agents/Auditor/AuditorPrompts.cs b/samples/marketing/src/backend/Agents/Auditor/AuditorPrompts.cs deleted file mode 100644 index 821fd558..00000000 --- a/samples/marketing/src/backend/Agents/Auditor/AuditorPrompts.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Marketing.Agents; - -public static class AuditorPrompts -{ - public static string AuditText = """ - You are an Auditor in a Marketing team - Audit the text bello and make sure we do not give discounts larger than 10% - If the text talks about a larger than 10% discount, reply with a message to the user saying that the discount is too large, and by company policy we are not allowed. - If the message says who wrote it, add that information in the response as well - In any other case, reply with NOTFORME - --- - Input: {{$input}} - --- - """; -} \ No newline at end of file diff --git a/samples/marketing/src/backend/Agents/CommunityManager/CommunityManager.cs b/samples/marketing/src/backend/Agents/CommunityManager/CommunityManager.cs index 152f2503..fbdc03e6 100644 --- a/samples/marketing/src/backend/Agents/CommunityManager/CommunityManager.cs +++ b/samples/marketing/src/backend/Agents/CommunityManager/CommunityManager.cs @@ -1,27 +1,16 @@ -using Marketing.Controller; using Marketing.Events; using Marketing.Options; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; +using Microsoft.Extensions.AI; namespace Marketing.Agents; [ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class CommunityManager : AiAgent +public class CommunityManager([PersistentState("state", "messages")] IPersistentState> state, IChatClient chatClient, ILogger logger) : AiAgent(state) { protected override string Namespace => Consts.OrleansNamespace; - private readonly ILogger _logger; - - public CommunityManager([PersistentState("state", "messages")] IPersistentState> state, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(state, memory, kernel) - { - _logger = logger; - } - public async override Task HandleEvent(Event item) { switch (item.Type) @@ -51,7 +40,7 @@ public async override Task HandleEvent(Event item) article = _state.State.Data.Article; } else - { + { // No article yet return; } @@ -60,10 +49,22 @@ public async override Task HandleEvent(Event item) { article += "| USER REQUEST: " + item.Data["userMessage"]; } - _logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.ArticleCreated)}. Article: {article}"); + logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.ArticleCreated)}. Article: {article}"); - var context = new KernelArguments { ["input"] = AppendChatHistory(article) }; - string socialMediaPost = await CallFunction(CommunityManagerPrompts.WritePost, context); + var input = AppendChatHistory(article); + var prompt = $""" + You are a Marketing community manager writer. + If the request from the user is to write a post to promote a new product, or if it is specifically talking to you (community manager) + then you should write a post based on the user request + Your writings are going to be posted on Tweeter. So be informal, friendly and add some hashtags and emojis. + Remember, the tweet cannot be longer than 280 characters. + If the request was not intedend for you. reply with " + --- + Input: {input} + --- + """; + var result = await chatClient.GetResponseAsync(prompt); + var socialMediaPost = result.Message.Text!; if (socialMediaPost.Contains("NOTFORME")) { return; diff --git a/samples/marketing/src/backend/Agents/CommunityManager/CommunityManagerPrompts.cs b/samples/marketing/src/backend/Agents/CommunityManager/CommunityManagerPrompts.cs deleted file mode 100644 index ada868d6..00000000 --- a/samples/marketing/src/backend/Agents/CommunityManager/CommunityManagerPrompts.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Marketing.Agents; - -public static class CommunityManagerPrompts -{ - public static string WritePost = """ - You are a Marketing community manager writer. - If the request from the user is to write a post to promote a new product, or if it is specifically talking to you (community manager) - then you should write a post based on the user request - Your writings are going to be posted on Tweeter. So be informal, friendly and add some hashtags and emojis. - Remember, the tweet cannot be longer than 280 characters. - If the request was not intedend for you. reply with " - --- - Input: {{$input}} - --- - """; -} \ No newline at end of file diff --git a/samples/marketing/src/backend/Agents/GraphicDesigner/GraphicDesigner.cs b/samples/marketing/src/backend/Agents/GraphicDesigner/GraphicDesigner.cs index f72f7449..e1511807 100644 --- a/samples/marketing/src/backend/Agents/GraphicDesigner/GraphicDesigner.cs +++ b/samples/marketing/src/backend/Agents/GraphicDesigner/GraphicDesigner.cs @@ -2,28 +2,17 @@ using Marketing.Options; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Microsoft.SemanticKernel.TextToImage; -using Orleans.Runtime; +using Microsoft.Extensions.AI; +using OpenAI; +using OpenAI.Images; namespace Marketing.Agents; [ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class GraphicDesigner : AiAgent +public class GraphicDesigner([PersistentState("state", "messages")] IPersistentState> state, OpenAIClient openAiClient, ILogger logger, IConfiguration configuration) : AiAgent(state) { protected override string Namespace => Consts.OrleansNamespace; - private readonly ILogger _logger; - private readonly IConfiguration _configuration; - - public GraphicDesigner([PersistentState("state", "messages")] IPersistentState> state, Kernel kernel, ISemanticTextMemory memory, ILogger logger, IConfiguration configuration) - : base(state, memory, kernel) - { - _logger = logger; - _configuration = configuration; - } - public async override Task HandleEvent(Event item) { string lastMessage; @@ -49,10 +38,13 @@ public async override Task HandleEvent(Event item) return; } - _logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.ArticleCreated)}."); + logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.ArticleCreated)}."); var article = item.Data["article"]; - var dallEService = _kernel.GetRequiredService(); - var imageUri = await dallEService.GenerateImageAsync(article, 1024, 1024); + + var imageClient = openAiClient.GetImageClient("dall-e"); + var result = imageClient.GenerateImageAsync(article, new ImageGenerationOptions { Size = OpenAI.Images.GeneratedImageSize.W1024xH1024}); + + var imageUri = ""; // TODO: Reimplement using OpenAI directly await dallEService.GenerateImageAsync(article, 1024, 1024); _state.State.Data.imageUrl = imageUri; diff --git a/samples/marketing/src/backend/Agents/SignalR/SignalR.cs b/samples/marketing/src/backend/Agents/SignalR/SignalR.cs index 9afa6fa6..f0366a0e 100644 --- a/samples/marketing/src/backend/Agents/SignalR/SignalR.cs +++ b/samples/marketing/src/backend/Agents/SignalR/SignalR.cs @@ -3,8 +3,6 @@ using Marketing.SignalRHub; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; -using System; -using System.Security.Policy; namespace Marketing.Agents; diff --git a/samples/marketing/src/backend/Agents/Writer/Writer.cs b/samples/marketing/src/backend/Agents/Writer/Writer.cs index 904d248a..42750012 100644 --- a/samples/marketing/src/backend/Agents/Writer/Writer.cs +++ b/samples/marketing/src/backend/Agents/Writer/Writer.cs @@ -2,30 +2,17 @@ using Marketing.Options; using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; +using Microsoft.Extensions.AI; namespace Marketing.Agents; [ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class Writer : AiAgent, IWriter +public class Writer([PersistentState("state", "messages")] IPersistentState> state, IChatClient chatClient, ILogger logger) : AiAgent(state), IWriter { protected override string Namespace => Consts.OrleansNamespace; - private readonly ILogger _logger; - - public Writer([PersistentState("state", "messages")] IPersistentState> state, Kernel kernel, ISemanticTextMemory memory, ILogger logger) - : base(state, memory, kernel) - { - _logger = logger; - } - public async override Task HandleEvent(Event item) { - KernelArguments context; - string newArticle; - switch (item.Type) { case nameof(EventTypes.UserConnected): @@ -41,33 +28,56 @@ public async override Task HandleEvent(Event item) break; case nameof(EventTypes.UserChatInput): - var userMessage = item.Data["userMessage"]; - _logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.UserChatInput)}. UserMessage: {userMessage}"); - - context = new KernelArguments { ["input"] = AppendChatHistory(userMessage) }; - newArticle = await CallFunction(WriterPrompts.Write, context); - - if (newArticle.Contains("NOTFORME")) { - return; + var userMessage = item.Data["userMessage"]; + logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.UserChatInput)}. UserMessage: {userMessage}"); + + var input = AppendChatHistory(userMessage); + var prompt = $""" + This is a multi agent app. You are a Marketing Campaign writer Agent. + If the request is not for you, answer with . + If the request is about writing or modifying an existing campaing, then you should write a campain based on the user request. + Write up to three paragraphs to promote the product the user is asking for. + Bellow are a series of inputs from the user that you can use. + If the input talks about twitter or images, dismiss it and return + Input: {input} + """; + var result = await chatClient.GetResponseAsync(prompt); + var newArticle = result.Message.Text!; + + if (newArticle.Contains("NOTFORME")) + { + return; + } + await SendArticleCreatedEvent(newArticle, item.Data["UserId"]); + break; } - await SendArticleCreatedEvent(newArticle, item.Data["UserId"]); - break; - case nameof(EventTypes.AuditorAlert): - var auditorAlertMessage = item.Data["auditorAlertMessage"]; - _logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.AuditorAlert)}. auditorAlertMessage: {auditorAlertMessage}"); - - context = new KernelArguments { ["input"] = AppendChatHistory(auditorAlertMessage) }; - newArticle = await CallFunction(WriterPrompts.Adjust, context); - - if (newArticle.Contains("NOTFORME")) { - return; + var auditorAlertMessage = item.Data["auditorAlertMessage"]; + logger.LogInformation($"[{nameof(GraphicDesigner)}] Event {nameof(EventTypes.AuditorAlert)}. auditorAlertMessage: {auditorAlertMessage}"); + + var input = AppendChatHistory(auditorAlertMessage); + var prompt = $""" + This is a multi agent app. You are a Marketing Campaign writer Agent. + If the request is not for you, answer with . + If the request is about writing or modifying an existing campaing, then you should write a campain based on the user request. + The campaign is not compliant with the company policy, and you need to adjust it. This is the message from the automatic auditor agent regarding what is wrong with the original campaing + --- + Input: {input} + --- + Return only the new campaign text but adjusted to the auditor request + """; + var result = await chatClient.GetResponseAsync(prompt); + var newArticle = result.Message.Text!; + + if (newArticle.Contains("NOTFORME")) + { + return; + } + await SendArticleCreatedEvent(newArticle, item.Data["UserId"]); + break; } - await SendArticleCreatedEvent(newArticle, item.Data["UserId"]); - break; - default: break; } diff --git a/samples/marketing/src/backend/Agents/Writer/WriterPrompts.cs b/samples/marketing/src/backend/Agents/Writer/WriterPrompts.cs deleted file mode 100644 index 8fd3553e..00000000 --- a/samples/marketing/src/backend/Agents/Writer/WriterPrompts.cs +++ /dev/null @@ -1,25 +0,0 @@ - -namespace Marketing.Agents; -public static class WriterPrompts -{ - public static string Write = """ - This is a multi agent app. You are a Marketing Campaign writer Agent. - If the request is not for you, answer with . - If the request is about writing or modifying an existing campaing, then you should write a campain based on the user request. - Write up to three paragraphs to promote the product the user is asking for. - Bellow are a series of inputs from the user that you can use. - If the input talks about twitter or images, dismiss it and return - Input: {{$input}} - """; - - public static string Adjust = """ - This is a multi agent app. You are a Marketing Campaign writer Agent. - If the request is not for you, answer with . - If the request is about writing or modifying an existing campaing, then you should write a campain based on the user request. - The campaign is not compliant with the company policy, and you need to adjust it. This is the message from the automatic auditor agent regarding what is wrong with the original campaing - --- - Input: {{$input}} - --- - Return only the new campaign text but adjusted to the auditor request - """; -} \ No newline at end of file diff --git a/samples/marketing/src/backend/Controller/Articles.cs b/samples/marketing/src/backend/Controller/Articles.cs index 78cd09fc..e1c5b729 100644 --- a/samples/marketing/src/backend/Controller/Articles.cs +++ b/samples/marketing/src/backend/Controller/Articles.cs @@ -41,7 +41,7 @@ public async Task Get(string id) [HttpPut("{UserId}")] public async Task Put(string UserId, [FromBody] string userMessage) { - var streamProvider = _client.GetStreamProvider("StreamProvider"); + var streamProvider = _client.GetStreamProvider(Consts.StreamProvider); var streamId = StreamId.Create(Consts.OrleansNamespace, UserId); var stream = streamProvider.GetStream(streamId); diff --git a/samples/marketing/src/backend/Marketing.csproj b/samples/marketing/src/backend/Marketing.csproj index 36c6d09e..ca4d3dbf 100644 --- a/samples/marketing/src/backend/Marketing.csproj +++ b/samples/marketing/src/backend/Marketing.csproj @@ -19,40 +19,43 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + diff --git a/samples/marketing/src/backend/Options/Consts.cs b/samples/marketing/src/backend/Options/Consts.cs index 7effc35f..2c92de90 100644 --- a/samples/marketing/src/backend/Options/Consts.cs +++ b/samples/marketing/src/backend/Options/Consts.cs @@ -3,4 +3,6 @@ public static class Consts { public const string OrleansNamespace = "DevPersonas"; + + public static string StreamProvider = "StreamProvider"; } diff --git a/samples/marketing/src/backend/Program.cs b/samples/marketing/src/backend/Program.cs index 1de489f4..1fd090cf 100644 --- a/samples/marketing/src/backend/Program.cs +++ b/samples/marketing/src/backend/Program.cs @@ -1,20 +1,8 @@ using System.Text.Json; -using Azure; -using Azure.AI.OpenAI; -using Microsoft.Extensions.Options; -using Microsoft.SemanticKernel; -using Microsoft.Extensions.Http.Resilience; -using Microsoft.SemanticKernel.Memory; -using Microsoft.SemanticKernel.Connectors.Qdrant; -using Microsoft.SemanticKernel.Connectors.OpenAI; using Marketing.SignalRHub; using Marketing.Options; -using Marketing; -using Orleans.Serialization; var builder = WebApplication.CreateBuilder(args); -builder.Services.AddTransient(CreateKernel); -builder.Services.AddTransient(CreateMemory); builder.Services.AddHttpClient(); builder.Services.AddControllers(); builder.Services.AddApplicationInsightsTelemetry(); @@ -82,77 +70,4 @@ app.Map("/dashboard", x => x.UseOrleansDashboard()); app.MapHub("/articlehub"); -app.Run(); - -static ISemanticTextMemory CreateMemory(IServiceProvider provider) -{ - OpenAIOptions openAiConfig = provider.GetService>().Value; - QdrantOptions qdrantConfig = provider.GetService>().Value; - - var loggerFactory = LoggerFactory.Create(builder => - { - builder - .SetMinimumLevel(LogLevel.Debug) - .AddConsole() - .AddDebug(); - }); - - var memoryBuilder = new MemoryBuilder(); - return memoryBuilder.WithLoggerFactory(loggerFactory) - .WithQdrantMemoryStore(qdrantConfig.Endpoint, qdrantConfig.VectorSize) - .WithAzureOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingsDeploymentOrModelId, openAiConfig.EmbeddingsEndpoint, openAiConfig.EmbeddingsApiKey) - .Build(); -} - -static Kernel CreateKernel(IServiceProvider provider) -{ - OpenAIOptions openAiConfig = provider.GetService>().Value; - var clientOptions = new OpenAIClientOptions(); - clientOptions.Retry.NetworkTimeout = TimeSpan.FromMinutes(5); - var builder = Kernel.CreateBuilder(); - builder.Services.AddLogging(c => c.AddConsole().AddDebug().SetMinimumLevel(LogLevel.Debug)); - - // Chat - var openAIClient = new OpenAIClient(new Uri(openAiConfig.ChatEndpoint), new AzureKeyCredential(openAiConfig.ChatApiKey), clientOptions); - if (openAiConfig.ChatEndpoint.Contains(".azure", StringComparison.OrdinalIgnoreCase)) - { - builder.Services.AddAzureOpenAIChatCompletion(openAiConfig.ChatDeploymentOrModelId, openAIClient); - } - else - { - builder.Services.AddOpenAIChatCompletion(openAiConfig.ChatDeploymentOrModelId, openAIClient); - } - - // Text to Image - openAIClient = new OpenAIClient(new Uri(openAiConfig.ImageEndpoint), new AzureKeyCredential(openAiConfig.ImageApiKey), clientOptions); - if (openAiConfig.ImageEndpoint.Contains(".azure", StringComparison.OrdinalIgnoreCase)) - { - Throw.IfNullOrEmpty(nameof(openAiConfig.ImageDeploymentOrModelId), openAiConfig.ImageDeploymentOrModelId); - builder.Services.AddAzureOpenAITextToImage(openAiConfig.ImageDeploymentOrModelId, openAIClient); - } - else - { - builder.Services.AddOpenAITextToImage(openAiConfig.ImageApiKey); - } - - // Embeddings - openAIClient = new OpenAIClient(new Uri(openAiConfig.EmbeddingsEndpoint), new AzureKeyCredential(openAiConfig.EmbeddingsApiKey), clientOptions); - if (openAiConfig.EmbeddingsEndpoint.Contains(".azure", StringComparison.OrdinalIgnoreCase)) - { - builder.Services.AddAzureOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingsDeploymentOrModelId, openAIClient); - } - else - { - builder.Services.AddOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingsDeploymentOrModelId, openAIClient); - } - - builder.Services.ConfigureHttpClientDefaults(c => - { - c.AddStandardResilienceHandler().Configure(o => - { - o.Retry.MaxRetryAttempts = 5; - o.Retry.BackoffType = Polly.DelayBackoffType.Exponential; - }); - }); - return builder.Build(); -} \ No newline at end of file +app.Run(); \ No newline at end of file diff --git a/samples/marketing/src/backend/SignalRHub/ArticleHub.cs b/samples/marketing/src/backend/SignalRHub/ArticleHub.cs index f60876a2..78c9732b 100644 --- a/samples/marketing/src/backend/SignalRHub/ArticleHub.cs +++ b/samples/marketing/src/backend/SignalRHub/ArticleHub.cs @@ -28,7 +28,7 @@ public override async Task OnDisconnectedAsync(Exception exception) /// public async Task ProcessMessage(FrontEndMessage frontEndMessage, IClusterClient clusterClient) { - var streamProvider = clusterClient.GetStreamProvider("StreamProvider"); + var streamProvider = clusterClient.GetStreamProvider(Consts.StreamProvider); var streamId = StreamId.Create(Consts.OrleansNamespace, frontEndMessage.UserId); var stream = streamProvider.GetStream(streamId); @@ -58,7 +58,7 @@ public async Task ConnectToAgent(string UserId, IClusterClient clusterClient) SignalRConnectionsDB.ConnectionIdByUser.AddOrUpdate(UserId, Context.ConnectionId, (key, oldValue) => Context.ConnectionId); // Notify the agents that a new user got connected. - var streamProvider = clusterClient.GetStreamProvider("StreamProvider"); + var streamProvider = clusterClient.GetStreamProvider(Consts.StreamProvider); var streamId = StreamId.Create(Consts.OrleansNamespace, frontEndMessage.UserId); var stream = streamProvider.GetStream(streamId); var data = new Dictionary diff --git a/samples/support-center/.gitignore b/samples/support-center/.gitignore new file mode 100644 index 00000000..8e843802 --- /dev/null +++ b/samples/support-center/.gitignore @@ -0,0 +1 @@ +.azure diff --git a/samples/support-center/SupportCenter.ApiService/Agents/Conversation/Conversation.cs b/samples/support-center/SupportCenter.ApiService/Agents/Conversation/Conversation.cs new file mode 100644 index 00000000..ab69e976 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/Conversation/Conversation.cs @@ -0,0 +1,68 @@ +using Microsoft.AI.Agents.Abstractions; +using Microsoft.AI.Agents.Orleans; +using Microsoft.Extensions.AI; +using SupportCenter.ApiService.Events; +using SupportCenter.ApiService.Extensions; +using SupportCenter.ApiService.SignalRHub; +using static SupportCenter.ApiService.Consts; + +namespace SupportCenter.ApiService.Agents.Conversation; +[ImplicitStreamSubscription(OrleansNamespace)] +public class Conversation([PersistentState("state", "messages")] IPersistentState> state, + ILogger logger, [FromKeyedServices(Gpt4oMini)] IChatClient chatClient) : AiAgent(state) +{ + protected override string Namespace => OrleansNamespace; + protected override string StreamProvider => OrleansStreamProvider; + + public async override Task HandleEvent(Event item) + { + switch (item.Type) + { + case nameof(EventType.UserConnected): + // The user reconnected, let's send the last message if we have one + string? lastMessage = _state.State.History.LastOrDefault()?.Message; + if (lastMessage == null) + { + return; + } + break; + case nameof(EventType.ConversationRequested): + string? userId = item.Data.GetValueOrDefault("userId"); + string? message = item.Data.GetValueOrDefault("message"); + string? input = AppendChatHistory(message); + + var registry = GrainFactory.GetGrain(userId); + var connection = await registry.GetConnection(); + string id = $"{userId}/{connection.ConversationId}"; + logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(Conversation), nameof(EventType.ConversationRequested), message); + + + + var prompt = $"""" + """ + You are a helpful customer support/service agent at Contoso Electronics. Be polite, friendly and professional and answer briefly. + Answer with a plain string ONLY, without any extra words or characters like '. + Input: {input} + """"; + var result = await chatClient.GetResponseAsync(prompt); + var answer = result.Message.Text!; + await SendAnswerEvent(id, userId, answer); + break; + default: + break; + } + } + + private async Task SendAnswerEvent(string id, string userId, string message) + { + await PublishEvent(Consts.OrleansNamespace, id, new Event + { + Type = nameof(EventType.ConversationRetrieved), + Data = new Dictionary { + { nameof(id), id }, + { nameof(userId), userId }, + { nameof(message), message } + } + }); + } +} \ No newline at end of file diff --git a/samples/support-center/SupportCenter.ApiService/Agents/Conversation/ConversationState.cs b/samples/support-center/SupportCenter.ApiService/Agents/Conversation/ConversationState.cs new file mode 100644 index 00000000..cb73f1f8 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/Conversation/ConversationState.cs @@ -0,0 +1,6 @@ +namespace SupportCenter.ApiService.Agents.Conversation; + +public class ConversationState +{ +} + diff --git a/samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfo.cs b/samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfo.cs new file mode 100644 index 00000000..cc8d6c5d --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfo.cs @@ -0,0 +1,142 @@ +using Microsoft.AI.Agents.Abstractions; +using Microsoft.AI.Agents.Orleans; +using Microsoft.Extensions.AI; +using SupportCenter.ApiService.Data; +using SupportCenter.ApiService.Events; +using SupportCenter.ApiService.Extensions; +using SupportCenter.ApiService.SignalRHub; +using System.ComponentModel; +using static SupportCenter.ApiService.Consts; + +namespace SupportCenter.ApiService.Agents.CustomerInfo; + +[ImplicitStreamSubscription(OrleansNamespace)] +public class CustomerInfo( + [PersistentState("state", "messages")] IPersistentState> state, + ILogger logger, + IServiceProvider serviceProvider, + ICustomerRepository customerRepository, + [FromKeyedServices(Gpt4oMini)] IChatClient chatClient) : AiAgent(state) +{ + protected override string Namespace => OrleansNamespace; + protected override string StreamProvider => OrleansStreamProvider; + + public async override Task HandleEvent(Event item) + { + switch (item.Type) + { + case nameof(EventType.UserNewConversation): + // The user started a new conversation. + _state.State.History.Clear(); + break; + case nameof(EventType.CustomerInfoRequested): + { + var registry = GrainFactory.GetGrain(item.Data.GetValueOrDefault("userId")); + var connection = await registry.GetConnection(); + var ssc = item.GetAgentData(connection.ConversationId); + string? userId = ssc.UserId; + string? message = ssc.UserMessage; + string? id = ssc.Id; + + logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(CustomerInfo), item.Type, item.Data); + await PublishEvent(Namespace, id, new Event + { + Type = nameof(EventType.CustomerInfoNotification), + Data = new Dictionary + { + { nameof(userId), userId }, + { nameof(message), "I'm working on the user's request..." } + } + }); + + // Get the customer info via the planners. + var prompt = $""" + Here is the user message: + userId: {userId} + userMessage: {message} + + Here is the history of all messages (including the last one): + {AppendChatHistory(message)} + """; + + + var chatOptions = new ChatOptions + { + Tools = [AIFunctionFactory.Create(GetCustomerDataAsync), + AIFunctionFactory.Create(GetAllCustomersAsync), + AIFunctionFactory.Create(InsertCustomerDataAsync), + AIFunctionFactory.Create(UpdateCustomerDataAsync) + ] + }; + + List chatHistory = [new(ChatRole.System, """ + You are a Customer Info agent, working with the Support Center. + You can help customers working with their own information. + Read the customer's message carefully, and then decide the appropriate plan to create. + A history of the conversation is available to help you building a correct plan. + If you don't know how to proceed, don't guess; instead ask for more information and use it as a final answer. + If you think that the message is not clear, you can ask the customer for more information. + """)]; + + chatHistory.Add(new Microsoft.Extensions.AI.ChatMessage(ChatRole.User, prompt)); + + var response = await chatClient.GetResponseAsync(chatHistory, chatOptions); + var result = response.Message.Contents.Last(); + AddToHistory($"{result}", ChatUserType.Agent); + + logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(CustomerInfo), item.Type, result); + + await PublishEvent(Namespace, id, new Event + { + Type = nameof(EventType.CustomerInfoRetrieved), + Data = new Dictionary + { + { nameof(userId), userId }, + { nameof(message), $"{result}" } + } + }); + + break; + } + + default: + break; + } + } + + [Description("Get customer data")] + public async Task GetCustomerDataAsync( + [Description("The customer id")] string customerId) + { + logger.LogInformation("Executing {FunctionName} function. Params: {parameters}", nameof(GetCustomerDataAsync), string.Join(", ", [customerId])); + var customer = await customerRepository.GetCustomerByIdAsync(customerId); + if (customer == null) + { + logger.LogWarning("Customer with id {customerId} not found", customerId); + } + return customer ?? new Customer(); + } + + [Description("Get all customers")] + public async Task> GetAllCustomersAsync() + { + logger.LogInformation("Executing {FunctionName} function", nameof(GetAllCustomersAsync)); + return await customerRepository.GetCustomersAsync(); + } + + [Description("Insert customer data")] + public async Task InsertCustomerDataAsync( + [Description("The customer data")] Customer customer) + { + logger.LogInformation("Executing {FunctionName} function. Params: {parameters}", nameof(InsertCustomerDataAsync), customer.ToStringCustom()); + await customerRepository.InsertCustomerAsync(customer); + } + + [Description("Update customer data")] + public async Task UpdateCustomerDataAsync( + [Description("The customer data")] Customer customer) + { + logger.LogInformation("Executing {FunctionName} function. Params: {parameters}", nameof(UpdateCustomerDataAsync), customer.ToStringCustom()); + await customerRepository.UpdateCustomerAsync(customer); + } +} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfoPrompts.cs b/samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfoPrompts.cs similarity index 93% rename from samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfoPrompts.cs rename to samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfoPrompts.cs index 2f25b941..69d96854 100644 --- a/samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfoPrompts.cs +++ b/samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfoPrompts.cs @@ -1,4 +1,4 @@ -namespace SupportCenter.Agents; +namespace SupportCenter.ApiService.Agents.CustomerInfo; public class CustomerInfoPrompts { diff --git a/samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfoState.cs b/samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfoState.cs similarity index 83% rename from samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfoState.cs rename to samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfoState.cs index 5396121c..fbde344d 100644 --- a/samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfoState.cs +++ b/samples/support-center/SupportCenter.ApiService/Agents/CustomerInfo/CustomerInfoState.cs @@ -1,4 +1,4 @@ -namespace SupportCenter.Agents; +namespace SupportCenter.ApiService.Agents.CustomerInfo; public class CustomerInfoState { diff --git a/samples/support-center/SupportCenter.ApiService/Agents/Discount/Discount.cs b/samples/support-center/SupportCenter.ApiService/Agents/Discount/Discount.cs new file mode 100644 index 00000000..e0f93f97 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/Discount/Discount.cs @@ -0,0 +1,32 @@ +using Microsoft.AI.Agents.Abstractions; +using Microsoft.AI.Agents.Orleans; +using Microsoft.Extensions.AI; +using SupportCenter.ApiService.Events; +using static SupportCenter.ApiService.Consts; + +namespace SupportCenter.ApiService.Agents.Discount; + +[ImplicitStreamSubscription(OrleansNamespace)] +public class Discount([PersistentState("state", "messages")] IPersistentState> state, + ILogger logger, [FromKeyedServices(Gpt4oMini)] IChatClient chatClient) : AiAgent(state) +{ + protected override string Namespace => OrleansNamespace; + protected override string StreamProvider => OrleansStreamProvider; + + public async override Task HandleEvent(Event item) + { + switch (item.Type) + { + case nameof(EventType.UserConnected): + // The user reconnected, let's send the last message if we have one + string? lastMessage = _state.State.History.LastOrDefault()?.Message; + if (lastMessage == null) + { + return; + } + break; + default: + break; + } + } +} \ No newline at end of file diff --git a/samples/support-center/SupportCenter.ApiService/Agents/Discount/DiscountState.cs b/samples/support-center/SupportCenter.ApiService/Agents/Discount/DiscountState.cs new file mode 100644 index 00000000..972d162e --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/Discount/DiscountState.cs @@ -0,0 +1,6 @@ +namespace SupportCenter.ApiService.Agents.Discount; + +public class DiscountState +{ +} + diff --git a/samples/support-center/src/backend/Agents/Dispatcher/Dispatcher.cs b/samples/support-center/SupportCenter.ApiService/Agents/Dispatcher/Dispatcher.cs similarity index 57% rename from samples/support-center/src/backend/Agents/Dispatcher/Dispatcher.cs rename to samples/support-center/SupportCenter.ApiService/Agents/Dispatcher/Dispatcher.cs index 835812da..c02b1021 100644 --- a/samples/support-center/src/backend/Agents/Dispatcher/Dispatcher.cs +++ b/samples/support-center/SupportCenter.ApiService/Agents/Dispatcher/Dispatcher.cs @@ -1,54 +1,48 @@ using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Orleans.Runtime; -using SupportCenter.Attributes; -using SupportCenter.Events; -using SupportCenter.Extensions; -using SupportCenter.Options; +using Microsoft.Extensions.AI; +using Microsoft.Win32; +using SupportCenter.ApiService.Attributes; +using SupportCenter.ApiService.Events; +using SupportCenter.ApiService.Extensions; +using SupportCenter.ApiService.SignalRHub; using System.Reflection; +using static SupportCenter.ApiService.Consts; -namespace SupportCenter.Agents; +namespace SupportCenter.ApiService.Agents.Dispatcher; -[ImplicitStreamSubscription(Consts.OrleansNamespace)] +[ImplicitStreamSubscription(OrleansNamespace)] [DispatcherChoice("QnA", "The customer is asking a question related to internal Contoso knowledge base.", EventType.QnARequested)] [DispatcherChoice("Discount", "The customer is asking for a discount about a product or service.", EventType.DiscountRequested)] [DispatcherChoice("Invoice", "The customer is asking for an invoice.", EventType.InvoiceRequested)] [DispatcherChoice("CustomerInfo", "The customer is asking for reading or updating his or her personal data.", EventType.CustomerInfoRequested)] [DispatcherChoice("Conversation", "The customer is having a generic conversation. When the request is generic or can't be classified differently, use this choice.", EventType.ConversationRequested)] -public class Dispatcher : AiAgent -{ - private readonly ILogger _logger; - - protected override string Namespace => Consts.OrleansNamespace; - - public Dispatcher( +public class Dispatcher( ILogger logger, [PersistentState("state", "messages")] IPersistentState> state, - [FromKeyedServices("DispatcherKernel")] Kernel kernel - ) - : base(state, default, kernel) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - + [FromKeyedServices(Gpt4oMini)] IChatClient chatClient) : AiAgent(state) +{ + protected override string Namespace => OrleansNamespace; + protected override string StreamProvider => OrleansStreamProvider; public async override Task HandleEvent(Event item) { - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(Dispatcher), item.Type, item.Data); + logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(Dispatcher), item.Type, item.Data); - var ssc = item.GetAgentData(); + var registry = GrainFactory.GetGrain(item.Data.GetValueOrDefault("userId")); + var connection = await registry.GetConnection(); + var ssc = item.GetAgentData(connection.ConversationId); string? userId = ssc.UserId; string? message = ssc.UserMessage; string? id = ssc.Id; string? intent; - _logger.LogInformation($"userId: {userId}, message: {message}"); + logger.LogInformation($"userId: {userId}, message: {message}"); if (userId == null || message == null) { - _logger.LogWarning("[{Agent}]:[{EventType}]:[{EventData}]. Input is missing.", nameof(Dispatcher), item.Type, item.Data); + logger.LogWarning("[{Agent}]:[{EventType}]:[{EventData}]. Input is missing.", nameof(Dispatcher), item.Type, item.Data); return; } - + switch (item.Type) { case nameof(EventType.UserConnected): @@ -56,7 +50,7 @@ public async override Task HandleEvent(Event item) string? lastMessage = _state.State.History.LastOrDefault()?.Message; if (lastMessage == null) { - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]. Last message is missing.", nameof(Dispatcher), item.Type, item.Data); + logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]. Last message is missing.", nameof(Dispatcher), item.Type, item.Data); return; } intent = (await ExtractIntentAsync(lastMessage))?.Trim(' ', '\"', '.') ?? string.Empty; @@ -90,10 +84,10 @@ public async override Task HandleEvent(Event item) var answer = item.Data.GetValueOrDefault("message"); if (answer == null) { - _logger.LogWarning("[{Agent}]:[{EventType}]:[{EventData}]. Answer from agent is missing.", nameof(Dispatcher), item.Type, item.Data); + logger.LogWarning("[{Agent}]:[{EventType}]:[{EventData}]. Answer from agent is missing.", nameof(Dispatcher), item.Type, item.Data); return; } - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(Dispatcher), item.Type, answer); + logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(Dispatcher), item.Type, answer); AddToHistory(answer, ChatUserType.Agent); break; default: @@ -104,12 +98,37 @@ public async override Task HandleEvent(Event item) private async Task ExtractIntentAsync(string message) { var input = AppendChatHistory(message); - - var context = new KernelArguments { ["input"] = input }; - context.Add("choices", GetAndSerializeChoices()); - return await CallFunction(DispatcherPrompts.GetIntent, context); + var choices = GetAndSerializeChoices(); + var prompt = $""" + You are a dispatcher agent, working with the Support Center of the Contoso organization. + You can help customers with their issues, and you can also assign tickets to other AI agents. + Read the customer's message carefully, and then decide the appropriate intent from the following list. + A history of the conversation is available to help you make a decision. + + If you don't know the intent, please don't guess; instead respond with "Unknown". + There may be multiple intents, but you should choose the most appropriate one. + If you think that the message is not clear, you can ask the customer for more information. + + You can choose between the following intents: + {choices} + + Here are few examples: + - User Input: Can you help me in updating my address? + - CustomerInfo + + - User Input: Could you check whether my invoice has been correctly payed? + - Invoice + + Here is the user input: + User Input: {input} + + Return the intent as a string. + """; + var result = await chatClient.GetResponseAsync(prompt); + return result.Message.Text!; } + // TODO: Custom attributes should be constructed only once in the lifetime of the application. private string GetAndSerializeChoices() { var choices = this.GetType().GetCustomAttributes() @@ -121,6 +140,7 @@ private string GetAndSerializeChoices() private async Task SendDispatcherEvent(string id, string userId, string intent, string message) { + // TODO: Custom attributes should be constructed only once in the lifetime of the application. var type = this.GetType() .GetCustomAttributes() .FirstOrDefault(attr => attr.Name == intent)? diff --git a/samples/support-center/SupportCenter.ApiService/Agents/Dispatcher/DispatcherState.cs b/samples/support-center/SupportCenter.ApiService/Agents/Dispatcher/DispatcherState.cs new file mode 100644 index 00000000..bff7ac39 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/Dispatcher/DispatcherState.cs @@ -0,0 +1,11 @@ +namespace SupportCenter.ApiService.Agents.Dispatcher; + +public class DispatcherState +{ +} + +public class Choice(string name, string description) +{ + public string Name { get; set; } = name; + public string Description { get; set; } = description; +} \ No newline at end of file diff --git a/samples/support-center/SupportCenter.ApiService/Agents/QnA/QnA.cs b/samples/support-center/SupportCenter.ApiService/Agents/QnA/QnA.cs new file mode 100644 index 00000000..7681f62b --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/QnA/QnA.cs @@ -0,0 +1,86 @@ +using Microsoft.AI.Agents.Abstractions; +using Microsoft.AI.Agents.Orleans; +using Microsoft.Extensions.AI; +using SupportCenter.ApiService.Data; +using SupportCenter.ApiService.Events; +using SupportCenter.ApiService.Extensions; +using SupportCenter.ApiService.SignalRHub; +using System.Text; +using static SupportCenter.ApiService.Consts; + +namespace SupportCenter.ApiService.Agents.QnA; +[ImplicitStreamSubscription(OrleansNamespace)] +public class QnA([PersistentState("state", "messages")] IPersistentState> state, + ILogger logger, IVectorRepository vectorRepository, + [FromKeyedServices(Gpt4oMini)] IChatClient chatClient) : AiAgent(state) +{ + protected override string Namespace => OrleansNamespace; + protected override string StreamProvider => OrleansStreamProvider; + + public async override Task HandleEvent(Event item) + { + switch (item.Type) + { + case nameof(EventType.UserConnected): + // The user reconnected, let's send the last message if we have one + string? lastMessage = _state.State.History.LastOrDefault()?.Message; + if (lastMessage == null) + { + return; + } + break; + case nameof(EventType.QnARequested): + var registry = GrainFactory.GetGrain(item.Data.GetValueOrDefault("userId")); + var connection = await registry.GetConnection(); + var ssc = item.GetAgentData(connection.ConversationId); + string? userId = ssc.UserId; + string? message = ssc.UserMessage; + string? id = ssc.Id; + + logger.LogInformation($"userId: {userId}, message: {message}"); + if (userId == null || message == null) + { + logger.LogWarning("[{Agent}]:[{EventType}]:[{EventData}]. Input is missing.", nameof(Dispatcher), item.Type, item.Data); + return; + } + + logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(QnA), nameof(EventType.QnARequested), message); + await SendAnswerEvent(id, userId, $"Please wait while I look in the documents for answers to your question..."); + + var input = AppendChatHistory(message); + var kb = new StringBuilder(); + await foreach (var doc in await vectorRepository.GetDocuments(input, "qna", 5)) + { + kb.AppendLine($"{doc.Record.Text}"); + } + + var prompt = $""" + You are a helpful customer support/service agent at Contoso Electronics. Be polite and professional and answer briefly based on your knowledge ONLY. + Input: {input} + Consider the following knowledge and facts: + {kb} + """; + + var result = await chatClient.GetResponseAsync(prompt); + var answer = result.Message.Text!; + + await SendAnswerEvent(id, userId, answer); + break; + + default: + break; + } + } + + private async Task SendAnswerEvent(string id, string userId, string message) + { + await PublishEvent(OrleansNamespace, id, new Event + { + Type = nameof(EventType.QnARetrieved), + Data = new Dictionary { + { nameof(userId), userId }, + { nameof(message), message } + } + }); + } +} \ No newline at end of file diff --git a/samples/support-center/SupportCenter.ApiService/Agents/QnA/QnAState.cs b/samples/support-center/SupportCenter.ApiService/Agents/QnA/QnAState.cs new file mode 100644 index 00000000..309ce064 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Agents/QnA/QnAState.cs @@ -0,0 +1,6 @@ +namespace SupportCenter.ApiService.Agents.QnA; + +public class QnAState +{ +} + diff --git a/samples/support-center/src/backend/Agents/SignalR/SignalR.cs b/samples/support-center/SupportCenter.ApiService/Agents/SignalR/SignalR.cs similarity index 76% rename from samples/support-center/src/backend/Agents/SignalR/SignalR.cs rename to samples/support-center/SupportCenter.ApiService/Agents/SignalR/SignalR.cs index 0bff848d..be5835b3 100644 --- a/samples/support-center/src/backend/Agents/SignalR/SignalR.cs +++ b/samples/support-center/SupportCenter.ApiService/Agents/SignalR/SignalR.cs @@ -1,17 +1,18 @@ using Microsoft.AI.Agents.Abstractions; using Microsoft.AI.Agents.Orleans; -using SupportCenter.Events; -using SupportCenter.Extensions; -using SupportCenter.Options; -using SupportCenter.SignalRHub; +using SupportCenter.ApiService.Events; +using SupportCenter.ApiService.Extensions; +using SupportCenter.ApiService.SignalRHub; using System.Collections.Concurrent; +using static SupportCenter.ApiService.Consts; -namespace Marketing.Agents; +namespace SupportCenter.ApiService.Agents.SignalR; -[ImplicitStreamSubscription(Consts.OrleansNamespace)] +[ImplicitStreamSubscription(OrleansNamespace)] public class SignalR : Agent { - protected override string Namespace => Consts.OrleansNamespace; + protected override string Namespace => OrleansNamespace; + protected override string StreamProvider => OrleansStreamProvider; private readonly ConcurrentDictionary _eventTypeToSenderTypeMapping = new() { [nameof(EventType.QnARetrieved)] = AgentType.QnA, @@ -56,6 +57,8 @@ public async override Task HandleEvent(Event item) message = "Sorry, I don't know how to handle this request. Try to rephrase it."; } - await _signalRClient.SendMessageToClient(messageId: Guid.NewGuid().ToString(), userId, message, agentType); + var registry = GrainFactory.GetGrain(userId); + var connection = await registry.GetConnection(); + await _signalRClient.SendMessageToClient(messageId: Guid.NewGuid().ToString(), userId, conversationId: connection.ConversationId, connectionId: connection.Id, message, agentType); } } \ No newline at end of file diff --git a/samples/support-center/src/backend/Attributes/Choice.cs b/samples/support-center/SupportCenter.ApiService/Attributes/Choice.cs similarity index 81% rename from samples/support-center/src/backend/Attributes/Choice.cs rename to samples/support-center/SupportCenter.ApiService/Attributes/Choice.cs index 6264e0cb..f5f275e0 100644 --- a/samples/support-center/src/backend/Attributes/Choice.cs +++ b/samples/support-center/SupportCenter.ApiService/Attributes/Choice.cs @@ -1,6 +1,6 @@ -using SupportCenter.Events; +using SupportCenter.ApiService.Events; -namespace SupportCenter.Attributes +namespace SupportCenter.ApiService.Attributes { [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] public class DispatcherChoice(string name, string description, EventType dispatchToEvent) : Attribute diff --git a/samples/support-center/SupportCenter.ApiService/Consts.cs b/samples/support-center/SupportCenter.ApiService/Consts.cs new file mode 100644 index 00000000..c46305eb --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Consts.cs @@ -0,0 +1,10 @@ +namespace SupportCenter.ApiService +{ + public static class Consts + { + public const string OrleansNamespace = "SupportCenter"; + public const string Gpt4oMini = "gpt-4o-mini"; + + public static string OrleansStreamProvider = "AzureQueueProvider"; + } +} \ No newline at end of file diff --git a/samples/support-center/src/backend/Controllers/Interactions.cs b/samples/support-center/SupportCenter.ApiService/Controllers/Interactions.cs similarity index 85% rename from samples/support-center/src/backend/Controllers/Interactions.cs rename to samples/support-center/SupportCenter.ApiService/Controllers/Interactions.cs index 034627ec..1da825ea 100644 --- a/samples/support-center/src/backend/Controllers/Interactions.cs +++ b/samples/support-center/SupportCenter.ApiService/Controllers/Interactions.cs @@ -1,10 +1,10 @@ using Microsoft.AI.Agents.Abstractions; using Microsoft.AspNetCore.Mvc; +using Orleans; using Orleans.Runtime; -using SupportCenter.Events; -using SupportCenter.Options; +using SupportCenter.ApiService.Events; -namespace SupportCenter.Controllers +namespace SupportCenter.ApiService.Controllers { [Route("api/[controller]")] [ApiController] @@ -21,7 +21,7 @@ public Interactions(IClusterClient client) [HttpPost("{userId}")] public async Task Post(string userId, [FromBody] string userMessage) { - var streamProvider = _client.GetStreamProvider("StreamProvider"); + var streamProvider = _client.GetStreamProvider(Consts.OrleansStreamProvider); var streamId = StreamId.Create(Consts.OrleansNamespace, userId); // to change var stream = streamProvider.GetStream(streamId); diff --git a/samples/support-center/SupportCenter.ApiService/Data/Customer.cs b/samples/support-center/SupportCenter.ApiService/Data/Customer.cs new file mode 100644 index 00000000..144e5183 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Data/Customer.cs @@ -0,0 +1,15 @@ +namespace SupportCenter.ApiService.Data +{ + public class Customer + { + public string Id { get; set; } + public string? Name { get; set; } + + public string? Email { get; set; } + + public string? Phone { get; set; } + + public string? Address { get; set; } + + } +} diff --git a/samples/support-center/SupportCenter.ApiService/Data/CustomerRepository.cs b/samples/support-center/SupportCenter.ApiService/Data/CustomerRepository.cs new file mode 100644 index 00000000..227a2ed1 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Data/CustomerRepository.cs @@ -0,0 +1,57 @@ +using StackExchange.Redis; +using System.Text.Json; + +namespace SupportCenter.ApiService.Data +{ + public class CustomerRepository([FromKeyedServices("redis")] IConnectionMultiplexer redisConnection, ILogger logger) : ICustomerRepository + { + // Method that gets a customer by ID from redis database + public async Task GetCustomerByIdAsync(string customerId) + { + var db = redisConnection.GetDatabase(); + var key = $"customers:{customerId}"; + var customer = await db.StringGetAsync(key); + if (customer.IsNullOrEmpty) + { + return null; + } + return JsonSerializer.Deserialize(customer.ToString()); + } + + public async Task> GetCustomersAsync() + { + var server = redisConnection.GetServer(redisConnection.GetEndPoints().First()); + var db = redisConnection.GetDatabase(); + var keys = server.Keys(pattern: "customers:*"); + var customers = new List(); + + foreach (var key in keys) + { + var data = await db.StringGetAsync(key); + if (!data.IsNullOrEmpty) + { + var customer = JsonSerializer.Deserialize(data.ToString()); + if (customer != null) + { + customers.Add(customer); + } + } + } + return customers; + } + + public async Task InsertCustomerAsync(Customer customer) + { + var db = redisConnection.GetDatabase(); + var key = $"customers:{customer.Id}"; + await db.StringSetAsync(key, JsonSerializer.Serialize(customer)); + } + + public async Task UpdateCustomerAsync(Customer customer) + { + var db = redisConnection.GetDatabase(); + var key = $"customers:{customer.Id}"; + await db.StringSetAsync(key, JsonSerializer.Serialize(customer)); + } + } +} diff --git a/samples/support-center/src/backend/Data/CosmosDb/ICustomerRepository.cs b/samples/support-center/SupportCenter.ApiService/Data/ICustomerRepository.cs similarity index 76% rename from samples/support-center/src/backend/Data/CosmosDb/ICustomerRepository.cs rename to samples/support-center/SupportCenter.ApiService/Data/ICustomerRepository.cs index 15d74693..d4fa113b 100644 --- a/samples/support-center/src/backend/Data/CosmosDb/ICustomerRepository.cs +++ b/samples/support-center/SupportCenter.ApiService/Data/ICustomerRepository.cs @@ -1,6 +1,4 @@ -using SupportCenter.Data.CosmosDb.Entities; - -namespace SupportCenter.Data.CosmosDb +namespace SupportCenter.ApiService.Data { public interface ICustomerRepository { diff --git a/samples/support-center/SupportCenter.ApiService/Data/IVectorRepository.cs b/samples/support-center/SupportCenter.ApiService/Data/IVectorRepository.cs new file mode 100644 index 00000000..2ac0df98 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Data/IVectorRepository.cs @@ -0,0 +1,10 @@ +using Microsoft.Extensions.VectorData; +using SupportCenter.Shared; + +namespace SupportCenter.ApiService.Data +{ + public interface IVectorRepository + { + Task>> GetDocuments(string query, string index, int top = 2); + } +} diff --git a/samples/support-center/SupportCenter.ApiService/Data/VectorRepository.cs b/samples/support-center/SupportCenter.ApiService/Data/VectorRepository.cs new file mode 100644 index 00000000..d3a403ed --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Data/VectorRepository.cs @@ -0,0 +1,24 @@ +using Microsoft.Extensions.AI; +using Microsoft.Extensions.VectorData; +using SupportCenter.Shared; + +namespace SupportCenter.ApiService.Data +{ + public class VectorRepository(IEmbeddingGenerator> embeddingGenerator, IVectorStore vectorStore) : IVectorRepository + { + public async Task>> GetDocuments(string query, string index, int top=2) + { + var queryEmbedding = await embeddingGenerator.GenerateEmbeddingVectorAsync(query); + var collection = vectorStore.GetCollection(index); + + var searchOptions = new VectorSearchOptions() + { + Top = top, + VectorPropertyName = "Vector" + }; + + var results = await collection.VectorizedSearchAsync(queryEmbedding, searchOptions); + return results.Results; + } + } +} \ No newline at end of file diff --git a/samples/support-center/src/backend/Events/EventTypes.cs b/samples/support-center/SupportCenter.ApiService/Events/EventTypes.cs similarity index 92% rename from samples/support-center/src/backend/Events/EventTypes.cs rename to samples/support-center/SupportCenter.ApiService/Events/EventTypes.cs index 4a7f1c04..c20d3af1 100644 --- a/samples/support-center/src/backend/Events/EventTypes.cs +++ b/samples/support-center/SupportCenter.ApiService/Events/EventTypes.cs @@ -1,4 +1,4 @@ -namespace SupportCenter.Events; +namespace SupportCenter.ApiService.Events; public enum EventType { diff --git a/samples/support-center/SupportCenter.ApiService/Extensions/DictionaryExtension.cs b/samples/support-center/SupportCenter.ApiService/Extensions/DictionaryExtension.cs new file mode 100644 index 00000000..9850082f --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Extensions/DictionaryExtension.cs @@ -0,0 +1,46 @@ + +namespace SupportCenter.ApiService.Extensions +{ + using System; + using System.Collections.Generic; + + /// + /// Provides extension methods for . + /// + public static class DictionaryExtensions + { + /// + /// Gets the value associated with the specified key or the default value of if the key does not exist. + /// + /// The type of the value to return. + /// The dictionary to search. + /// The key of the value to get. + /// The value associated with the specified key, or the default value of if the key does not exist. + /// Thrown when or is null. + /// Thrown when the value associated with the specified key cannot be converted to . + public static T GetValueOrDefault(this IDictionary dictionary, string key) + { + ArgumentNullException.ThrowIfNull(dictionary); + ArgumentNullException.ThrowIfNull(key); + + if (dictionary.TryGetValue(key, out var value)) + { + if (value is T typedValue) + return typedValue; + + try + { + return (T)Convert.ChangeType(value, typeof(T)); + } + catch (InvalidCastException) + { + throw new InvalidOperationException($"Value for key '{key}' is not of type {typeof(T).Name}"); + } + } + else + { + return default; + } + } + } +} diff --git a/samples/support-center/src/backend/Extensions/ObjectExtensions.cs b/samples/support-center/SupportCenter.ApiService/Extensions/ObjectExtensions.cs similarity index 96% rename from samples/support-center/src/backend/Extensions/ObjectExtensions.cs rename to samples/support-center/SupportCenter.ApiService/Extensions/ObjectExtensions.cs index a8137e04..e1169e46 100644 --- a/samples/support-center/src/backend/Extensions/ObjectExtensions.cs +++ b/samples/support-center/SupportCenter.ApiService/Extensions/ObjectExtensions.cs @@ -1,7 +1,7 @@ using System.Reflection; using System.Text; -namespace SupportCenter.Extensions +namespace SupportCenter.ApiService.Extensions { public static class ObjectExtensions { diff --git a/samples/support-center/src/backend/Extensions/SupportCenterAgentExtensions.cs b/samples/support-center/SupportCenter.ApiService/Extensions/SupportCenterAgentExtensions.cs similarity index 69% rename from samples/support-center/src/backend/Extensions/SupportCenterAgentExtensions.cs rename to samples/support-center/SupportCenter.ApiService/Extensions/SupportCenterAgentExtensions.cs index 8519eb3f..b09888d7 100644 --- a/samples/support-center/src/backend/Extensions/SupportCenterAgentExtensions.cs +++ b/samples/support-center/SupportCenter.ApiService/Extensions/SupportCenterAgentExtensions.cs @@ -1,18 +1,17 @@ using Microsoft.AI.Agents.Abstractions; -using SupportCenter.SignalRHub; -namespace SupportCenter.Extensions +namespace SupportCenter.ApiService.Extensions { public static class SupportCenterAgentExtensions { - public static SupportCenterData GetAgentData(this Event item) + public static SupportCenterData GetAgentData(this Event item, string? conversationId) { string? userId = item.Data.GetValueOrDefault("userId"); string? userMessage = item.Data.GetValueOrDefault("message") ?? item.Data.GetValueOrDefault("userMessage"); - string? conversationId = SignalRConnectionsDB.GetConversationId(userId) ?? item.Data.GetValueOrDefault("id"); - string id = $"{userId}/{conversationId}"; + string? cId = conversationId ?? item.Data.GetValueOrDefault("id"); + string id = $"{userId}/{cId}"; return new SupportCenterData(id, userId, userMessage); } diff --git a/samples/support-center/src/backend/Extensions/ValidationExtensions.cs b/samples/support-center/SupportCenter.ApiService/Extensions/ValidationExtensions.cs similarity index 93% rename from samples/support-center/src/backend/Extensions/ValidationExtensions.cs rename to samples/support-center/SupportCenter.ApiService/Extensions/ValidationExtensions.cs index 2ee1d9f4..f8873db3 100644 --- a/samples/support-center/src/backend/Extensions/ValidationExtensions.cs +++ b/samples/support-center/SupportCenter.ApiService/Extensions/ValidationExtensions.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace SupportCenter.Core +namespace SupportCenter.ApiService.Extensions { /* * This class is used to extend the validation functionality of the application. diff --git a/samples/support-center/SupportCenter.ApiService/Program.cs b/samples/support-center/SupportCenter.ApiService/Program.cs new file mode 100644 index 00000000..52191e3b --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/Program.cs @@ -0,0 +1,116 @@ +using Microsoft.Extensions.AI; +using OpenAI; +using SupportCenter.ApiService.SignalRHub; +using System.Text.Json; +using Orleans.Serialization; +using static SupportCenter.ApiService.Consts; +using SupportCenter.ApiService.Data; +using Microsoft.Extensions.VectorData; +using StackExchange.Redis; +using Microsoft.SemanticKernel.Connectors.Redis; + +var builder = WebApplication.CreateBuilder(args); + +builder.AddServiceDefaults(); + +builder.Services.AddHttpClient(); +builder.Services.AddControllers(); +builder.Services.AddApplicationInsightsTelemetry(); +builder.Services.AddSignalR() + .AddNamedAzureSignalR("signalr"); + +builder.Services.AddSingleton(); +builder.Services.AddTransient(); + +builder.AddKeyedRedisDistributedCache("redis"); +builder.AddKeyedAzureTableClient("clustering"); +builder.AddKeyedAzureTableClient("snapshot"); +builder.AddKeyedAzureBlobClient("grain-state"); +builder.AddKeyedAzureQueueClient("streaming"); + +builder.AddAzureOpenAIClient("openAiConnection"); + +builder.Services.AddKeyedChatClient(Gpt4oMini, s => { + var innerClient = s.GetRequiredService().AsChatClient(Gpt4oMini); + return new ChatClientBuilder(innerClient) + .UseFunctionInvocation().Build(); + +}); + +builder.Services.AddSingleton(sp => +{ + var db = sp.GetRequiredKeyedService("redis").GetDatabase(); + return new RedisVectorStore(db, new() { StorageType = RedisStorageType.HashSet }); +}); + +builder.Services.AddSingleton(); + +builder.Services.AddEmbeddingGenerator(s => { + return s.GetRequiredService().AsEmbeddingGenerator("text-embedding-3-large"); +}); +// Allow any CORS origin if in DEV +const string AllowDebugOriginPolicy = "AllowDebugOrigin"; +const string AllowOriginPolicy = "AllowOrigin"; +var isDev = builder.Environment.IsDevelopment(); +if (isDev) +{ + builder.Services.AddCors(options => + { + options.AddPolicy(AllowDebugOriginPolicy, builder => + { + builder.SetIsOriginAllowed(origin => new Uri(origin).Host == "localhost") + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); +} +else +{ + builder.Services.AddCors(options => + { + options.AddPolicy(AllowOriginPolicy, builder => + { + builder + .SetIsOriginAllowedToAllowWildcardSubdomains() + .WithOrigins("https://*.azurecontainerapps.io") // client url + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); +} + +builder.UseOrleans(siloBuilder => +{ + siloBuilder.Services.AddSerializer(serializerBuilder => + { + serializerBuilder.AddJsonSerializer( + isSupported: type => true); + }); +}); + +builder.Services.Configure(options => +{ + options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; +}); + +var app = builder.Build(); + +app.MapDefaultEndpoints(); + +app.UseRouting(); +if (isDev) +{ + app.UseCors(AllowDebugOriginPolicy); +} +else +{ + app.UseCors(AllowOriginPolicy); + +} +app.MapControllers(); + +app.MapHub("/supportcenterhub"); + +app.Run(); diff --git a/samples/support-center/src/backend/Properties/launchSettings.json b/samples/support-center/SupportCenter.ApiService/Properties/launchSettings.json similarity index 94% rename from samples/support-center/src/backend/Properties/launchSettings.json rename to samples/support-center/SupportCenter.ApiService/Properties/launchSettings.json index c4dbf9b5..ecc8c358 100644 --- a/samples/support-center/src/backend/Properties/launchSettings.json +++ b/samples/support-center/SupportCenter.ApiService/Properties/launchSettings.json @@ -33,8 +33,8 @@ "launchBrowser": true, "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", "environmentVariables": { - "ASPNETCORE_HTTPS_PORTS": "8081", - "ASPNETCORE_HTTP_PORTS": "8080" + "ASPNETCORE_HTTPS_PORTS": "8082", + "ASPNETCORE_HTTP_PORTS": "8081" }, "publishAllPorts": true, "useSSL": true diff --git a/samples/support-center/src/backend/SignalRHub/AgentTypes.cs b/samples/support-center/SupportCenter.ApiService/SignalRHub/AgentTypes.cs similarity index 76% rename from samples/support-center/src/backend/SignalRHub/AgentTypes.cs rename to samples/support-center/SupportCenter.ApiService/SignalRHub/AgentTypes.cs index bdfaca4c..4b6f65a6 100644 --- a/samples/support-center/src/backend/SignalRHub/AgentTypes.cs +++ b/samples/support-center/SupportCenter.ApiService/SignalRHub/AgentTypes.cs @@ -1,4 +1,4 @@ -namespace SupportCenter.SignalRHub; +namespace SupportCenter.ApiService.SignalRHub; public enum AgentType { diff --git a/samples/support-center/src/backend/SignalRHub/FrontEndMessage.cs b/samples/support-center/SupportCenter.ApiService/SignalRHub/FrontEndMessage.cs similarity index 82% rename from samples/support-center/src/backend/SignalRHub/FrontEndMessage.cs rename to samples/support-center/SupportCenter.ApiService/SignalRHub/FrontEndMessage.cs index b9bb2e75..1ccb4cb7 100644 --- a/samples/support-center/src/backend/SignalRHub/FrontEndMessage.cs +++ b/samples/support-center/SupportCenter.ApiService/SignalRHub/FrontEndMessage.cs @@ -1,4 +1,4 @@ -namespace SupportCenter.SignalRHub; +namespace SupportCenter.ApiService.SignalRHub; public class ChatMessage { diff --git a/samples/support-center/SupportCenter.ApiService/SignalRHub/ISignalRService.cs b/samples/support-center/SupportCenter.ApiService/SignalRHub/ISignalRService.cs new file mode 100644 index 00000000..6cb29ec5 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/SignalRHub/ISignalRService.cs @@ -0,0 +1,5 @@ +namespace SupportCenter.ApiService.SignalRHub; +public interface ISignalRService +{ + Task SendMessageToClient(string messageId, string userId, string conversationId, string connectionId, string message, AgentType senderType); +} diff --git a/samples/support-center/src/backend/SignalRHub/ISupportCenterHub.cs b/samples/support-center/SupportCenter.ApiService/SignalRHub/ISupportCenterHub.cs similarity index 77% rename from samples/support-center/src/backend/SignalRHub/ISupportCenterHub.cs rename to samples/support-center/SupportCenter.ApiService/SignalRHub/ISupportCenterHub.cs index 9e495794..aea6ddfc 100644 --- a/samples/support-center/src/backend/SignalRHub/ISupportCenterHub.cs +++ b/samples/support-center/SupportCenter.ApiService/SignalRHub/ISupportCenterHub.cs @@ -1,6 +1,4 @@ -using SupportCenter.SignalRHub; - -namespace SupportCenter.SignalRHub; +namespace SupportCenter.ApiService.SignalRHub; public interface ISupportCenterHub { diff --git a/samples/support-center/SupportCenter.ApiService/SignalRHub/SignalRConnectionGrain.cs b/samples/support-center/SupportCenter.ApiService/SignalRHub/SignalRConnectionGrain.cs new file mode 100644 index 00000000..cdc56e61 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/SignalRHub/SignalRConnectionGrain.cs @@ -0,0 +1,38 @@ +namespace SupportCenter.ApiService.SignalRHub; +public class SignalRConnectionGrain([PersistentState("state", "messages")] IPersistentState state) : Grain, IStoreConnections +{ + private IPersistentState _state = state; + + public Task GetConnection() + { + return Task.FromResult(_state.State); + } + + public async Task AddConnection(Connection connection) + { + _state.State = connection; + await _state.WriteStateAsync(); + } + + public async Task RemoveConnection() + { + _state.State = null; + await _state.WriteStateAsync(); + } +} + +public interface IStoreConnections : IGrainWithStringKey +{ + Task AddConnection(Connection connection); + Task GetConnection(); + Task RemoveConnection(); +} + +[GenerateSerializer] +public class Connection +{ + [Id(0)] + public string? Id { get; set; } + [Id(1)] + public string? ConversationId { get; set; } +} \ No newline at end of file diff --git a/samples/support-center/SupportCenter.ApiService/SignalRHub/SignalRService.cs b/samples/support-center/SupportCenter.ApiService/SignalRHub/SignalRService.cs new file mode 100644 index 00000000..4fbf5b23 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/SignalRHub/SignalRService.cs @@ -0,0 +1,19 @@ +using Microsoft.AspNetCore.SignalR; + +namespace SupportCenter.ApiService.SignalRHub; + +public class SignalRService(IHubContext hubContext) : ISignalRService +{ + public async Task SendMessageToClient(string messageId, string userId, string conversationId, string connectionId, string message, AgentType senderType) + { + var chatMessage = new ChatMessage() + { + Id = messageId, + ConversationId = conversationId, + UserId = userId, + Text = message, + Sender = senderType.ToString() + }; + await hubContext.Clients.Client(connectionId).SendAsync("ReceiveMessage", chatMessage); + } +} diff --git a/samples/support-center/src/backend/SignalRHub/SupportCenterHub.cs b/samples/support-center/SupportCenter.ApiService/SignalRHub/SupportCenterHub.cs similarity index 66% rename from samples/support-center/src/backend/SignalRHub/SupportCenterHub.cs rename to samples/support-center/SupportCenter.ApiService/SignalRHub/SupportCenterHub.cs index f4388d5c..5828fcf4 100644 --- a/samples/support-center/src/backend/SignalRHub/SupportCenterHub.cs +++ b/samples/support-center/SupportCenter.ApiService/SignalRHub/SupportCenterHub.cs @@ -1,13 +1,13 @@ -namespace SupportCenter.SignalRHub; +namespace SupportCenter.ApiService.SignalRHub; using Microsoft.AI.Agents.Abstractions; using Microsoft.AspNetCore.SignalR; using Orleans.Runtime; -using SupportCenter.Options; -using SupportCenter.Events; using Orleans; +using SupportCenter.ApiService.Events; +using SupportCenter.ApiService; -public class SupportCenterHub : Hub +public class SupportCenterHub(IClusterClient clusterClient) : Hub { public override async Task OnConnectedAsync() { @@ -16,18 +16,18 @@ public override async Task OnConnectedAsync() public override async Task OnDisconnectedAsync(Exception? exception) { - SignalRConnectionsDB.ConnectionByUser.TryRemove(Context.ConnectionId, out _); + var registry = clusterClient.GetGrain(Context.UserIdentifier); + await registry.RemoveConnection(); await base.OnDisconnectedAsync(exception); } - public async Task ConnectToAgent(string userId, string conversationId, IClusterClient clusterClient) + public async Task ConnectToAgent(string userId, string conversationId) { - SignalRConnectionsDB.ConnectionByUser.AddOrUpdate( - userId, new Connection(Context.ConnectionId, conversationId), - (key, oldValue) => new Connection(Context.ConnectionId, conversationId)); + var registry = clusterClient.GetGrain(userId); + await registry.AddConnection(new Connection { Id = Context.ConnectionId, ConversationId = conversationId }); // Notify the agents that a new user got connected. - var streamProvider = clusterClient.GetStreamProvider("StreamProvider"); + var streamProvider = clusterClient.GetStreamProvider(Consts.OrleansStreamProvider); var streamId = StreamId.Create(Consts.OrleansNamespace, $"{userId}/{conversationId}"); var stream = streamProvider.GetStream(streamId); var data = new Dictionary @@ -42,20 +42,23 @@ await stream.OnNextAsync(new Event }); } - public async Task RestartConversation(string userId, string conversationId, IClusterClient clusterClient) + public async Task RestartConversation(string userId, string conversationId) { ArgumentException.ThrowIfNullOrWhiteSpace(userId, nameof(userId)); ArgumentException.ThrowIfNullOrWhiteSpace(conversationId, nameof(conversationId)); - string? oldConversationId = SignalRConnectionsDB.GetConversationId(userId); + var registry = clusterClient.GetGrain(userId); + var connection = await registry.GetConnection(); + if (connection != null) + { + await registry.RemoveConnection(); + } - SignalRConnectionsDB.ConnectionByUser.AddOrUpdate( - userId, - key => new Connection(Context.ConnectionId, conversationId), - (key, oldValue) => new Connection(oldValue.Id, conversationId)); + var newConversationId = connection != null? connection.ConversationId : conversationId; + await registry.AddConnection(new Connection { Id = Context.ConnectionId, ConversationId = newConversationId }); - var streamProvider = clusterClient.GetStreamProvider("StreamProvider"); - var streamId = StreamId.Create(Consts.OrleansNamespace, $"{userId}/{conversationId}"); + var streamProvider = clusterClient.GetStreamProvider(Consts.OrleansStreamProvider); + var streamId = StreamId.Create(Consts.OrleansNamespace, $"{userId}/{newConversationId}"); var stream = streamProvider.GetStream(streamId); await stream.OnNextAsync( new Event @@ -71,7 +74,7 @@ await stream.OnNextAsync( /// /// /// - public async Task ProcessMessage(ChatMessage chatMessage, IClusterClient clusterClient) + public async Task ProcessMessage(ChatMessage chatMessage) { ArgumentNullException.ThrowIfNull(chatMessage, nameof(chatMessage)); ArgumentException.ThrowIfNullOrWhiteSpace(chatMessage.UserId, nameof(chatMessage.UserId)); @@ -80,7 +83,7 @@ public async Task ProcessMessage(ChatMessage chatMessage, IClusterClient cluster var userId = chatMessage.UserId; var conversationId = chatMessage.ConversationId; - var streamProvider = clusterClient.GetStreamProvider("StreamProvider"); + var streamProvider = clusterClient.GetStreamProvider(Consts.OrleansStreamProvider); var streamId = StreamId.Create(Consts.OrleansNamespace, $"{userId}/{conversationId}"); var stream = streamProvider.GetStream(streamId); diff --git a/samples/support-center/SupportCenter.ApiService/SupportCenter.ApiService.csproj b/samples/support-center/SupportCenter.ApiService/SupportCenter.ApiService.csproj new file mode 100644 index 00000000..fb55cd70 --- /dev/null +++ b/samples/support-center/SupportCenter.ApiService/SupportCenter.ApiService.csproj @@ -0,0 +1,45 @@ + + + + net9.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/support-center/SupportCenter.AppHost/Program.cs b/samples/support-center/SupportCenter.AppHost/Program.cs new file mode 100644 index 00000000..abfbae99 --- /dev/null +++ b/samples/support-center/SupportCenter.AppHost/Program.cs @@ -0,0 +1,94 @@ +using Azure.Provisioning; +using Azure.Provisioning.AppContainers; + +var builder = DistributedApplication.CreateBuilder(args); + +builder.AddAzureProvisioning(); + +var signalr = builder.ExecutionContext.IsPublishMode + ? builder.AddAzureSignalR("signalr") + : builder.AddConnectionString("signalr"); + +var redis = builder.AddRedis("redis") + .WithImage("redis/redis-stack-server") + .WithRedisCommander(); +//.WithDataVolume(isReadOnly: false); +//.WithPersistence(interval: TimeSpan.FromMinutes(1), keysChangedThreshold: 10); + +var openai = builder.ExecutionContext.IsPublishMode + ? builder.AddAzureOpenAI("openAiConnection").AddDeployment(new AzureOpenAIDeployment("gpt-4o-mini", "gpt-4o-mini", "2024-07-18")) + : builder.AddConnectionString("openAiConnection"); + +var apiService = builder.AddProject("apiservice") + .WithReference(openai) + .WithReference(signalr) + .WithReference(redis) + .WaitFor(signalr) + .WaitFor(redis) + .WaitFor(openai) + .WithExternalHttpEndpoints(); + +if (builder.ExecutionContext.IsPublishMode) +{ + var storage = builder.AddAzureStorage("storage").RunAsEmulator(); + var clusteringTable = storage.AddTables("clustering"); + var grainStorage = storage.AddBlobs("grain-state"); + var streamingQueue = storage.AddQueues("streaming"); + + var orleans = builder.AddOrleans("default") + .WithClustering(clusteringTable) + .WithGrainStorage("PubSubStore", grainStorage) + .WithGrainStorage("messages", grainStorage) + .WithStreaming("AzureQueueProvider", streamingQueue); + + var insights = builder.AddAzureApplicationInsights("ServiceCenter"); + apiService.WithReference(clusteringTable) + .WithReference(grainStorage) + .WithReference(insights) + .WithReference(streamingQueue) + .WaitFor(clusteringTable) + .WaitFor(grainStorage) + .WaitFor(streamingQueue) + .WaitFor(insights) + .WithEnvironment("HTTP_PORTS", "8081") + .WithReplicas(3) + .PublishAsAzureContainerApp((infra, capp) => + { + capp.Configuration.Ingress.CorsPolicy = new ContainerAppCorsPolicy + { + AllowCredentials = true, + AllowedOrigins = new BicepList { "https://*.azurecontainerapps.io" }, + AllowedHeaders = new BicepList { "*" }, + AllowedMethods = new BicepList { "*" }, + + }; + capp.Configuration.Ingress.TargetPort = 8081; + capp.Configuration.Ingress.StickySessionsAffinity = StickySessionAffinity.Sticky; + }); +} +else +{ + var orleans = builder.AddOrleans("default") + .WithDevelopmentClustering() + .WithMemoryStreaming("AzureQueueProvider") + .WithMemoryGrainStorage("PubSubStore") + .WithMemoryGrainStorage("messages"); + apiService.WithReference(orleans); +} + +builder.AddNpmApp("frontend", "../SupportCenter.Frontend", "dev") + .WithReference(apiService) + .WithEnvironment("VITE_OAGENT_BASE_URL", apiService.GetEndpoint("http")) + .WithEnvironment("BROWSER", "none") + .WithHttpEndpoint(env: "VITE_PORT") + .WithExternalHttpEndpoints() + .PublishAsDockerFile() + .WaitFor(apiService); + +var memorySeeder = builder.AddProject("memoryseeder") + .WithReference(redis) + .WithReference(openai) + .WaitFor(redis) + .WaitFor(openai); + +builder.Build().Run(); \ No newline at end of file diff --git a/samples/support-center/SupportCenter.AppHost/Properties/launchSettings.json b/samples/support-center/SupportCenter.AppHost/Properties/launchSettings.json new file mode 100644 index 00000000..4acd5546 --- /dev/null +++ b/samples/support-center/SupportCenter.AppHost/Properties/launchSettings.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:17127;http://localhost:15270", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21274", + "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22143" + } + }, + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:15270", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19123", + "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20218" + } + } + } +} diff --git a/samples/support-center/SupportCenter.AppHost/SupportCenter.AppHost.csproj b/samples/support-center/SupportCenter.AppHost/SupportCenter.AppHost.csproj new file mode 100644 index 00000000..afccdd3e --- /dev/null +++ b/samples/support-center/SupportCenter.AppHost/SupportCenter.AppHost.csproj @@ -0,0 +1,43 @@ + + + + + + Exe + net9.0 + enable + enable + true + ca23c54b-f27b-425c-950f-9b608972c600 + + + + + PreserveNewest + true + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/support-center/SupportCenter.AppHost/appsettings.local.template.json b/samples/support-center/SupportCenter.AppHost/appsettings.local.template.json new file mode 100644 index 00000000..b703946f --- /dev/null +++ b/samples/support-center/SupportCenter.AppHost/appsettings.local.template.json @@ -0,0 +1,13 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Aspire.Hosting.Dcp": "Warning" + } + }, + "ConnectionStrings": { + "signalR": "Endpoint=;AccessKey=;Version=;", + "openAiConnection": "Endpoint=;Key=" + } +} \ No newline at end of file diff --git a/samples/support-center/src/frontend/.env.localConfig b/samples/support-center/SupportCenter.Frontend/.env.localConfig similarity index 100% rename from samples/support-center/src/frontend/.env.localConfig rename to samples/support-center/SupportCenter.Frontend/.env.localConfig diff --git a/samples/support-center/src/frontend/.eslintrc.cjs b/samples/support-center/SupportCenter.Frontend/.eslintrc.cjs similarity index 100% rename from samples/support-center/src/frontend/.eslintrc.cjs rename to samples/support-center/SupportCenter.Frontend/.eslintrc.cjs diff --git a/samples/support-center/src/frontend/.gitignore b/samples/support-center/SupportCenter.Frontend/.gitignore similarity index 100% rename from samples/support-center/src/frontend/.gitignore rename to samples/support-center/SupportCenter.Frontend/.gitignore diff --git a/samples/support-center/src/frontend/Dockerfile b/samples/support-center/SupportCenter.Frontend/Dockerfile similarity index 100% rename from samples/support-center/src/frontend/Dockerfile rename to samples/support-center/SupportCenter.Frontend/Dockerfile diff --git a/samples/support-center/src/frontend/README.md b/samples/support-center/SupportCenter.Frontend/README.md similarity index 100% rename from samples/support-center/src/frontend/README.md rename to samples/support-center/SupportCenter.Frontend/README.md diff --git a/samples/support-center/src/frontend/index.html b/samples/support-center/SupportCenter.Frontend/index.html similarity index 100% rename from samples/support-center/src/frontend/index.html rename to samples/support-center/SupportCenter.Frontend/index.html diff --git a/samples/support-center/SupportCenter.Frontend/package-lock.json b/samples/support-center/SupportCenter.Frontend/package-lock.json new file mode 100644 index 00000000..52b74c1c --- /dev/null +++ b/samples/support-center/SupportCenter.Frontend/package-lock.json @@ -0,0 +1,7001 @@ +{ + "name": "support-center-app", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "support-center-app", + "version": "0.0.0", + "dependencies": { + "@azure/msal-browser": "^3.5.0", + "@azure/msal-react": "^2.0.7", + "@fluentui/react-components": "^9.37.4", + "@microsoft/signalr": "^8.0.0", + "axios": "^1.6.0", + "dotenv": "^16.4.3", + "luxon": "^3.4.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-markdown": "^9.0.0", + "react-router-dom": "^6.18.0", + "remark-gfm": "^4.0.0", + "remark-supersub": "^1.0.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@types/luxon": "^3.4.2", + "@types/react": "^18.2.55", + "@types/react-dom": "^18.2.19", + "@types/uuid": "^9.0.8", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.56.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "typescript": "^5.2.2", + "vite": "^5.3.3" + } + }, + "node_modules/@ampproject/remapping": { + "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.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.28.1.tgz", + "integrity": "sha512-OHHEWMB5+Zrix8yKvLVzU3rKDFvh7SOzAzXfICD7YgUXLxfHpTPX2pzOotrri1kskwhHqIj4a5LvhZlIqE7C7g==", + "license": "MIT", + "dependencies": { + "@azure/msal-common": "14.16.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "14.16.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.16.0.tgz", + "integrity": "sha512-1KOZj9IpcDSwpNiQNjt0jDYZpQvNZay7QAEi/5DLubay40iGYtLzya/jbjRPLyOTZhEKyL1MzPuw2HqBCjceYA==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/msal-react/-/msal-react-2.2.0.tgz", + "integrity": "sha512-2V+9JXeXyyjYNF92y5u0tU4el9px/V1+vkRuN+DtoxyiMHCtYQpJoaFdGWArh43zhz5aqQqiGW/iajPDSu3QsQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@azure/msal-browser": "^3.27.0", + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", + "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "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": { + "@floating-ui/dom": ">=1.5.4" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-keys/-/keyboard-keys-9.0.8.tgz", + "integrity": "sha512-iUSJUUHAyTosnXK8O2Ilbfxma+ZyZPMua5vB028Ys96z80v+LFwntoehlFsdH3rMuPsA8GaC1RE7LMezwPBPdw==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/priority-overflow": { + "version": "9.1.14", + "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.1.14.tgz", + "integrity": "sha512-tIH8EhvjZF4MhxSjqrWOyodrQQW+RlVZqxuNFQF5OWRdSqcIK8g+Z+UbC5fYHQooCgVsthk2mFurfGMKFtf9ug==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-accordion": { + "version": "9.5.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.5.14.tgz", + "integrity": "sha512-mS9NHxeZn3WwRR0T/D7JKfLY2QEksCewrZIcSvYdgyPmlJCyd71YlkICn3PIvZIpySpoSEA/dqwWTYcC8cU8Zg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-motion": "^9.6.7", + "@fluentui/react-motion-components-preview": "^0.4.3", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-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-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.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-aria": { + "version": "9.13.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.13.14.tgz", + "integrity": "sha512-+RbBh5sTJ9CguPfj9Bw6AUgTC05ts2XqBepNFZ3H51rZMF3PB/YCPftebmySIW6jp1ZbJ10EtQZ/EqJqgJH7YQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-utilities": "^9.18.20", + "@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-avatar": { + "version": "9.6.50", + "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.6.50.tgz", + "integrity": "sha512-xhgOIm9l/yPsSbMvwWOk1LbylcoYGsWotghgX8Nurgek4wST+xzegIogKr7PHIEid1InMgzHJmwqZxPtYvpFtw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-badge": "^9.2.50", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-popover": "^9.9.32", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-tooltip": "^9.5.5", + "@fluentui/react-utilities": "^9.18.20", + "@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-badge": { + "version": "9.2.50", + "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.2.50.tgz", + "integrity": "sha512-rMptIUeUWwbTvzSo917GOVDY5nKeNbcSfvtvop54zrFNrcMicAZIfrJK8fB1hFggT2cuaiI9qWdWuSTd+q1LZw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-breadcrumb": { + "version": "9.0.51", + "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.0.51.tgz", + "integrity": "sha512-MbENUOemhk67clcnrZXXTNITyDqbbO0xWx7dxeaygM/Cu0DmRer9UYs1V5z5ExT+xrwgYXVvPyODqDyeWwGBgQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-button": "^9.3.101", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-link": "^9.3.7", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-button": { + "version": "9.3.101", + "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.3.101.tgz", + "integrity": "sha512-FHGtiQW4vNb8M1JvOTEfmzEpwZgc4yMhPPIMprfDELMIkKI1iZWK43tBOaYTb4az3M8m1Vv5UqL+kQoc/1PAyw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-card": { + "version": "9.0.103", + "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.0.103.tgz", + "integrity": "sha512-jv8KQMXOYlEaKns8T6a1sQ3lzM/jCL4epR4/7Avt21ysBRrJU+mMZ69nOZA45Wz6eVFootGjks8O7wwjIb2J3g==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-text": "^9.4.32", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-carousel": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-carousel/-/react-carousel-9.4.6.tgz", + "integrity": "sha512-LpVcav9oF0iKiSqmjw9mXUKafvgxhO2snKJjNkoNs46DB15twpA+d+i3HZPYhm4qKMVdHnvbO7d+6iIirbvgvg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-button": "^9.3.101", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "embla-carousel": "^8.5.1", + "embla-carousel-autoplay": "^8.5.1", + "embla-carousel-fade": "^8.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-checkbox": { + "version": "9.2.47", + "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.2.47.tgz", + "integrity": "sha512-3XETLtPUpRpztQphWZ4Md/pqkDDcE2CqH0gVAEUb7rnLHfimrRvDC+tlccKmqvlK3QoPfX2oDy3nvz/YwxWoTg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-label": "^9.1.83", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-combobox": { + "version": "9.13.18", + "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.13.18.tgz", + "integrity": "sha512-t1sF+TpC0BGwSxY0FSM4GUUyo+ToLgWNyt80usoOe6j4vIP1N6O2JSaWg5/+24mn+whnsheyDTby5kpmyI1rwg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-positioning": "^9.16.3", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-components": { + "version": "9.58.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.58.2.tgz", + "integrity": "sha512-8gikFFqaRKtkh/AjBGk+8Mn0AyR/SM4dt7RVmfaJdE2NKlQVxIfJOLKwpqYhrQS3z4jOSlH5MQFRiFT5Y1hz4w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-accordion": "^9.5.14", + "@fluentui/react-alert": "9.0.0-beta.124", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-avatar": "^9.6.50", + "@fluentui/react-badge": "^9.2.50", + "@fluentui/react-breadcrumb": "^9.0.51", + "@fluentui/react-button": "^9.3.101", + "@fluentui/react-card": "^9.0.103", + "@fluentui/react-carousel": "^9.4.6", + "@fluentui/react-checkbox": "^9.2.47", + "@fluentui/react-combobox": "^9.13.18", + "@fluentui/react-dialog": "^9.11.30", + "@fluentui/react-divider": "^9.2.82", + "@fluentui/react-drawer": "^9.6.10", + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-image": "^9.1.80", + "@fluentui/react-infobutton": "9.0.0-beta.102", + "@fluentui/react-infolabel": "^9.0.57", + "@fluentui/react-input": "^9.4.99", + "@fluentui/react-label": "^9.1.83", + "@fluentui/react-link": "^9.3.7", + "@fluentui/react-list": "^9.0.2", + "@fluentui/react-menu": "^9.15.0", + "@fluentui/react-message-bar": "^9.3.2", + "@fluentui/react-motion": "^9.6.7", + "@fluentui/react-overflow": "^9.2.8", + "@fluentui/react-persona": "^9.2.109", + "@fluentui/react-popover": "^9.9.32", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-positioning": "^9.16.3", + "@fluentui/react-progress": "^9.1.97", + "@fluentui/react-provider": "^9.19.0", + "@fluentui/react-radio": "^9.2.42", + "@fluentui/react-rating": "^9.0.28", + "@fluentui/react-search": "^9.0.29", + "@fluentui/react-select": "^9.1.97", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-skeleton": "^9.1.26", + "@fluentui/react-slider": "^9.2.6", + "@fluentui/react-spinbutton": "^9.2.98", + "@fluentui/react-spinner": "^9.5.7", + "@fluentui/react-swatch-picker": "^9.1.20", + "@fluentui/react-switch": "^9.1.104", + "@fluentui/react-table": "^9.15.29", + "@fluentui/react-tabs": "^9.6.7", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-tag-picker": "^9.4.2", + "@fluentui/react-tags": "^9.3.30", + "@fluentui/react-teaching-popover": "^9.2.3", + "@fluentui/react-text": "^9.4.32", + "@fluentui/react-textarea": "^9.3.98", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-toast": "^9.3.65", + "@fluentui/react-toolbar": "^9.2.17", + "@fluentui/react-tooltip": "^9.5.5", + "@fluentui/react-tree": "^9.9.2", + "@fluentui/react-utilities": "^9.18.20", + "@fluentui/react-virtualizer": "9.0.0-alpha.91", + "@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-context-selector": { + "version": "9.1.72", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.1.72.tgz", + "integrity": "sha512-n9M7o81fuIzKuvrzdOK9Rcc+SyYg9hkr0bXhdclTHWKBYw2RgIEzXuld1qL3+gOFcSYS6AoNKpqrd9mithWYpw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.18.20", + "@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", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-dialog": { + "version": "9.11.30", + "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.11.30.tgz", + "integrity": "sha512-PbK/6GTjWYDLr0J1u5jBPrMYN2lhKJ0zxpHkl+TPULNcRMBSweoEAcRTF2+cdy3aLmyxZrP89viLzTqz5gn+hw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-motion": "^9.6.7", + "@fluentui/react-motion-components-preview": "^0.4.3", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-divider": { + "version": "9.2.82", + "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.2.82.tgz", + "integrity": "sha512-U3krzGswRxpFgMkXafkl12+R7R1SeX+JdTZpw8SMnvQsBroEWgy6hq8bWhh8AFUcqCoHIbieBOrRFV68pvIvGg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-drawer": { + "version": "9.6.10", + "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.6.10.tgz", + "integrity": "sha512-ZxzQnT3IZuz/YSNseNkUmywmn0XEF8VtVd60a9c16F8JaSDH+FQaoSnE8bH+ccy1RggnKKCBQ2JyqmHBClIS3A==", + "license": "MIT", + "dependencies": { + "@fluentui/react-dialog": "^9.11.30", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-motion": "^9.6.7", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-field": { + "version": "9.1.86", + "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.1.86.tgz", + "integrity": "sha512-InM4y61PzKp2Y17VdkXYTHKLJhEZLYW0roeBDxMwUbnII059RtC/O30zBIS6n4Cn1+/y1tMZK6NEjTcI1HIVmQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-label": "^9.1.83", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-icons": { + "version": "2.0.271", + "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.271.tgz", + "integrity": "sha512-I5rFvmZTzf1OQduU5Lal8yNMFcjCsfLnFDEwYjpwTdcyAPoIY2MTZMb4hCbGoohAreQL4cbItkWugxZc7N1wdw==", + "license": "MIT", + "dependencies": { + "@griffel/react": "^1.0.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-image": { + "version": "9.1.80", + "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.1.80.tgz", + "integrity": "sha512-Vw6cPJaGSGy9usjXxaK0If9Ow3wo0e2yUIsKRWpWtiX7CTwENGP7N6WYbJFw26gY4AVer/S9bfGlen/gqq3cHg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-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==", + "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", + "@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", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-infolabel": { + "version": "9.0.57", + "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.0.57.tgz", + "integrity": "sha512-jIDJvV1Zzqc6gbD+JWGx2xMmoS9dO0pjMC17tlx1oNpmYe0rBdzu7BJqZrEt+uVt/wFUh39YinrPdhtQdQaXIg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-label": "^9.1.83", + "@fluentui/react-popover": "^9.9.32", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@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" + } + }, + "node_modules/@fluentui/react-input": { + "version": "9.4.99", + "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.4.99.tgz", + "integrity": "sha512-6TEjYtw+PSgkbudNjmAlGgxO5ZQUqrYk0AVlulB202MwKflJ+2A8XcHC5aMuLUI4xRrLWRoYwZTzgxiXa2obsQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-jsx-runtime": { + "version": "9.0.50", + "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.0.50.tgz", + "integrity": "sha512-dnelPmz0x591tr58B/jbIHVzgjWskMkBmWEvZJc2rlbGH1oZl+MPJqvVdOAMvLTKJzqVmNkeSDtQmkjzjccogA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.18.20", + "@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.83", + "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.1.83.tgz", + "integrity": "sha512-XJF78Vwn4sSRJUyWcTj/F6hJVcHlPozDBcGWipMpnFgKBljuVmE2sg581CUGKn4AOTa9/blc81DLv0AE3itNtQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-link": { + "version": "9.3.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.3.7.tgz", + "integrity": "sha512-kjl/TjFO66ROFFXL9FExmoTYWgIb/p6pKqXA+eGTaQZ+7S1qTAKma0cTQtjnqAfj7UcimnWLLmXnlWaXx4FixA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-list": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-list/-/react-list-9.0.2.tgz", + "integrity": "sha512-bXwwkzayFMwXPldwZSAQWkhQIUJyPoBYKUpDU+e1Z4wHod8mkTspWqoUTZHkL+t2zLMGR7v9c5PqyjSeYVhXYw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-checkbox": "^9.2.47", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@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" + } + }, + "node_modules/@fluentui/react-menu": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.15.0.tgz", + "integrity": "sha512-G/WhGTrhQpoa0nbzEEQB8aK4pvtYym2m/sMeN9+fLFVZzAv9hyigzTwaSouQUoMfvIj2bmw5lcfXBKgJ4Rzreg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-positioning": "^9.16.3", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-message-bar": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.3.2.tgz", + "integrity": "sha512-mo4/Pon3xJlWgavpeDBrfIijA3niP7D2OCAOZ5RrS5klrX5VkTSH/Zocp6GIUywGpkTDk5DcXHemQ3iiLIIWIg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.3.101", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-link": "^9.3.7", + "@fluentui/react-motion": "^9.6.7", + "@fluentui/react-motion-components-preview": "^0.4.3", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@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" + } + }, + "node_modules/@fluentui/react-motion": { + "version": "9.6.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.6.7.tgz", + "integrity": "sha512-xvNsN8n7e7OOMnNK1ynIZcREpoYY+97WuI+qnEiqkwJWKA+WzWYN+ydvH7IFI1PV7wz7qhyXUga5L10CjFeCAA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-utilities": "^9.18.20", + "@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.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-motion-components-preview": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.4.3.tgz", + "integrity": "sha512-g6ACukFXcZ8TFYP30WnVjkvRuQkkx2Q48jI7TowTsJBQg01FFT4w22ii5s2ABuO6L1TR02kAL3wvvo5O2KP5Ew==", + "license": "MIT", + "dependencies": { + "@fluentui/react-motion": "*", + "@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-overflow": { + "version": "9.2.8", + "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.2.8.tgz", + "integrity": "sha512-x9RsbQWFv8cgJ8scU6G61IVltliiY/07TT3t1nNtHBJP3tECttphn6EmJHIaKwmCpNzLq8pCYobj8/GxGZ0Kkw==", + "license": "MIT", + "dependencies": { + "@fluentui/priority-overflow": "^9.1.14", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-persona": { + "version": "9.2.109", + "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.2.109.tgz", + "integrity": "sha512-APEuGmInsWTojToruDJ41cjx0qTvOFAozPe1NC3itS3QIBeaz1YHkj/72QKCfSQHpqa2b5bjK6WN9/bBjIAOjA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-avatar": "^9.6.50", + "@fluentui/react-badge": "^9.2.50", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-popover": { + "version": "9.9.32", + "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.9.32.tgz", + "integrity": "sha512-8bEjFqWokvk8oB408ZRerGx/+1r+rHB/+KBodBVt8BBlv20Zb4WZbPTN7zt4N1rlkIyFbf4v5otGJCO36PTOGw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-positioning": "^9.16.3", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-portal": { + "version": "9.4.42", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.4.42.tgz", + "integrity": "sha512-x7mH9Y4/ziHKGAL+NnJGJdlH/eqBGpqNRbFLCyAithcpS1TCCROzyTzSxli0f8BcZGy9GMDoxIN9wiHP4wZf/A==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-utilities": "^9.18.20", + "@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.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-positioning": { + "version": "9.16.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.16.3.tgz", + "integrity": "sha512-z8phNPD0BhREOPsqt4iMsIvzzkBbfuA3TaXwQeLhM0imISWBnctTAaLjDZDQno/Bt/pbEd+qulPV7fagL20tWQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/devtools": "0.2.1", + "@floating-ui/dom": "^1.6.12", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-progress": { + "version": "9.1.97", + "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.1.97.tgz", + "integrity": "sha512-tVqm64vnFNJJygLHPo+ul3CR2fWo0/mwGdUVkvzyQKi6PMNuSHzRAQjrj09c0S12+vbOxuxgpICBQNYw8xzXUw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-provider": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.19.0.tgz", + "integrity": "sha512-fha+QqD7JW3eo+rLOYvfROOkiSLotH7NnpfJ67EBHIh5JGAn3KyiSJj42RvFTo05LyQGYXME6oQ5yitbDT5YIg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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.9.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.42", + "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.2.42.tgz", + "integrity": "sha512-Tk84/6THneFTInCoXxLuCR/wGogPX40eScoKzrqD82oTlDmLfgaiWM6hh5VsLSLyhnarINVjkaP6ZFqD8lRfZA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-label": "^9.1.83", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-rating": { + "version": "9.0.28", + "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.0.28.tgz", + "integrity": "sha512-eEU9NeYDg6qTw/6kev8uvfOs0wG3obwFQ14Aix64dZngaG+t00VuCiCSvAs7GpR6ofRwQljqTzWyylmD8Q4m3w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@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" + } + }, + "node_modules/@fluentui/react-search": { + "version": "9.0.29", + "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.0.29.tgz", + "integrity": "sha512-RJKwdomLYpgj11tyS8aqtb1wfuOesl3ZA/E3q/Uj3eNNu6hqT676cxrOwlWSBUYNCYbZbKhFQcoKXQGqB+FBHg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-input": "^9.4.99", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-select": { + "version": "9.1.97", + "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.1.97.tgz", + "integrity": "sha512-tdhakc4UC+jtWHw7/wuYo71zzszukSGdpjl6AYUs0Edxm9LZzJ/zLWEr1y1/OpDZiXnjOcTABzfBc2simRN9VQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-shared-contexts": { + "version": "9.21.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.21.2.tgz", + "integrity": "sha512-5hw9CfCmKaEbxmFi+ZF4EZzYWFKrfRLq9pXFIoJWprP1D3ZAds/ymtIOG/CsJzig8zQ1LQ3cNSUzNB75XWg6IQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-theme": "^9.1.24", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-skeleton": { + "version": "9.1.26", + "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.1.26.tgz", + "integrity": "sha512-vrFaHRF4DuJneAjRSklb27qICVY3yGETQNv0AFS3IRjb8iwS7gWg5aI9Viy9Su7Zg9lIKes4teAafdkjvLUoyg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-slider": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.2.6.tgz", + "integrity": "sha512-YHdoKLeyvImc9DH7waJ8cbmVJ7yJI9arqdw+ZuHXLIJoSa5zBrYf7hUfk/GA3M6BQ+kMcTDEkUyRgy7Db80UBQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-spinbutton": { + "version": "9.2.98", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.2.98.tgz", + "integrity": "sha512-fJx+a45jTLJs/O5CVum950c8qRLRDirXi+myJHlVF9CyyjXABmosd43WUxa/zQ8H4spSWxKOo4pgUBwST2hYbA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-spinner": { + "version": "9.5.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.5.7.tgz", + "integrity": "sha512-DdfQAbdiz50V2DqRSX1MfN6ehw+9etcLysueSeH2n1PnpZ8TVEZYrJzBW608S/bCWrR8OAEVoY/3W/nDjwf8qw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-label": "^9.1.83", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-swatch-picker": { + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.1.20.tgz", + "integrity": "sha512-XJ5OKBSjQyXxTJjkNm9Orfc3ypDUn56Ylbmx2njOa8xxy4TBov/B0x5/mk++qCgYVgh0MUdf8ugpeYuXPabjRA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@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" + } + }, + "node_modules/@fluentui/react-switch": { + "version": "9.1.104", + "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.1.104.tgz", + "integrity": "sha512-MKw9hUPLNVSOkQlYr4QHTymU2R7MVwaAFDFRhT6q45POL/YbbJnSBJCtkkPuc5qMQN62RkarMkOTdLhzxJPe6Q==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-label": "^9.1.83", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-table": { + "version": "9.15.29", + "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.15.29.tgz", + "integrity": "sha512-z38vjSJGKqRCCtI9oAzyIO2A15Kre5JAlLr73vE+v4n0bbrIvtpfBi5eQ2CbpyCIWBPO5LKTTNupd267rcu4yg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-avatar": "^9.6.50", + "@fluentui/react-checkbox": "^9.2.47", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-radio": "^9.2.42", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-tabs": { + "version": "9.6.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.6.7.tgz", + "integrity": "sha512-7EFDetqfGBb8X0aVBSIB6Ab9V9NiBhju3NqlW9zN8nvXovzkhjTtSY6LOxEdWHEl8NFTW8jQsBpiJTcM+oe8zw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-tabster": { + "version": "9.23.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.23.3.tgz", + "integrity": "sha512-sGLePr6QmUbYq/rGkaE6MUTRCFucY5HphKEvWoB8ec32btQmAsMlv9YT5BzJ+YQ2Byc39mm1Uthz/Pw5H+tCpA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.6.0", + "tabster": "^8.2.0" + }, + "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-tag-picker": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.4.2.tgz", + "integrity": "sha512-etdXfX+ANDY1s30I8X6xrI5XgVZrlvUahmCgagohlUW6YW6fh+7CJm4PGNrfxgUYCLGmqSPZfzTv2Cd3KE9ung==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-combobox": "^9.13.18", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-positioning": "^9.16.3", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-tags": "^9.3.30", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-tags": { + "version": "9.3.30", + "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.3.30.tgz", + "integrity": "sha512-EyGhog+wUuPhrMleDe0RpvzZMagsPz8y9xU572CbMbk0B8HKe9NV7I2YoHn9ITQInu2l2c0FPbS+eneqcbO+0w==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-avatar": "^9.6.50", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-teaching-popover": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.2.3.tgz", + "integrity": "sha512-bLpdhgbUxkHQMo2F09sSykdcwiKLIf3iorQVMFmkscJKgUpM50s+LwNXl8gz/Lrpl+I++voOqgTRwzzLnqcodA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-button": "^9.3.101", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-popover": "^9.9.32", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" + }, + "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" + } + }, + "node_modules/@fluentui/react-text": { + "version": "9.4.32", + "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.4.32.tgz", + "integrity": "sha512-unEqjCSX8MjcW7+ZavEZ2D+JYM8DEpkIlgNb8lF1ye/ACqTQINKFEc9ShAeXIk/1yVNlA02P3pjbHOWL2Vgwhg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-textarea": { + "version": "9.3.98", + "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.3.98.tgz", + "integrity": "sha512-dsdASrLG7XgELMB8ddQgHaOU5vN1G+YAgXqFvFXn1IkQZCz439lxnSKyzmMSRhrsg2IPOZNOPiwILj8GOJGgXQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.1.86", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-theme": { + "version": "9.1.24", + "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.1.24.tgz", + "integrity": "sha512-OhVKYD7CMYHxzJEn4PtIszledj8hbQJNWBMfIZsp4Sytdp9vCi0txIQUx4BhS1WqtQPhNGCF16eW9Q3NRrnIrQ==", + "license": "MIT", + "dependencies": { + "@fluentui/tokens": "1.0.0-alpha.21", + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-toast": { + "version": "9.3.65", + "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.3.65.tgz", + "integrity": "sha512-rQ3jvvKWjankXpjyrazRtw56pPR7sWF9QF81z7mMdTsIdPpyZTclHJ7tYShk2Qzt0s+WglNO7k4qXw/txemA9w==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-motion": "^9.6.7", + "@fluentui/react-motion-components-preview": "^0.4.3", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-toolbar": { + "version": "9.2.17", + "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.2.17.tgz", + "integrity": "sha512-33aNufE6yd2gt1Do7hBbkPSY0HhsmbRZ4SHAG26ddD4IcOlOtF3IY+lLnenEbSKumLD3Juwa6qfm27bgdTCLxg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.3.101", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-divider": "^9.2.82", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-radio": "^9.2.42", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-tooltip": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.5.5.tgz", + "integrity": "sha512-+cA6BRu04LIJEIifnQzL0N0mEkkPOty3LysFklsXSDGKa4kJ1NKgLqbAZivcRPh0pX0Xleq+pCYfB5TI6s7uTw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-portal": "^9.4.42", + "@fluentui/react-positioning": "^9.16.3", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-tree": { + "version": "9.9.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.9.2.tgz", + "integrity": "sha512-ToIR8rdOJtvHdlBiMWOJ/ERul+prK2dv63VEbvr4HSXZ0uP0bfRQHOtMNRYjYbJcze6UgADMMtVuYCxJga0gZQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.13.14", + "@fluentui/react-avatar": "^9.6.50", + "@fluentui/react-button": "^9.3.101", + "@fluentui/react-checkbox": "^9.2.47", + "@fluentui/react-context-selector": "^9.1.72", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-motion": "^9.6.7", + "@fluentui/react-motion-components-preview": "^0.4.3", + "@fluentui/react-radio": "^9.2.42", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-tabster": "^9.23.3", + "@fluentui/react-theme": "^9.1.24", + "@fluentui/react-utilities": "^9.18.20", + "@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-utilities": { + "version": "9.18.20", + "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.18.20.tgz", + "integrity": "sha512-4uIgf4e4yP1HWAQapFQKNN88+L88NqbzXyQPf+NWE9lmP5xRyyMePKRX7i4PcJFdSt7lN4BYvwUxJ7DkQ/Npnw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-shared-contexts": "^9.21.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-virtualizer": { + "version": "9.0.0-alpha.91", + "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.91.tgz", + "integrity": "sha512-ZbI1D4vT493B7YVuaghOed+IDqpaF+BQjL6RwJEL4fTRdiaD1KOJ30JbmyJlSj+9iTWWrhANhXN/4mQx1tBA9A==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.0.50", + "@fluentui/react-shared-contexts": "^9.21.2", + "@fluentui/react-utilities": "^9.18.20", + "@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/tokens": { + "version": "1.0.0-alpha.21", + "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.21.tgz", + "integrity": "sha512-xQ1T56sNgDFGl+kJdIwhz67mHng8vcwO7Dvx5Uja4t+NRULQBgMcJ4reUo4FGF3TjufHj08pP0/OnKQgnOaSVg==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@griffel/core": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.19.1.tgz", + "integrity": "sha512-ZItAAOm8YH1FW0ebzOxS3jwENqd+Dz4CGiPEdgkL4kr7D6mBpjjBbQC6VRXxnA+VqHeEQGy69Ll4M1peY8MX/g==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@griffel/style-types": "^1.3.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.29", + "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.29.tgz", + "integrity": "sha512-xKenEIfV2PnLKVsM8yp2ZCUTknh2790937XlI88zDaO9TC8ylG10mZ3MrcgCdSecrVjKq9JKmm24tsODpkh4pw==", + "license": "MIT", + "dependencies": { + "@griffel/core": "^1.19.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@griffel/style-types": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.3.0.tgz", + "integrity": "sha512-bHwD3sUE84Xwv4dH011gOKe1jul77M1S6ZFN9Tnq8pvZ48UMdY//vtES6fv7GRS5wXYT4iqxQPBluAiYAfkpmw==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.3" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@microsoft/signalr": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-8.0.7.tgz", + "integrity": "sha512-PHcdMv8v5hJlBkRHAuKG5trGViQEkPYee36LnJQx4xHOQ5LL4X0nEWIxOp5cCtZ7tu+30quz5V3k0b1YNuc6lw==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "eventsource": "^2.0.2", + "fetch-cookie": "^2.0.3", + "node-fetch": "^2.6.7", + "ws": "^7.4.5" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@remix-run/router": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.1.tgz", + "integrity": "sha512-KeBYSwohb8g4/wCcnksvKTYlg69O62sQeLynn2YE+5z7JWEj95if27kclW9QqbrlsQ2DINI8fjbV3zyuKfwjKg==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.1.tgz", + "integrity": "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.1.tgz", + "integrity": "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.1.tgz", + "integrity": "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.1.tgz", + "integrity": "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.1.tgz", + "integrity": "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.1.tgz", + "integrity": "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.1.tgz", + "integrity": "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.1.tgz", + "integrity": "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.1.tgz", + "integrity": "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.1.tgz", + "integrity": "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.1.tgz", + "integrity": "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.1.tgz", + "integrity": "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.1.tgz", + "integrity": "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.1.tgz", + "integrity": "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz", + "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz", + "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.1.tgz", + "integrity": "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.1.tgz", + "integrity": "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz", + "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/luxon": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz", + "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001696", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz", + "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "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/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "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.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.90", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.90.tgz", + "integrity": "sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==", + "dev": true, + "license": "ISC" + }, + "node_modules/embla-carousel": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.5.2.tgz", + "integrity": "sha512-xQ9oVLrun/eCG/7ru3R+I5bJ7shsD8fFwLEY7yPe27/+fDHCNj0OT5EoG5ZbFyOxOcG6yTwW8oTz/dWyFnyGpg==", + "license": "MIT" + }, + "node_modules/embla-carousel-autoplay": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/embla-carousel-autoplay/-/embla-carousel-autoplay-8.5.2.tgz", + "integrity": "sha512-27emJ0px3q/c0kCHCjwRrEbYcyYUPfGO3g5IBWF1i7714TTzE6L9P81V6PHLoSMAKJ1aHoT2e7YFOsuFKCbyag==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.5.2" + } + }, + "node_modules/embla-carousel-fade": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/embla-carousel-fade/-/embla-carousel-fade-8.5.2.tgz", + "integrity": "sha512-QJ46Xy+mpijjquQeIY0d0sPSy34XduREUnz7tn1K20hcKyZYTONNIXQZu3GGNwG59cvhMqYJMw9ki92Rjd14YA==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.5.2" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "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": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", + "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-cookie": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.2.0.tgz", + "integrity": "sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==", + "license": "Unlicense", + "dependencies": { + "set-cookie-parser": "^2.4.8", + "tough-cookie": "^4.0.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "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" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", + "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-url-attributes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", + "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "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/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "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": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyborg": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/keyborg/-/keyborg-2.6.0.tgz", + "integrity": "sha512-o5kvLbuTF+o326CMVYpjlaykxqYP9DphFQZ2ZpgrvBouyvOxyEB7oqe8nOLFpiV5VCtz0D3pt8gXQYWpLpBnmA==", + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "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": { + "yallist": "^3.0.2" + } + }, + "node_modules/luxon": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", + "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/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==", + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "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-markdown": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.3.tgz", + "integrity": "sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.28.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.2.tgz", + "integrity": "sha512-BgFY7+wEGVjHCiqaj2XiUBQ1kkzfg6UoKYwEe0wv+FF+HNPCxtS/MVPvLAPH++EsuCMReZl9RYVGqcHLk5ms3A==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.21.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.28.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.2.tgz", + "integrity": "sha512-O81EWqNJWqvlN/a7eTudAdQm0TbI7hw+WIi7OwwMcTn5JMyZ0ibTFNGz+t+Lju0df4LcqowCegcrK22lB1q9Kw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.21.1", + "react-router": "6.28.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-supersub": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/remark-supersub/-/remark-supersub-1.0.0.tgz", + "integrity": "sha512-3SYsphMqpAWbr8AZozdcypozinl/lly3e7BEwPG3YT5J9uZQaDcELBF6/sr/OZoAlFxy2nhNFWSrZBu/ZPRT3Q==", + "license": "MIT", + "dependencies": { + "unist-util-visit": "^4.0.0" + } + }, + "node_modules/remark-supersub/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==", + "license": "MIT" + }, + "node_modules/remark-supersub/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-supersub/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-supersub/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", + "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.1", + "@rollup/rollup-android-arm64": "4.32.1", + "@rollup/rollup-darwin-arm64": "4.32.1", + "@rollup/rollup-darwin-x64": "4.32.1", + "@rollup/rollup-freebsd-arm64": "4.32.1", + "@rollup/rollup-freebsd-x64": "4.32.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", + "@rollup/rollup-linux-arm-musleabihf": "4.32.1", + "@rollup/rollup-linux-arm64-gnu": "4.32.1", + "@rollup/rollup-linux-arm64-musl": "4.32.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", + "@rollup/rollup-linux-riscv64-gnu": "4.32.1", + "@rollup/rollup-linux-s390x-gnu": "4.32.1", + "@rollup/rollup-linux-x64-gnu": "4.32.1", + "@rollup/rollup-linux-x64-musl": "4.32.1", + "@rollup/rollup-win32-arm64-msvc": "4.32.1", + "@rollup/rollup-win32-ia32-msvc": "4.32.1", + "@rollup/rollup-win32-x64-msvc": "4.32.1", + "fsevents": "~2.3.2" + } + }, + "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" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/stylis": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.5.tgz", + "integrity": "sha512-K7npNOKGRYuhAFFzkzMGfxFDpN6gDwf8hcMiE+uveTVbBgm93HrNP3ZDUpKqzZ4pG7TP6fmb+EMAQPjq9FqqvA==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tabster": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/tabster/-/tabster-8.3.0.tgz", + "integrity": "sha512-Y1IKWVe0Xk1P8WLSL+Wj+1jkov69OLST6crAG86ye35WM4mLhr/IeW7vIF+8oQKLNPf0FQ7F1lg5cmXUAQeSdA==", + "license": "MIT", + "dependencies": { + "keyborg": "2.6.0", + "tslib": "^2.3.1" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-disposable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/use-disposable/-/use-disposable-1.0.4.tgz", + "integrity": "sha512-j83t6AMLWUyb5zwlTDqf6dP9LezM9R0yTbI/b6olmdaGtCKQUe9pgJWV6dRaaQLcozypjIEp4EmZr2DkZGKLSg==", + "license": "MIT", + "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/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "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" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/samples/support-center/src/frontend/package.json b/samples/support-center/SupportCenter.Frontend/package.json similarity index 100% rename from samples/support-center/src/frontend/package.json rename to samples/support-center/SupportCenter.Frontend/package.json diff --git a/samples/support-center/src/frontend/src/App.css b/samples/support-center/SupportCenter.Frontend/src/App.css similarity index 100% rename from samples/support-center/src/frontend/src/App.css rename to samples/support-center/SupportCenter.Frontend/src/App.css diff --git a/samples/support-center/src/frontend/src/App.tsx b/samples/support-center/SupportCenter.Frontend/src/App.tsx similarity index 100% rename from samples/support-center/src/frontend/src/App.tsx rename to samples/support-center/SupportCenter.Frontend/src/App.tsx diff --git a/samples/support-center/src/frontend/src/components/Login/Login.css b/samples/support-center/SupportCenter.Frontend/src/components/Login/Login.css similarity index 100% rename from samples/support-center/src/frontend/src/components/Login/Login.css rename to samples/support-center/SupportCenter.Frontend/src/components/Login/Login.css diff --git a/samples/support-center/src/frontend/src/components/Login/Login.tsx b/samples/support-center/SupportCenter.Frontend/src/components/Login/Login.tsx similarity index 100% rename from samples/support-center/src/frontend/src/components/Login/Login.tsx rename to samples/support-center/SupportCenter.Frontend/src/components/Login/Login.tsx diff --git a/samples/support-center/src/frontend/src/components/NavBar/NavBar.tsx b/samples/support-center/SupportCenter.Frontend/src/components/NavBar/NavBar.tsx similarity index 100% rename from samples/support-center/src/frontend/src/components/NavBar/NavBar.tsx rename to samples/support-center/SupportCenter.Frontend/src/components/NavBar/NavBar.tsx diff --git a/samples/support-center/src/frontend/src/components/WelcomeHints/WelcomeHints.css b/samples/support-center/SupportCenter.Frontend/src/components/WelcomeHints/WelcomeHints.css similarity index 100% rename from samples/support-center/src/frontend/src/components/WelcomeHints/WelcomeHints.css rename to samples/support-center/SupportCenter.Frontend/src/components/WelcomeHints/WelcomeHints.css diff --git a/samples/support-center/src/frontend/src/components/WelcomeHints/WelcomeHints.tsx b/samples/support-center/SupportCenter.Frontend/src/components/WelcomeHints/WelcomeHints.tsx similarity index 100% rename from samples/support-center/src/frontend/src/components/WelcomeHints/WelcomeHints.tsx rename to samples/support-center/SupportCenter.Frontend/src/components/WelcomeHints/WelcomeHints.tsx diff --git a/samples/support-center/src/frontend/src/index.css b/samples/support-center/SupportCenter.Frontend/src/index.css similarity index 100% rename from samples/support-center/src/frontend/src/index.css rename to samples/support-center/SupportCenter.Frontend/src/index.css diff --git a/samples/support-center/src/frontend/src/main.tsx b/samples/support-center/SupportCenter.Frontend/src/main.tsx similarity index 100% rename from samples/support-center/src/frontend/src/main.tsx rename to samples/support-center/SupportCenter.Frontend/src/main.tsx diff --git a/samples/support-center/src/frontend/src/models/Citation.ts b/samples/support-center/SupportCenter.Frontend/src/models/Citation.ts similarity index 100% rename from samples/support-center/src/frontend/src/models/Citation.ts rename to samples/support-center/SupportCenter.Frontend/src/models/Citation.ts diff --git a/samples/support-center/src/frontend/src/models/Configuration.ts b/samples/support-center/SupportCenter.Frontend/src/models/Configuration.ts similarity index 100% rename from samples/support-center/src/frontend/src/models/Configuration.ts rename to samples/support-center/SupportCenter.Frontend/src/models/Configuration.ts diff --git a/samples/support-center/src/frontend/src/models/Conversation.ts b/samples/support-center/SupportCenter.Frontend/src/models/Conversation.ts similarity index 100% rename from samples/support-center/src/frontend/src/models/Conversation.ts rename to samples/support-center/SupportCenter.Frontend/src/models/Conversation.ts diff --git a/samples/support-center/src/frontend/src/models/Knowledge.ts b/samples/support-center/SupportCenter.Frontend/src/models/Knowledge.ts similarity index 100% rename from samples/support-center/src/frontend/src/models/Knowledge.ts rename to samples/support-center/SupportCenter.Frontend/src/models/Knowledge.ts diff --git a/samples/support-center/src/frontend/src/models/KnowledgeDocument.ts b/samples/support-center/SupportCenter.Frontend/src/models/KnowledgeDocument.ts similarity index 100% rename from samples/support-center/src/frontend/src/models/KnowledgeDocument.ts rename to samples/support-center/SupportCenter.Frontend/src/models/KnowledgeDocument.ts diff --git a/samples/support-center/src/frontend/src/models/Message.tsx b/samples/support-center/SupportCenter.Frontend/src/models/Message.tsx similarity index 100% rename from samples/support-center/src/frontend/src/models/Message.tsx rename to samples/support-center/SupportCenter.Frontend/src/models/Message.tsx diff --git a/samples/support-center/src/frontend/src/pages/PageStyles.ts b/samples/support-center/SupportCenter.Frontend/src/pages/PageStyles.ts similarity index 100% rename from samples/support-center/src/frontend/src/pages/PageStyles.ts rename to samples/support-center/SupportCenter.Frontend/src/pages/PageStyles.ts diff --git a/samples/support-center/src/frontend/src/pages/chat/ChatPage.tsx b/samples/support-center/SupportCenter.Frontend/src/pages/chat/ChatPage.tsx similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/ChatPage.tsx rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/ChatPage.tsx diff --git a/samples/support-center/src/frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.css b/samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.css similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.css rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.css diff --git a/samples/support-center/src/frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.tsx b/samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.tsx similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.tsx rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatHistoryList/ChatHistoryList.tsx diff --git a/samples/support-center/src/frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.css b/samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.css similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.css rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.css diff --git a/samples/support-center/src/frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.tsx b/samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.tsx similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.tsx rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatInputBox/ChatInputBox.tsx diff --git a/samples/support-center/src/frontend/src/pages/chat/components/ChatMessage/ChatMessage.css b/samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatMessage/ChatMessage.css similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/components/ChatMessage/ChatMessage.css rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatMessage/ChatMessage.css diff --git a/samples/support-center/src/frontend/src/pages/chat/components/ChatMessage/ChatMessage.tsx b/samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatMessage/ChatMessage.tsx similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/components/ChatMessage/ChatMessage.tsx rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatMessage/ChatMessage.tsx diff --git a/samples/support-center/src/frontend/src/pages/chat/components/ChatMessage/MessageParser.tsx b/samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatMessage/MessageParser.tsx similarity index 100% rename from samples/support-center/src/frontend/src/pages/chat/components/ChatMessage/MessageParser.tsx rename to samples/support-center/SupportCenter.Frontend/src/pages/chat/components/ChatMessage/MessageParser.tsx diff --git a/samples/support-center/src/frontend/src/services/ChatService.ts b/samples/support-center/SupportCenter.Frontend/src/services/ChatService.ts similarity index 100% rename from samples/support-center/src/frontend/src/services/ChatService.ts rename to samples/support-center/SupportCenter.Frontend/src/services/ChatService.ts diff --git a/samples/support-center/src/frontend/src/states/AppContext.ts b/samples/support-center/SupportCenter.Frontend/src/states/AppContext.ts similarity index 100% rename from samples/support-center/src/frontend/src/states/AppContext.ts rename to samples/support-center/SupportCenter.Frontend/src/states/AppContext.ts diff --git a/samples/support-center/src/frontend/src/states/ChatContext.ts b/samples/support-center/SupportCenter.Frontend/src/states/ChatContext.ts similarity index 100% rename from samples/support-center/src/frontend/src/states/ChatContext.ts rename to samples/support-center/SupportCenter.Frontend/src/states/ChatContext.ts diff --git a/samples/support-center/src/frontend/src/vite-env.d.ts b/samples/support-center/SupportCenter.Frontend/src/vite-env.d.ts similarity index 100% rename from samples/support-center/src/frontend/src/vite-env.d.ts rename to samples/support-center/SupportCenter.Frontend/src/vite-env.d.ts diff --git a/samples/support-center/src/frontend/tsconfig.json b/samples/support-center/SupportCenter.Frontend/tsconfig.json similarity index 100% rename from samples/support-center/src/frontend/tsconfig.json rename to samples/support-center/SupportCenter.Frontend/tsconfig.json diff --git a/samples/support-center/src/frontend/tsconfig.node.json b/samples/support-center/SupportCenter.Frontend/tsconfig.node.json similarity index 100% rename from samples/support-center/src/frontend/tsconfig.node.json rename to samples/support-center/SupportCenter.Frontend/tsconfig.node.json diff --git a/samples/support-center/SupportCenter.Frontend/vite.config.ts b/samples/support-center/SupportCenter.Frontend/vite.config.ts new file mode 100644 index 00000000..35b4ff34 --- /dev/null +++ b/samples/support-center/SupportCenter.Frontend/vite.config.ts @@ -0,0 +1,22 @@ +import react from '@vitejs/plugin-react'; +import { defineConfig, loadEnv } from 'vite'; + +// https://vitejs.dev/config/ + +export default defineConfig(({ mode }) => { + const env = loadEnv(mode, process.cwd(), ''); + + return { + plugins: [react()], + server: { + port: parseInt(env.VITE_PORT), + host: '0.0.0.0' + }, + build: { + outDir: 'dist', + rollupOptions: { + input: './index.html' + } + } + } +}) \ No newline at end of file diff --git a/samples/support-center/seed-memory/Benefit_Options.pdf b/samples/support-center/SupportCenter.Seed.Memory/Benefit_Options.pdf similarity index 100% rename from samples/support-center/seed-memory/Benefit_Options.pdf rename to samples/support-center/SupportCenter.Seed.Memory/Benefit_Options.pdf diff --git a/samples/support-center/seed-memory/Dockerfile b/samples/support-center/SupportCenter.Seed.Memory/Dockerfile similarity index 100% rename from samples/support-center/seed-memory/Dockerfile rename to samples/support-center/SupportCenter.Seed.Memory/Dockerfile diff --git a/samples/support-center/seed-memory/Northwind_Health_Plus_Benefits_Details.pdf b/samples/support-center/SupportCenter.Seed.Memory/Northwind_Health_Plus_Benefits_Details.pdf similarity index 100% rename from samples/support-center/seed-memory/Northwind_Health_Plus_Benefits_Details.pdf rename to samples/support-center/SupportCenter.Seed.Memory/Northwind_Health_Plus_Benefits_Details.pdf diff --git a/samples/support-center/seed-memory/Northwind_Standard_Benefits_Details.pdf b/samples/support-center/SupportCenter.Seed.Memory/Northwind_Standard_Benefits_Details.pdf similarity index 100% rename from samples/support-center/seed-memory/Northwind_Standard_Benefits_Details.pdf rename to samples/support-center/SupportCenter.Seed.Memory/Northwind_Standard_Benefits_Details.pdf diff --git a/samples/support-center/seed-memory/PerksPlus.pdf b/samples/support-center/SupportCenter.Seed.Memory/PerksPlus.pdf similarity index 100% rename from samples/support-center/seed-memory/PerksPlus.pdf rename to samples/support-center/SupportCenter.Seed.Memory/PerksPlus.pdf diff --git a/samples/support-center/SupportCenter.Seed.Memory/Program.cs b/samples/support-center/SupportCenter.Seed.Memory/Program.cs new file mode 100644 index 00000000..c3e3b7ee --- /dev/null +++ b/samples/support-center/SupportCenter.Seed.Memory/Program.cs @@ -0,0 +1,72 @@ +using Microsoft.Extensions.AI; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.VectorData; +using Microsoft.SemanticKernel.Connectors.Redis; +using SupportCenter.Shared; +using OpenAI; +using StackExchange.Redis; +using System.Reflection; +using UglyToad.PdfPig; +using UglyToad.PdfPig.DocumentLayoutAnalysis.TextExtractor; + +string[] files = [ + "Benefit_Options.pdf", + "employee_handbook.pdf", + "Northwind_Health_Plus_Benefits_Details.pdf", + "Northwind_Standard_Benefits_Details.pdf", + "role_library.pdf" +]; + +HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + +builder.AddAzureOpenAIClient("openAiConnection"); +builder.AddRedisClient("redis"); +builder.Services.AddSingleton(sp => { + var db = sp.GetRequiredService().GetDatabase(); + return new RedisVectorStore(db, new() { StorageType = RedisStorageType.HashSet }); +}); + +builder.Services.AddEmbeddingGenerator(s => { + return s.GetRequiredService().AsEmbeddingGenerator("text-embedding-3-large"); +}); + +using IHost host = builder.Build(); + +foreach (var file in files) +{ + await ImportDocumentAsync(host.Services, file); +} + +await host.RunAsync(); + + +static async Task ImportDocumentAsync(IServiceProvider hostProvider, string filename) +{ + using IServiceScope serviceScope = hostProvider.CreateScope(); + var provider = serviceScope.ServiceProvider; + var vectorStore = provider.GetRequiredService(); + var embeddingGenerator = provider.GetRequiredService>>(); + + var currentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + ?? throw new InvalidOperationException("Current directory cannot be determined."); + var filePath = Path.Combine(currentDirectory, filename); + using var pdfDocument = PdfDocument.Open(File.OpenRead(filePath)); + var pages = pdfDocument.GetPages(); + var collection = vectorStore.GetCollection("qna"); + await collection.CreateCollectionIfNotExistsAsync(); + foreach (var page in pages) + { + try + { + var text = ContentOrderTextExtractor.GetText(page); + var descr = new string([.. text.Take(100)]); + var vector = await embeddingGenerator.GenerateEmbeddingVectorAsync(text); + await collection.UpsertAsync(new Document { Key = $"{Guid.NewGuid()}", Description = $"Document: {descr}", Text = text, Vector = vector }); + } + catch (Exception ex) + { + Console.WriteLine($"Error processing page: {ex.Message}"); + } + } +} \ No newline at end of file diff --git a/samples/support-center/seed-invoice-memory/README.md b/samples/support-center/SupportCenter.Seed.Memory/README.md similarity index 100% rename from samples/support-center/seed-invoice-memory/README.md rename to samples/support-center/SupportCenter.Seed.Memory/README.md diff --git a/samples/support-center/seed-memory/seed-memory.csproj b/samples/support-center/SupportCenter.Seed.Memory/SupportCenter.Seed.Memory.csproj similarity index 61% rename from samples/support-center/seed-memory/seed-memory.csproj rename to samples/support-center/SupportCenter.Seed.Memory/SupportCenter.Seed.Memory.csproj index a4c6cf3a..ee22dc19 100644 --- a/samples/support-center/seed-memory/seed-memory.csproj +++ b/samples/support-center/SupportCenter.Seed.Memory/SupportCenter.Seed.Memory.csproj @@ -1,25 +1,32 @@ - + Exe - net8.0 + net9.0 waf_import enable enable - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/samples/support-center/seed-memory/config/KernelSettings.cs b/samples/support-center/SupportCenter.Seed.Memory/config/KernelSettings.cs similarity index 100% rename from samples/support-center/seed-memory/config/KernelSettings.cs rename to samples/support-center/SupportCenter.Seed.Memory/config/KernelSettings.cs diff --git a/samples/support-center/seed-memory/config/appsettings.template.json b/samples/support-center/SupportCenter.Seed.Memory/config/appsettings.template.json similarity index 100% rename from samples/support-center/seed-memory/config/appsettings.template.json rename to samples/support-center/SupportCenter.Seed.Memory/config/appsettings.template.json diff --git a/samples/support-center/seed-memory/employee_handbook.pdf b/samples/support-center/SupportCenter.Seed.Memory/employee_handbook.pdf similarity index 100% rename from samples/support-center/seed-memory/employee_handbook.pdf rename to samples/support-center/SupportCenter.Seed.Memory/employee_handbook.pdf diff --git a/samples/support-center/seed-memory/role_library.pdf b/samples/support-center/SupportCenter.Seed.Memory/role_library.pdf similarity index 100% rename from samples/support-center/seed-memory/role_library.pdf rename to samples/support-center/SupportCenter.Seed.Memory/role_library.pdf diff --git a/samples/support-center/SupportCenter.ServiceDefaults/Extensions.cs b/samples/support-center/SupportCenter.ServiceDefaults/Extensions.cs new file mode 100644 index 00000000..cbae381b --- /dev/null +++ b/samples/support-center/SupportCenter.ServiceDefaults/Extensions.cs @@ -0,0 +1,124 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.Extensions.Logging; +using OpenTelemetry; +using OpenTelemetry.Metrics; +using OpenTelemetry.Trace; +using Azure.Monitor.OpenTelemetry.AspNetCore; + +namespace Microsoft.Extensions.Hosting; + +// Adds common .NET Aspire services: service discovery, resilience, health checks, and OpenTelemetry. +// This project should be referenced by each service project in your solution. +// To learn more about using this project, see https://aka.ms/dotnet/aspire/service-defaults +public static class Extensions +{ + public static TBuilder AddServiceDefaults(this TBuilder builder) where TBuilder : IHostApplicationBuilder + { + builder.ConfigureOpenTelemetry(); + + builder.AddDefaultHealthChecks(); + + builder.Services.AddServiceDiscovery(); + + builder.Services.ConfigureHttpClientDefaults(http => + { + // Turn on resilience by default + http.AddStandardResilienceHandler(); + + // Turn on service discovery by default + http.AddServiceDiscovery(); + }); + + // Uncomment the following to restrict the allowed schemes for service discovery. + // builder.Services.Configure(options => + // { + // options.AllowedSchemes = ["https"]; + // }); + + return builder; + } + + public static TBuilder ConfigureOpenTelemetry(this TBuilder builder) where TBuilder : IHostApplicationBuilder + { + builder.Logging.AddOpenTelemetry(logging => + { + logging.IncludeFormattedMessage = true; + logging.IncludeScopes = true; + }); + + builder.Services.AddOpenTelemetry() + .WithMetrics(metrics => + { + metrics.AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation() + .AddRuntimeInstrumentation() + .AddMeter("Microsoft.Orleans"); + }) + .WithTracing(tracing => + { + tracing.AddSource("Microsoft.Orleans.Runtime"); + tracing.AddSource("Microsoft.Orleans.Application"); + tracing.AddSource("Experimental.Microsoft.Extensions.AI*"); + + tracing.AddSource(builder.Environment.ApplicationName) + .AddAspNetCoreInstrumentation() + // Uncomment the following line to enable gRPC instrumentation (requires the OpenTelemetry.Instrumentation.GrpcNetClient package) + //.AddGrpcClientInstrumentation() + .AddHttpClientInstrumentation(); + }); + + builder.AddOpenTelemetryExporters(); + + return builder; + } + + private static TBuilder AddOpenTelemetryExporters(this TBuilder builder) where TBuilder : IHostApplicationBuilder + { + var useOtlpExporter = !string.IsNullOrWhiteSpace(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]); + + if (useOtlpExporter) + { + builder.Services.AddOpenTelemetry().UseOtlpExporter(); + } + + //Uncomment the following lines to enable the Azure Monitor exporter(requires the Azure.Monitor.OpenTelemetry.AspNetCore package) + if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"])) + { + builder.Services.AddOpenTelemetry() + .UseAzureMonitor(); + } + + return builder; + } + + public static TBuilder AddDefaultHealthChecks(this TBuilder builder) where TBuilder : IHostApplicationBuilder + { + builder.Services.AddHealthChecks() + // Add a default liveness check to ensure app is responsive + .AddCheck("self", () => HealthCheckResult.Healthy(), ["live"]); + + return builder; + } + + public static WebApplication MapDefaultEndpoints(this WebApplication app) + { + // Adding health checks endpoints to applications in non-development environments has security implications. + // See https://aka.ms/dotnet/aspire/healthchecks for details before enabling these endpoints in non-development environments. + if (app.Environment.IsDevelopment()) + { + // All health checks must pass for app to be considered ready to accept traffic after starting + app.MapHealthChecks("/health"); + + // Only health checks tagged with the "live" tag must pass for app to be considered alive + app.MapHealthChecks("/alive", new HealthCheckOptions + { + Predicate = r => r.Tags.Contains("live") + }); + } + + return app; + } +} diff --git a/samples/support-center/SupportCenter.ServiceDefaults/SupportCenter.ServiceDefaults.csproj b/samples/support-center/SupportCenter.ServiceDefaults/SupportCenter.ServiceDefaults.csproj new file mode 100644 index 00000000..1d426301 --- /dev/null +++ b/samples/support-center/SupportCenter.ServiceDefaults/SupportCenter.ServiceDefaults.csproj @@ -0,0 +1,23 @@ + + + + net9.0 + enable + enable + true + + + + + + + + + + + + + + + + diff --git a/samples/support-center/SupportCenter.Shared/Document.cs b/samples/support-center/SupportCenter.Shared/Document.cs new file mode 100644 index 00000000..f3792779 --- /dev/null +++ b/samples/support-center/SupportCenter.Shared/Document.cs @@ -0,0 +1,18 @@ +using Microsoft.Extensions.VectorData; + +namespace SupportCenter.Shared; + +public class Document +{ + [VectorStoreRecordKey] + public string Key { get; set; } + + [VectorStoreRecordData] + public string Description { get; set; } + + [VectorStoreRecordData] + public string Text { get; set; } + + [VectorStoreRecordVector(3072)] + public ReadOnlyMemory Vector { get; set; } +} diff --git a/samples/support-center/SupportCenter.Shared/SupportCenter.Shared.csproj b/samples/support-center/SupportCenter.Shared/SupportCenter.Shared.csproj new file mode 100644 index 00000000..5d16ff34 --- /dev/null +++ b/samples/support-center/SupportCenter.Shared/SupportCenter.Shared.csproj @@ -0,0 +1,13 @@ + + + + net9.0 + enable + enable + + + + + + + diff --git a/samples/support-center/azure.yaml b/samples/support-center/azure.yaml index ef0e19df..b9840197 100644 --- a/samples/support-center/azure.yaml +++ b/samples/support-center/azure.yaml @@ -1,29 +1,23 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json -name: ai-support-center -metadata: - template: azd-init@1.8.2 -hooks: - postprovision: - interactive: false - shell: sh - run: infra/azd-hooks/load-envs.sh -infra: - provider: bicep - path: infra - module: main -services: - backend: - project: src/backend - host: containerapp - language: dotnet - docker: - path: Dockerfile - context: ../../../../ - frontend: - project: src/frontend - host: containerapp - language: ts - dist: build - docker: - path: Dockerfile +name: support-center +services: + app: + language: dotnet + project: ./SupportCenter.AppHost/SupportCenter.AppHost.csproj + host: containerapp +hooks: + predeploy: + windows: + shell: pwsh + run: 'echo "VITE_OAGENT_BASE_URL=https://apiservice.$env:AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN" > ./SupportCenter.Frontend/.env.azureConfig' + posix: + shell: sh + run: 'echo "VITE_OAGENT_BASE_URL=https://apiservice.$AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN" > ./SupportCenter.Frontend/.env.azureConfig' + postdeploy: + windows: + shell: pwsh + run: 'rm ./SupportCenter.Frontend/.env.azureConfig' + posix: + shell: sh + run: 'rm ./SupportCenter.Frontend/.env.azureConfig' diff --git a/samples/support-center/infra/abbreviations.json b/samples/support-center/infra/abbreviations.json deleted file mode 100644 index efc610d8..00000000 --- a/samples/support-center/infra/abbreviations.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "analysisServicesServers": "as", - "apiManagementService": "apim-", - "appConfigurationStores": "appcs-", - "appManagedEnvironments": "cae-", - "appContainerApps": "ca-", - "authorizationPolicyDefinitions": "policy-", - "automationAutomationAccounts": "aa-", - "blueprintBlueprints": "bp-", - "blueprintBlueprintsArtifacts": "bpa-", - "cacheRedis": "redis-", - "cdnProfiles": "cdnp-", - "cdnProfilesEndpoints": "cdne-", - "cognitiveServicesAccounts": "cog-", - "cognitiveServicesFormRecognizer": "cog-fr-", - "cognitiveServicesTextAnalytics": "cog-ta-", - "computeAvailabilitySets": "avail-", - "computeCloudServices": "cld-", - "computeDiskEncryptionSets": "des", - "computeDisks": "disk", - "computeDisksOs": "osdisk", - "computeGalleries": "gal", - "computeSnapshots": "snap-", - "computeVirtualMachines": "vm", - "computeVirtualMachineScaleSets": "vmss-", - "containerInstanceContainerGroups": "ci", - "containerRegistryRegistries": "cr", - "containerServiceManagedClusters": "aks-", - "databricksWorkspaces": "dbw-", - "dataFactoryFactories": "adf-", - "dataLakeAnalyticsAccounts": "dla", - "dataLakeStoreAccounts": "dls", - "dataMigrationServices": "dms-", - "dBforMySQLServers": "mysql-", - "dBforPostgreSQLServers": "psql-", - "devicesIotHubs": "iot-", - "devicesProvisioningServices": "provs-", - "devicesProvisioningServicesCertificates": "pcert-", - "documentDBDatabaseAccounts": "cosmos-", - "eventGridDomains": "evgd-", - "eventGridDomainsTopics": "evgt-", - "eventGridEventSubscriptions": "evgs-", - "eventHubNamespaces": "evhns-", - "eventHubNamespacesEventHubs": "evh-", - "hdInsightClustersHadoop": "hadoop-", - "hdInsightClustersHbase": "hbase-", - "hdInsightClustersKafka": "kafka-", - "hdInsightClustersMl": "mls-", - "hdInsightClustersSpark": "spark-", - "hdInsightClustersStorm": "storm-", - "hybridComputeMachines": "arcs-", - "insightsActionGroups": "ag-", - "insightsComponents": "appi-", - "keyVaultVaults": "kv-", - "kubernetesConnectedClusters": "arck", - "kustoClusters": "dec", - "kustoClustersDatabases": "dedb", - "logicIntegrationAccounts": "ia-", - "logicWorkflows": "logic-", - "machineLearningServicesWorkspaces": "mlw-", - "managedIdentityUserAssignedIdentities": "id-", - "managementManagementGroups": "mg-", - "migrateAssessmentProjects": "migr-", - "networkApplicationGateways": "agw-", - "networkApplicationSecurityGroups": "asg-", - "networkAzureFirewalls": "afw-", - "networkBastionHosts": "bas-", - "networkConnections": "con-", - "networkDnsZones": "dnsz-", - "networkExpressRouteCircuits": "erc-", - "networkFirewallPolicies": "afwp-", - "networkFirewallPoliciesWebApplication": "waf", - "networkFirewallPoliciesRuleGroups": "wafrg", - "networkFrontDoors": "fd-", - "networkFrontdoorWebApplicationFirewallPolicies": "fdfp-", - "networkLoadBalancersExternal": "lbe-", - "networkLoadBalancersInternal": "lbi-", - "networkLoadBalancersInboundNatRules": "rule-", - "networkLocalNetworkGateways": "lgw-", - "networkNatGateways": "ng-", - "networkNetworkInterfaces": "nic-", - "networkNetworkSecurityGroups": "nsg-", - "networkNetworkSecurityGroupsSecurityRules": "nsgsr-", - "networkNetworkWatchers": "nw-", - "networkPrivateDnsZones": "pdnsz-", - "networkPrivateLinkServices": "pl-", - "networkPublicIPAddresses": "pip-", - "networkPublicIPPrefixes": "ippre-", - "networkRouteFilters": "rf-", - "networkRouteTables": "rt-", - "networkRouteTablesRoutes": "udr-", - "networkTrafficManagerProfiles": "traf-", - "networkVirtualNetworkGateways": "vgw-", - "networkVirtualNetworks": "vnet-", - "networkVirtualNetworksSubnets": "snet-", - "networkVirtualNetworksVirtualNetworkPeerings": "peer-", - "networkVirtualWans": "vwan-", - "networkVpnGateways": "vpng-", - "networkVpnGatewaysVpnConnections": "vcn-", - "networkVpnGatewaysVpnSites": "vst-", - "notificationHubsNamespaces": "ntfns-", - "notificationHubsNamespacesNotificationHubs": "ntf-", - "operationalInsightsWorkspaces": "log-", - "portalDashboards": "dash-", - "powerBIDedicatedCapacities": "pbi-", - "purviewAccounts": "pview-", - "recoveryServicesVaults": "rsv-", - "resourcesResourceGroups": "rg-", - "searchSearchServices": "srch-", - "serviceBusNamespaces": "sb-", - "serviceBusNamespacesQueues": "sbq-", - "serviceBusNamespacesTopics": "sbt-", - "serviceEndPointPolicies": "se-", - "serviceFabricClusters": "sf-", - "signalRServiceSignalR": "sigr", - "sqlManagedInstances": "sqlmi-", - "sqlServers": "sql-", - "sqlServersDataWarehouse": "sqldw-", - "sqlServersDatabases": "sqldb-", - "sqlServersDatabasesStretch": "sqlstrdb-", - "storageStorageAccounts": "st", - "storageStorageAccountsVm": "stvm", - "storSimpleManagers": "ssimp", - "streamAnalyticsCluster": "asa-", - "synapseWorkspaces": "syn", - "synapseWorkspacesAnalyticsWorkspaces": "synw", - "synapseWorkspacesSqlPoolsDedicated": "syndp", - "synapseWorkspacesSqlPoolsSpark": "synsp", - "timeSeriesInsightsEnvironments": "tsi-", - "webServerFarms": "plan-", - "webSitesAppService": "app-", - "webSitesAppServiceEnvironment": "ase-", - "webSitesFunctions": "func-", - "webStaticSites": "stapp-" -} \ No newline at end of file diff --git a/samples/support-center/infra/app/backend.bicep b/samples/support-center/infra/app/backend.bicep deleted file mode 100644 index 8f36a473..00000000 --- a/samples/support-center/infra/app/backend.bicep +++ /dev/null @@ -1,133 +0,0 @@ -param name string -param location string = resourceGroup().location -param tags object = {} - -param identityName string -param containerRegistryName string -param containerAppsEnvironmentName string -param applicationInsightsName string -param allowedOrigins array -param exists bool -@secure() -param appDefinition object - -var appSettingsArray = filter(array(appDefinition.settings), i => i.name != '') -var secrets = map(filter(appSettingsArray, i => i.?secret != null), i => { - name: i.name - value: i.value - secretRef: i.?secretRef ?? take(replace(replace(toLower(i.name), '_', '-'), '.', '-'), 32) -}) -var env = map(filter(appSettingsArray, i => i.?secret == null), i => { - name: i.name - value: i.value -}) - -resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { - name: identityName - location: location -} - -resource containerRegistry 'Microsoft.ContainerRegistry/registries@2023-01-01-preview' existing = { - name: containerRegistryName -} - -resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2023-05-01' existing = { - name: containerAppsEnvironmentName -} - -resource applicationInsights 'Microsoft.Insights/components@2020-02-02' existing = { - name: applicationInsightsName -} - -resource acrPullRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - scope: containerRegistry - name: guid(subscription().id, resourceGroup().id, identity.id, 'acrPullRole') - properties: { - roleDefinitionId: subscriptionResourceId( - 'Microsoft.Authorization/roleDefinitions', '7f951dda-4ed3-4680-a7ca-43fe172d538d') - principalType: 'ServicePrincipal' - principalId: identity.properties.principalId - } -} - -module fetchLatestImage '../modules/fetch-container-image.bicep' = { - name: '${name}-fetch-image' - params: { - exists: exists - name: name - } -} - -resource app 'Microsoft.App/containerApps@2023-05-02-preview' = { - name: name - location: location - tags: union(tags, {'azd-service-name': 'backend' }) - dependsOn: [ acrPullRole ] - identity: { - type: 'UserAssigned' - userAssignedIdentities: { '${identity.id}': {} } - } - properties: { - managedEnvironmentId: containerAppsEnvironment.id - configuration: { - ingress: { - external: true - targetPort: 5244 - transport: 'auto' - corsPolicy: { - allowedOrigins: union(allowedOrigins, [ - // define additional allowed origins here - ]) - } - } - registries: [ - { - server: '${containerRegistryName}.azurecr.io' - identity: identity.id - } - ] - secrets: union([ - ], - map(secrets, secret => { - name: secret.secretRef - value: secret.value - })) - } - template: { - containers: [ - { - image: fetchLatestImage.outputs.?containers[?0].?image ?? 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' - name: 'main' - env: union([ - { - name: 'APPLICATIONINSIGHTS_CONNECTION_STRING' - value: applicationInsights.properties.ConnectionString - } - { - name: 'PORT' - value: '5244' - } - ], - env, - map(secrets, secret => { - name: secret.name - secretRef: secret.secretRef - })) - resources: { - cpu: json('1.0') - memory: '2.0Gi' - } - } - ] - scale: { - minReplicas: 1 - maxReplicas: 10 - } - } - } -} - -output defaultDomain string = containerAppsEnvironment.properties.defaultDomain -output name string = app.name -output uri string = 'https://${app.properties.configuration.ingress.fqdn}' -output id string = app.id diff --git a/samples/support-center/infra/app/db.bicep b/samples/support-center/infra/app/db.bicep deleted file mode 100644 index 5cb4c204..00000000 --- a/samples/support-center/infra/app/db.bicep +++ /dev/null @@ -1,36 +0,0 @@ -param accountName string -param location string = resourceGroup().location -param tags object = {} - -param containers array = [ - { - name: 'customer' - id: 'customer' - partitionKey: '/id' - } -] - -param databaseName string = '' -param principalIds array = [] - -// Because databaseName is optional in main.bicep, we make sure the database name is set here. -var defaultDatabaseName = 'customer-support' -var actualDatabaseName = !empty(databaseName) ? databaseName : defaultDatabaseName - -module cosmos '../core/database/cosmos/sql/cosmos-sql-db.bicep' = { - name: 'cosmos-sql' - params: { - accountName: accountName - location: location - tags: tags - containers: containers - databaseName: actualDatabaseName - principalIds: principalIds - } -} - -output accountName string = cosmos.outputs.accountName -output connectionStringKey string = cosmos.outputs.connectionStringKey -output databaseName string = cosmos.outputs.databaseName -output endpoint string = cosmos.outputs.endpoint -output roleDefinitionId string = cosmos.outputs.roleDefinitionId diff --git a/samples/support-center/infra/app/frontend.bicep b/samples/support-center/infra/app/frontend.bicep deleted file mode 100644 index a872c23c..00000000 --- a/samples/support-center/infra/app/frontend.bicep +++ /dev/null @@ -1,132 +0,0 @@ -param name string -param location string = resourceGroup().location -param tags object = {} - -param identityName string -param containerRegistryName string -param containerAppsEnvironmentName string -param applicationInsightsName string -param apiUrls array -param exists bool -@secure() -param appDefinition object - -var appSettingsArray = filter(array(appDefinition.settings), i => i.name != '') -var secrets = map(filter(appSettingsArray, i => i.?secret != null), i => { - name: i.name - value: i.value - secretRef: i.?secretRef ?? take(replace(replace(toLower(i.name), '_', '-'), '.', '-'), 32) -}) -var env = map(filter(appSettingsArray, i => i.?secret == null), i => { - name: i.name - value: i.value -}) - -resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { - name: identityName - location: location -} - -resource containerRegistry 'Microsoft.ContainerRegistry/registries@2023-01-01-preview' existing = { - name: containerRegistryName -} - -resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2023-05-01' existing = { - name: containerAppsEnvironmentName -} - -resource applicationInsights 'Microsoft.Insights/components@2020-02-02' existing = { - name: applicationInsightsName -} - -resource acrPullRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = { - scope: containerRegistry - name: guid(subscription().id, resourceGroup().id, identity.id, 'acrPullRole') - properties: { - roleDefinitionId: subscriptionResourceId( - 'Microsoft.Authorization/roleDefinitions', '7f951dda-4ed3-4680-a7ca-43fe172d538d') - principalType: 'ServicePrincipal' - principalId: identity.properties.principalId - } -} - -module fetchLatestImage '../modules/fetch-container-image.bicep' = { - name: '${name}-fetch-image' - params: { - exists: exists - name: name - } -} - -resource app 'Microsoft.App/containerApps@2023-05-02-preview' = { - name: name - location: location - tags: union(tags, {'azd-service-name': 'frontend' }) - dependsOn: [ acrPullRole ] - identity: { - type: 'UserAssigned' - userAssignedIdentities: { '${identity.id}': {} } - } - properties: { - managedEnvironmentId: containerAppsEnvironment.id - configuration: { - ingress: { - external: true - targetPort: 3000 - transport: 'auto' - } - registries: [ - { - server: '${containerRegistryName}.azurecr.io' - identity: identity.id - } - ] - secrets: union([ - ], - map(secrets, secret => { - name: secret.secretRef - value: secret.value - })) - } - template: { - containers: [ - { - image: fetchLatestImage.outputs.?containers[?0].?image ?? 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' - name: 'main' - env: union([ - { - name: 'APPLICATIONINSIGHTS_CONNECTION_STRING' - value: applicationInsights.properties.ConnectionString - } - { - name: 'BACKEND_BASE_URL' - value: apiUrls[0] - } - { - name: 'PORT' - value: '3000' - } - ], - env, - map(secrets, secret => { - name: secret.name - secretRef: secret.secretRef - })) - resources: { - cpu: json('1.0') - memory: '2.0Gi' - } - } - ] - scale: { - minReplicas: 1 - maxReplicas: 10 - } - } - } -} - -output defaultDomain string = containerAppsEnvironment.properties.defaultDomain -output name string = app.name -output uri string = 'https://${app.properties.configuration.ingress.fqdn}' -output id string = app.id diff --git a/samples/support-center/infra/azd-hooks/load-envs.sh b/samples/support-center/infra/azd-hooks/load-envs.sh deleted file mode 100644 index a5e0067d..00000000 --- a/samples/support-center/infra/azd-hooks/load-envs.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -pushd src/frontend || exit 1 - -# Check if the variable is set -if [ -z "${AZURE_BACKEND_ENDPOINT}" ]; then - echo "AZURE_BACKEND_ENDPOINT is not set. Exiting." - popd - exit 1 -fi -echo "AZURE_BACKEND_ENDPOINT is set to: ${AZURE_BACKEND_ENDPOINT}" -echo "Replacing with ${AZURE_BACKEND_ENDPOINT}" - -# Use sed to replace the placeholder -sed -i "s||${AZURE_BACKEND_ENDPOINT}|g" .env.azureConfig - -# Verify the replacement -echo "Contents of .env.azureConfig after replacement:" -cat .env.azureConfig - -popd || exit 1 \ No newline at end of file diff --git a/samples/support-center/infra/azd-hooks/postprovision.ps1 b/samples/support-center/infra/azd-hooks/postprovision.ps1 deleted file mode 100644 index a85e45e8..00000000 --- a/samples/support-center/infra/azd-hooks/postprovision.ps1 +++ /dev/null @@ -1,36 +0,0 @@ -# Import the necessary modules -# Import-Module Az -# Import-Module Az.CosmosDB -# Import-Module CosmosDB - -$subcriptionId = "" -$resourceGroupName = "rg-oagents-support-center" -$cosmosDbAccountName = "" -$databaseName = "customer-support" -$containerName = "items" -$partitionKey = "/id" - -# Authenticate to Azure (if not already authenticated) -Write-Host "Authenticating to Azure..." -Connect-AzAccount -Identity -Set-AzContext -Subscription $subcriptionId - -Write-Host "Resource Group: $resourceGroupName" -Write-Host "Cosmos DB Account: $cosmosDbAccountName" -Write-Host "Database Name: $databaseName" -Write-Host "Container Name: $containerName" -Write-Host "Partition Key Path: $partitionKeyPath" - -$cosmosDbContext = New-CosmosDbContext -Account $cosmosDbAccountName -Database $databaseName -ResourceGroup $resourceGroupName - -$document = @" -{ - "id": "1234", - "Name": "User", - "Email": "user@test.com", - "Phone": "+1123456789", - "Address": "Contoso Address 123, CN." -} -"@ - -New-CosmosDbDocument -Context $cosmosDbContext -CollectionId $containerName -DocumentBody $document -PartitionKey $partitionkey \ No newline at end of file diff --git a/samples/support-center/infra/core/database/cosmos/cosmos-account.bicep b/samples/support-center/infra/core/database/cosmos/cosmos-account.bicep deleted file mode 100644 index 4c129b0f..00000000 --- a/samples/support-center/infra/core/database/cosmos/cosmos-account.bicep +++ /dev/null @@ -1,37 +0,0 @@ -metadata description = 'Creates an Azure Cosmos DB account.' -param name string -param location string = resourceGroup().location -param tags object = {} - -param connectionStringKey string = 'AZURE-COSMOS-CONNECTION-STRING' - -@allowed([ 'GlobalDocumentDB', 'MongoDB', 'Parse' ]) -param kind string - -resource cosmos 'Microsoft.DocumentDB/databaseAccounts@2022-08-15' = { - name: name - kind: kind - location: location - tags: tags - properties: { - consistencyPolicy: { defaultConsistencyLevel: 'Session' } - locations: [ - { - locationName: location - failoverPriority: 0 - isZoneRedundant: false - } - ] - databaseAccountOfferType: 'Standard' - enableAutomaticFailover: false - enableMultipleWriteLocations: false - apiProperties: (kind == 'MongoDB') ? { serverVersion: '4.0' } : {} - capabilities: [ { name: 'EnableServerless' } ] - } -} - - -output connectionStringKey string = connectionStringKey -output endpoint string = cosmos.properties.documentEndpoint -output id string = cosmos.id -output name string = cosmos.name diff --git a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-account.bicep b/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-account.bicep deleted file mode 100644 index fee0f679..00000000 --- a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-account.bicep +++ /dev/null @@ -1,19 +0,0 @@ -metadata description = 'Creates an Azure Cosmos DB for NoSQL account.' -param name string -param location string = resourceGroup().location -param tags object = {} - -module cosmos '../../cosmos/cosmos-account.bicep' = { - name: 'cosmos-account' - params: { - name: name - location: location - tags: tags - kind: 'GlobalDocumentDB' - } -} - -output connectionStringKey string = cosmos.outputs.connectionStringKey -output endpoint string = cosmos.outputs.endpoint -output id string = cosmos.outputs.id -output name string = cosmos.outputs.name diff --git a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-db.bicep b/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-db.bicep deleted file mode 100644 index 3c79064e..00000000 --- a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-db.bicep +++ /dev/null @@ -1,72 +0,0 @@ -metadata description = 'Creates an Azure Cosmos DB for NoSQL account with a database.' -param accountName string -param databaseName string -param location string = resourceGroup().location -param tags object = {} - -param containers array = [] -param principalIds array = [] - -module cosmos 'cosmos-sql-account.bicep' = { - name: 'cosmos-sql-account' - params: { - name: accountName - location: location - tags: tags - } -} - -resource database 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2022-05-15' = { - name: '${accountName}/${databaseName}' - properties: { - resource: { id: databaseName } - } - - resource list 'containers' = [for container in containers: { - name: container.name - properties: { - resource: { - id: container.id - partitionKey: { paths: [ container.partitionKey ] } - } - options: {} - } - }] - - dependsOn: [ - cosmos - ] -} - -module roleDefinition 'cosmos-sql-role-def.bicep' = { - name: 'cosmos-sql-role-definition' - params: { - accountName: accountName - } - dependsOn: [ - cosmos - database - ] -} - -// We need batchSize(1) here because sql role assignments have to be done sequentially -@batchSize(1) -module userRole 'cosmos-sql-role-assign.bicep' = [for principalId in principalIds: if (!empty(principalId)) { - name: 'cosmos-sql-user-role-${uniqueString(principalId)}' - params: { - accountName: accountName - roleDefinitionId: roleDefinition.outputs.id - principalId: principalId - } - dependsOn: [ - cosmos - database - ] -}] - -output accountId string = cosmos.outputs.id -output accountName string = cosmos.outputs.name -output connectionStringKey string = cosmos.outputs.connectionStringKey -output databaseName string = databaseName -output endpoint string = cosmos.outputs.endpoint -output roleDefinitionId string = roleDefinition.outputs.id diff --git a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-role-assign.bicep b/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-role-assign.bicep deleted file mode 100644 index 3949efef..00000000 --- a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-role-assign.bicep +++ /dev/null @@ -1,19 +0,0 @@ -metadata description = 'Creates a SQL role assignment under an Azure Cosmos DB account.' -param accountName string - -param roleDefinitionId string -param principalId string = '' - -resource role 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2022-05-15' = { - parent: cosmos - name: guid(roleDefinitionId, principalId, cosmos.id) - properties: { - principalId: principalId - roleDefinitionId: roleDefinitionId - scope: cosmos.id - } -} - -resource cosmos 'Microsoft.DocumentDB/databaseAccounts@2022-08-15' existing = { - name: accountName -} diff --git a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-role-def.bicep b/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-role-def.bicep deleted file mode 100644 index 778d6dc4..00000000 --- a/samples/support-center/infra/core/database/cosmos/sql/cosmos-sql-role-def.bicep +++ /dev/null @@ -1,30 +0,0 @@ -metadata description = 'Creates a SQL role definition under an Azure Cosmos DB account.' -param accountName string - -resource roleDefinition 'Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions@2022-08-15' = { - parent: cosmos - name: guid(cosmos.id, accountName, 'sql-role') - properties: { - assignableScopes: [ - cosmos.id - ] - permissions: [ - { - dataActions: [ - 'Microsoft.DocumentDB/databaseAccounts/readMetadata' - 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*' - 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*' - ] - notDataActions: [] - } - ] - roleName: 'Reader Writer' - type: 'CustomRole' - } -} - -resource cosmos 'Microsoft.DocumentDB/databaseAccounts@2022-08-15' existing = { - name: accountName -} - -output id string = roleDefinition.id diff --git a/samples/support-center/infra/core/database/postgresql/flexibleserver.bicep b/samples/support-center/infra/core/database/postgresql/flexibleserver.bicep deleted file mode 100644 index effda63d..00000000 --- a/samples/support-center/infra/core/database/postgresql/flexibleserver.bicep +++ /dev/null @@ -1,64 +0,0 @@ -param name string -param location string = resourceGroup().location -param tags object = {} - -param sku object -param storage object -param administratorLogin string -@secure() -param administratorLoginPassword string -param databaseNames array = [] -param allowAzureIPsFirewall bool = false -param allowAllIPsFirewall bool = false -param allowedSingleIPs array = [] - -// PostgreSQL version -param version string - -// Latest official version 2022-12-01 does not have Bicep types available -resource postgresServer 'Microsoft.DBforPostgreSQL/flexibleServers@2022-12-01' = { - location: location - tags: tags - name: name - sku: sku - properties: { - version: version - administratorLogin: administratorLogin - administratorLoginPassword: administratorLoginPassword - storage: storage - highAvailability: { - mode: 'Disabled' - } - } - - resource database 'databases' = [for name in databaseNames: { - name: name - }] - - resource firewall_all 'firewallRules' = if (allowAllIPsFirewall) { - name: 'allow-all-IPs' - properties: { - startIpAddress: '0.0.0.0' - endIpAddress: '255.255.255.255' - } - } - - resource firewall_azure 'firewallRules' = if (allowAzureIPsFirewall) { - name: 'allow-all-azure-internal-IPs' - properties: { - startIpAddress: '0.0.0.0' - endIpAddress: '0.0.0.0' - } - } - - resource firewall_single 'firewallRules' = [for ip in allowedSingleIPs: { - name: 'allow-single-${replace(ip, '.', '')}' - properties: { - startIpAddress: ip - endIpAddress: ip - } - }] - -} - -output POSTGRES_DOMAIN_NAME string = postgresServer.properties.fullyQualifiedDomainName diff --git a/samples/support-center/infra/core/database/qdrant/qdrant-aca.bicep b/samples/support-center/infra/core/database/qdrant/qdrant-aca.bicep deleted file mode 100644 index a5f1573e..00000000 --- a/samples/support-center/infra/core/database/qdrant/qdrant-aca.bicep +++ /dev/null @@ -1,72 +0,0 @@ -param containerAppsEnvironmentName string -param storageName string -param shareName string -param location string -var storageAccountKey = listKeys(resourceId('Microsoft.Storage/storageAccounts', storageName), '2021-09-01').keys[0].value - -resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2022-11-01-preview' existing = { - name: containerAppsEnvironmentName -} - -var mountName = 'qdrantstoragemount' -var volumeName = 'qdrantstoragevol' -resource qdrantstorage 'Microsoft.App/managedEnvironments/storages@2022-11-01-preview' = { - name: '${containerAppsEnvironmentName}/${mountName}' - properties: { - azureFile: { - accountName: storageName - shareName: shareName - accountKey: storageAccountKey - accessMode: 'ReadWrite' - } - } -} - -resource qdrant 'Microsoft.App/containerApps@2022-11-01-preview' = { - name: 'qdrant' - location: location - dependsOn:[ - qdrantstorage - ] - properties: { - environmentId: containerAppsEnvironment.id - configuration: { - ingress: { - external: true - targetPort: 6333 - } - } - template: { - containers: [ - { - name: 'qdrant' - image: 'qdrant/qdrant' - resources: { - cpu: 1 - memory: '2Gi' - } - volumeMounts: [ - { - volumeName: volumeName - mountPath: '/qdrant/storage' - } - ] - } - ] - scale: { - minReplicas: 1 - maxReplicas: 1 - } - volumes: [ - { - name: volumeName - storageName: mountName - storageType: 'AzureFile' - } - ] - } - } -} - -output fqdn string = qdrant.properties.latestRevisionFqdn - diff --git a/samples/support-center/infra/core/documentintelligence/document-intelligence.bicep b/samples/support-center/infra/core/documentintelligence/document-intelligence.bicep deleted file mode 100644 index 1261e7da..00000000 --- a/samples/support-center/infra/core/documentintelligence/document-intelligence.bicep +++ /dev/null @@ -1,43 +0,0 @@ -@description('Location for all resources.') -param location string = resourceGroup().location -param tags object = {} - -@allowed([ - 'F0' - 'S0' -]) - -param sku string = 'S0' - - -param documentIntelligenceName string = '' -// Because name is optional in main.bicep, we make sure the name is set here. -var defaultName = 'doc-intelligence-${uniqueString(resourceGroup().id)}' -var actualname = !empty(documentIntelligenceName) ? documentIntelligenceName : defaultName - -resource cognitiveService 'Microsoft.CognitiveServices/accounts@2021-10-01' = { - name: actualname - location: 'westeurope' //invoice model is only available in eastus, west us2 and west europe for now - tags: tags - sku: { - name: sku - } - kind: 'FormRecognizer' - identity: { - type: 'SystemAssigned' - } - properties: { - customSubDomainName: actualname - networkAcls: { - defaultAction: 'Allow' - virtualNetworkRules: [] - ipRules: [] - } - publicNetworkAccess: 'Enabled' - } -} - -output id string = cognitiveService.id -output endpoint string = 'https://${actualname}.cognitiveservices.azure.com/' -output name string = cognitiveService.name -//output key string = cognitiveService.listKeys().key1 diff --git a/samples/support-center/infra/core/search/search.bicep b/samples/support-center/infra/core/search/search.bicep deleted file mode 100644 index e2d3871c..00000000 --- a/samples/support-center/infra/core/search/search.bicep +++ /dev/null @@ -1,68 +0,0 @@ -metadata description = 'Creates an Azure AI Search instance.' -param name string = '' -param location string = resourceGroup().location -param tags object = {} - -param sku object = { - name: 'standard' -} - -param authOptions object = {} -param disableLocalAuth bool = false -param disabledDataExfiltrationOptions array = [] -param encryptionWithCmk object = { - enforcement: 'Unspecified' -} -@allowed([ - 'default' - 'highDensity' -]) -param hostingMode string = 'default' -param networkRuleSet object = { - bypass: 'None' - ipRules: [] -} -param partitionCount int = 1 -@allowed([ - 'enabled' - 'disabled' -]) -param publicNetworkAccess string = 'enabled' -param replicaCount int = 1 -@allowed([ - 'disabled' - 'enabled' - 'free' - 'standard' -]) -param semanticSearch string = 'standard' - -var searchIdentityProvider = (sku.name == 'free') ? null : { - type: 'SystemAssigned' -} - -resource search 'Microsoft.Search/searchServices@2021-04-01-preview' = { - name: name - location: location - tags: tags - // The free tier does not support managed identity - identity: searchIdentityProvider - properties: { - authOptions: disableLocalAuth ? null : authOptions - disableLocalAuth: disableLocalAuth - disabledDataExfiltrationOptions: disabledDataExfiltrationOptions - encryptionWithCmk: encryptionWithCmk - hostingMode: hostingMode - networkRuleSet: networkRuleSet - partitionCount: partitionCount - publicNetworkAccess: publicNetworkAccess - replicaCount: replicaCount - semanticSearch: semanticSearch - } - sku: sku -} - -output id string = search.id -output endpoint string = 'https://${name}.search.windows.net/' -output name string = search.name -output principalId string = !empty(searchIdentityProvider) ? search.identity.principalId : '' diff --git a/samples/support-center/infra/core/storage/storage-account.bicep b/samples/support-center/infra/core/storage/storage-account.bicep deleted file mode 100644 index 75461a65..00000000 --- a/samples/support-center/infra/core/storage/storage-account.bicep +++ /dev/null @@ -1,76 +0,0 @@ -param name string -param location string = resourceGroup().location -param tags object = {} - -@allowed([ - 'Cool' - 'Hot' - 'Premium' ]) -param accessTier string = 'Hot' -param allowBlobPublicAccess bool = true -param allowCrossTenantReplication bool = true -param allowSharedKeyAccess bool = true -param containers array = [] -param defaultToOAuthAuthentication bool = false -param deleteRetentionPolicy object = {} -@allowed([ 'AzureDnsZone', 'Standard' ]) -param dnsEndpointType string = 'Standard' -param kind string = 'StorageV2' -param minimumTlsVersion string = 'TLS1_2' -param networkAcls object = { - bypass: 'AzureServices' - defaultAction: 'Allow' -} -@allowed([ 'Enabled', 'Disabled' ]) -param publicNetworkAccess string = 'Enabled' -param sku object = { name: 'Standard_LRS' } -param fileShares array = [] -param tables array = [] - -resource storage 'Microsoft.Storage/storageAccounts@2022-05-01' = { - name: name - location: location - tags: tags - kind: kind - sku: sku - properties: { - accessTier: accessTier - allowBlobPublicAccess: allowBlobPublicAccess - allowCrossTenantReplication: allowCrossTenantReplication - allowSharedKeyAccess: allowSharedKeyAccess - defaultToOAuthAuthentication: defaultToOAuthAuthentication - dnsEndpointType: dnsEndpointType - minimumTlsVersion: minimumTlsVersion - networkAcls: networkAcls - publicNetworkAccess: publicNetworkAccess - } - - resource blobServices 'blobServices' = if (!empty(containers)) { - name: 'default' - properties: { - deleteRetentionPolicy: deleteRetentionPolicy - } - resource container 'containers' = [for container in containers: { - name: container.name - properties: { - publicAccess: contains(container, 'publicAccess') ? container.publicAccess : 'None' - } - }] - } - resource fileServices 'fileServices' = if (!empty(fileShares)) { - name: 'default' - resource share 'shares' = [for fileShare in fileShares: { - name: fileShare - }] - } - - resource tableServices 'tableServices' = if (!empty(tables)) { - name: 'default' - resource table 'tables' = [for table in tables: { - name: table - }] - } -} - -output name string = storage.name -output primaryEndpoints object = storage.properties.primaryEndpoints diff --git a/samples/support-center/infra/main.bicep b/samples/support-center/infra/main.bicep deleted file mode 100644 index ae49950e..00000000 --- a/samples/support-center/infra/main.bicep +++ /dev/null @@ -1,206 +0,0 @@ -targetScope = 'subscription' - -@minLength(1) -@maxLength(64) -@description('Name of the environment that can be used as part of naming resource convention') -param environmentName string - -@minLength(1) -@description('Primary location for all resources') -param location string - -param backendExists bool -@secure() -param backendDefinition object -param frontendExists bool -param cosmosAccountName string = '' -@secure() -param frontendDefinition object -param storageAccountName string = '' -param documentIntelligenceName string = '' -param searchName string = '' - -@description('Id of the user or app to assign application roles') -param principalId string - -var qdrantShare = 'qdrantshare' - -// Tags that should be applied to all resources. -// -// Note that 'azd-service-name' tags should be applied separately to service host resources. -// Example usage: -// tags: union(tags, { 'azd-service-name': }) -var tags = { - 'azd-env-name': environmentName -} - -var abbrs = loadJsonContent('./abbreviations.json') -var resourceToken = toLower(uniqueString(subscription().id, environmentName, location)) - -resource rg 'Microsoft.Resources/resourceGroups@2022-09-01' = { - name: 'rg-${environmentName}' - location: location - tags: tags -} - -module monitoring './shared/monitoring.bicep' = { - name: 'monitoring' - params: { - location: location - tags: tags - logAnalyticsName: '${abbrs.operationalInsightsWorkspaces}${resourceToken}' - applicationInsightsName: '${abbrs.insightsComponents}${resourceToken}' - } - scope: rg -} - -module dashboard './shared/dashboard-web.bicep' = { - name: 'dashboard' - params: { - name: '${abbrs.portalDashboards}${resourceToken}' - applicationInsightsName: monitoring.outputs.applicationInsightsName - location: location - tags: tags - } - scope: rg -} - -module registry './shared/registry.bicep' = { - name: 'registry' - params: { - location: location - tags: tags - name: '${abbrs.containerRegistryRegistries}${resourceToken}' - } - scope: rg -} - -module keyVault './shared/keyvault.bicep' = { - name: 'keyvault' - params: { - location: location - tags: tags - name: '${abbrs.keyVaultVaults}${resourceToken}' - principalId: principalId - } - scope: rg -} - -module appsEnv './shared/apps-env.bicep' = { - name: 'apps-env' - params: { - name: '${abbrs.appManagedEnvironments}${resourceToken}' - location: location - tags: tags - applicationInsightsName: monitoring.outputs.applicationInsightsName - logAnalyticsWorkspaceName: monitoring.outputs.logAnalyticsWorkspaceName - } - scope: rg -} - -module storage './core/storage/storage-account.bicep' = { - name: 'storage' - scope: rg - params: { - name: !empty(storageAccountName) ? storageAccountName : '${abbrs.storageStorageAccounts}${resourceToken}' - location: location - tags: tags - fileShares: [ - qdrantShare - ] - } -} - -module qdrant './core/database/qdrant/qdrant-aca.bicep' = { - name: 'qdrant-deploy' - scope: rg - params: { - location: location - containerAppsEnvironmentName: appsEnv.outputs.name - shareName: qdrantShare - storageName: storage.outputs.name - } -} - - -module cosmos './app/db.bicep' = { - name: 'cosmos' - scope: rg - params: { - accountName: !empty(cosmosAccountName) ? cosmosAccountName : '${abbrs.documentDBDatabaseAccounts}${resourceToken}' - databaseName: 'customer-support' - location: location - tags: tags - } -} - - -module backend './app/backend.bicep' = { - name: 'backend' - params: { - name: '${abbrs.appContainerApps}backend-${resourceToken}' - location: location - tags: tags - identityName: '${abbrs.managedIdentityUserAssignedIdentities}backend-${resourceToken}' - applicationInsightsName: monitoring.outputs.applicationInsightsName - containerAppsEnvironmentName: appsEnv.outputs.name - containerRegistryName: registry.outputs.name - exists: backendExists - appDefinition: backendDefinition - allowedOrigins: [ - 'https://${abbrs.appContainerApps}frontend-${resourceToken}.${appsEnv.outputs.domain}' - ] - } - scope: rg -} - -module frontend './app/frontend.bicep' = { - name: 'frontend' - params: { - name: '${abbrs.appContainerApps}frontend-${resourceToken}' - location: location - tags: tags - identityName: '${abbrs.managedIdentityUserAssignedIdentities}frontend-${resourceToken}' - applicationInsightsName: monitoring.outputs.applicationInsightsName - containerAppsEnvironmentName: appsEnv.outputs.name - containerRegistryName: registry.outputs.name - exists: frontendExists - appDefinition: frontendDefinition - apiUrls: [ - backend.outputs.uri - ] - } - scope: rg -} -module documentIntelligence './core/documentintelligence/document-intelligence.bicep' = { - name: 'documentIntelligence' - scope: rg - params: { - documentIntelligenceName: !empty(documentIntelligenceName) ? documentIntelligenceName : '${abbrs.cognitiveServicesFormRecognizer}-${resourceToken}' - location: location - tags: tags - } -} - -module search './core/search/search.bicep' = { - name: 'search' - scope: rg - params: { - name: !empty(searchName) ? searchName : '${abbrs.searchSearchServices}${resourceToken}' - location: location - tags: tags - } -} - -output AZURE_RESOURCE_GROUP string = rg.name -output AZURE_CONTAINER_REGISTRY_ENDPOINT string = registry.outputs.loginServer -output AZURE_KEY_VAULT_NAME string = keyVault.outputs.name -output AZURE_KEY_VAULT_ENDPOINT string = keyVault.outputs.endpoint -output QDRANT_ENDPOINT string = 'https://${qdrant.outputs.fqdn}' -output AZURE_COSMOS_ENDPOINT string = cosmos.outputs.endpoint -output AZURE_COSMOS_CONNECTION_STRING_KEY string = cosmos.outputs.connectionStringKey -output AZURE_COSMOS_DATABASE_NAME string = cosmos.outputs.databaseName -output AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT string = documentIntelligence.outputs.endpoint -output AZURE_SEARCH_ENDPOINT string = search.outputs.endpoint -output AZURE_BACKEND_ENDPOINT string = backend.outputs.uri - diff --git a/samples/support-center/infra/main.parameters.json b/samples/support-center/infra/main.parameters.json deleted file mode 100644 index ff903cad..00000000 --- a/samples/support-center/infra/main.parameters.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "environmentName": { - "value": "${AZURE_ENV_NAME}" - }, - "location": { - "value": "${AZURE_LOCATION}" - }, - "backendExists": { - "value": "${SERVICE_BACKEND_RESOURCE_EXISTS=false}" - }, - "backendDefinition": { - "value": { - "settings": [ - { - "name": "", - "value": "${VAR}", - "_comment_name": "The name of the environment variable when running in Azure. If empty, ignored.", - "_comment_value": "The value to provide. This can be a fixed literal, or an expression like ${VAR} to use the value of 'VAR' from the current environment." - }, - { - "name": "", - "value": "${VAR_S}", - "secret": true, - "_comment_name": "The name of the environment variable when running in Azure. If empty, ignored.", - "_comment_value": "The value to provide. This can be a fixed literal, or an expression like ${VAR_S} to use the value of 'VAR_S' from the current environment." - } - ] - } - }, - "frontendExists": { - "value": "${SERVICE_FRONTEND_RESOURCE_EXISTS=false}" - }, - "frontendDefinition": { - "value": { - "settings": [ - { - "name": "", - "value": "${VAR}", - "_comment_name": "The name of the environment variable when running in Azure. If empty, ignored.", - "_comment_value": "The value to provide. This can be a fixed literal, or an expression like ${VAR} to use the value of 'VAR' from the current environment." - }, - { - "name": "", - "value": "${VAR_S}", - "secret": true, - "_comment_name": "The name of the environment variable when running in Azure. If empty, ignored.", - "_comment_value": "The value to provide. This can be a fixed literal, or an expression like ${VAR_S} to use the value of 'VAR_S' from the current environment." - } - ] - } - }, - "principalId": { - "value": "${AZURE_PRINCIPAL_ID}" - } - } -} \ No newline at end of file diff --git a/samples/support-center/infra/modules/fetch-container-image.bicep b/samples/support-center/infra/modules/fetch-container-image.bicep deleted file mode 100644 index 78d1e7ee..00000000 --- a/samples/support-center/infra/modules/fetch-container-image.bicep +++ /dev/null @@ -1,8 +0,0 @@ -param exists bool -param name string - -resource existingApp 'Microsoft.App/containerApps@2023-05-02-preview' existing = if (exists) { - name: name -} - -output containers array = exists ? existingApp.properties.template.containers : [] diff --git a/samples/support-center/infra/shared/apps-env.bicep b/samples/support-center/infra/shared/apps-env.bicep deleted file mode 100644 index 030b8233..00000000 --- a/samples/support-center/infra/shared/apps-env.bicep +++ /dev/null @@ -1,33 +0,0 @@ -param name string -param location string = resourceGroup().location -param tags object = {} - -param logAnalyticsWorkspaceName string -param applicationInsightsName string = '' - -resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2022-10-01' = { - name: name - location: location - tags: tags - properties: { - appLogsConfiguration: { - destination: 'log-analytics' - logAnalyticsConfiguration: { - customerId: logAnalyticsWorkspace.properties.customerId - sharedKey: logAnalyticsWorkspace.listKeys().primarySharedKey - } - } - daprAIConnectionString: applicationInsights.properties.ConnectionString - } -} - -resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' existing = { - name: logAnalyticsWorkspaceName -} - -resource applicationInsights 'Microsoft.Insights/components@2020-02-02' existing = { - name: applicationInsightsName -} - -output name string = containerAppsEnvironment.name -output domain string = containerAppsEnvironment.properties.defaultDomain diff --git a/samples/support-center/infra/shared/dashboard-web.bicep b/samples/support-center/infra/shared/dashboard-web.bicep deleted file mode 100644 index eccce0db..00000000 --- a/samples/support-center/infra/shared/dashboard-web.bicep +++ /dev/null @@ -1,1231 +0,0 @@ -param name string -param applicationInsightsName string -param location string = resourceGroup().location -param tags object = {} - -// 2020-09-01-preview because that is the latest valid version -resource applicationInsightsDashboard 'Microsoft.Portal/dashboards@2020-09-01-preview' = { - name: name - location: location - tags: tags - properties: { - lenses: [ - { - order: 0 - parts: [ - { - position: { - x: 0 - y: 0 - colSpan: 2 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'id' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/AspNetOverviewPinnedPart' - asset: { - idInputName: 'id' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'overview' - } - } - { - position: { - x: 2 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsightsName - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/ProactiveDetectionAsyncPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'ProactiveDetection' - } - } - { - position: { - x: 3 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsightsName - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'ResourceId' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/QuickPulseButtonSmallPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 4 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsightsName - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - endTime: null - createdTime: '2018-05-04T01:20:33.345Z' - isInitialTime: true - grain: 1 - useDashboardTimeRange: false - } - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/AvailabilityNavButtonPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 5 - y: 0 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsightsName - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - endTime: null - createdTime: '2018-05-08T18:47:35.237Z' - isInitialTime: true - grain: 1 - useDashboardTimeRange: false - } - } - { - name: 'ConfigurationId' - value: '78ce933e-e864-4b05-a27b-71fd55a6afad' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/AppMapButtonPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 0 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Usage' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 3 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsightsName - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - endTime: null - createdTime: '2018-05-04T01:22:35.782Z' - isInitialTime: true - grain: 1 - useDashboardTimeRange: false - } - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/UsageUsersOverviewPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - } - } - { - position: { - x: 4 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Reliability' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 7 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ResourceId' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - { - name: 'DataModel' - value: { - version: '1.0.0' - timeContext: { - durationMs: 86400000 - createdTime: '2018-05-04T23:42:40.072Z' - isInitialTime: false - grain: 1 - useDashboardTimeRange: false - } - } - isOptional: true - } - { - name: 'ConfigurationId' - value: '8a02f7bf-ac0f-40e1-afe9-f0e72cfee77f' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/CuratedBladeFailuresPinnedPart' - isAdapter: true - asset: { - idInputName: 'ResourceId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'failures' - } - } - { - position: { - x: 8 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Responsiveness\r\n' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 11 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ResourceId' - value: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - { - name: 'DataModel' - value: { - version: '1.0.0' - timeContext: { - durationMs: 86400000 - createdTime: '2018-05-04T23:43:37.804Z' - isInitialTime: false - grain: 1 - useDashboardTimeRange: false - } - } - isOptional: true - } - { - name: 'ConfigurationId' - value: '2a8ede4f-2bee-4b9c-aed9-2db0e8a01865' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/CuratedBladePerformancePinnedPart' - isAdapter: true - asset: { - idInputName: 'ResourceId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'performance' - } - } - { - position: { - x: 12 - y: 1 - colSpan: 3 - rowSpan: 1 - } - metadata: { - inputs: [] - type: 'Extension/HubsExtension/PartType/MarkdownPart' - settings: { - content: { - settings: { - content: '# Browser' - title: '' - subtitle: '' - } - } - } - } - } - { - position: { - x: 15 - y: 1 - colSpan: 1 - rowSpan: 1 - } - metadata: { - inputs: [ - { - name: 'ComponentId' - value: { - Name: applicationInsightsName - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'MetricsExplorerJsonDefinitionId' - value: 'BrowserPerformanceTimelineMetrics' - } - { - name: 'TimeContext' - value: { - durationMs: 86400000 - createdTime: '2018-05-08T12:16:27.534Z' - isInitialTime: false - grain: 1 - useDashboardTimeRange: false - } - } - { - name: 'CurrentFilter' - value: { - eventTypes: [ - 4 - 1 - 3 - 5 - 2 - 6 - 13 - ] - typeFacets: {} - isPermissive: false - } - } - { - name: 'id' - value: { - Name: applicationInsightsName - SubscriptionId: subscription().subscriptionId - ResourceGroup: resourceGroup().name - } - } - { - name: 'Version' - value: '1.0' - } - ] - #disable-next-line BCP036 - type: 'Extension/AppInsightsExtension/PartType/MetricsExplorerBladePinnedPart' - asset: { - idInputName: 'ComponentId' - type: 'ApplicationInsights' - } - defaultMenuItemId: 'browser' - } - } - { - position: { - x: 0 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'sessions/count' - aggregationType: 5 - namespace: 'microsoft.insights/components/kusto' - metricVisualization: { - displayName: 'Sessions' - color: '#47BDF5' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'users/count' - aggregationType: 5 - namespace: 'microsoft.insights/components/kusto' - metricVisualization: { - displayName: 'Users' - color: '#7E58FF' - } - } - ] - title: 'Unique sessions and users' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - menuid: 'segmentationUsers' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 4 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'requests/failed' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Failed requests' - color: '#EC008C' - } - } - ] - title: 'Failed requests' - visualization: { - chartType: 3 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - menuid: 'failures' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 8 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'requests/duration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Server response time' - color: '#00BCF2' - } - } - ] - title: 'Server response time' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - menuid: 'performance' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 12 - y: 2 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'browserTimings/networkDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Page load network connect time' - color: '#7E58FF' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'browserTimings/processingDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Client processing time' - color: '#44F1C8' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'browserTimings/sendDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Send request time' - color: '#EB9371' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'browserTimings/receiveDuration' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Receiving response time' - color: '#0672F1' - } - } - ] - title: 'Average page load time breakdown' - visualization: { - chartType: 3 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 0 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'availabilityResults/availabilityPercentage' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Availability' - color: '#47BDF5' - } - } - ] - title: 'Average availability' - visualization: { - chartType: 3 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - openBladeOnClick: { - openBlade: true - destinationBlade: { - extensionName: 'HubsExtension' - bladeName: 'ResourceMenuBlade' - parameters: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - menuid: 'availability' - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 4 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'exceptions/server' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Server exceptions' - color: '#47BDF5' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'dependencies/failed' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Dependency failures' - color: '#7E58FF' - } - } - ] - title: 'Server exceptions and Dependency failures' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 8 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'performanceCounters/processorCpuPercentage' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Processor time' - color: '#47BDF5' - } - } - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'performanceCounters/processCpuPercentage' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Process CPU' - color: '#7E58FF' - } - } - ] - title: 'Average processor and process CPU utilization' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 12 - y: 5 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'exceptions/browser' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Browser exceptions' - color: '#47BDF5' - } - } - ] - title: 'Browser exceptions' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 0 - y: 8 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'availabilityResults/count' - aggregationType: 7 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Availability test results count' - color: '#47BDF5' - } - } - ] - title: 'Availability test results count' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 4 - y: 8 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'performanceCounters/processIOBytesPerSecond' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Process IO rate' - color: '#47BDF5' - } - } - ] - title: 'Average process I/O rate' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - { - position: { - x: 8 - y: 8 - colSpan: 4 - rowSpan: 3 - } - metadata: { - inputs: [ - { - name: 'options' - value: { - chart: { - metrics: [ - { - resourceMetadata: { - id: '/subscriptions/${subscription().subscriptionId}/resourceGroups/${resourceGroup().name}/providers/Microsoft.Insights/components/${applicationInsightsName}' - } - name: 'performanceCounters/memoryAvailableBytes' - aggregationType: 4 - namespace: 'microsoft.insights/components' - metricVisualization: { - displayName: 'Available memory' - color: '#47BDF5' - } - } - ] - title: 'Average available memory' - visualization: { - chartType: 2 - legendVisualization: { - isVisible: true - position: 2 - hideSubtitle: false - } - axisVisualization: { - x: { - isVisible: true - axisType: 2 - } - y: { - isVisible: true - axisType: 1 - } - } - } - } - } - } - { - name: 'sharedTimeRange' - isOptional: true - } - ] - #disable-next-line BCP036 - type: 'Extension/HubsExtension/PartType/MonitorChartPart' - settings: {} - } - } - ] - } - ] - } -} diff --git a/samples/support-center/infra/shared/keyvault.bicep b/samples/support-center/infra/shared/keyvault.bicep deleted file mode 100644 index f84f7508..00000000 --- a/samples/support-center/infra/shared/keyvault.bicep +++ /dev/null @@ -1,31 +0,0 @@ -param name string -param location string = resourceGroup().location -param tags object = {} - -@description('Service principal that should be granted read access to the KeyVault. If unset, no service principal is granted access by default') -param principalId string = '' - -var defaultAccessPolicies = !empty(principalId) ? [ - { - objectId: principalId - permissions: { secrets: [ 'get', 'list' ] } - tenantId: subscription().tenantId - } -] : [] - -resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { - name: name - location: location - tags: tags - properties: { - tenantId: subscription().tenantId - sku: { family: 'A', name: 'standard' } - enabledForTemplateDeployment: true - accessPolicies: union(defaultAccessPolicies, [ - // define access policies here - ]) - } -} - -output endpoint string = keyVault.properties.vaultUri -output name string = keyVault.name diff --git a/samples/support-center/infra/shared/monitoring.bicep b/samples/support-center/infra/shared/monitoring.bicep deleted file mode 100644 index 4ae9796c..00000000 --- a/samples/support-center/infra/shared/monitoring.bicep +++ /dev/null @@ -1,34 +0,0 @@ -param logAnalyticsName string -param applicationInsightsName string -param location string = resourceGroup().location -param tags object = {} - -resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = { - name: logAnalyticsName - location: location - tags: tags - properties: any({ - retentionInDays: 30 - features: { - searchVersion: 1 - } - sku: { - name: 'PerGB2018' - } - }) -} - -resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = { - name: applicationInsightsName - location: location - tags: tags - kind: 'web' - properties: { - Application_Type: 'web' - WorkspaceResourceId: logAnalytics.id - } -} - -output applicationInsightsName string = applicationInsights.name -output logAnalyticsWorkspaceId string = logAnalytics.id -output logAnalyticsWorkspaceName string = logAnalytics.name diff --git a/samples/support-center/infra/shared/registry.bicep b/samples/support-center/infra/shared/registry.bicep deleted file mode 100644 index d6629f86..00000000 --- a/samples/support-center/infra/shared/registry.bicep +++ /dev/null @@ -1,36 +0,0 @@ -param name string -param location string = resourceGroup().location -param tags object = {} - -param adminUserEnabled bool = true -param anonymousPullEnabled bool = false -param dataEndpointEnabled bool = false -param encryption object = { - status: 'disabled' -} -param networkRuleBypassOptions string = 'AzureServices' -param publicNetworkAccess string = 'Enabled' -param sku object = { - name: 'Standard' -} -param zoneRedundancy string = 'Disabled' - -// 2023-01-01-preview needed for anonymousPullEnabled -resource containerRegistry 'Microsoft.ContainerRegistry/registries@2023-01-01-preview' = { - name: name - location: location - tags: tags - sku: sku - properties: { - adminUserEnabled: adminUserEnabled - anonymousPullEnabled: anonymousPullEnabled - dataEndpointEnabled: dataEndpointEnabled - encryption: encryption - networkRuleBypassOptions: networkRuleBypassOptions - publicNetworkAccess: publicNetworkAccess - zoneRedundancy: zoneRedundancy - } -} - -output loginServer string = containerRegistry.properties.loginServer -output name string = containerRegistry.name diff --git a/samples/support-center/seed-invoice-memory/Dockerfile b/samples/support-center/seed-invoice-memory/Dockerfile deleted file mode 100644 index b32c16df..00000000 --- a/samples/support-center/seed-invoice-memory/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM mcr.microsoft.com/dotnet/runtime:7.0 AS base -WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build -WORKDIR /src -COPY ["seed-invoice-memory/seed-invoice-memory.csproj", "seed-invoice-memory/"] -RUN dotnet restore "seed-invoice-memory/seed-invoice-memory.csproj" -COPY . . -WORKDIR "/seed-invoice-memory/" -RUN dotnet build "seed-invoice-memory.csproj" -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish "seed-invoice-memory.csproj" -c Release -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "seed-invoice-memory.dll"] diff --git a/samples/support-center/seed-invoice-memory/MemoryProgram.cs b/samples/support-center/seed-invoice-memory/MemoryProgram.cs deleted file mode 100644 index 75844366..00000000 --- a/samples/support-center/seed-invoice-memory/MemoryProgram.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System.Reflection; -using Microsoft.Extensions.Logging; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Microsoft.SemanticKernel.Memory; -using Microsoft.SemanticKernel.Connectors.AzureAISearch; -using Azure.AI.DocumentIntelligence; -using Azure; - -namespace SupportCenter.Invoice.Memory; - -internal class MemoryProgram -{ - static string[] files = { "https://github.com/Azure-Samples/cognitive-services-REST-api-samples/raw/master/curl/form-recognizer/rest-api/invoice.pdf" }; - static async Task Main(string[] args) - { - var kernelSettings = KernelSettings.LoadSettings(); - string endpoint = kernelSettings.DocumentIntelligenceEndpoint; - string key = kernelSettings.DocumentIntelligenceKey; - AzureKeyCredential credential = new AzureKeyCredential(key); - DocumentIntelligenceClient client = new DocumentIntelligenceClient(new Uri(endpoint), credential); - Console.WriteLine($"DocumentIntelligence endpoint {endpoint}"); - Console.WriteLine($"Search endpoint {kernelSettings.SearchEndpoint}"); - - using ILoggerFactory loggerFactory = LoggerFactory.Create(builder => - { - builder - .SetMinimumLevel(kernelSettings.LogLevel ?? LogLevel.Debug) - .AddConsole() - .AddDebug(); - }); - - var memoryBuilder = new MemoryBuilder(); - var memory = memoryBuilder.WithLoggerFactory(loggerFactory) - .WithMemoryStore(new AzureAISearchMemoryStore(kernelSettings.SearchEndpoint, kernelSettings.SearchKey)) - .WithAzureOpenAITextEmbeddingGeneration(kernelSettings.EmbeddingDeploymentOrModelId, kernelSettings.Endpoint, kernelSettings.ApiKey) - .Build(); - - foreach (var file in files) - { - Console.WriteLine($"file {file}"); - AnalyzeResult result = await AnalyzeDoc(client, file); - await ImportDocumentAsync(memory, kernelSettings.SearchIndex, result.Content); - //Thread.Sleep(60000); //throttled to 1 request per minute - } - } - - public static async Task ImportDocumentAsync(ISemanticTextMemory memory, string collection, string text) - { - Console.WriteLine($"text: {text}"); - Console.WriteLine($"collection: {collection}"); - try - { - var descr = text.Take(100); - await memory.SaveInformationAsync( - collection: collection, - text: text, - id: $"{Guid.NewGuid()}", - description: $"{descr}"); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } - } - - static async Task AnalyzeDoc(DocumentIntelligenceClient client, string invoice, string modelName = "prebuilt-invoice") - { - - var currentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - Uri invoiceUri = new Uri(invoice); - - Console.WriteLine($"invoiceUri {invoiceUri}"); - AnalyzeDocumentContent content = new AnalyzeDocumentContent() - { - UrlSource = invoiceUri - }; - - Operation operation = await client.AnalyzeDocumentAsync(WaitUntil.Completed, "prebuilt-invoice", content); - return operation.Value; - } -} \ No newline at end of file diff --git a/samples/support-center/seed-invoice-memory/config/KernelSettings.cs b/samples/support-center/seed-invoice-memory/config/KernelSettings.cs deleted file mode 100644 index ad0f3d39..00000000 --- a/samples/support-center/seed-invoice-memory/config/KernelSettings.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System.Text.Json.Serialization; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; - -internal class KernelSettings -{ - public const string DefaultConfigFile = "config/appsettings.json"; - public const string OpenAI = "OPENAI"; - public const string AzureOpenAI = "AZUREOPENAI"; - public const string AISearch = "AISEARCH"; - - [JsonPropertyName("serviceType")] - public string ServiceType { get; set; } = string.Empty; - - [JsonPropertyName("serviceId")] - public string ServiceId { get; set; } = string.Empty; - - [JsonPropertyName("deploymentOrModelId")] - public string DeploymentOrModelId { get; set; } = string.Empty; - [JsonPropertyName("embeddingDeploymentOrModelId")] - public string EmbeddingDeploymentOrModelId { get; set; } = string.Empty; - - [JsonPropertyName("endpoint")] - public string Endpoint { get; set; } = string.Empty; - - [JsonPropertyName("apiKey")] - public string ApiKey { get; set; } = string.Empty; - - [JsonPropertyName("orgId")] - public string OrgId { get; set; } = string.Empty; - - [JsonPropertyName("searchEndpoint")] - public string SearchEndpoint { get; set; } = string.Empty; - - [JsonPropertyName("searchKey")] - public string SearchKey { get; set; } = string.Empty; - - [JsonPropertyName("searchIndex")] - public string SearchIndex { get; set; } = string.Empty; - - [JsonPropertyName("documentIntelligenceEndpoint")] - public string DocumentIntelligenceEndpoint { get; set; } = string.Empty; - - [JsonPropertyName("documentIntelligenceKey")] - public string DocumentIntelligenceKey { get; set; } = string.Empty; - - [JsonPropertyName("logLevel")] - public LogLevel? LogLevel { get; set; } - - /// - /// Load the kernel settings from settings.json if the file exists and if not attempt to use user secrets. - /// - internal static KernelSettings LoadSettings() - { - try - { - if (File.Exists(DefaultConfigFile)) - { - return FromFile(DefaultConfigFile); - } - - Console.WriteLine($"Semantic kernel settings '{DefaultConfigFile}' not found, attempting to load configuration from user secrets."); - - return FromUserSecrets(); - } - catch (InvalidDataException ide) - { - Console.Error.WriteLine( - "Unable to load semantic kernel settings, please provide configuration settings using instructions in the README.\n" + - "Please refer to: https://github.com/microsoft/semantic-kernel-starters/blob/main/sk-csharp-hello-world/README.md#configuring-the-starter" - ); - throw new InvalidOperationException(ide.Message); - } - } - - /// - /// Load the kernel settings from the specified configuration file if it exists. - /// - internal static KernelSettings FromFile(string configFile = DefaultConfigFile) - { - if (!File.Exists(configFile)) - { - throw new FileNotFoundException($"Configuration not found: {configFile}"); - } - - var configuration = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile(configFile, optional: true, reloadOnChange: true) - .AddEnvironmentVariables() - .Build(); - - return configuration.Get() - ?? throw new InvalidDataException($"Invalid semantic kernel settings in '{configFile}', please provide configuration settings using instructions in the README."); - } - - /// - /// Load the kernel settings from user secrets. - /// - internal static KernelSettings FromUserSecrets() - { - var configuration = new ConfigurationBuilder() - .AddUserSecrets() - .AddEnvironmentVariables() - .Build(); - - return configuration.Get() - ?? throw new InvalidDataException("Invalid semantic kernel settings in user secrets, please provide configuration settings using instructions in the README."); - } -} diff --git a/samples/support-center/seed-invoice-memory/config/appsettings.template.json b/samples/support-center/seed-invoice-memory/config/appsettings.template.json deleted file mode 100644 index ce4b39c7..00000000 --- a/samples/support-center/seed-invoice-memory/config/appsettings.template.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "embeddingDeploymentOrModelId": "text-embedding-ada-002", - "endpoint": " https://.openai.azure.com/", - "apiKey": "", - "searchEndpoint": "https://.search.windows.net", - "searchKey": "", - "searchIndex": "invoice", - "documentIntelligenceEndpoint": "https://.cognitiveservices.azure.com/", - "documentIntelligenceKey": "" -} \ No newline at end of file diff --git a/samples/support-center/seed-invoice-memory/seed-invoice-memory.csproj b/samples/support-center/seed-invoice-memory/seed-invoice-memory.csproj deleted file mode 100644 index 245e9339..00000000 --- a/samples/support-center/seed-invoice-memory/seed-invoice-memory.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - Exe - net8.0 - enable - enable - semantic-kernel-rag-chat - - - - - - - - - - - - - - - - - diff --git a/samples/support-center/seed-memory/Program.cs b/samples/support-center/seed-memory/Program.cs deleted file mode 100644 index ba2605ae..00000000 --- a/samples/support-center/seed-memory/Program.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System.Reflection; -using Microsoft.Extensions.Logging; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Microsoft.SemanticKernel.Connectors.Qdrant; -using Microsoft.SemanticKernel.Memory; -using UglyToad.PdfPig; -using UglyToad.PdfPig.DocumentLayoutAnalysis.TextExtractor; -using System; -using System.Threading; - -class Program -{ - static string[] files = { "Benefit_Options.pdf", "employee_handbook.pdf", "Northwind_Health_Plus_Benefits_Details.pdf", "Northwind_Standard_Benefits_Details.pdf", "role_library.pdf" }; - static async Task Main(string[] args) - { - var kernelSettings = KernelSettings.LoadSettings(); - - using ILoggerFactory loggerFactory = LoggerFactory.Create(builder => - { - builder - .SetMinimumLevel(kernelSettings.LogLevel ?? LogLevel.Debug) - .AddConsole() - .AddDebug(); - }); - - var memoryBuilder = new MemoryBuilder(); - var memory = memoryBuilder.WithLoggerFactory(loggerFactory) - .WithQdrantMemoryStore(kernelSettings.QdrantEndpoint, 1536) - .WithAzureOpenAITextEmbeddingGeneration(kernelSettings.EmbeddingDeploymentOrModelId,kernelSettings.Endpoint, kernelSettings.ApiKey) - .Build(); - - - foreach (var file in files) - { - await ImportDocumentAsync(memory, file); - Thread.Sleep(60000); //throttled to 1 request per minute - } - } - - public static async Task ImportDocumentAsync(ISemanticTextMemory memory, string filename) - { - var currentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - var filePath = Path.Combine(currentDirectory, filename); - using var pdfDocument = PdfDocument.Open(File.OpenRead(filePath)); - var pages = pdfDocument.GetPages(); - foreach (var page in pages) - { - try - { - var text = ContentOrderTextExtractor.GetText(page); - var descr = text.Take(100); - await memory.SaveInformationAsync( - collection: "vfcon106047", - text: text, - id: $"{Guid.NewGuid()}", - description: $"Document: {descr}"); - } - catch(Exception ex) - { - Console.WriteLine(ex.Message); - } - } - } -} \ No newline at end of file diff --git a/samples/support-center/seed-memory/README.md b/samples/support-center/seed-memory/README.md deleted file mode 100644 index f87f5c14..00000000 --- a/samples/support-center/seed-memory/README.md +++ /dev/null @@ -1 +0,0 @@ -# TODO \ No newline at end of file diff --git a/samples/support-center/src/backend/.dockerignore b/samples/support-center/src/backend/.dockerignore deleted file mode 100644 index fe1152bd..00000000 --- a/samples/support-center/src/backend/.dockerignore +++ /dev/null @@ -1,30 +0,0 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md -!**/.gitignore -!.git/HEAD -!.git/config -!.git/packed-refs -!.git/refs/heads/** \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Conversation/Conversation.cs b/samples/support-center/src/backend/Agents/Conversation/Conversation.cs deleted file mode 100644 index 8a26d3f3..00000000 --- a/samples/support-center/src/backend/Agents/Conversation/Conversation.cs +++ /dev/null @@ -1,70 +0,0 @@ -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; -using SupportCenter.Events; -using SupportCenter.Extensions; -using SupportCenter.Options; -using SupportCenter.SignalRHub; - -namespace SupportCenter.Agents; -[ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class Conversation : AiAgent -{ - private readonly ILogger _logger; - - protected override string Namespace => Consts.OrleansNamespace; - - public Conversation([PersistentState("state", "messages")] IPersistentState> state, - ILogger logger, - [FromKeyedServices("ConversationKernel")] Kernel kernel, - [FromKeyedServices("ConversationMemory")] ISemanticTextMemory memory) - : base(state, memory, kernel) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async override Task HandleEvent(Event item) - { - switch (item.Type) - { - case nameof(EventType.UserConnected): - // The user reconnected, let's send the last message if we have one - string? lastMessage = _state.State.History.LastOrDefault()?.Message; - if (lastMessage == null) - { - return; - } - break; - case nameof(EventType.ConversationRequested): - string? userId = item.Data.GetValueOrDefault("userId"); - string? message = item.Data.GetValueOrDefault("message"); - - string? conversationId = SignalRConnectionsDB.GetConversationId(userId); - string id = $"{userId}/{conversationId}"; - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(Conversation), nameof(EventType.ConversationRequested), message); - var context = new KernelArguments { ["input"] = AppendChatHistory(message) }; - string answer = await CallFunction(ConversationPrompts.Answer, context); - - await SendAnswerEvent(id, userId, answer); - break; - - default: - break; - } - } - - private async Task SendAnswerEvent(string id, string userId, string message) - { - await PublishEvent(Consts.OrleansNamespace, id, new Event - { - Type = nameof(EventType.ConversationRetrieved), - Data = new Dictionary { - { nameof(id), id }, - { nameof(userId), userId }, - { nameof(message), message } - } - }); - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Conversation/ConversationPrompts.cs b/samples/support-center/src/backend/Agents/Conversation/ConversationPrompts.cs deleted file mode 100644 index d80df694..00000000 --- a/samples/support-center/src/backend/Agents/Conversation/ConversationPrompts.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace SupportCenter.Agents; - -public class ConversationPrompts -{ - public static string Answer = """ - You are a helpful customer support/service agent at Contoso Electronics. Be polite, friendly and professional and answer briefly. - Answer with a plain string ONLY, without any extra words or characters like '. - Input: {{$input}} - """; -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Conversation/ConversationState.cs b/samples/support-center/src/backend/Agents/Conversation/ConversationState.cs deleted file mode 100644 index e3d1fce5..00000000 --- a/samples/support-center/src/backend/Agents/Conversation/ConversationState.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace SupportCenter.Agents; - -public class ConversationState -{ -} - diff --git a/samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfo.cs b/samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfo.cs deleted file mode 100644 index bc99472b..00000000 --- a/samples/support-center/src/backend/Agents/CustomerInfo/CustomerInfo.cs +++ /dev/null @@ -1,94 +0,0 @@ -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.ChatCompletion; -using Microsoft.SemanticKernel.Planning; -using Orleans.Runtime; -using SupportCenter.Data.CosmosDb; -using SupportCenter.Events; -using SupportCenter.Extensions; -using SupportCenter.Options; - -namespace SupportCenter.Agents; - -[ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class CustomerInfo : AiAgent -{ - private readonly ILogger _logger; - private readonly IServiceProvider _serviceProvider; - private readonly ICustomerRepository _customerRepository; - private readonly IChatCompletionService _chatCompletionService; - protected override string Namespace => Consts.OrleansNamespace; - - public CustomerInfo( - [PersistentState("state", "messages")] IPersistentState> state, - ILogger logger, - IServiceProvider serviceProvider, - ICustomerRepository customerRepository, - [FromKeyedServices("CustomerInfoKernel")] Kernel kernel) - : base(state, default, kernel) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); - _customerRepository = customerRepository ?? throw new ArgumentNullException(nameof(customerRepository)); - _chatCompletionService = _kernel.GetRequiredService(); - } - - public async override Task HandleEvent(Event item) - { - switch (item.Type) - { - case nameof(EventType.UserNewConversation): - // The user started a new conversation. - _state.State.History.Clear(); - break; - case nameof(EventType.CustomerInfoRequested): - var ssc = item.GetAgentData(); - string? userId = ssc.UserId; - string? message = ssc.UserMessage; - string? id = ssc.Id; - - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(CustomerInfo), item.Type, item.Data); - await PublishEvent(Namespace, id, new Event - { - Type = nameof(EventType.CustomerInfoNotification), - Data = new Dictionary - { - { nameof(userId), userId }, - { nameof(message), "I'm working on the user's request..." } - } - }); - - // Get the customer info via the planners. - var prompt = CustomerInfoPrompts.GetCustomerInfo - .Replace("{{$userId}}", userId) - .Replace("{{$userMessage}}", message) - .Replace("{{$history}}", AppendChatHistory(message)); - -#pragma warning disable SKEXP0060 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. - // FunctionCallingStepwisePlanner - var planner = new FunctionCallingStepwisePlanner(new FunctionCallingStepwisePlannerOptions() - { - MaxIterations = 10, - }); - var result = await planner.ExecuteAsync(_kernel, prompt); - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(CustomerInfo), item.Type, result.FinalAnswer); - - await PublishEvent(Namespace, id, new Event - { - Type = nameof(EventType.CustomerInfoRetrieved), - Data = new Dictionary - { - { nameof(userId), userId }, - { nameof(message), result.FinalAnswer } - } - }); - - AddToHistory(result.FinalAnswer, ChatUserType.Agent); -#pragma warning restore SKEXP0060 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. - break; - default: - break; - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Discount/Discount.cs b/samples/support-center/src/backend/Agents/Discount/Discount.cs deleted file mode 100644 index 9530dd3c..00000000 --- a/samples/support-center/src/backend/Agents/Discount/Discount.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; -using SupportCenter.Events; -using SupportCenter.Options; - -namespace SupportCenter.Agents; - -[ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class Discount : AiAgent -{ - private readonly ILogger _logger; - - protected override string Namespace => Consts.OrleansNamespace; - - public Discount([PersistentState("state", "messages")] IPersistentState> state, - ILogger logger, - [FromKeyedServices("DiscountKernel")] Kernel kernel, - [FromKeyedServices("DiscountMemory")] ISemanticTextMemory memory) - : base(state, memory, kernel) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async override Task HandleEvent(Event item) - { - switch (item.Type) - { - case nameof(EventType.UserConnected): - // The user reconnected, let's send the last message if we have one - string? lastMessage = _state.State.History.LastOrDefault()?.Message; - if (lastMessage == null) - { - return; - } - break; - default: - break; - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Discount/DiscountState.cs b/samples/support-center/src/backend/Agents/Discount/DiscountState.cs deleted file mode 100644 index 0044c467..00000000 --- a/samples/support-center/src/backend/Agents/Discount/DiscountState.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace SupportCenter.Agents; - -public class DiscountState -{ -} - diff --git a/samples/support-center/src/backend/Agents/Dispatcher/DispatcherPrompts.cs b/samples/support-center/src/backend/Agents/Dispatcher/DispatcherPrompts.cs deleted file mode 100644 index 21df24f8..00000000 --- a/samples/support-center/src/backend/Agents/Dispatcher/DispatcherPrompts.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace SupportCenter.Agents; - -public class DispatcherPrompts -{ - public static string GetIntent = """ - You are a dispatcher agent, working with the Support Center. - You can help customers with their issues, and you can also assign tickets to other AI agents. - Read the customer's message carefully, and then decide the appropriate intent. - A history of the conversation is available to help you make a decision. - - If you don't know the intent, don't guess; instead respond with "Unknown". - There may be multiple intents, but you should choose the most appropriate one. - If you think that the message is not clear, you can ask the customer for more information. - - You can choose between the following intents: - {{$choices}} - - Here are few examples: - - User Input: Can you help me in updating my address? - - CustomerInfo - - - User Input: Could you check whether my invoice has been correctly payed? - - Invoice - - Here is the user input: - User Input: {{$input}} - - Return the intent as a string. - """; -} - -public class Choice(string name, string description) -{ - public string Name { get; set; } = name; - public string Description { get; set; } = description; -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Dispatcher/DispatcherState.cs b/samples/support-center/src/backend/Agents/Dispatcher/DispatcherState.cs deleted file mode 100644 index 3b6b0df6..00000000 --- a/samples/support-center/src/backend/Agents/Dispatcher/DispatcherState.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace SupportCenter.Agents; - -public class DispatcherState -{ -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Invoice/Invoice.cs b/samples/support-center/src/backend/Agents/Invoice/Invoice.cs deleted file mode 100644 index 840a3bbc..00000000 --- a/samples/support-center/src/backend/Agents/Invoice/Invoice.cs +++ /dev/null @@ -1,73 +0,0 @@ -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; -using SupportCenter.Events; -using SupportCenter.Extensions; -using SupportCenter.Options; - -namespace SupportCenter.Agents; - -[ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class Invoice : AiAgent -{ - private readonly ILogger _logger; - - protected override string Namespace => Consts.OrleansNamespace; - - public Invoice([PersistentState("state", "messages")] IPersistentState> state, - ILogger logger, - [FromKeyedServices("InvoiceKernel")] Kernel kernel, - [FromKeyedServices("InvoiceMemory")] ISemanticTextMemory memory) - : base(state, memory, kernel) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async override Task HandleEvent(Event item) - { - var ssc = item.GetAgentData(); - string? userId = ssc.UserId; - string? message = ssc.UserMessage; - string? id = ssc.Id; - - _logger.LogInformation($"userId: {userId}, message: {message}"); - if (userId == null || message == null) - { - _logger.LogWarning("[{Agent}]:[{EventType}]:[{EventData}]. Input is missing.", nameof(Dispatcher), item.Type, item.Data); - return; - } - - switch (item.Type) - { - case nameof(EventType.InvoiceRequested): - { - await SendAnswerEvent(id, userId, $"Please wait while I look up the details for invoice..."); - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(Invoice), nameof(EventType.InvoiceRequested), message); - - var querycontext = new KernelArguments { ["input"] = AppendChatHistory(message) }; - var instruction = "Consider the following knowledge:!invoices!"; - var enhancedContext = await AddKnowledge(instruction, "invoices", querycontext); - string answer = await CallFunction(InvoicePrompts.InvoiceRequest, enhancedContext); - await SendAnswerEvent(id, userId, answer); - break; - } - default: - break; - } - } - - private async Task SendAnswerEvent(string id, string userId, string message) - { - await PublishEvent(Namespace, id, new Event - { - Type = nameof(EventType.InvoiceRetrieved), - Data = new Dictionary - { - { nameof(userId), userId }, - { nameof(message), message } - } - }); - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Invoice/InvoicePrompts.cs b/samples/support-center/src/backend/Agents/Invoice/InvoicePrompts.cs deleted file mode 100644 index afcb0992..00000000 --- a/samples/support-center/src/backend/Agents/Invoice/InvoicePrompts.cs +++ /dev/null @@ -1,29 +0,0 @@ -namespace SupportCenter.Agents; - -public class InvoicePrompts -{ - public static string InvoiceRequest = """ - You are a helpful customer support/service agent that answers questions about user invoices based on your knowledge. - Make sure that the invoice belongs to the specific user before providing the information. If needed, ask for the invoice id etc. - Be polite and professional and answer briefly based on your knowledge ONLY. - Invoice Id: {{$invoiceId}} - Input: {{$input}} - {{$invoices}} - """; - - public static string ExtractInvoiceId = """ - Instructions: Extract the invoice-id from the user message - You are expert in invoices and your goal is to extract the invoice-id from the user message. - Answer with the invoice id found as a plain string ONLY, without any extra characters like '. - If you can't find the invoice id, don't guess; instead answer with "Unknown". - - What is the total amount of my latest invoice? - Unknown - - When is my invoice INV-100 due to payment? - INV-100 - - {{$input}} - - """; -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/Invoice/InvoiceState.cs b/samples/support-center/src/backend/Agents/Invoice/InvoiceState.cs deleted file mode 100644 index bd88a05c..00000000 --- a/samples/support-center/src/backend/Agents/Invoice/InvoiceState.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace SupportCenter.Agents; - -public class InvoiceState -{ - [Id(0)] - public string? InvoiceId { get; set; } -} - diff --git a/samples/support-center/src/backend/Agents/QnA/QnA.cs b/samples/support-center/src/backend/Agents/QnA/QnA.cs deleted file mode 100644 index cc64b233..00000000 --- a/samples/support-center/src/backend/Agents/QnA/QnA.cs +++ /dev/null @@ -1,79 +0,0 @@ -using Microsoft.AI.Agents.Abstractions; -using Microsoft.AI.Agents.Orleans; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Memory; -using Orleans.Runtime; -using SupportCenter.Events; -using SupportCenter.Extensions; -using SupportCenter.Options; - -namespace SupportCenter.Agents; -[ImplicitStreamSubscription(Consts.OrleansNamespace)] -public class QnA : AiAgent -{ - private readonly ILogger _logger; - - protected override string Namespace => Consts.OrleansNamespace; - - public QnA([PersistentState("state", "messages")] IPersistentState> state, - ILogger logger, - [FromKeyedServices("QnAKernel")] Kernel kernel, - [FromKeyedServices("QnAMemory")] ISemanticTextMemory memory) - : base(state, memory, kernel) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async override Task HandleEvent(Event item) - { - switch (item.Type) - { - case nameof(EventType.UserConnected): - // The user reconnected, let's send the last message if we have one - string? lastMessage = _state.State.History.LastOrDefault()?.Message; - if (lastMessage == null) - { - return; - } - break; - case nameof(EventType.QnARequested): - var ssc = item.GetAgentData(); - string? userId = ssc.UserId; - string? message = ssc.UserMessage; - string? id = ssc.Id; - - _logger.LogInformation($"userId: {userId}, message: {message}"); - if (userId == null || message == null) - { - _logger.LogWarning("[{Agent}]:[{EventType}]:[{EventData}]. Input is missing.", nameof(Dispatcher), item.Type, item.Data); - return; - } - - _logger.LogInformation("[{Agent}]:[{EventType}]:[{EventData}]", nameof(QnA), nameof(EventType.QnARequested), message); - await SendAnswerEvent(id, userId, $"Please wait while I look in the documents for answers to your question..."); - - var context = new KernelArguments { ["input"] = AppendChatHistory(message) }; - var instruction = "Consider the following knowledge:!vfcon106047!"; - var enhancedContext = await AddKnowledge(instruction, "vfcon106047", context); - string answer = await CallFunction(QnAPrompts.Answer, enhancedContext); - - await SendAnswerEvent(id, userId, answer); - break; - - default: - break; - } - } - - private async Task SendAnswerEvent(string id, string userId, string message) - { - await PublishEvent(Consts.OrleansNamespace, id, new Event - { - Type = nameof(EventType.QnARetrieved), - Data = new Dictionary { - { nameof(userId), userId }, - { nameof(message), message } - } - }); - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/QnA/QnAPrompts.cs b/samples/support-center/src/backend/Agents/QnA/QnAPrompts.cs deleted file mode 100644 index 56ecad31..00000000 --- a/samples/support-center/src/backend/Agents/QnA/QnAPrompts.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace SupportCenter.Agents; - -public class QnAPrompts -{ - public static string Answer = """ - You are a helpful customer support/service agent at Contoso Electronics. Be polite and professional and answer briefly based on your knowledge ONLY. - Input: {{$input}} - {{$vfcon106047}} - """; -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Agents/QnA/QnAState.cs b/samples/support-center/src/backend/Agents/QnA/QnAState.cs deleted file mode 100644 index 133171a0..00000000 --- a/samples/support-center/src/backend/Agents/QnA/QnAState.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace SupportCenter.Agents; - -public class QnAState -{ -} - diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/AgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/AgentConfiguration.cs deleted file mode 100644 index 91ef6af0..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/AgentConfiguration.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace SupportCenter.AgentsConfigurationFactory -{ - public static class AgentConfiguration - { - public static IAgentConfiguration GetAgentConfiguration(string agent) - { - return agent switch - { - "Invoice" => new InvoiceAgentConfiguration(), - "Conversation" => new ConversationAgentConfiguration(), - "CustomerInfo" => new CustomerInfoAgentConfiguration(), - "QnA" => new QnAAgentConfiguration(), - "Dispatcher" => new DispatcherAgentConfiguration(), - "Discount" => new DiscountAgentConfiguration(), - "SignalR" => new SignalRAgentConfiguration(), - _ => throw new ArgumentException("Unsupported agent type", nameof(agent)), - }; - } - } -} diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/ConversationAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/ConversationAgentConfiguration.cs deleted file mode 100644 index 287aaf39..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/ConversationAgentConfiguration.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; - -namespace SupportCenter.AgentsConfigurationFactory -{ - public class ConversationAgentConfiguration : IAgentConfiguration - { - public void ConfigureOpenAI(OpenAIOptions options) - { - options.ChatDeploymentOrModelId = options.ConversationDeploymentOrModelId ?? options.ChatDeploymentOrModelId; - } - - public void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider) - { - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/CustomerInfoAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/CustomerInfoAgentConfiguration.cs deleted file mode 100644 index 4e3973eb..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/CustomerInfoAgentConfiguration.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; -using SupportCenter.SemanticKernel.Plugins.CustomerPlugin; - -namespace SupportCenter.AgentsConfigurationFactory -{ - public class CustomerInfoAgentConfiguration : IAgentConfiguration - { - private readonly string customerPlugin = "CustomerPlugin"; - - public void ConfigureOpenAI(OpenAIOptions options) - { - options.ChatDeploymentOrModelId = options.ConversationDeploymentOrModelId ?? options.ChatDeploymentOrModelId; - } - - public void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider) - { - if (kernel.Plugins.TryGetPlugin(customerPlugin, out _) == false) - kernel.ImportPluginFromObject(serviceProvider.GetRequiredService(), customerPlugin); - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/DiscountAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/DiscountAgentConfiguration.cs deleted file mode 100644 index 01f9e427..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/DiscountAgentConfiguration.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; - -namespace SupportCenter.AgentsConfigurationFactory -{ - internal class DiscountAgentConfiguration : IAgentConfiguration - { - public void ConfigureOpenAI(OpenAIOptions options) - { - } - - public void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider) - { - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/DispatcherAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/DispatcherAgentConfiguration.cs deleted file mode 100644 index e433122d..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/DispatcherAgentConfiguration.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; - -namespace SupportCenter.AgentsConfigurationFactory -{ - internal class DispatcherAgentConfiguration : IAgentConfiguration - { - public void ConfigureOpenAI(OpenAIOptions options) - { - } - - public void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider) - { - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/IAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/IAgentConfiguration.cs deleted file mode 100644 index 7d6a0df2..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/IAgentConfiguration.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; - -namespace SupportCenter.AgentsConfigurationFactory -{ - public interface IAgentConfiguration - { - void ConfigureOpenAI(OpenAIOptions options); - void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider); - } -} diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/InvoiceAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/InvoiceAgentConfiguration.cs deleted file mode 100644 index ecdc6645..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/InvoiceAgentConfiguration.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; - -namespace SupportCenter.AgentsConfigurationFactory -{ - public class InvoiceAgentConfiguration : IAgentConfiguration - { - public void ConfigureOpenAI(OpenAIOptions options) - { - options.ChatDeploymentOrModelId = options.InvoiceDeploymentOrModelId ?? options.ChatDeploymentOrModelId; - } - - public void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider) - { - } - } -} diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/QnAAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/QnAAgentConfiguration.cs deleted file mode 100644 index bb179568..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/QnAAgentConfiguration.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; - -namespace SupportCenter.AgentsConfigurationFactory -{ - internal class QnAAgentConfiguration : IAgentConfiguration - { - public void ConfigureOpenAI(OpenAIOptions options) - { - } - - public void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider) - { - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/AgentsConfigurationFactory/SignalRAgentConfiguration.cs b/samples/support-center/src/backend/AgentsConfigurationFactory/SignalRAgentConfiguration.cs deleted file mode 100644 index d1bd986d..00000000 --- a/samples/support-center/src/backend/AgentsConfigurationFactory/SignalRAgentConfiguration.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Options; - -namespace SupportCenter.AgentsConfigurationFactory -{ - internal class SignalRAgentConfiguration : IAgentConfiguration - { - public void ConfigureOpenAI(OpenAIOptions options) - { - } - - public void ConfigureKernel(Kernel kernel, IServiceProvider serviceProvider) - { - } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Data/CosmosDb/CosmosDbRepository.cs b/samples/support-center/src/backend/Data/CosmosDb/CosmosDbRepository.cs deleted file mode 100644 index b28c4d9f..00000000 --- a/samples/support-center/src/backend/Data/CosmosDb/CosmosDbRepository.cs +++ /dev/null @@ -1,61 +0,0 @@ -using Microsoft.Azure.Cosmos; -using SupportCenter.Data.CosmosDb.Entities; -using SupportCenter.Options; - -namespace SupportCenter.Data.CosmosDb -{ - public abstract class CosmosDbRepository - where TEntity : Entity - where TOptions : CosmosDbOptions - { - protected readonly ILogger Logger; - protected readonly Container Container; - - protected CosmosDbRepository(TOptions options, ILogger logger) - { - Logger = logger; - CosmosDbOptions configuration = options; - - var containerConfiguration = configuration.Containers?.FirstOrDefault(c => c.EntityName == typeof(TEntity).Name) - ?? throw new InvalidOperationException($"Container configuration for {typeof(TEntity).Name} not found."); - - var client = new CosmosClient(configuration.AccountUri, configuration.AccountKey); - client.CreateDatabaseIfNotExistsAsync(containerConfiguration.DatabaseName); - - var database = client.GetDatabase(containerConfiguration.DatabaseName); - database.CreateContainerIfNotExistsAsync(containerConfiguration.ContainerName, containerConfiguration.PartitionKey ?? "/partitionKey"); - - Container = database.GetContainer(containerConfiguration.ContainerName); - } - - public async Task GetItemAsync(string id, string partitionKey) - { - TOutput item = await Container.ReadItemAsync(id: id, partitionKey: new PartitionKey(partitionKey)); - return item; - } - - public async Task InsertItemAsync(TEntity entity) - { - try - { - var response = await Container.CreateItemAsync(entity, new PartitionKey(entity.GetPartitionKeyValue())); - } - catch (Exception ex) - { - Logger.LogCritical( - ex, - "An error occurred. MethodName: {methodName} ErrorMessage: {errorMessage}", - nameof(InsertItemAsync), - ex.Message - ); - - throw; - } - } - - public async Task UpsertItemAsync(TEntity entity) - { - await Container.UpsertItemAsync(entity, new PartitionKey(entity.GetPartitionKeyValue())); - } - } -} diff --git a/samples/support-center/src/backend/Data/CosmosDb/CustomerRepository.cs b/samples/support-center/src/backend/Data/CosmosDb/CustomerRepository.cs deleted file mode 100644 index 03c36230..00000000 --- a/samples/support-center/src/backend/Data/CosmosDb/CustomerRepository.cs +++ /dev/null @@ -1,50 +0,0 @@ -using Microsoft.Azure.Cosmos; -using Microsoft.Extensions.Options; -using SupportCenter.Data.CosmosDb.Entities; -using SupportCenter.Options; - -namespace SupportCenter.Data.CosmosDb -{ - public class CustomerRepository : CosmosDbRepository, ICustomerRepository - { - public CustomerRepository(IOptions options, ILogger logger) - : base(options.Value, logger) { } - - public async Task GetCustomerByIdAsync(string customerId) - { - var query = new QueryDefinition("SELECT * FROM c WHERE c.id = @customerId") - .WithParameter("@customerId", customerId); - var iterator = Container.GetItemQueryIterator(query); - Customer? customer = null; - while (iterator.HasMoreResults) - { - var response = await iterator.ReadNextAsync(); - customer = response.FirstOrDefault(); - } - return customer; - } - - public async Task> GetCustomersAsync() - { - var query = new QueryDefinition("SELECT * FROM c"); - var iterator = Container.GetItemQueryIterator(query); - var customers = new List(); - while (iterator.HasMoreResults) - { - var response = await iterator.ReadNextAsync(); - customers.AddRange(response); - } - return customers; - } - - public async Task InsertCustomerAsync(Customer customer) - { - await InsertItemAsync(customer); - } - - public async Task UpdateCustomerAsync(Customer customer) - { - await UpsertItemAsync(customer); - } - } -} diff --git a/samples/support-center/src/backend/Data/CosmosDb/Entities/Customer.cs b/samples/support-center/src/backend/Data/CosmosDb/Entities/Customer.cs deleted file mode 100644 index 19ac4dc9..00000000 --- a/samples/support-center/src/backend/Data/CosmosDb/Entities/Customer.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Text.Json.Serialization; - -namespace SupportCenter.Data.CosmosDb.Entities -{ - public class Customer : Entity - { - [JsonPropertyName(nameof(Name))] - public string? Name { get; set; } - - [JsonPropertyName(nameof(Email))] - public string? Email { get; set; } - - [JsonPropertyName(nameof(Phone))] - public string? Phone { get; set; } - - [JsonPropertyName(nameof(Address))] - public string? Address { get; set; } - - public override string GetPartitionKeyValue() => Id; - } -} diff --git a/samples/support-center/src/backend/Data/Entities/Entity.cs b/samples/support-center/src/backend/Data/Entities/Entity.cs deleted file mode 100644 index ec0b7742..00000000 --- a/samples/support-center/src/backend/Data/Entities/Entity.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Newtonsoft.Json; - -namespace SupportCenter.Data.CosmosDb.Entities -{ - public abstract class Entity - { - [JsonProperty("id")] - public string Id { get; set; } = Guid.NewGuid().ToString(); - - [JsonProperty("_etag")] - public string? ETag { get; } - - public DateTimeOffset LastUpdatedTime { get; set; } - - public abstract string GetPartitionKeyValue(); - } -} diff --git a/samples/support-center/src/backend/Dockerfile b/samples/support-center/src/backend/Dockerfile deleted file mode 100644 index 4948486a..00000000 --- a/samples/support-center/src/backend/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -WORKDIR /app -EXPOSE 5244 -EXPOSE 11111 -EXPOSE 30000 - -ENV ASPNETCORE_URLS=http://+:5244 - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -ARG configuration=Release -COPY . . -RUN dotnet restore "samples/support-center/src/backend/SupportCenter.csproj" -WORKDIR "/samples/support-center/src/backend" -RUN dotnet build "SupportCenter.csproj" -c $configuration -o /app/build - -FROM build AS publish -ARG configuration=Release -RUN dotnet publish "SupportCenter.csproj" -c $configuration -o /app/publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "SupportCenter.dll"] \ No newline at end of file diff --git a/samples/support-center/src/backend/Extensions/DictionaryExtension.cs b/samples/support-center/src/backend/Extensions/DictionaryExtension.cs deleted file mode 100644 index e5c2d2f5..00000000 --- a/samples/support-center/src/backend/Extensions/DictionaryExtension.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace SupportCenter.Extensions -{ - using System; - using System.Collections.Generic; - - public static class DictionaryExtensions - { - public static T GetValueOrDefault(this IDictionary dictionary, string key) - { - ArgumentNullException.ThrowIfNull(dictionary); - ArgumentNullException.ThrowIfNull(key); - - if (dictionary.TryGetValue(key, out var value)) - { - if (value is T typedValue) - return typedValue; - - try - { - return (T)Convert.ChangeType(value, typeof(T)); - } - catch (InvalidCastException) - { - throw new InvalidOperationException($"Value for key '{key}' is not of type {typeof(T).Name}"); - } - } - else - { - return default; - } - } - } -} diff --git a/samples/support-center/src/backend/Extensions/ServiceExtensions.cs b/samples/support-center/src/backend/Extensions/ServiceExtensions.cs deleted file mode 100644 index a1e771d0..00000000 --- a/samples/support-center/src/backend/Extensions/ServiceExtensions.cs +++ /dev/null @@ -1,100 +0,0 @@ -using SupportCenter.Data.CosmosDb; -using SupportCenter.Options; -using SupportCenter.SemanticKernel.Plugins.CustomerPlugin; -using static Microsoft.AI.Agents.Orleans.Resolvers; -using static SupportCenter.SemanticKernel.Extensions; - -namespace SupportCenter.Extensions -{ - public static class ServiceCollectionExtensions - { - public static IServiceCollection ExtendOptions(this IServiceCollection services) - { - services.AddOptions() - .Configure((settings, configuration) => - { - configuration.GetSection(nameof(OpenAIOptions)).Bind(settings); - }) - .ValidateDataAnnotations() - .ValidateOnStart(); - - services.AddOptions() - .Configure((settings, configuration) => - { - configuration.GetSection(nameof(QdrantOptions)).Bind(settings); - }) - .ValidateDataAnnotations() - .ValidateOnStart(); - - services.AddOptions() - .Configure((settings, configuration) => - { - configuration.GetSection(nameof(CosmosDbOptions)).Bind(settings); - }) - .ValidateDataAnnotations() - .ValidateOnStart(); - - services.AddOptions() - .Configure((settings, configuration) => - { - configuration.GetSection(nameof(AISearchOptions)).Bind(settings); - }) - .ValidateDataAnnotations() - .ValidateOnStart(); - - return services; - } - - public static IServiceCollection ExtendServices(this IServiceCollection services) - { - RegisterRepositories(services); - AddSemanticKernelResolvers(services); - AddSemanticKernelServices(services); - return services; - } - - private static void AddSemanticKernelServices(IServiceCollection services) - { - services.AddKeyedSingleton("ConversationKernel", (sp, _) => CreateKernel(sp, "Conversation")); - services.AddKeyedSingleton("CustomerInfoKernel", (sp, _) => CreateKernel(sp, "CustomerInfo")); - services.AddKeyedSingleton("DispatcherKernel", (sp, _) => CreateKernel(sp, "Dispatcher")); - services.AddKeyedSingleton("InvoiceKernel", (sp, _) => CreateKernel(sp, "Invoice")); - services.AddKeyedSingleton("DiscountKernel", (sp, _) => CreateKernel(sp, "Discount")); - services.AddKeyedSingleton("QnAKernel", (sp, _) => CreateKernel(sp, "QnA")); - - services.AddKeyedSingleton("ConversationMemory", (sp, _) => CreateMemory(sp, "Conversation")); - services.AddKeyedSingleton("CustomerInfoMemory", (sp, _) => CreateMemory(sp, "CustomerInfo")); - services.AddKeyedSingleton("DispatcherMemory", (sp, _) => CreateMemory(sp, "Dispatcher")); - services.AddKeyedSingleton("InvoiceMemory", (sp, _) => CreateMemory(sp, "Invoice")); - services.AddKeyedSingleton("DiscountMemory", (sp, _) => CreateMemory(sp, "Discount")); - services.AddKeyedSingleton("QnAMemory", (sp, _) => CreateMemory(sp, "QnA")); - } - - private static void RegisterRepositories(IServiceCollection services) - { - services.AddSingleton(); - } - - private static void AddSemanticKernelResolvers(IServiceCollection services) - { - /* - * Register the resolvers for the Semantic Kernel - * This is used to resolve the kernel and memory for the agent - * The kernel is used to execute the functions and the memory is used to store the state - */ - services.AddSingleton(serviceProvider => agent => - { - return CreateKernel(serviceProvider, agent); - }); - services.AddSingleton(serviceProvider => agent => - { - return CreateMemory(serviceProvider, agent); - }); - } - - public static void RegisterSemanticKernelNativeFunctions(this IServiceCollection serviceCollection) - { - serviceCollection.AddSingleton(); - } - } -} diff --git a/samples/support-center/src/backend/Options/AiSearchOptions.cs b/samples/support-center/src/backend/Options/AiSearchOptions.cs deleted file mode 100644 index 384afca9..00000000 --- a/samples/support-center/src/backend/Options/AiSearchOptions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace SupportCenter.Options; - -public class AISearchOptions -{ - // AI Search - [Required] - public string SearchEndpoint { get; set; } - [Required] - public string SearchKey { get; set; } - [Required] - public string SearchIndex { get; set; } - // Embeddings - [Required] - public string SearchEmbeddingDeploymentOrModelId { get; set; } - [Required] - public string SearchEmbeddingEndpoint { get; set; } - [Required] - public string SearchEmbeddingApiKey { get; set; } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Options/Consts.cs b/samples/support-center/src/backend/Options/Consts.cs deleted file mode 100644 index 68a5fd17..00000000 --- a/samples/support-center/src/backend/Options/Consts.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace SupportCenter.Options; - -public static class Consts -{ - public const string OrleansNamespace = "SupportCenter"; -} diff --git a/samples/support-center/src/backend/Options/CosmosDbContainerOptions.cs b/samples/support-center/src/backend/Options/CosmosDbContainerOptions.cs deleted file mode 100644 index 223547f0..00000000 --- a/samples/support-center/src/backend/Options/CosmosDbContainerOptions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace SupportCenter.Options -{ - public class CosmosDbContainerOptions - { - [Required] - public string? DatabaseName { get; set; } - - [Required] - public string? ContainerName { get; set; } - - [Required] - public string? PartitionKey { get; set; } - - [Required] - public string? EntityName { get; set; } - } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Options/CosmosDbOptions.cs b/samples/support-center/src/backend/Options/CosmosDbOptions.cs deleted file mode 100644 index 6126408a..00000000 --- a/samples/support-center/src/backend/Options/CosmosDbOptions.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace SupportCenter.Options -{ - public class CosmosDbOptions - { - public string? AccountUri { get; set; } - - public string? AccountKey { get; set; } - - public IEnumerable? Containers { get; set; } - } -} diff --git a/samples/support-center/src/backend/Options/OpenAIOptions.cs b/samples/support-center/src/backend/Options/OpenAIOptions.cs deleted file mode 100644 index b8add096..00000000 --- a/samples/support-center/src/backend/Options/OpenAIOptions.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace SupportCenter.Options; - -public class OpenAIOptions -{ - // Embeddings - [Required] - public string EmbeddingsEndpoint { get; set; } = string.Empty; - [Required] - public string EmbeddingsApiKey { get; set; } = string.Empty; - [Required] - public string EmbeddingsDeploymentOrModelId { get; set; } = string.Empty; - - // Chat - [Required] - public string ChatEndpoint { get; set; } = string.Empty; - [Required] - public string ChatApiKey { get; set; } = string.Empty; - [Required] - public string ChatDeploymentOrModelId { get; set; } = string.Empty; - - public string? InvoiceDeploymentOrModelId { get; set; } - public string? ConversationDeploymentOrModelId { get; set; } - - // TextToImage - /*[Required] - public string? ImageEndpoint { get; set; } - [Required] - public string? ImageApiKey { get; set; } - // When using OpenAI, this is not required. - public string? ImageDeploymentOrModelId { get; set; }*/ -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Options/QdrantOptions.cs b/samples/support-center/src/backend/Options/QdrantOptions.cs deleted file mode 100644 index a274f02c..00000000 --- a/samples/support-center/src/backend/Options/QdrantOptions.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace SupportCenter.Options; -public class QdrantOptions -{ - [Required] - public string Endpoint { get; set; } = string.Empty; - [Required] - public int VectorSize { get; set; } -} \ No newline at end of file diff --git a/samples/support-center/src/backend/Program.cs b/samples/support-center/src/backend/Program.cs deleted file mode 100644 index 883f6aff..00000000 --- a/samples/support-center/src/backend/Program.cs +++ /dev/null @@ -1,88 +0,0 @@ -using SupportCenter.Extensions; -using SupportCenter.SignalRHub; -using System.Text.Json; - -var builder = WebApplication.CreateBuilder(args); -builder.Services.AddHttpClient(); -builder.Services.AddControllers(); -builder.Services.AddApplicationInsightsTelemetry(); -builder.Services.AddSwaggerGen(); -builder.Services.AddSignalR(); -builder.Services.AddSingleton(); - -// Allow any CORS origin if in DEV -const string AllowDebugOriginPolicy = "AllowDebugOrigin"; -const string AllowOriginPolicy = "AllowOrigin"; -if (builder.Environment.IsDevelopment()) -{ - builder.Services.AddCors(options => - { - options.AddPolicy(AllowDebugOriginPolicy, builder => - { - builder - .WithOrigins("http://localhost:3000", "http://localhost:3001") // client urls - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - }); - }); -} -else -{ - builder.Services.AddCors(options => - { - options.AddPolicy(AllowOriginPolicy, builder => - { - builder - .SetIsOriginAllowedToAllowWildcardSubdomains() - .WithOrigins("https://*.azurecontainerapps.io") // client url - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - }); - }); - -} - -builder.Services.ExtendOptions(); -builder.Services.ExtendServices(); -builder.Services.RegisterSemanticKernelNativeFunctions(); - -builder.Host.UseOrleans(siloBuilder => -{ - siloBuilder.UseLocalhostClustering() - .AddMemoryStreams("StreamProvider") - .AddMemoryGrainStorage("PubSubStore") - .AddMemoryGrainStorage("messages"); - siloBuilder.UseInMemoryReminderService(); - siloBuilder.UseDashboard(x => x.HostSelf = true); -}); - -builder.Services.Configure(options => -{ - options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; -}); - -WebApplication app = builder.Build(); - -app.UseRouting(); -if (builder.Environment.IsDevelopment()) -{ - app.UseCors(AllowDebugOriginPolicy); -} -else -{ - app.UseCors(AllowOriginPolicy); - -} -app.MapControllers(); - -app.UseSwagger(); -app.UseSwaggerUI(c => -{ - c.SwaggerEndpoint("/swagger/v1/swagger.json", "Support Center API v1"); -}); - -app.Map("/dashboard", x => x.UseOrleansDashboard()); -app.MapHub("/supportcenterhub"); -app.Run(); \ No newline at end of file diff --git a/samples/support-center/src/backend/SemanticKernel/Extensions.cs b/samples/support-center/src/backend/SemanticKernel/Extensions.cs deleted file mode 100644 index 5d06a522..00000000 --- a/samples/support-center/src/backend/SemanticKernel/Extensions.cs +++ /dev/null @@ -1,102 +0,0 @@ -using Azure.AI.OpenAI; -using Azure; -using Microsoft.Extensions.Options; -using Microsoft.SemanticKernel.Memory; -using Microsoft.SemanticKernel; -using SupportCenter.Options; -using SupportCenter.Core; -using Microsoft.SemanticKernel.Connectors.Qdrant; -using Microsoft.Extensions.Http.Resilience; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Microsoft.SemanticKernel.Connectors.AzureAISearch; -using SupportCenter.AgentsConfigurationFactory; - -namespace SupportCenter.SemanticKernel -{ - public static class Extensions - { - public static ISemanticTextMemory CreateMemory(IServiceProvider provider, string agent) - { - OpenAIOptions openAiConfig = provider.GetService>()?.Value ?? new OpenAIOptions(); - openAiConfig.ValidateRequiredProperties(); - - var loggerFactory = LoggerFactory.Create(builder => - { - builder - .SetMinimumLevel(LogLevel.Debug) - .AddConsole() - .AddDebug(); - }); - - if (agent == "Invoice") - { - AISearchOptions aiSearchConfig = provider.GetService>()?.Value ?? new AISearchOptions(); - aiSearchConfig.ValidateRequiredProperties(); - - var memoryBuilder = new MemoryBuilder(); - return memoryBuilder.WithLoggerFactory(loggerFactory) - .WithMemoryStore(new AzureAISearchMemoryStore(aiSearchConfig.SearchEndpoint, aiSearchConfig.SearchKey)) - .WithAzureOpenAITextEmbeddingGeneration(aiSearchConfig.SearchEmbeddingDeploymentOrModelId, aiSearchConfig.SearchEmbeddingEndpoint, aiSearchConfig.SearchEmbeddingApiKey) - .Build(); - } - else - { - QdrantOptions qdrantConfig = provider.GetService>()?.Value ?? new QdrantOptions(); - qdrantConfig.ValidateRequiredProperties(); - - return new MemoryBuilder().WithLoggerFactory(loggerFactory) - .WithQdrantMemoryStore(qdrantConfig.Endpoint, qdrantConfig.VectorSize) - .WithAzureOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingsDeploymentOrModelId, openAiConfig.EmbeddingsEndpoint, openAiConfig.EmbeddingsApiKey) - .Build(); - } - } - - public static Kernel CreateKernel(IServiceProvider provider, string agent) - { - OpenAIOptions openAiConfig = provider.GetService>()?.Value ?? new OpenAIOptions(); - - var agentConfiguration = AgentConfiguration.GetAgentConfiguration(agent); - agentConfiguration.ConfigureOpenAI(openAiConfig); - - var clientOptions = new OpenAIClientOptions(); - clientOptions.Retry.NetworkTimeout = TimeSpan.FromMinutes(5); - var builder = Kernel.CreateBuilder(); - builder.Services.AddLogging(c => c.AddConsole().AddDebug().SetMinimumLevel(LogLevel.Debug)); - - // Chat - var openAIClient = new OpenAIClient(new Uri(openAiConfig.ChatEndpoint), new AzureKeyCredential(openAiConfig.ChatApiKey), clientOptions); - if (openAiConfig.ChatEndpoint.Contains(".azure", StringComparison.OrdinalIgnoreCase)) - { - builder.Services.AddAzureOpenAIChatCompletion(openAiConfig.ChatDeploymentOrModelId, openAIClient); - } - else - { - builder.Services.AddOpenAIChatCompletion(openAiConfig.ChatDeploymentOrModelId, openAIClient); - } - // Embeddings - openAIClient = new OpenAIClient(new Uri(openAiConfig.EmbeddingsEndpoint), new AzureKeyCredential(openAiConfig.EmbeddingsApiKey), clientOptions); - if (openAiConfig.EmbeddingsEndpoint.Contains(".azure", StringComparison.OrdinalIgnoreCase)) - { - builder.Services.AddAzureOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingsDeploymentOrModelId, openAIClient); - } - else - { - builder.Services.AddOpenAITextEmbeddingGeneration(openAiConfig.EmbeddingsDeploymentOrModelId, openAIClient); - } - - builder.Services.ConfigureHttpClientDefaults(c => - { - c.AddStandardResilienceHandler().Configure(o => - { - o.Retry.MaxRetryAttempts = 5; - o.Retry.BackoffType = Polly.DelayBackoffType.Exponential; - }); - }); - - var kernel = builder.Build(); - agentConfiguration.ConfigureKernel(kernel, provider); - - return kernel; - } - } -} diff --git a/samples/support-center/src/backend/SemanticKernel/Plugins/CustomerPlugin/CustomerData.cs b/samples/support-center/src/backend/SemanticKernel/Plugins/CustomerPlugin/CustomerData.cs deleted file mode 100644 index 330f2b33..00000000 --- a/samples/support-center/src/backend/SemanticKernel/Plugins/CustomerPlugin/CustomerData.cs +++ /dev/null @@ -1,58 +0,0 @@ -using Microsoft.SemanticKernel; -using SupportCenter.Data.CosmosDb; -using System.ComponentModel; -using SupportCenter.Data.CosmosDb.Entities; -using SupportCenter.Extensions; - -namespace SupportCenter.SemanticKernel.Plugins.CustomerPlugin -{ - public class CustomerData - { - private readonly ILogger _logger; - private readonly ICustomerRepository _customerRepository; - - public CustomerData( - ILogger logger, - ICustomerRepository customerRepository) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - _customerRepository = customerRepository ?? throw new ArgumentNullException(nameof(customerRepository)); - } - - [KernelFunction, Description("Get customer data")] - public async Task GetCustomerDataAsync( - [Description("The customer id")] string customerId) - { - _logger.LogInformation("Executing {FunctionName} function. Params: {parameters}", nameof(GetCustomerDataAsync), string.Join(", ", [customerId])); - var customer = await _customerRepository.GetCustomerByIdAsync(customerId); - if (customer == null) - { - _logger.LogWarning("Customer with id {customerId} not found", customerId); - } - return customer ?? new Customer(); - } - - [KernelFunction, Description("Get all customers")] - public async Task> GetAllCustomersAsync() - { - _logger.LogInformation("Executing {FunctionName} function", nameof(GetAllCustomersAsync)); - return await _customerRepository.GetCustomersAsync(); - } - - [KernelFunction, Description("Insert customer data")] - public async Task InsertCustomerDataAsync( - [Description("The customer data")] Customer customer) - { - _logger.LogInformation("Executing {FunctionName} function. Params: {parameters}", nameof(InsertCustomerDataAsync), customer.ToStringCustom()); - await _customerRepository.InsertCustomerAsync(customer); - } - - [KernelFunction, Description("Update customer data")] - public async Task UpdateCustomerDataAsync( - [Description("The customer data")] Customer customer) - { - _logger.LogInformation("Executing {FunctionName} function. Params: {parameters}", nameof(UpdateCustomerDataAsync), customer.ToStringCustom()); - await _customerRepository.UpdateCustomerAsync(customer); - } - } -} diff --git a/samples/support-center/src/backend/SignalRHub/ISignalRService.cs b/samples/support-center/src/backend/SignalRHub/ISignalRService.cs deleted file mode 100644 index 13929ab0..00000000 --- a/samples/support-center/src/backend/SignalRHub/ISignalRService.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace SupportCenter.SignalRHub; -public interface ISignalRService -{ - Task SendMessageToClient(string messageId, string userId, string message, AgentType senderType); -} diff --git a/samples/support-center/src/backend/SignalRHub/SignalRConnectionsDB.cs b/samples/support-center/src/backend/SignalRHub/SignalRConnectionsDB.cs deleted file mode 100644 index fee9ae4f..00000000 --- a/samples/support-center/src/backend/SignalRHub/SignalRConnectionsDB.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.Collections.Concurrent; - -namespace SupportCenter.SignalRHub; -public static class SignalRConnectionsDB -{ - public static ConcurrentDictionary ConnectionByUser { get; } = new ConcurrentDictionary(); - - // Get conversationId by userId - public static string? GetConversationId(string userId) - { - if (string.IsNullOrWhiteSpace(userId)) - { - return null; - } - - if (ConnectionByUser.TryGetValue(userId, out var connection)) - { - return connection.ConversationId; - } - return null; - } -} - -public class Connection(string connectionId, string conversationId) -{ - public string? Id { get; set; } = connectionId; - public string? ConversationId { get; set; } = conversationId; - - public override bool Equals(object? obj) - { - if (obj == null || GetType() != obj.GetType()) - { - return false; - } - var other = (Connection)obj; - return Id == other.Id && ConversationId == other.ConversationId; - } - - public override int GetHashCode() - { - return HashCode.Combine(Id, ConversationId); - } - -} \ No newline at end of file diff --git a/samples/support-center/src/backend/SignalRHub/SignalRService.cs b/samples/support-center/src/backend/SignalRHub/SignalRService.cs deleted file mode 100644 index adb9d8e0..00000000 --- a/samples/support-center/src/backend/SignalRHub/SignalRService.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Microsoft.AspNetCore.SignalR; - -namespace SupportCenter.SignalRHub; - -public class SignalRService(IHubContext hubContext) : ISignalRService -{ - public async Task SendMessageToClient(string messageId, string userId, string message, AgentType senderType) - { - var connection = SignalRConnectionsDB.ConnectionByUser[userId]; - if (connection == null || connection.Id == null) - { - return; - } - - var chatMessage = new ChatMessage() - { - Id = messageId, - ConversationId = connection.ConversationId, - UserId = userId, - Text = message, - Sender = senderType.ToString() - }; - await hubContext.Clients.Client(connection.Id).SendAsync("ReceiveMessage", chatMessage); - } -} diff --git a/samples/support-center/src/backend/SupportCenter.csproj b/samples/support-center/src/backend/SupportCenter.csproj deleted file mode 100644 index 6e5910a6..00000000 --- a/samples/support-center/src/backend/SupportCenter.csproj +++ /dev/null @@ -1,55 +0,0 @@ - - - - net8.0 - enable - enable - 430bf89e-9326-49c7-80a9-18b3256904a6 - Windows - . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/support-center/src/backend/SupportCenter.sln b/samples/support-center/src/backend/SupportCenter.sln deleted file mode 100644 index af159079..00000000 --- a/samples/support-center/src/backend/SupportCenter.sln +++ /dev/null @@ -1,39 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.9.34902.65 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SupportCenter", "SupportCenter.csproj", "{41A852BD-5A4D-4618-AF8B-B83051B021DC}" -EndProject - -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AI.Agents", "..\..\..\..\src\Oagents.Core\Oagents.Core.csproj", "{0F34F525-D83D-4FBD-83C3-92159519A5F7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AI.Agents.Orleans", "..\..\..\..\src\Oagents.Orleans\Oagents.Orleans.csproj", "{4CB5296A-0430-4FFE-99DB-ABE6861826EB}" - -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {41A852BD-5A4D-4618-AF8B-B83051B021DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {41A852BD-5A4D-4618-AF8B-B83051B021DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {41A852BD-5A4D-4618-AF8B-B83051B021DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {41A852BD-5A4D-4618-AF8B-B83051B021DC}.Release|Any CPU.Build.0 = Release|Any CPU - {0F34F525-D83D-4FBD-83C3-92159519A5F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0F34F525-D83D-4FBD-83C3-92159519A5F7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0F34F525-D83D-4FBD-83C3-92159519A5F7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0F34F525-D83D-4FBD-83C3-92159519A5F7}.Release|Any CPU.Build.0 = Release|Any CPU - {4CB5296A-0430-4FFE-99DB-ABE6861826EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4CB5296A-0430-4FFE-99DB-ABE6861826EB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4CB5296A-0430-4FFE-99DB-ABE6861826EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4CB5296A-0430-4FFE-99DB-ABE6861826EB}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {28AE8B3F-A200-41EB-BE83-05FA3B35F123} - EndGlobalSection -EndGlobal diff --git a/samples/support-center/src/backend/appsettings.local.template.Development.json b/samples/support-center/src/backend/appsettings.local.template.Development.json deleted file mode 100644 index 0c208ae9..00000000 --- a/samples/support-center/src/backend/appsettings.local.template.Development.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - } -} diff --git a/samples/support-center/src/backend/appsettings.local.template.json b/samples/support-center/src/backend/appsettings.local.template.json deleted file mode 100644 index d2978fde..00000000 --- a/samples/support-center/src/backend/appsettings.local.template.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Information", - "Microsoft.AspNetCore.SignalR": "Debug", - "Microsoft.AspNetCore.Http.Connections": "Debug" - } - }, - - "ApplicationInsights": { - "ConnectionString": "InstrumentationKey=;IngestionEndpoint=https://.applicationinsights.azure.com/" - }, - - "AllowedHosts": "*", - - "OpenAIOptions": { - "ChatDeploymentOrModelId": "", - "InvoiceDeploymentOrModelId": "", - "ConversationDeploymentOrModelId": "", - "ChatEndpoint": "https://.openai.azure.com/", - "ChatApiKey": "", - "EmbeddingsDeploymentOrModelId": "text-embedding-ada-002", - "EmbeddingsEndpoint": "https://.openai.azure.com/", - "EmbeddingsApiKey": "" - }, - - "CosmosDbOptions": { - "AccountUri": "", - "AccountKey": "", - "Containers": [ - { - "DatabaseName": "customer-support", - "ContainerName": "customer", - "PartitionKey": "/id", - "EntityName": "Customer" - } - ] - }, - - "QdrantOptions": { - "Endpoint": "http://qdrant:6333", - "VectorSize": "1536" - }, - - "AISearchOptions": { - "SearchEndpoint": "https://.search.windows.net", - "SearchKey": "", - "SearchIndex": "invoices", - "SearchEmbeddingDeploymentOrModelId": "text-embedding-ada-002", - "SearchEmbeddingEndpoint": "https://.openai.azure.com/", - "SearchEmbeddingApiKey": "" - } -} \ No newline at end of file diff --git a/samples/support-center/src/frontend/.env.azureConfig b/samples/support-center/src/frontend/.env.azureConfig deleted file mode 100644 index a6fb3b5e..00000000 --- a/samples/support-center/src/frontend/.env.azureConfig +++ /dev/null @@ -1,4 +0,0 @@ -# ENV used to build and deploy the app on Azure -# ATTENTION: DO NOT STORE SECRETS HERE -VITE_OAGENT_CLIENT_ID=support-center-clientid -VITE_OAGENT_BASE_URL= \ No newline at end of file diff --git a/samples/support-center/src/frontend/dist/assets/index-BJ0kilEg.css b/samples/support-center/src/frontend/dist/assets/index-BJ0kilEg.css new file mode 100644 index 00000000..8b85cf41 --- /dev/null +++ b/samples/support-center/src/frontend/dist/assets/index-BJ0kilEg.css @@ -0,0 +1 @@ +.body{height:100vh;background:#f2f2f2}.app-header{display:flex;flex-direction:row;justify-content:center;margin-bottom:4px}.welcome-container{position:relative;min-height:calc(90vh - 230px);max-height:calc(90vh - 230px);display:flex;flex-direction:column}.hints-container{display:flex;flex-direction:row;justify-content:center}.warning-container{position:absolute;bottom:0;width:100%;display:flex;flex-direction:row;justify-content:center}.user-message-card{background-color:"#EDF5FD"}.message-container{display:flex;flex-direction:row;align-items:flex-start;margin:10px 0}.message-container-footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%}.feedback-container-target{display:flex;flex-direction:row-reverse;margin:0 30px}.message-disclaimer{color:#707070}.citation-container{flex-direction:column}.citation-item{margin:2px 0}.messages-container{overflow:hidden auto;min-height:calc(90vh - 250px);max-height:calc(90vh - 250px);padding:10px}.copilot-message-container,.user-message-container{display:flex;flex-direction:row;align-items:center}.copilot-message-container{justify-content:flex-start}.user-message-container{justify-content:flex-end}.input-toolbar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%;margin-top:10px}.input-message{width:100%;height:70px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace} diff --git a/samples/support-center/src/frontend/dist/assets/index-DxF1j7Tw.js b/samples/support-center/src/frontend/dist/assets/index-DxF1j7Tw.js new file mode 100644 index 00000000..cb9008df --- /dev/null +++ b/samples/support-center/src/frontend/dist/assets/index-DxF1j7Tw.js @@ -0,0 +1,175 @@ +function Ib(e,t){for(var r=0;rn[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(o){if(o.ep)return;o.ep=!0;const i=r(o);fetch(o.href,i)}})();var pm=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ab={exports:{}},eu={},Mb={exports:{}},xe={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ll=Symbol.for("react.element"),j_=Symbol.for("react.portal"),F_=Symbol.for("react.fragment"),D_=Symbol.for("react.strict_mode"),I_=Symbol.for("react.profiler"),A_=Symbol.for("react.provider"),M_=Symbol.for("react.context"),O_=Symbol.for("react.forward_ref"),L_=Symbol.for("react.suspense"),q_=Symbol.for("react.memo"),H_=Symbol.for("react.lazy"),gm=Symbol.iterator;function W_(e){return e===null||typeof e!="object"?null:(e=gm&&e[gm]||e["@@iterator"],typeof e=="function"?e:null)}var Ob={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Lb=Object.assign,qb={};function ia(e,t,r){this.props=e,this.context=t,this.refs=qb,this.updater=r||Ob}ia.prototype.isReactComponent={};ia.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ia.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Hb(){}Hb.prototype=ia.prototype;function cp(e,t,r){this.props=e,this.context=t,this.refs=qb,this.updater=r||Ob}var up=cp.prototype=new Hb;up.constructor=cp;Lb(up,ia.prototype);up.isPureReactComponent=!0;var mm=Array.isArray,Wb=Object.prototype.hasOwnProperty,fp={current:null},Ub={key:!0,ref:!0,__self:!0,__source:!0};function $b(e,t,r){var n,o={},i=null,a=null;if(t!=null)for(n in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)Wb.call(t,n)&&!Ub.hasOwnProperty(n)&&(o[n]=t[n]);var l=arguments.length-2;if(l===1)o.children=r;else if(1typeof e=="string"&&/(\d+(\w+|%))/.test(e),gs=e=>typeof e=="number"&&!Number.isNaN(e),f5=e=>e==="initial",bm=e=>e==="auto",d5=e=>e==="none",h5=["content","fit-content","max-content","min-content"],Yu=e=>h5.some(t=>e===t)||u5(e);function p5(...e){const t=e.length===1,r=e.length===2,n=e.length===3;if(t){const[o]=e;if(f5(o))return{flexGrow:0,flexShrink:1,flexBasis:"auto"};if(bm(o))return{flexGrow:1,flexShrink:1,flexBasis:"auto"};if(d5(o))return{flexGrow:0,flexShrink:0,flexBasis:"auto"};if(gs(o))return{flexGrow:o,flexShrink:1,flexBasis:0};if(Yu(o))return{flexGrow:1,flexShrink:1,flexBasis:o}}if(r){const[o,i]=e;if(gs(i))return{flexGrow:o,flexShrink:i,flexBasis:0};if(Yu(i))return{flexGrow:o,flexShrink:1,flexBasis:i}}if(n){const[o,i,a]=e;if(gs(o)&&gs(i)&&(bm(a)||Yu(a)))return{flexGrow:o,flexShrink:i,flexBasis:a}}return{}}function g5(e,t=e){return{columnGap:e,rowGap:t}}const m5=/var\(.*\)/gi;function v5(e){return e===void 0||typeof e=="number"||typeof e=="string"&&!m5.test(e)}const b5=/^[a-zA-Z0-9\-_\\#;]+$/,y5=/^-moz-initial$|^auto$|^initial$|^inherit$|^revert$|^unset$|^span \d+$|^\d.*/;function ef(e){return e!==void 0&&typeof e=="string"&&b5.test(e)&&!y5.test(e)}function w5(...e){if(e.some(i=>!v5(i)))return{};const t=e[0]!==void 0?e[0]:"auto",r=e[1]!==void 0?e[1]:ef(t)?t:"auto",n=e[2]!==void 0?e[2]:ef(t)?t:"auto",o=e[3]!==void 0?e[3]:ef(r)?r:"auto";return{gridRowStart:t,gridColumnStart:r,gridRowEnd:n,gridColumnEnd:o}}function k5(...e){return ql("margin","",...e)}function x5(e,t=e){return{marginBlockStart:e,marginBlockEnd:t}}function S5(e,t=e){return{marginInlineStart:e,marginInlineEnd:t}}function _5(...e){return ql("padding","",...e)}function B5(e,t=e){return{paddingBlockStart:e,paddingBlockEnd:t}}function C5(e,t=e){return{paddingInlineStart:e,paddingInlineEnd:t}}function P5(e,t=e){return{overflowX:e,overflowY:t}}function E5(...e){const[t,r=t,n=t,o=r]=e;return{top:t,right:r,bottom:n,left:o}}function z5(e,t,r){return{outlineWidth:e,...t&&{outlineStyle:t},...r&&{outlineColor:r}}}function T5(...e){return R5(e)?{transitionDelay:e[0],transitionDuration:e[0],transitionProperty:e[0],transitionTimingFunction:e[0]}:j5(e).reduce((r,[n,o="0s",i="0s",a="ease"],l)=>(l===0?(r.transitionProperty=n,r.transitionDuration=o,r.transitionDelay=i,r.transitionTimingFunction=a):(r.transitionProperty+=`, ${n}`,r.transitionDuration+=`, ${o}`,r.transitionDelay+=`, ${i}`,r.transitionTimingFunction+=`, ${a}`),r),{})}const N5=["-moz-initial","inherit","initial","revert","unset"];function R5(e){return e.length===1&&N5.includes(e[0])}function j5(e){return e.length===1&&Array.isArray(e[0])?e[0]:[e]}function F5(e,...t){if(t.length===0)return I5(e)?{textDecorationStyle:e}:{textDecorationLine:e};const[r,n,o]=t;return{textDecorationLine:e,...r&&{textDecorationStyle:r},...n&&{textDecorationColor:n},...o&&{textDecorationThickness:o}}}const D5=["dashed","dotted","double","solid","wavy"];function I5(e){return D5.includes(e)}const tf=typeof window>"u"?global:window,rf="@griffel/";function A5(e,t){return tf[Symbol.for(rf+e)]||(tf[Symbol.for(rf+e)]=t),tf[Symbol.for(rf+e)]}const Sd=A5("DEFINITION_LOOKUP_TABLE",{}),Vs="data-make-styles-bucket",_d="f",Bd=7,hp="___",M5=hp.length+Bd,O5=0,L5=1,q5={all:1,animation:1,animationRange:1,background:1,backgroundPosition:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockStart:1,borderBottom:1,borderColor:1,borderImage:1,borderInline:1,borderInlineEnd:1,borderInlineStart:1,borderLeft:1,borderRadius:1,borderRight:1,borderStyle:1,borderTop:1,borderWidth:1,caret:1,columns:1,columnRule:1,containIntrinsicSize:1,container:1,flex:1,flexFlow:1,font:1,gap:1,grid:1,gridArea:1,gridColumn:1,gridRow:1,gridTemplate:1,inset:1,insetBlock:1,insetInline:1,lineClamp:1,listStyle:1,margin:1,marginBlock:1,marginInline:1,mask:1,maskBorder:1,motion:1,offset:1,outline:1,overflow:1,overscrollBehavior:1,padding:1,paddingBlock:1,paddingInline:1,placeItems:1,placeContent:1,placeSelf:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginInline:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingInline:1,scrollSnapMargin:1,scrollTimeline:1,textDecoration:1,textEmphasis:1,transition:1,viewTimeline:1};function sl(e){for(var t=0,r,n=0,o=e.length;o>=4;++n,o-=4)r=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}function H5(e){const t=e.length;if(t===Bd)return e;for(let r=t;r0&&(t+=u.slice(0,f)),r+=d,n[c]=d}}}if(r==="")return t.slice(0,-1);const o=ym[r];if(o!==void 0)return t+o;const i=[];for(let c=0;ci.cssText):n}}}const $5=["r","d","l","v","w","f","i","h","a","s","k","t","m","c"],wm=$5.reduce((e,t,r)=>(e[t]=r,e),{});function V5(e,t,r,n,o={}){const i=e==="m",a=i?e+o.m:e;if(!n.stylesheets[a]){const l=t&&t.createElement("style"),s=U5(l,e,{...n.styleElementAttributes,...i&&{media:o.m}});n.stylesheets[a]=s,t&&l&&t.head.insertBefore(l,G5(t,r,e,n,o))}return n.stylesheets[a]}function G5(e,t,r,n,o){const i=wm[r];let a=u=>i-wm[u.getAttribute(Vs)],l=e.head.querySelectorAll(`[${Vs}]`);if(r==="m"&&o){const u=e.head.querySelectorAll(`[${Vs}="${r}"]`);u.length&&(l=u,a=f=>n.compareMediaQueries(o.m,f.media))}const s=l.length;let c=s-1;for(;c>=0;){const u=l.item(c);if(a(u)>0)return u.nextSibling;c--}return s>0?l.item(0):t?t.nextSibling:null}function km(e,t){try{e.insertRule(t)}catch{}}let K5=0;const X5=(e,t)=>et?1:0;function Z5(e=typeof document>"u"?void 0:document,t={}){const{unstable_filterCSSRule:r,insertionPoint:n,styleElementAttributes:o,compareMediaQueries:i=X5}=t,a={insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(o),compareMediaQueries:i,id:`d${K5++}`,insertCSSRules(l){for(const s in l){const c=l[s];for(let u=0,f=c.length;u{const e={};return function(r,n){e[r.id]===void 0&&(r.insertCSSRules(n),e[r.id]=!0)}};function Xb(e){return e.reduce(function(t,r){var n=r[0],o=r[1];return t[n]=o,t[o]=n,t},{})}function Q5(e){return typeof e=="boolean"}function J5(e){return typeof e=="function"}function Ma(e){return typeof e=="number"}function Y5(e){return e===null||typeof e>"u"}function eB(e){return e&&typeof e=="object"}function tB(e){return typeof e=="string"}function Gs(e,t){return e.indexOf(t)!==-1}function rB(e){return parseFloat(e)===0?e:e[0]==="-"?e.slice(1):"-"+e}function ms(e,t,r,n){return t+rB(r)+n}function nB(e){var t=e.indexOf(".");if(t===-1)e=100-parseFloat(e)+"%";else{var r=e.length-t-2;e=100-parseFloat(e),e=e.toFixed(r)+"%"}return e}function Zb(e){return e.replace(/ +/g," ").split(" ").map(function(t){return t.trim()}).filter(Boolean).reduce(function(t,r){var n=t.list,o=t.state,i=(r.match(/\(/g)||[]).length,a=(r.match(/\)/g)||[]).length;return o.parensDepth>0?n[n.length-1]=n[n.length-1]+" "+r:n.push(r),o.parensDepth+=i-a,{list:n,state:o}},{list:[],state:{parensDepth:0}}).list}function xm(e){var t=Zb(e);if(t.length<=3||t.length>4)return e;var r=t[0],n=t[1],o=t[2],i=t[3];return[r,i,o,n].join(" ")}function oB(e){return!Q5(e)&&!Y5(e)}function iB(e){for(var t=[],r=0,n=0,o=!1;n0?qt(aa,--mr):0,Wi--,Ge===10&&(Wi=1,nu--),Ge}function Er(){return Ge=mr2||pc(Ge)>3?"":" "}function BB(e){for(;Er();)switch(pc(Ge)){case 0:Do(uy(mr-1),e);break;case 2:Do(Xs(Ge),e);break;default:Do(ru(Ge),e)}return e}function CB(e,t){for(;--t&&Er()&&!(Ge<48||Ge>102||Ge>57&&Ge<65||Ge>70&&Ge<97););return iu(e,Ks()+(t<6&&Ho()==32&&Er()==32))}function Pd(e){for(;Er();)switch(Ge){case e:return mr;case 34:case 39:e!==34&&e!==39&&Pd(Ge);break;case 40:e===41&&Pd(e);break;case 92:Er();break}return mr}function PB(e,t){for(;Er()&&e+Ge!==57;)if(e+Ge===84&&Ho()===47)break;return"/*"+iu(t,mr-1)+"*"+ru(e===47?e:Er())}function uy(e){for(;!pc(Ho());)Er();return iu(e,mr)}function fy(e){return cy(Zs("",null,null,null,[""],e=sy(e),0,[0],e))}function Zs(e,t,r,n,o,i,a,l,s){for(var c=0,u=0,f=a,d=0,h=0,p=0,m=1,y=1,v=1,g=0,b="",k=o,_=i,w=n,S=b;y;)switch(p=g,g=Er()){case 40:if(p!=108&&qt(S,f-1)==58){iy(S+=Qt(Xs(g),"&","&\f"),"&\f",ry(c?l[c-1]:0))!=-1&&(v=-1);break}case 34:case 39:case 91:S+=Xs(g);break;case 9:case 10:case 13:case 32:S+=_B(p);break;case 92:S+=CB(Ks()-1,7);continue;case 47:switch(Ho()){case 42:case 47:Do(EB(PB(Er(),Ks()),t,r,s),s);break;default:S+="/"}break;case 123*m:l[c++]=tn(S)*v;case 125*m:case 59:case 0:switch(g){case 0:case 125:y=0;case 59+u:v==-1&&(S=Qt(S,/\f/g,"")),h>0&&tn(S)-f&&Do(h>32?Bm(S+";",n,r,f-1,s):Bm(Qt(S," ","")+";",n,r,f-2,s),s);break;case 59:S+=";";default:if(Do(w=_m(S,t,r,c,u,o,l,b,k=[],_=[],f,i),i),g===123)if(u===0)Zs(S,t,w,w,k,i,f,l,_);else switch(d===99&&qt(S,3)===110?100:d){case 100:case 108:case 109:case 115:Zs(e,w,w,n&&Do(_m(e,w,w,0,0,o,l,b,o,k=[],f,_),_),o,_,f,l,n?k:_);break;default:Zs(S,w,w,w,[""],_,0,l,_)}}c=u=h=0,m=v=1,b=S="",f=a;break;case 58:f=1+tn(S),h=p;default:if(m<1){if(g==123)--m;else if(g==125&&m++==0&&xB()==125)continue}switch(S+=ru(g),g*m){case 38:v=u>0?1:(S+="\f",-1);break;case 44:l[c++]=(tn(S)-1)*v,v=1;break;case 64:Ho()===45&&(S+=Xs(Er())),d=Ho(),u=f=tn(b=S+=uy(Ks())),g++;break;case 45:p===45&&tn(S)==2&&(m=0)}}return i}function _m(e,t,r,n,o,i,a,l,s,c,u,f){for(var d=o-1,h=o===0?i:[""],p=ay(h),m=0,y=0,v=0;m0?h[g]+" "+b:Qt(b,/&\f/g,h[g])))&&(s[v++]=k);return ou(e,t,r,o===0?tu:l,s,c,u,f)}function EB(e,t,r,n){return ou(e,t,r,ey,ru(kB()),cl(e,2,-2),0,n)}function Bm(e,t,r,n,o){return ou(e,t,r,gp,cl(e,0,n),cl(e,n+1,-1),n,o)}function Ui(e,t){for(var r="",n=0;n{switch(e.type){case tu:if(typeof e.props=="string")return;e.props=e.props.map(t=>t.indexOf(":global(")===-1?t:SB(t).reduce((r,n,o,i)=>{if(n==="")return r;if(n===":"&&i[o+1]==="global"){const a=i[o+2].slice(1,-1)+" ";return r.unshift(a),i[o+1]="",i[o+2]="",r}return r.push(n),r},[]).join(""))}};function gy(e,t,r){switch(yB(e,t)){case 5103:return Ir+"print-"+e+e;case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:return Ir+e+e;case 4215:if(qt(e,9)===102||qt(e,t+1)===116)return Ir+e+e;break;case 4789:return Ga+e+e;case 5349:case 4246:case 6968:return Ir+e+Ga+e+e;case 6187:if(!oy(e,/grab/))return Qt(Qt(Qt(e,/(zoom-|grab)/,Ir+"$1"),/(image-set)/,Ir+"$1"),e,"")+e;case 5495:case 3959:return Qt(e,/(image-set\([^]*)/,Ir+"$1$`$1");case 4095:case 3583:case 4068:case 2532:return Qt(e,/(.+)-inline(.+)/,Ir+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(tn(e)-1-t>6)switch(qt(e,t+1)){case 102:if(qt(e,t+3)===108)return Qt(e,/(.+:)(.+)-([^]+)/,"$1"+Ir+"$2-$3$1"+Ga+(qt(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~iy(e,"stretch")?gy(Qt(e,"stretch","fill-available"),t)+e:e}break}return e}function my(e,t,r,n){if(e.length>-1&&!e.return)switch(e.type){case gp:e.return=gy(e.value,e.length);return;case tu:if(e.length)return wB(e.props,function(o){switch(oy(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ui([of(e,{props:[Qt(o,/:(read-\w+)/,":"+Ga+"$1")]})],n);case"::placeholder":return Ui([of(e,{props:[Qt(o,/:(plac\w+)/,":"+Ir+"input-$1")]}),of(e,{props:[Qt(o,/:(plac\w+)/,":"+Ga+"$1")]})],n)}return""})}}function TB(e){switch(e.type){case"@container":case pB:case mB:case ty:return!0}return!1}const NB=e=>{TB(e)&&Array.isArray(e.children)&&e.children.sort((t,r)=>t.props[0]>r.props[0]?1:-1)};function RB(){}function jB(e,t){const r=[];return Ui(fy(e),hy([zB,t?NB:RB,my,dy,py(n=>r.push(n))])),r}const FB=/,( *[^ &])/g;function DB(e){return"&"+Yb(e.replace(FB,",&$1"))}function Cm(e,t,r){let n=t;return r.length>0&&(n=r.reduceRight((o,i)=>`${DB(i)} { ${o} }`,t)),`${e}{${n}}`}function Pm(e){const{className:t,media:r,layer:n,selectors:o,support:i,property:a,rtlClassName:l,rtlProperty:s,rtlValue:c,value:u,container:f}=e,d=`.${t}`,h=Array.isArray(u)?`${u.map(m=>`${Oa(a)}: ${m}`).join(";")};`:`${Oa(a)}: ${u};`;let p=Cm(d,h,o);if(s&&l){const m=`.${l}`,y=Array.isArray(c)?`${c.map(v=>`${Oa(s)}: ${v}`).join(";")};`:`${Oa(s)}: ${c};`;p+=Cm(m,y,o)}return r&&(p=`@media ${r} { ${p} }`),n&&(p=`@layer ${n} { ${p} }`),i&&(p=`@supports ${i} { ${p} }`),f&&(p=`@container ${f} { ${p} }`),jB(p,!0)}function IB(e){let t="";for(const r in e){const n=e[r];typeof n!="string"&&typeof n!="number"||(t+=Oa(r)+":"+n+";")}return t}function Em(e){let t="";for(const r in e)t+=`${r}{${IB(e[r])}}`;return t}function zm(e,t){const r=`@keyframes ${e} {${t}}`,n=[];return Ui(fy(r),hy([dy,my,py(o=>n.push(o))])),n}function Tm(e,t){return e.length===0?t:`${e} and ${t}`}function AB(e){return e.substr(0,6)==="@media"}function MB(e){return e.substr(0,6)==="@layer"}const OB=/^(:|\[|>|&)/;function LB(e){return OB.test(e)}function qB(e){return e.substr(0,9)==="@supports"}function HB(e){return e.substring(0,10)==="@container"}function WB(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}const Nm={"us-w":"w","us-v":"i",nk:"l",si:"v",cu:"f",ve:"h",ti:"a"};function Rm(e,t,r,n,o){if(r)return"m";if(t||n)return"t";if(o)return"c";if(e.length>0){const i=e[0].trim();if(i.charCodeAt(0)===58)return Nm[i.slice(4,8)]||Nm[i.slice(3,5)]||"d"}return"d"}function vs({container:e,media:t,layer:r,property:n,selector:o,support:i,value:a}){const l=sl(o+e+t+r+i+n+a.trim());return _d+l}function jm(e,t,r,n,o){const i=e+t+r+n+o,a=sl(i),l=a.charCodeAt(0);return l>=48&&l<=57?String.fromCharCode(l+17)+a.slice(1):a}function Fm(e){return e.replace(/>\s+/g,">")}function UB(e,t){const r=JSON.stringify(t,null,2);" ".repeat(2)+""," ".repeat(4)+""," ".repeat(6)+`"${e}": ${r.split(` +`).map((n,o)=>" ".repeat(o===0?0:6)+n).join(` +`)}`," ".repeat(4)+""," ".repeat(2)+"",e.indexOf("&")}function Dm(e,t,r,n){e[t]=n?[r,n]:r}function Im(e,t){return t?[e,t]:e}function af(e,t,r,n,o){var i;let a;t==="m"&&o&&(a={m:o}),(i=e[t])!==null&&i!==void 0||(e[t]=[]),r&&e[t].push(Im(r,a)),n&&e[t].push(Im(n,a))}function Bo(e,t=[],r="",n="",o="",i="",a={},l={},s){for(const c in e){if(q5.hasOwnProperty(c)){e[c];continue}const u=e[c];if(u!=null){if(typeof u=="string"||typeof u=="number"){const f=Fm(t.join("")),d=jm(f,i,r,o,c),h=vs({container:i,media:r,layer:n,value:u.toString(),support:o,selector:f,property:c}),p=s&&{key:c,value:s}||Cd(c,u),m=p.key!==c||p.value!==u,y=m?vs({container:i,value:p.value.toString(),property:p.key,selector:f,media:r,layer:n,support:o}):void 0,v=m?{rtlClassName:y,rtlProperty:p.key,rtlValue:p.value}:void 0,g=Rm(t,n,r,o,i),[b,k]=Pm({className:h,media:r,layer:n,selectors:t,property:c,support:o,container:i,value:u,...v});Dm(a,d,h,y),af(l,g,b,k,r)}else if(c==="animationName"){const f=Array.isArray(u)?u:[u],d=[],h=[];for(const p of f){const m=Em(p),y=Em(Jb(p)),v=_d+sl(m);let g;const b=zm(v,m);let k=[];m===y?g=v:(g=_d+sl(y),k=zm(g,y));for(let _=0;_(w??"").toString()).join(";"),support:o,selector:f,property:c}),p=u.map(w=>Cd(c,w));if(!!p.some(w=>w.key!==p[0].key))continue;const y=p[0].key!==c||p.some((w,S)=>w.value!==u[S]),v=y?vs({container:i,value:p.map(w=>{var S;return((S=w==null?void 0:w.value)!==null&&S!==void 0?S:"").toString()}).join(";"),property:p[0].key,selector:f,layer:n,media:r,support:o}):void 0,g=y?{rtlClassName:v,rtlProperty:p[0].key,rtlValue:p.map(w=>w.value)}:void 0,b=Rm(t,n,r,o,i),[k,_]=Pm({className:h,media:r,layer:n,selectors:t,property:c,support:o,container:i,value:u,...g});Dm(a,d,h,v),af(l,b,k,_,r)}else if(WB(u))if(LB(c))Bo(u,t.concat(Yb(c)),r,n,o,i,a,l);else if(AB(c)){const f=Tm(r,c.slice(6).trim());Bo(u,t,f,n,o,i,a,l)}else if(MB(c)){const f=(n?`${n}.`:"")+c.slice(6).trim();Bo(u,t,r,f,o,i,a,l)}else if(qB(c)){const f=Tm(o,c.slice(9).trim());Bo(u,t,r,n,f,i,a,l)}else if(HB(c)){const f=c.slice(10).trim();Bo(u,t,r,n,o,f,a,l)}else UB(c,u)}}return[a,l]}function $B(e){const t={},r={};for(const n in e){const o=e[n],[i,a]=Bo(o);t[n]=i,Object.keys(a).forEach(l=>{r[l]=(r[l]||[]).concat(a[l])})}return[t,r]}function VB(e,t=pp){const r=t();let n=null,o=null,i=null,a=null;function l(s){const{dir:c,renderer:u}=s;n===null&&([n,o]=$B(e));const f=c==="ltr";return f?i===null&&(i=hc(n,c)):a===null&&(a=hc(n,c)),r(u,o),f?i:a}return l}function vy(e,t,r=pp){const n=r();let o=null,i=null;function a(l){const{dir:s,renderer:c}=l,u=s==="ltr";return u?o===null&&(o=hc(e,s)):i===null&&(i=hc(e,s)),n(c,t),u?o:i}return a}function GB(e,t,r,n=pp){const o=n();function i(a){const{dir:l,renderer:s}=a,c=l==="ltr"?e:t||e;return o(s,Array.isArray(r)?{r}:r),c}return i}const on={border:o5,borderLeft:i5,borderBottom:a5,borderRight:l5,borderTop:s5,borderColor:xd,borderStyle:kd,borderRadius:c5,borderWidth:wd,flex:p5,gap:g5,gridArea:w5,margin:k5,marginBlock:x5,marginInline:S5,padding:_5,paddingBlock:B5,paddingInline:C5,overflow:P5,inset:E5,outline:z5,transition:T5,textDecoration:F5};function KB(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const Am=ll.useInsertionEffect?ll.useInsertionEffect:void 0,mp=()=>{const e={};return function(r,n){if(Am&&KB()){Am(()=>{r.insertCSSRules(n)},[r,n]);return}e[r.id]===void 0&&(r.insertCSSRules(n),e[r.id]=!0)}},XB=x.createContext(Z5());function Wl(){return x.useContext(XB)}const by=x.createContext("ltr"),ZB=({children:e,dir:t})=>x.createElement(by.Provider,{value:t},e);function vp(){return x.useContext(by)}function Ul(e){const t=VB(e,mp);return function(){const n=vp(),o=Wl();return t({dir:n,renderer:o})}}function K(e,t){const r=vy(e,t,mp);return function(){const o=vp(),i=Wl();return r({dir:o,renderer:i})}}function Qe(e,t,r){const n=GB(e,t,r,mp);return function(){const i=vp(),a=Wl();return n({dir:i,renderer:a})}}function QB(e,t){if(t){const r=Object.keys(t).reduce((n,o)=>`${n}--${o}: ${t[o]}; `,"");return`${e} { ${r} }`}return`${e} {}`}const yy=Symbol.for("fui.slotRenderFunction"),au=Symbol.for("fui.slotElementType");function be(e,t){const{defaultProps:r,elementType:n}=t,o=bp(e),i={...r,...o,[au]:n};return o&&typeof o.children=="function"&&(i[yy]=o.children,i.children=r==null?void 0:r.children),i}function Te(e,t){if(!(e===null||e===void 0&&!t.renderByDefault))return be(e,t)}function bp(e){return typeof e=="string"||typeof e=="number"||Array.isArray(e)||x.isValidElement(e)?{children:e}:e}function wy(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&!x.isValidElement(e)}function Mm(e){return!!(e!=null&&e.hasOwnProperty(au))}const Le=(...e)=>{const t={};for(const r of e){const n=Array.isArray(r)?r:Object.keys(r);for(const o of n)t[o]=1}return t},JB=Le(["onAuxClick","onAnimationEnd","onAnimationStart","onCopy","onCut","onPaste","onCompositionEnd","onCompositionStart","onCompositionUpdate","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onInput","onSubmit","onLoad","onError","onKeyDown","onKeyDownCapture","onKeyPress","onKeyUp","onAbort","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEncrypted","onEnded","onLoadedData","onLoadedMetadata","onLoadStart","onPause","onPlay","onPlaying","onProgress","onRateChange","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onVolumeChange","onWaiting","onClick","onClickCapture","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseUpCapture","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel","onPointerCancel","onPointerDown","onPointerEnter","onPointerLeave","onPointerMove","onPointerOut","onPointerOver","onPointerUp","onGotPointerCapture","onLostPointerCapture"]),YB=Le(["accessKey","children","className","contentEditable","dir","draggable","hidden","htmlFor","id","lang","ref","role","style","tabIndex","title","translate","spellCheck","name"]),eC=Le(["itemID","itemProp","itemRef","itemScope","itemType"]),dt=Le(YB,JB,eC),tC=Le(dt,["form"]),ky=Le(dt,["height","loop","muted","preload","src","width"]),rC=Le(ky,["poster"]),nC=Le(dt,["start"]),oC=Le(dt,["value"]),iC=Le(dt,["download","href","hrefLang","media","rel","target","type"]),aC=Le(dt,["dateTime"]),lu=Le(dt,["autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","type","value"]),lC=Le(lu,["accept","alt","autoCapitalize","autoComplete","checked","dirname","form","height","inputMode","list","max","maxLength","min","multiple","pattern","placeholder","readOnly","required","src","step","size","type","value","width"]),sC=Le(lu,["autoCapitalize","cols","dirname","form","maxLength","placeholder","readOnly","required","rows","wrap"]),cC=Le(lu,["form","multiple","required"]),uC=Le(dt,["selected","value"]),fC=Le(dt,["cellPadding","cellSpacing"]),dC=dt,hC=Le(dt,["colSpan","rowSpan","scope"]),pC=Le(dt,["colSpan","headers","rowSpan","scope"]),gC=Le(dt,["span"]),mC=Le(dt,["span"]),vC=Le(dt,["disabled","form"]),bC=Le(dt,["acceptCharset","action","encType","encType","method","noValidate","target"]),yC=Le(dt,["allow","allowFullScreen","allowPaymentRequest","allowTransparency","csp","height","importance","referrerPolicy","sandbox","src","srcDoc","width"]),wC=Le(dt,["alt","crossOrigin","height","src","srcSet","useMap","width"]),kC=Le(dt,["open","onCancel","onClose"]);function xC(e,t,r){const n=Array.isArray(t),o={},i=Object.keys(e);for(const a of i)(!n&&t[a]||n&&t.indexOf(a)>=0||a.indexOf("data-")===0||a.indexOf("aria-")===0)&&(!r||(r==null?void 0:r.indexOf(a))===-1)&&(o[a]=e[a]);return o}const SC={label:tC,audio:ky,video:rC,ol:nC,li:oC,a:iC,button:lu,input:lC,textarea:sC,select:cC,option:uC,table:fC,tr:dC,th:hC,td:pC,colGroup:gC,col:mC,fieldset:vC,form:bC,iframe:yC,img:wC,time:aC,dialog:kC};function xy(e,t,r){const n=e&&SC[e]||dt;return n.as=1,xC(t,n,r)}const _C=({primarySlotTagName:e,props:t,excludedPropNames:r})=>({root:{style:t.style,className:t.className},primary:xy(e,t,[...r||[],"style","className"])}),Re=(e,t,r)=>{var n;return xy((n=t.as)!==null&&n!==void 0?n:e,t,r)};function la(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}function Sy(e,t){const r=x.useRef(void 0),n=x.useCallback((i,a)=>(r.current!==void 0&&t(r.current),r.current=e(i,a),r.current),[t,e]),o=x.useCallback(()=>{r.current!==void 0&&(t(r.current),r.current=void 0)},[t]);return x.useEffect(()=>o,[o]),[n,o]}const BC=e=>(e(0),0),CC=e=>e;function PC(){const e=la();return Sy(e?requestAnimationFrame:BC,e?cancelAnimationFrame:CC)}function EC(e){return typeof e=="function"}const Rn=e=>{const[t,r]=x.useState(()=>e.defaultState===void 0?e.initialState:zC(e.defaultState)?e.defaultState():e.defaultState),n=x.useRef(e.state);x.useEffect(()=>{n.current=e.state},[e.state]);const o=x.useCallback(i=>{EC(i)&&i(n.current)},[]);return TC(e.state)?[e.state,o]:[t,r]};function zC(e){return typeof e=="function"}const TC=e=>{const[t]=x.useState(()=>e!==void 0);return t},NC={current:0},RC=x.createContext(void 0);function jC(){var e;return(e=x.useContext(RC))!==null&&e!==void 0?e:NC}const sn=la()?x.useLayoutEffect:x.useEffect,se=e=>{const t=x.useRef(()=>{throw new Error("Cannot call an event handler while rendering")});return sn(()=>{t.current=e},[e]),x.useCallback((...r)=>{const n=t.current;return n(...r)},[t])};function FC(){const e=x.useRef(!0);return e.current?(e.current=!1,!0):e.current}const _y=x.createContext(void 0);_y.Provider;function DC(){return x.useContext(_y)||""}function _n(e="fui-",t){const r=jC(),n=DC(),o=ll.useId;if(o){const i=o(),a=x.useMemo(()=>i.replace(/:/g,""),[i]);return t||`${n}${e}${a}`}return x.useMemo(()=>t||`${n}${e}${++r.current}`,[n,e,t,r])}function nr(...e){const t=x.useCallback(r=>{t.current=r;for(const n of e)typeof n=="function"?n(r):n&&(n.current=r)},[...e]);return t}const By=x.createContext(void 0),IC=By.Provider,Cy=x.createContext(void 0),AC="",MC=Cy.Provider;function OC(){var e;return(e=x.useContext(Cy))!==null&&e!==void 0?e:AC}const LC=x.createContext(void 0),qC=LC.Provider,Py=x.createContext(void 0),HC={targetDocument:typeof document=="object"?document:void 0,dir:"ltr"},WC=Py.Provider;function ht(){var e;return(e=x.useContext(Py))!==null&&e!==void 0?e:HC}const Ey=x.createContext(void 0),UC=Ey.Provider;function zy(){var e;return(e=x.useContext(Ey))!==null&&e!==void 0?e:{}}const yp=x.createContext(void 0),$C=()=>{},VC=yp.Provider,De=e=>{var t,r;return(r=(t=x.useContext(yp))===null||t===void 0?void 0:t[e])!==null&&r!==void 0?r:$C},Ty=x.createContext(void 0);Ty.Provider;function GC(){return x.useContext(Ty)}const Ny=(e,t)=>!!(e!=null&&e.contains(t)),Ry=e=>{const{targetDocument:t}=ht(),r=t==null?void 0:t.defaultView,{refs:n,callback:o,element:i,disabled:a,disabledFocusOnIframe:l,contains:s=Ny}=e,c=x.useRef(void 0);XC({element:i,disabled:l||a,callback:o,refs:n,contains:s});const u=x.useRef(!1),f=se(h=>{if(u.current){u.current=!1;return}const p=h.composedPath()[0];n.every(y=>!s(y.current||null,p))&&!a&&o(h)}),d=se(h=>{u.current=n.some(p=>s(p.current||null,h.target))});x.useEffect(()=>{if(a)return;let h=KC(r);const p=m=>{if(m===h){h=void 0;return}f(m)};return i==null||i.addEventListener("click",p,!0),i==null||i.addEventListener("touchstart",p,!0),i==null||i.addEventListener("contextmenu",p,!0),i==null||i.addEventListener("mousedown",d,!0),c.current=r==null?void 0:r.setTimeout(()=>{h=void 0},1),()=>{i==null||i.removeEventListener("click",p,!0),i==null||i.removeEventListener("touchstart",p,!0),i==null||i.removeEventListener("contextmenu",p,!0),i==null||i.removeEventListener("mousedown",d,!0),r==null||r.clearTimeout(c.current),h=void 0}},[f,i,a,d,r])},KC=e=>{if(e){var t,r;if(typeof e.window=="object"&&e.window===e)return e.event;var n;return(n=(r=e.ownerDocument)===null||r===void 0||(t=r.defaultView)===null||t===void 0?void 0:t.event)!==null&&n!==void 0?n:void 0}},lf="fuiframefocus",XC=e=>{const{disabled:t,element:r,callback:n,contains:o=Ny,pollDuration:i=1e3,refs:a}=e,l=x.useRef(),s=se(c=>{a.every(f=>!o(f.current||null,c.target))&&!t&&n(c)});x.useEffect(()=>{if(!t)return r==null||r.addEventListener(lf,s,!0),()=>{r==null||r.removeEventListener(lf,s,!0)}},[r,t,s]),x.useEffect(()=>{var c;if(!t)return l.current=r==null||(c=r.defaultView)===null||c===void 0?void 0:c.setInterval(()=>{const u=r==null?void 0:r.activeElement;if((u==null?void 0:u.tagName)==="IFRAME"||(u==null?void 0:u.tagName)==="WEBVIEW"){const f=new CustomEvent(lf,{bubbles:!0});u.dispatchEvent(f)}},i),()=>{var u;r==null||(u=r.defaultView)===null||u===void 0||u.clearTimeout(l.current)}},[r,t,i])},jy=e=>{const{refs:t,callback:r,element:n,disabled:o,contains:i}=e,a=se(l=>{const s=i||((f,d)=>!!(f!=null&&f.contains(d))),c=l.composedPath()[0];t.every(f=>!s(f.current||null,c))&&!o&&r(l)});x.useEffect(()=>{if(!o)return n==null||n.addEventListener("wheel",a),n==null||n.addEventListener("touchmove",a),()=>{n==null||n.removeEventListener("wheel",a),n==null||n.removeEventListener("touchmove",a)}},[a,n,o])};function Om(){return Sy(setTimeout,clearTimeout)}function Et(e,t){return(...r)=>{e==null||e(...r),t==null||t(...r)}}function Ko(e,t){var r;const n=e;var o;return!!(!(n==null||(r=n.ownerDocument)===null||r===void 0)&&r.defaultView&&n instanceof n.ownerDocument.defaultView[(o=t==null?void 0:t.constructorName)!==null&&o!==void 0?o:"HTMLElement"])}function Fy(e){return!!e.type.isFluentTriggerComponent}function Dy(e,t){return typeof e=="function"?e(t):e?Iy(e,t):e||null}function Iy(e,t){if(!x.isValidElement(e)||e.type===x.Fragment)throw new Error("A trigger element must be a single element for this component. Please ensure that you're not using React Fragments.");if(Fy(e)){const r=Iy(e.props.children,t);return x.cloneElement(e,void 0,r)}else return x.cloneElement(e,t)}function wp(e){return x.isValidElement(e)?Fy(e)?wp(e.props.children):e:null}function ZC(e){return e&&!!e._virtual}function QC(e){return ZC(e)&&e._virtual.parent||null}function Ay(e,t={}){if(!e)return null;if(!t.skipVirtual){const n=QC(e);if(n)return n}const r=e.parentNode;return r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}function ul(e,t){if(!e||!t)return!1;if(e===t)return!0;{const r=new WeakSet;for(;t;){const n=Ay(t,{skipVirtual:r.has(t)});if(r.add(t),n===e)return!0;t=n}}return!1}function Lm(e,t){if(!e)return;const r=e;r._virtual||(r._virtual={}),r._virtual.parent=t}function JC(e,t){return{...t,[au]:e}}function My(e,t){return function(n,o,i,a,l){return Mm(o)?t(JC(n,o),null,i,a,l):Mm(n)?t(n,o,i,a,l):e(n,o,i,a,l)}}function Oy(e){const{as:t,[au]:r,[yy]:n,...o}=e,i=o,a=typeof r=="string"?t??r:r;return typeof a!="string"&&t&&(i.as=t),{elementType:a,props:i,renderFunction:n}}const Wo=t5,YC=(e,t,r)=>{const{elementType:n,renderFunction:o,props:i}=Oy(e),a={...i,...t};return o?Wo.jsx(x.Fragment,{children:o(n,a)},r):Wo.jsx(n,a,r)},e3=(e,t,r)=>{const{elementType:n,renderFunction:o,props:i}=Oy(e),a={...i,...t};return o?Wo.jsx(x.Fragment,{children:o(n,{...a,children:Wo.jsxs(x.Fragment,{children:a.children},void 0)})},r):Wo.jsxs(n,a,r)},U=My(Wo.jsx,YC),At=My(Wo.jsxs,e3),Ed=x.createContext(void 0),t3={},r3=Ed.Provider,n3=()=>x.useContext(Ed)?x.useContext(Ed):t3,o3=K({root:{mc9l5x:"f1w7gpdv",Bg96gwp:"fez10in",ycbfsm:"fg4l7m0"},rtl:{Bz10aip:"f13rod7r"}},{d:[".f1w7gpdv{display:inline;}",".fez10in{line-height:0;}",".f13rod7r{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}"],t:["@media (forced-colors: active){.fg4l7m0{forced-color-adjust:auto;}}"]}),i3=(e,t)=>{const{title:r,primaryFill:n="currentColor",...o}=e,i={...o,title:void 0,fill:n},a=o3(),l=n3();return i.className=G(a.root,(t==null?void 0:t.flipInRtl)&&(l==null?void 0:l.textDirection)==="rtl"&&a.rtl,i.className),r&&(i["aria-label"]=r),!i["aria-label"]&&!i["aria-labelledby"]?i["aria-hidden"]=!0:i.role="img",i},Y=(e,t,r,n)=>{const o=t==="1em"?"20":t,i=x.forwardRef((a,l)=>{const s={...i3(a,{flipInRtl:n==null?void 0:n.flipInRtl}),ref:l,width:t,height:t,viewBox:`0 0 ${o} ${o}`,xmlns:"http://www.w3.org/2000/svg"};return x.createElement("svg",s,...r.map(c=>x.createElement("path",{d:c,fill:s.fill})))});return i.displayName=e,i},a3=Y("AddSquareRegular","1em",["M6 3a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3H6ZM4 6c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6Zm6.5.5a.5.5 0 0 0-1 0v3h-3a.5.5 0 0 0 0 1h3v3a.5.5 0 1 0 1 0v-3h3a.5.5 0 1 0 0-1h-3v-3Z"]),sf=Y("BotRegular","1em",["M12 5.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-5 1a1 1 0 1 1 2 0 1 1 0 0 1-2 0Zm3.5-4a.5.5 0 0 0-1 0V3h-3C5.67 3 5 3.67 5 4.5v4c0 .83.67 1.5 1.5 1.5h7c.83 0 1.5-.67 1.5-1.5v-4c0-.83-.67-1.5-1.5-1.5h-3v-.5ZM6.5 4h7c.28 0 .5.22.5.5v4a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5v-4c0-.28.22-.5.5-.5Zm3.75 14c2.62-.04 4.2-.6 5.12-1.44A3.52 3.52 0 0 0 16.5 14h.01v-.69c0-1-.81-1.8-1.8-1.8h-3.2v-.01H5.3c-.99 0-1.8.81-1.8 1.81v.7c.04.77.25 1.75 1.13 2.55.93.84 2.5 1.4 5.12 1.44h.5Zm-4.94-5.5h9.38c.45 0 .81.37.81.81v.44c0 .69-.13 1.46-.8 2.07C14 16.45 12.66 17 10 17s-4.01-.55-4.7-1.18a2.63 2.63 0 0 1-.8-2.07v-.44c0-.44.36-.8.8-.8Z"]),l3=Y("ChevronDownRegular","1em",["M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z"]),s3=Y("ChevronLeftFilled","1em",["M12.27 15.8a.75.75 0 0 1-1.06-.03l-5-5.25a.75.75 0 0 1 0-1.04l5-5.25a.75.75 0 1 1 1.08 1.04L7.8 10l4.5 4.73c.29.3.28.78-.02 1.06Z"]),c3=Y("ChevronLeftRegular","1em",["M12.35 15.85a.5.5 0 0 1-.7 0L6.16 10.4a.55.55 0 0 1 0-.78l5.49-5.46a.5.5 0 1 1 .7.7L7.2 10l5.16 5.15c.2.2.2.5 0 .7Z"]),u3=Y("ChevronRightFilled","1em",["M7.73 4.2a.75.75 0 0 1 1.06.03l5 5.25c.28.3.28.75 0 1.04l-5 5.25a.75.75 0 1 1-1.08-1.04L12.2 10l-4.5-4.73a.75.75 0 0 1 .02-1.06Z"]),Ly=Y("ChevronRightRegular","1em",["M7.65 4.15c.2-.2.5-.2.7 0l5.49 5.46c.21.22.21.57 0 .78l-5.49 5.46a.5.5 0 0 1-.7-.7L12.8 10 7.65 4.85a.5.5 0 0 1 0-.7Z"]),f3=Y("PersonRegular","1em",["M10 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM7 6a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm-2 5a2 2 0 0 0-2 2c0 1.7.83 2.97 2.13 3.8A9.14 9.14 0 0 0 10 18c1.85 0 3.58-.39 4.87-1.2A4.35 4.35 0 0 0 17 13a2 2 0 0 0-2-2H5Zm-1 2a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1c0 1.3-.62 2.28-1.67 2.95A8.16 8.16 0 0 1 10 17a8.16 8.16 0 0 1-4.33-1.05A3.36 3.36 0 0 1 4 13Z"]),d3=Y("SendRegular","1em",["M2.18 2.11a.5.5 0 0 1 .54-.06l15 7.5a.5.5 0 0 1 0 .9l-15 7.5a.5.5 0 0 1-.7-.58L3.98 10 2.02 2.63a.5.5 0 0 1 .16-.52Zm2.7 8.39-1.61 6.06L16.38 10 3.27 3.44 4.88 9.5h6.62a.5.5 0 1 1 0 1H4.88Z"],{flipInRtl:!0}),h3=Y("ThumbDislikeRegular","1em",["M10.05 17.7c.34.98 1.63 1.43 2.43.6.17-.17.33-.36.44-.52.32-.48.45-1.12.5-1.73.05-.63.02-1.3-.05-1.92-.06-.6-.16-1.17-.24-1.58v-.05H14a3 3 0 0 0 2.95-3.54l-.69-3.76a4.5 4.5 0 0 0-5.6-3.54L5.06 3.2c-.92.25-1.62 1-1.8 1.92l-.35 1.77c-.28 1.39.78 2.56 1.9 3 .33.13.62.3.85.5 1.7 1.5 2.32 2.72 3.38 4.84.36.71.72 1.68 1 2.49Zm1.97-5.58v.04a14.2 14.2 0 0 1 .36 2.08c.06.58.09 1.18.04 1.73-.04.55-.15.98-.33 1.25-.06.1-.18.22-.33.39-.2.2-.63.16-.76-.23-.29-.82-.67-1.83-1.05-2.6-1.07-2.14-1.76-3.5-3.62-5.15-.34-.3-.74-.52-1.13-.68-.88-.34-1.45-1.14-1.3-1.87l.35-1.77c.11-.56.53-1 1.08-1.15l5.6-1.53a3.5 3.5 0 0 1 4.36 2.75l.68 3.76a2 2 0 0 1-1.96 2.36h-1.5a.5.5 0 0 0-.5.62Z"]),p3=Y("ThumbLikeRegular","1em",["M10.05 2.3c.34-.98 1.63-1.43 2.43-.6.17.17.33.36.44.52.32.48.45 1.12.5 1.73.05.63.02 1.3-.05 1.91-.06.62-.16 1.18-.24 1.59v.05H14a3 3 0 0 1 2.95 3.54l-.69 3.76a4.5 4.5 0 0 1-5.6 3.53l-5.6-1.52a2.5 2.5 0 0 1-1.8-1.92l-.35-1.77c-.28-1.39.78-2.56 1.9-3 .33-.13.62-.3.85-.5 1.7-1.5 2.32-2.72 3.38-4.84.36-.71.72-1.68 1-2.49Zm1.97 5.58v-.04a13.7 13.7 0 0 0 .13-.58c.08-.4.17-.93.23-1.5.06-.58.09-1.18.04-1.73a2.73 2.73 0 0 0-.33-1.25 3.26 3.26 0 0 0-.33-.39c-.2-.2-.63-.16-.76.23-.29.82-.67 1.83-1.05 2.6-1.07 2.14-1.76 3.5-3.62 5.15-.34.3-.74.52-1.13.68-.88.34-1.45 1.14-1.3 1.87l.35 1.77c.11.56.53 1 1.08 1.15l5.6 1.53c1.98.54 4-.73 4.36-2.75l.68-3.76a2 2 0 0 0-1.96-2.36h-1.5a.5.5 0 0 1-.5-.62Z"]),g3=Y("ArrowReply16Regular","16",["M6.35 3.65c.2.2.2.5 0 .7L3.71 7H8.5a5.5 5.5 0 0 1 5.5 5.5.5.5 0 0 1-1 0A4.5 4.5 0 0 0 8.5 8H3.7l2.65 2.65a.5.5 0 0 1-.7.7l-3.5-3.5a.5.5 0 0 1 0-.7l3.5-3.5c.2-.2.5-.2.7 0Z"],{flipInRtl:!0}),m3=Y("ChatBubblesQuestion24Regular","24",["M8.14 6.3a2.83 2.83 0 0 1 2.99.28c.52.42.87 1.07.87 1.92 0 .97-.69 1.5-1.08 1.8l-.08.07c-.43.33-.6.51-.6.88a.75.75 0 1 1-1.5 0c0-1.13.72-1.7 1.17-2.06.51-.4.59-.5.59-.69 0-.4-.15-.62-.32-.76-.2-.16-.46-.24-.68-.24-.3 0-.5.05-.65.13-.14.08-.3.21-.44.48a.75.75 0 0 1-1.32-.71c.26-.49.61-.86 1.05-1.1ZM9.5 15a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm0-12a7.5 7.5 0 0 0-6.8 10.67l-.72 2.84c-.24.92.59 1.75 1.5 1.53l2.93-.7A7.5 7.5 0 1 0 9.5 3Zm-6 7.5a6 6 0 1 1 3.33 5.37l-.24-.12-.27.07-2.79.66.7-2.7.06-.28-.13-.25a5.97 5.97 0 0 1-.66-2.75Zm11 10.5a7.47 7.47 0 0 1-5.1-2 8.28 8.28 0 0 0 2.18-.26 5.97 5.97 0 0 0 5.59.13l.24-.12.27.07c.92.22 1.96.44 2.74.6-.18-.74-.42-1.75-.65-2.64l-.07-.28.14-.25a5.97 5.97 0 0 0-2.09-7.8 8.44 8.44 0 0 0-.8-2.04 7.5 7.5 0 0 1 4.35 10.26l.67 2.8c.2.9-.58 1.7-1.47 1.5-.73-.15-1.87-.39-2.91-.63-.95.42-2 .66-3.1.66Z"]),v3=Y("Dismiss24Regular","24",["m4.4 4.55.07-.08a.75.75 0 0 1 .98-.07l.08.07L12 10.94l6.47-6.47a.75.75 0 1 1 1.06 1.06L13.06 12l6.47 6.47c.27.27.3.68.07.98l-.07.08a.75.75 0 0 1-.98.07l-.08-.07L12 13.06l-6.47 6.47a.75.75 0 0 1-1.06-1.06L10.94 12 4.47 5.53a.75.75 0 0 1-.07-.98l.07-.08-.07.08Z"]),b3=Y("Library16Regular","16",["M1 3.25C1 2.55 1.56 2 2.25 2h.5C3.44 2 4 2.56 4 3.25v9.5c0 .69-.56 1.24-1.25 1.24h-.5C1.55 14 1 13.44 1 12.74v-9.5ZM2.25 3a.25.25 0 0 0-.25.25v9.5c0 .13.11.24.25.24h.5c.14 0 .25-.1.25-.25v-9.5A.25.25 0 0 0 2.75 3h-.5ZM5 3.25C5 2.55 5.56 2 6.25 2h.5c.68 0 1.24.56 1.24 1.25v9.5c0 .69-.56 1.24-1.24 1.24h-.5C5.55 14 5 13.44 5 12.74v-9.5ZM6.25 3a.25.25 0 0 0-.25.25v9.5c0 .13.1.24.25.24h.5c.13 0 .24-.1.24-.25v-9.5A.25.25 0 0 0 6.75 3h-.5Zm5.72 1.78a1.25 1.25 0 0 0-1.57-.72l-.58.2c-.67.24-1.01 1-.75 1.65l2.94 7.3c.25.63.94.94 1.57.72l.58-.2c.68-.24 1.02-.99.75-1.65l-2.94-7.3ZM10.73 5c.13-.05.27.02.32.14l2.93 7.3a.25.25 0 0 1-.15.33l-.58.2a.25.25 0 0 1-.31-.14L10 5.54a.25.25 0 0 1 .15-.33l.58-.2Z"]),y3=Y("Open24Regular","24",["M6.25 4.5c-.97 0-1.75.78-1.75 1.75v11.5c0 .97.78 1.75 1.75 1.75h11.5c.97 0 1.75-.78 1.75-1.75v-4a.75.75 0 0 1 1.5 0v4c0 1.8-1.46 3.25-3.25 3.25H6.25A3.25 3.25 0 0 1 3 17.75V6.25C3 4.45 4.46 3 6.25 3h4a.75.75 0 0 1 0 1.5h-4ZM13 3.75c0-.41.34-.75.75-.75h6.5c.41 0 .75.34.75.75v6.5a.75.75 0 0 1-1.5 0V5.56l-5.22 5.22a.75.75 0 0 1-1.06-1.06l5.22-5.22h-4.69a.75.75 0 0 1-.75-.75Z"]),qm=Y("PresenceAvailable10Filled","10",["M5 10A5 5 0 1 0 5 0a5 5 0 0 0 0 10Zm2.1-5.9L4.85 6.35a.5.5 0 0 1-.7 0l-1-1a.5.5 0 0 1 .7-.7l.65.64 1.9-1.9a.5.5 0 0 1 .7.71Z"]),Hm=Y("PresenceAvailable10Regular","10",["M5 0a5 5 0 1 0 0 10A5 5 0 0 0 5 0ZM1 5a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm6.1-1.6c.2.2.2.5 0 .7L4.85 6.35a.5.5 0 0 1-.7 0l-1-1a.5.5 0 1 1 .7-.7l.65.64 1.9-1.9c.2-.19.5-.19.7 0Z"]),w3=Y("PresenceAvailable12Filled","12",["M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm2.53-6.72L5.78 8.03c-.3.3-.77.3-1.06 0l-1-1a.75.75 0 0 1 1.06-1.06l.47.47 2.22-2.22a.75.75 0 0 1 1.06 1.06Z"]),k3=Y("PresenceAvailable12Regular","12",["M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0ZM1.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0Zm7.03-1.78c.3.3.3.77 0 1.06L5.78 8.03c-.3.3-.77.3-1.06 0l-1-1a.75.75 0 0 1 1.06-1.06l.47.47 2.22-2.22c.3-.3.77-.3 1.06 0Z"]),x3=Y("PresenceAvailable16Filled","16",["M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16Zm3.7-9.3-4 4a1 1 0 0 1-1.41 0l-2-2a1 1 0 1 1 1.42-1.4L7 8.58l3.3-3.3a1 1 0 0 1 1.4 1.42Z"]),S3=Y("PresenceAvailable16Regular","16",["M11.7 6.7a1 1 0 0 0-1.4-1.4L7 8.58l-1.3-1.3a1 1 0 0 0-1.4 1.42l2 2a1 1 0 0 0 1.4 0l4-4ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]),Wm=Y("PresenceAvailable20Filled","20",["M10 20a10 10 0 1 0 0-20 10 10 0 0 0 0 20Zm4.2-11.8-4.5 4.5a1 1 0 0 1-1.4 0l-2-2a1 1 0 1 1 1.4-1.4L9 10.58l3.8-3.8a1 1 0 1 1 1.4 1.42Z"]),Um=Y("PresenceAvailable20Regular","20",["M10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 10a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm12.2-3.2a1 1 0 0 1 0 1.4l-4.5 4.5a1 1 0 0 1-1.4 0l-2-2a1 1 0 0 1 1.4-1.4L9 10.58l3.8-3.8a1 1 0 0 1 1.4 0Z"]),$m=Y("PresenceAway10Filled","10",["M5 10A5 5 0 1 0 5 0a5 5 0 0 0 0 10Zm0-7v1.8l1.35 1.35a.5.5 0 1 1-.7.7l-1.5-1.5A.5.5 0 0 1 4 5V3a.5.5 0 0 1 1 0Z"]),_3=Y("PresenceAway12Filled","12",["M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12Zm.5-8.75v2.4l1.49 1.28A.75.75 0 1 1 7 8.07l-1.75-1.5A.75.75 0 0 1 5 6V3.25a.75.75 0 0 1 1.5 0Z"]),B3=Y("PresenceAway16Filled","16",["M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16Zm.5-11.5v3.02l2.12 1.7a1 1 0 1 1-1.24 1.56l-2.5-2A1 1 0 0 1 6.5 8V4.5a1 1 0 0 1 2 0Z"]),Vm=Y("PresenceAway20Filled","20",["M10 20a10 10 0 1 0 0-20 10 10 0 0 0 0 20Zm0-14V9.6l2.7 2.7a1 1 0 0 1-1.4 1.42l-3-3A1 1 0 0 1 8 10V6a1 1 0 1 1 2 0Z"]),Gm=Y("PresenceBlocked10Regular","10",["M10 5A5 5 0 1 0 0 5a5 5 0 0 0 10 0ZM9 5a4 4 0 0 1-6.45 3.16l5.61-5.61C8.69 3.22 9 4.08 9 5ZM7.45 1.84 1.84 7.45a4 4 0 0 1 5.61-5.61Z"]),C3=Y("PresenceBlocked12Regular","12",["M12 6A6 6 0 1 1 0 6a6 6 0 0 1 12 0Zm-1.5 0c0-.97-.3-1.87-.83-2.6L3.39 9.66A4.5 4.5 0 0 0 10.5 6ZM8.6 2.33a4.5 4.5 0 0 0-6.28 6.28l6.29-6.28Z"]),P3=Y("PresenceBlocked16Regular","16",["M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-2 0c0-1.3-.41-2.5-1.1-3.48L4.51 12.9A6 6 0 0 0 14 8Zm-2.52-4.9a6 6 0 0 0-8.37 8.37l8.37-8.36Z"]),Km=Y("PresenceBlocked20Regular","20",["M20 10a10 10 0 1 0-20 0 10 10 0 0 0 20 0Zm-2 0a8 8 0 0 1-12.9 6.32L16.31 5.09A7.97 7.97 0 0 1 18 10Zm-3.1-6.32L3.69 14.91A8 8 0 0 1 14.91 3.68Z"]),Xm=Y("PresenceBusy10Filled","10",["M10 5A5 5 0 1 1 0 5a5 5 0 0 1 10 0Z"]),E3=Y("PresenceBusy12Filled","12",["M12 6A6 6 0 1 1 0 6a6 6 0 0 1 12 0Z"]),z3=Y("PresenceBusy16Filled","16",["M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Z"]),Zm=Y("PresenceBusy20Filled","20",["M20 10a10 10 0 1 1-20 0 10 10 0 0 1 20 0Z"]),Qm=Y("PresenceDnd10Filled","10",["M5 10A5 5 0 1 0 5 0a5 5 0 0 0 0 10ZM3.5 4.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1Z"]),Jm=Y("PresenceDnd10Regular","10",["M5 0a5 5 0 1 0 0 10A5 5 0 0 0 5 0ZM1 5a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm2 0c0-.28.22-.5.5-.5h3a.5.5 0 0 1 0 1h-3A.5.5 0 0 1 3 5Z"]),T3=Y("PresenceDnd12Filled","12",["M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12ZM3.75 5.25h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5Z"]),N3=Y("PresenceDnd12Regular","12",["M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0ZM1.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM3 6c0-.41.34-.75.75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 3 6Z"]),R3=Y("PresenceDnd16Filled","16",["M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16ZM5.25 7h5.5a1 1 0 1 1 0 2h-5.5a1 1 0 1 1 0-2Z"]),j3=Y("PresenceDnd16Regular","16",["M5.25 7a1 1 0 0 0 0 2h5.5a1 1 0 1 0 0-2h-5.5ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]),Ym=Y("PresenceDnd20Filled","20",["M10 20a10 10 0 1 0 0-20 10 10 0 0 0 0 20ZM7 9h6a1 1 0 1 1 0 2H7a1 1 0 1 1 0-2Z"]),ev=Y("PresenceDnd20Regular","20",["M10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 10a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm4 0a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1Z"]),tv=Y("PresenceOffline10Regular","10",["M6.85 3.15c.2.2.2.5 0 .7L5.71 5l1.14 1.15a.5.5 0 1 1-.7.7L5 5.71 3.85 6.85a.5.5 0 1 1-.7-.7L4.29 5 3.15 3.85a.5.5 0 1 1 .7-.7L5 4.29l1.15-1.14c.2-.2.5-.2.7 0ZM0 5a5 5 0 1 1 10 0A5 5 0 0 1 0 5Zm5-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z"]),F3=Y("PresenceOffline12Regular","12",["M8.03 3.97c.3.3.3.77 0 1.06L7.06 6l.97.97a.75.75 0 0 1-1.06 1.06L6 7.06l-.97.97a.75.75 0 0 1-1.06-1.06L4.94 6l-.97-.97a.75.75 0 0 1 1.06-1.06l.97.97.97-.97c.3-.3.77-.3 1.06 0ZM0 6a6 6 0 1 1 12 0A6 6 0 0 1 0 6Zm6-4.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9Z"]),D3=Y("PresenceOffline16Regular","16",["M10.7 5.3a1 1 0 0 1 0 1.4L9.42 8l1.3 1.3a1 1 0 0 1-1.42 1.4L8 9.42l-1.3 1.3a1 1 0 0 1-1.4-1.42L6.58 8l-1.3-1.3a1 1 0 0 1 1.42-1.4L8 6.58l1.3-1.3a1 1 0 0 1 1.4 0ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]),rv=Y("PresenceOffline20Regular","20",["M13.7 6.3a1 1 0 0 1 0 1.4L11.42 10l2.3 2.3a1 1 0 0 1-1.42 1.4L10 11.42l-2.3 2.3a1 1 0 0 1-1.4-1.42L8.58 10l-2.3-2.3a1 1 0 0 1 1.42-1.4L10 8.58l2.3-2.3a1 1 0 0 1 1.4 0ZM0 10a10 10 0 1 1 20 0 10 10 0 0 1-20 0Zm10-8a8 8 0 1 0 0 16 8 8 0 0 0 0-16Z"]),nv=Y("PresenceOof10Regular","10",["M5.35 3.85a.5.5 0 1 0-.7-.7l-1.5 1.5a.5.5 0 0 0 0 .7l1.5 1.5a.5.5 0 1 0 .7-.7L4.7 5.5h1.8a.5.5 0 1 0 0-1H4.7l.65-.65ZM5 0a5 5 0 1 0 0 10A5 5 0 0 0 5 0ZM1 5a4 4 0 1 1 8 0 4 4 0 0 1-8 0Z"]),I3=Y("PresenceOof12Regular","12",["M6.28 4.53a.75.75 0 0 0-1.06-1.06l-2 2c-.3.3-.3.77 0 1.06l2 2a.75.75 0 0 0 1.06-1.06l-.72-.72h2.69a.75.75 0 1 0 0-1.5h-2.7l.73-.72ZM6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0ZM1.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0Z"]),A3=Y("PresenceOof16Regular","16",["M8.2 6.2a1 1 0 1 0-1.4-1.4L4.3 7.3a1 1 0 0 0 0 1.4l2.5 2.5a1 1 0 0 0 1.4-1.4L7.42 9H11a1 1 0 1 0 0-2H7.41l.8-.8ZM8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0ZM2 8a6 6 0 1 1 12 0A6 6 0 0 1 2 8Z"]),ov=Y("PresenceOof20Regular","20",["M10.7 7.7A1 1 0 1 0 9.28 6.3l-3 3a1 1 0 0 0 0 1.41l3 3a1 1 0 1 0 1.42-1.41l-1.3-1.3H13a1 1 0 1 0 0-2H9.4l1.3-1.29ZM10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 10a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"]),iv=Y("PresenceUnknown10Regular","10",["M5 1a4 4 0 1 0 0 8 4 4 0 0 0 0-8ZM0 5a5 5 0 1 1 10 0A5 5 0 0 1 0 5Z"]),M3=Y("PresenceUnknown12Regular","12",["M6 1.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9ZM0 6a6 6 0 1 1 12 0A6 6 0 0 1 0 6Z"]),O3=Y("PresenceUnknown16Regular","16",["M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2ZM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Z"]),av=Y("PresenceUnknown20Regular","20",["M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16ZM0 10a10 10 0 1 1 20 0 10 10 0 0 1-20 0Z"]),L3=Y("ThumbDislike24Filled","24",["M15.06 14.18c.46 1.43.69 2.68.69 3.76 0 2.4-.94 4.24-2.5 4.24-.8 0-1.08-.45-1.38-1.54l-.27-1.02a264.6 264.6 0 0 0-.56-1.9l-2.87-4.49a5.88 5.88 0 0 0-2.85-2.32l-1.26-.48a1.75 1.75 0 0 1-1.09-1.97l.69-3.54c.16-.86.82-1.55 1.67-1.76l8.25-2.02a4.75 4.75 0 0 1 5.73 3.44l1.58 6.17a2.75 2.75 0 0 1-2.67 3.43h-3.16Z"]),q3=Y("ThumbLike24Filled","24",["M15.06 9c.46-1.42.69-2.67.69-3.75 0-2.4-.94-4.25-2.5-4.25-.85 0-1.11.5-1.44 1.75a64.9 64.9 0 0 1-.77 2.72L8.17 9.95a5.88 5.88 0 0 1-2.85 2.33l-1.26.48c-.8.3-1.25 1.13-1.09 1.97l.69 3.54c.16.86.82 1.54 1.67 1.75l8.25 2.03a4.75 4.75 0 0 0 5.73-3.44l1.58-6.18A2.75 2.75 0 0 0 18.22 9h-3.16Z"]),H3="fui-Icon-filled",W3="fui-Icon-regular",U3=K({root:{mc9l5x:"fjseox"},visible:{mc9l5x:"f1w7gpdv"}},{d:[".fjseox{display:none;}",".f1w7gpdv{display:inline;}"]}),qy=(e,t)=>{const r=n=>{const{className:o,filled:i,...a}=n,l=U3();return x.createElement(x.Fragment,null,x.createElement(e,Object.assign({},a,{className:G(l.root,i&&l.visible,H3,o)})),x.createElement(t,Object.assign({},a,{className:G(l.root,!i&&l.visible,W3,o)})))};return r.displayName="CompoundIcon",r},$3=(e,t)=>U(WC,{value:t.provider,children:U(IC,{value:t.theme,children:U(MC,{value:t.themeClassName,children:U(VC,{value:t.customStyleHooks_unstable,children:U(qC,{value:t.tooltip,children:U(ZB,{dir:t.textDirection,children:U(r3,{value:t.iconDirection,children:U(UC,{value:t.overrides_unstable,children:At(e.root,{children:[la()?null:U("style",{dangerouslySetInnerHTML:{__html:e.serverStyleProps.cssRule},...e.serverStyleProps.attributes}),e.root.children]})})})})})})})})});var V3=typeof WeakRef<"u",lv=class{constructor(e){V3&&typeof e=="object"?this._weakRef=new WeakRef(e):this._instance=e}deref(){var e,t;let r;return this._weakRef?(r=(e=this._weakRef)==null?void 0:e.deref(),r||delete this._weakRef):(r=this._instance,(t=r==null?void 0:r.isDisposed)!=null&&t.call(r)&&delete this._instance),r}},Vr="keyborg:focusin",fl="keyborg:focusout";function G3(e){const t=e.HTMLElement,r=t.prototype.focus;let n=!1;return t.prototype.focus=function(){n=!0},e.document.createElement("button").focus(),t.prototype.focus=r,n}var cf=!1;function cn(e){const t=e.focus;t.__keyborgNativeFocus?t.__keyborgNativeFocus.call(e):e.focus()}function K3(e){const t=e;cf||(cf=G3(t));const r=t.HTMLElement.prototype.focus;if(r.__keyborgNativeFocus)return;t.HTMLElement.prototype.focus=s;const n=new Set,o=u=>{const f=u.target;if(!f)return;const d=new CustomEvent(fl,{cancelable:!0,bubbles:!0,composed:!0,detail:{originalEvent:u}});f.dispatchEvent(d)},i=u=>{const f=u.target;if(!f)return;let d=u.composedPath()[0];const h=new Set;for(;d;)d.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(h.add(d),d=d.host):d=d.parentNode;for(const p of n){const m=p.deref();(!m||!h.has(m))&&(n.delete(p),m&&(m.removeEventListener("focusin",i,!0),m.removeEventListener("focusout",o,!0)))}a(f,u.relatedTarget||void 0)},a=(u,f,d)=>{var h;const p=u.shadowRoot;if(p){for(const v of n)if(v.deref()===p)return;p.addEventListener("focusin",i,!0),p.addEventListener("focusout",o,!0),n.add(new lv(p));return}const m={relatedTarget:f,originalEvent:d},y=new CustomEvent(Vr,{cancelable:!0,bubbles:!0,composed:!0,detail:m});y.details=m,(cf||l.lastFocusedProgrammatically)&&(m.isFocusedProgrammatically=u===((h=l.lastFocusedProgrammatically)==null?void 0:h.deref()),l.lastFocusedProgrammatically=void 0),u.dispatchEvent(y)},l=t.__keyborgData={focusInHandler:i,focusOutHandler:o,shadowTargets:n};t.document.addEventListener("focusin",t.__keyborgData.focusInHandler,!0),t.document.addEventListener("focusout",t.__keyborgData.focusOutHandler,!0);function s(){const u=t.__keyborgData;return u&&(u.lastFocusedProgrammatically=new lv(this)),r.apply(this,arguments)}let c=t.document.activeElement;for(;c&&c.shadowRoot;)a(c),c=c.shadowRoot.activeElement;s.__keyborgNativeFocus=r}function X3(e){const t=e,r=t.HTMLElement.prototype,n=r.focus.__keyborgNativeFocus,o=t.__keyborgData;if(o){t.document.removeEventListener("focusin",o.focusInHandler,!0),t.document.removeEventListener("focusout",o.focusOutHandler,!0);for(const i of o.shadowTargets){const a=i.deref();a&&(a.removeEventListener("focusin",o.focusInHandler,!0),a.removeEventListener("focusout",o.focusOutHandler,!0))}o.shadowTargets.clear(),delete t.__keyborgData}n&&(r.focus=n)}var Z3=500,Hy=0,Q3=class{constructor(e,t){this._isNavigatingWithKeyboard_DO_NOT_USE=!1,this._onFocusIn=n=>{if(this._isMouseUsedTimer||this.isNavigatingWithKeyboard)return;const o=n.detail;o.relatedTarget&&(o.isFocusedProgrammatically||o.isFocusedProgrammatically===void 0||(this.isNavigatingWithKeyboard=!0))},this._onMouseDown=n=>{if(n.buttons===0||n.clientX===0&&n.clientY===0&&n.screenX===0&&n.screenY===0)return;const o=this._win;o&&(this._isMouseUsedTimer&&o.clearTimeout(this._isMouseUsedTimer),this._isMouseUsedTimer=o.setTimeout(()=>{delete this._isMouseUsedTimer},1e3)),this.isNavigatingWithKeyboard=!1},this._onKeyDown=n=>{this.isNavigatingWithKeyboard?this._shouldDismissKeyboardNavigation(n)&&this._scheduleDismiss():this._shouldTriggerKeyboardNavigation(n)&&(this.isNavigatingWithKeyboard=!0)},this.id="c"+ ++Hy,this._win=e;const r=e.document;if(t){const n=t.triggerKeys,o=t.dismissKeys;n!=null&&n.length&&(this._triggerKeys=new Set(n)),o!=null&&o.length&&(this._dismissKeys=new Set(o))}r.addEventListener(Vr,this._onFocusIn,!0),r.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("keydown",this._onKeyDown,!0),K3(e)}get isNavigatingWithKeyboard(){return this._isNavigatingWithKeyboard_DO_NOT_USE}set isNavigatingWithKeyboard(e){this._isNavigatingWithKeyboard_DO_NOT_USE!==e&&(this._isNavigatingWithKeyboard_DO_NOT_USE=e,this.update())}dispose(){const e=this._win;if(e){this._isMouseUsedTimer&&(e.clearTimeout(this._isMouseUsedTimer),this._isMouseUsedTimer=void 0),this._dismissTimer&&(e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0),X3(e);const t=e.document;t.removeEventListener(Vr,this._onFocusIn,!0),t.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("keydown",this._onKeyDown,!0),delete this._win}}isDisposed(){return!!this._win}update(){var e,t;const r=(t=(e=this._win)==null?void 0:e.__keyborg)==null?void 0:t.refs;if(r)for(const n of Object.keys(r))kp.update(r[n],this.isNavigatingWithKeyboard)}_shouldTriggerKeyboardNavigation(e){var t;if(e.key==="Tab")return!0;const r=(t=this._win)==null?void 0:t.document.activeElement,n=!this._triggerKeys||this._triggerKeys.has(e.keyCode),o=r&&(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable);return n&&!o}_shouldDismissKeyboardNavigation(e){var t;return(t=this._dismissKeys)==null?void 0:t.has(e.keyCode)}_scheduleDismiss(){const e=this._win;if(e){this._dismissTimer&&(e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0);const t=e.document.activeElement;this._dismissTimer=e.setTimeout(()=>{this._dismissTimer=void 0;const r=e.document.activeElement;t&&r&&t===r&&(this.isNavigatingWithKeyboard=!1)},Z3)}}},kp=class Wy{constructor(t,r){this._cb=[],this._id="k"+ ++Hy,this._win=t;const n=t.__keyborg;n?(this._core=n.core,n.refs[this._id]=this):(this._core=new Q3(t,r),t.__keyborg={core:this._core,refs:{[this._id]:this}})}static create(t,r){return new Wy(t,r)}static dispose(t){t.dispose()}static update(t,r){t._cb.forEach(n=>n(r))}dispose(){var t;const r=(t=this._win)==null?void 0:t.__keyborg;r!=null&&r.refs[this._id]&&(delete r.refs[this._id],Object.keys(r.refs).length===0&&(r.core.dispose(),delete this._win.__keyborg)),this._cb=[],delete this._core,delete this._win}isNavigatingWithKeyboard(){var t;return!!((t=this._core)!=null&&t.isNavigatingWithKeyboard)}subscribe(t){this._cb.push(t)}unsubscribe(t){const r=this._cb.indexOf(t);r>=0&&this._cb.splice(r,1)}setVal(t){this._core&&(this._core.isNavigatingWithKeyboard=t)}};function xp(e,t){return kp.create(e,t)}function Sp(e){kp.dispose(e)}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + *//*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const kn="data-tabster",Uy="data-tabster-dummy",J3="tabster:deloser",$y="tabster:modalizer:active",Vy="tabster:modalizer:inactive",Y3="tabster:modalizer:focusin",e4="tabster:modalizer:focusout",t4="tabster:modalizer:beforefocusout",zd="tabster:mover",Gy="tabster:focusin",Ky="tabster:focusout",Xy="tabster:movefocus",Td="tabster:mover:movefocus",Nd="tabster:groupper:movefocus",Rd="tabster:mover:memorized-element",_p=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","*[tabindex]","*[contenteditable]"].join(", "),jd={Enter:1,Escape:2},r4={Any:0,Accessible:1,Focusable:2},n4={History:0,DeloserDefault:1,RootDefault:2,DeloserFirst:3,RootFirst:4},mn={Invisible:0,PartiallyVisible:1,Visible:2},dl={Source:0,Target:1},Co={Both:0,Vertical:1,Horizontal:2,Grid:3,GridLinear:4},Je={ArrowUp:1,ArrowDown:2,ArrowLeft:3,ArrowRight:4,PageUp:5,PageDown:6,Home:7,End:8},Zy={Unlimited:0,Limited:1,LimitedTrapFocus:2},Qy={Auto:0,Inside:1,Outside:2};var cr=Object.freeze({__proto__:null,TabsterAttributeName:kn,TabsterDummyInputAttributeName:Uy,DeloserEventName:J3,ModalizerActiveEventName:$y,ModalizerInactiveEventName:Vy,ModalizerFocusInEventName:Y3,ModalizerFocusOutEventName:e4,ModalizerBeforeFocusOutEventName:t4,MoverEventName:zd,FocusInEventName:Gy,FocusOutEventName:Ky,MoveFocusEventName:Xy,MoverMoveFocusEventName:Td,GroupperMoveFocusEventName:Nd,MoverMemorizedElementEventName:Rd,FocusableSelector:_p,GroupperMoveFocusActions:jd,ObservedElementAccesibilities:r4,RestoreFocusOrders:n4,Visibilities:mn,RestorerTypes:dl,MoverDirections:Co,MoverKeys:Je,GroupperTabbabilities:Zy,SysDummyInputsPositions:Qy});/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function Wt(e,t){var r;return(r=e.storageEntry(t))===null||r===void 0?void 0:r.tabster}function Jy(e,t,r){var n,o;const i=r||e._noop?void 0:t.getAttribute(kn);let a=e.storageEntry(t),l;if(i)if(i!==((n=a==null?void 0:a.attr)===null||n===void 0?void 0:n.string))try{const f=JSON.parse(i);if(typeof f!="object")throw new Error(`Value is not a JSON object, got '${i}'.`);l={string:i,object:f}}catch{}else return;else if(!a)return;a||(a=e.storageEntry(t,!0)),a.tabster||(a.tabster={});const s=a.tabster||{},c=((o=a.attr)===null||o===void 0?void 0:o.object)||{},u=(l==null?void 0:l.object)||{};for(const f of Object.keys(c))if(!u[f]){if(f==="root"){const d=s[f];d&&e.root.onRoot(d,!0)}switch(f){case"deloser":case"root":case"groupper":case"modalizer":case"restorer":case"mover":const d=s[f];d&&(d.dispose(),delete s[f]);break;case"observed":delete s[f],e.observedElement&&e.observedElement.onObservedElementUpdate(t);break;case"focusable":case"outline":case"uncontrolled":case"sys":delete s[f];break}}for(const f of Object.keys(u)){const d=u.sys;switch(f){case"deloser":s.deloser?s.deloser.setProps(u.deloser):e.deloser&&(s.deloser=e.deloser.createDeloser(t,u.deloser));break;case"root":s.root?s.root.setProps(u.root):s.root=e.root.createRoot(t,u.root,d),e.root.onRoot(s.root);break;case"modalizer":s.modalizer?s.modalizer.setProps(u.modalizer):e.modalizer&&(s.modalizer=e.modalizer.createModalizer(t,u.modalizer,d));break;case"restorer":s.restorer?s.restorer.setProps(u.restorer):e.restorer&&u.restorer&&(s.restorer=e.restorer.createRestorer(t,u.restorer));break;case"focusable":s.focusable=u.focusable;break;case"groupper":s.groupper?s.groupper.setProps(u.groupper):e.groupper&&(s.groupper=e.groupper.createGroupper(t,u.groupper,d));break;case"mover":s.mover?s.mover.setProps(u.mover):e.mover&&(s.mover=e.mover.createMover(t,u.mover,d));break;case"observed":e.observedElement&&(s.observed=u.observed,e.observedElement.onObservedElementUpdate(t));break;case"uncontrolled":s.uncontrolled=u.uncontrolled;break;case"outline":e.outline&&(s.outline=u.outline);break;case"sys":s.sys=u.sys;break;default:console.error(`Unknown key '${f}' in data-tabster attribute value.`)}}l?a.attr=l:(Object.keys(s).length===0&&(delete a.tabster,delete a.attr),e.storageEntry(t,!1))}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function o4(e){const t=e();try{if(t.EventTarget)return new t.EventTarget}catch(r){if(!(r instanceof TypeError))throw r}return t.document.createElement("div")}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const i4=e=>new MutationObserver(e),a4=(e,t,r,n)=>e.createTreeWalker(t,r,n),l4=e=>e?e.parentNode:null,s4=e=>e?e.parentElement:null,c4=(e,t)=>!!(t&&(e!=null&&e.contains(t))),u4=e=>e.activeElement,f4=(e,t)=>e.querySelector(t),d4=(e,t)=>Array.prototype.slice.call(e.querySelectorAll(t),0),h4=(e,t)=>e.getElementById(t),p4=e=>(e==null?void 0:e.firstChild)||null,g4=e=>(e==null?void 0:e.lastChild)||null,m4=e=>(e==null?void 0:e.nextSibling)||null,v4=e=>(e==null?void 0:e.previousSibling)||null,b4=e=>(e==null?void 0:e.firstElementChild)||null,y4=e=>(e==null?void 0:e.lastElementChild)||null,w4=e=>(e==null?void 0:e.nextElementSibling)||null,k4=e=>(e==null?void 0:e.previousElementSibling)||null,x4=(e,t)=>e.appendChild(t),S4=(e,t,r)=>e.insertBefore(t,r),_4=e=>{var t;return((t=e.ownerDocument)===null||t===void 0?void 0:t.getSelection())||null},M={createMutationObserver:i4,createTreeWalker:a4,getParentNode:l4,getParentElement:s4,nodeContains:c4,getActiveElement:u4,querySelector:f4,querySelectorAll:d4,getElementById:h4,getFirstChild:p4,getLastChild:g4,getNextSibling:m4,getPreviousSibling:v4,getFirstElementChild:b4,getLastElementChild:y4,getNextElementSibling:w4,getPreviousElementSibling:k4,appendChild:x4,insertBefore:S4,getSelection:_4};function B4(e){for(const t of Object.keys(e))M[t]=e[t]}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */let Fd;const sv=typeof DOMRect<"u"?DOMRect:class{constructor(e,t,r,n){this.left=e||0,this.top=t||0,this.right=(e||0)+(r||0),this.bottom=(t||0)+(n||0)}};let C4=0;try{document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT),Fd=!1}catch{Fd=!0}const uf=100;function jn(e){const t=e();let r=t.__tabsterInstanceContext;return r||(r={elementByUId:{},basics:{Promise:t.Promise||void 0,WeakRef:t.WeakRef||void 0},containerBoundingRectCache:{},lastContainerBoundingRectCacheId:0,fakeWeakRefs:[],fakeWeakRefsStarted:!1},t.__tabsterInstanceContext=r),r}function P4(e){const t=e.__tabsterInstanceContext;t&&(t.elementByUId={},delete t.WeakRef,t.containerBoundingRectCache={},t.containerBoundingRectCacheTimer&&e.clearTimeout(t.containerBoundingRectCacheTimer),t.fakeWeakRefsTimer&&e.clearTimeout(t.fakeWeakRefsTimer),t.fakeWeakRefs=[],delete e.__tabsterInstanceContext)}function E4(e){const t=e.__tabsterInstanceContext;return new((t==null?void 0:t.basics.WeakMap)||WeakMap)}function z4(e){return!!e.querySelector(_p)}class Yy{constructor(t){this._target=t}deref(){return this._target}static cleanup(t,r){return t._target?r||!Cp(t._target.ownerDocument,t._target)?(delete t._target,!0):!1:!0}}class dr{constructor(t,r,n){const o=jn(t);let i;o.WeakRef?i=new o.WeakRef(r):(i=new Yy(r),o.fakeWeakRefs.push(i)),this._ref=i,this._data=n}get(){const t=this._ref;let r;return t&&(r=t.deref(),r||delete this._ref),r}getData(){return this._data}}function ew(e,t){const r=jn(e);r.fakeWeakRefs=r.fakeWeakRefs.filter(n=>!Yy.cleanup(n,t))}function tw(e){const t=jn(e);t.fakeWeakRefsStarted||(t.fakeWeakRefsStarted=!0,t.WeakRef=D4(t)),t.fakeWeakRefsTimer||(t.fakeWeakRefsTimer=e().setTimeout(()=>{t.fakeWeakRefsTimer=void 0,ew(e),tw(e)},2*60*1e3))}function T4(e){const t=jn(e);t.fakeWeakRefsStarted=!1,t.fakeWeakRefsTimer&&(e().clearTimeout(t.fakeWeakRefsTimer),t.fakeWeakRefsTimer=void 0,t.fakeWeakRefs=[])}function Bp(e,t,r){if(t.nodeType!==Node.ELEMENT_NODE)return;const n=Fd?r:{acceptNode:r};return M.createTreeWalker(e,t,NodeFilter.SHOW_ELEMENT,n,!1)}function rw(e,t){let r=t.__tabsterCacheId;const n=jn(e),o=r?n.containerBoundingRectCache[r]:void 0;if(o)return o.rect;const i=t.ownerDocument&&t.ownerDocument.documentElement;if(!i)return new sv;let a=0,l=0,s=i.clientWidth,c=i.clientHeight;if(t!==i){const f=t.getBoundingClientRect();a=Math.max(a,f.left),l=Math.max(l,f.top),s=Math.min(s,f.right),c=Math.min(c,f.bottom)}const u=new sv(a{n.containerBoundingRectCacheTimer=void 0;for(const f of Object.keys(n.containerBoundingRectCache))delete n.containerBoundingRectCache[f].element.__tabsterCacheId;n.containerBoundingRectCache={}},50)),u}function cv(e,t,r){const n=nw(t);if(!n)return!1;const o=rw(e,n),i=t.getBoundingClientRect(),a=i.height*(1-r),l=Math.max(0,o.top-i.top),s=Math.max(0,i.bottom-o.bottom),c=l+s;return c===0||c<=a}function N4(e,t,r){const n=nw(t);if(n){const o=rw(e,n),i=t.getBoundingClientRect();r?n.scrollTop+=i.top-o.top:n.scrollTop+=i.bottom-o.bottom}}function nw(e){const t=e.ownerDocument;if(t){for(let r=M.getParentElement(e);r;r=M.getParentElement(r))if(r.scrollWidth>r.clientWidth||r.scrollHeight>r.clientHeight)return r;return t.documentElement}return null}function R4(e){e.__shouldIgnoreFocus=!0}function ow(e){return!!e.__shouldIgnoreFocus}function j4(e){const t=new Uint32Array(4);if(e.crypto&&e.crypto.getRandomValues)e.crypto.getRandomValues(t);else if(e.msCrypto&&e.msCrypto.getRandomValues)e.msCrypto.getRandomValues(t);else for(let n=0;n{if(this._fixedTarget){const d=this._fixedTarget.get();d&&cn(d);return}const f=this.input;if(this.onFocusIn&&f){const d=u.relatedTarget;this.onFocusIn(this,this._isBackward(!0,f,d),d)}},this._focusOut=u=>{if(this._fixedTarget)return;this.useDefaultAction=!1;const f=this.input;if(this.onFocusOut&&f){const d=u.relatedTarget;this.onFocusOut(this,this._isBackward(!1,f,d),d)}};const l=t(),s=l.document.createElement("i");s.tabIndex=0,s.setAttribute("role","none"),s.setAttribute(Uy,""),s.setAttribute("aria-hidden","true");const c=s.style;c.position="fixed",c.width=c.height="1px",c.opacity="0.001",c.zIndex="-1",c.setProperty("content-visibility","hidden"),R4(s),this.input=s,this.isFirst=n.isFirst,this.isOutside=r,this._isPhantom=(a=n.isPhantom)!==null&&a!==void 0?a:!1,this._fixedTarget=i,s.addEventListener("focusin",this._focusIn),s.addEventListener("focusout",this._focusOut),s.__tabsterDummyContainer=o,this._isPhantom&&(this._disposeTimer=l.setTimeout(()=>{delete this._disposeTimer,this.dispose()},0),this._clearDisposeTimeout=()=>{this._disposeTimer&&(l.clearTimeout(this._disposeTimer),delete this._disposeTimer),delete this._clearDisposeTimeout})}dispose(){var t;this._clearDisposeTimeout&&this._clearDisposeTimeout();const r=this.input;r&&(delete this._fixedTarget,delete this.onFocusIn,delete this.onFocusOut,delete this.input,r.removeEventListener("focusin",this._focusIn),r.removeEventListener("focusout",this._focusOut),delete r.__tabsterDummyContainer,(t=M.getParentNode(r))===null||t===void 0||t.removeChild(r))}setTopLeft(t,r){var n;const o=(n=this.input)===null||n===void 0?void 0:n.style;o&&(o.top=`${t}px`,o.left=`${r}px`)}_isBackward(t,r,n){return t&&!n?!this.isFirst:!!(n&&r.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)}}const su={Root:1,Modalizer:2,Mover:3,Groupper:4};class $i{constructor(t,r,n,o,i,a){this._element=r,this._instance=new M4(t,r,this,n,o,i,a)}_setHandlers(t,r){this._onFocusIn=t,this._onFocusOut=r}moveOut(t){var r;(r=this._instance)===null||r===void 0||r.moveOut(t)}moveOutWithDefaultAction(t,r){var n;(n=this._instance)===null||n===void 0||n.moveOutWithDefaultAction(t,r)}getHandler(t){return t?this._onFocusIn:this._onFocusOut}setTabbable(t){var r;(r=this._instance)===null||r===void 0||r.setTabbable(this,t)}dispose(){this._instance&&(this._instance.dispose(this),delete this._instance),delete this._onFocusIn,delete this._onFocusOut}static moveWithPhantomDummy(t,r,n,o,i){var a;const s=new gc(t.getWindow,!0,{isPhantom:!0,isFirst:!0}).input;if(s){let c,u;if(r.tagName==="BODY")c=r,u=n&&o||!n&&!o?M.getFirstElementChild(r):null;else{n&&(!o||o&&!t.focusable.isFocusable(r,!1,!0,!0))?(c=r,u=o?r.firstElementChild:null):(c=M.getParentElement(r),u=n&&o||!n&&!o?r:M.getNextElementSibling(r));let f,d;do f=n&&o||!n&&!o?M.getPreviousElementSibling(u):u,d=(a=f==null?void 0:f.__tabsterDummyContainer)===null||a===void 0?void 0:a.get(),d===r?u=n&&o||!n&&!o?f:M.getNextElementSibling(f):d=void 0;while(d)}c&&Yn({by:"root",owner:c,next:null,relatedEvent:i})&&(M.insertBefore(c,s,u),cn(s))}}static addPhantomDummyWithTarget(t,r,n,o){const a=new gc(t.getWindow,!0,{isPhantom:!0,isFirst:!0},void 0,new dr(t.getWindow,o)).input;if(a){let l,s;z4(r)&&!n?(l=r,s=M.getFirstElementChild(r)):(l=M.getParentElement(r),s=n?r:M.getNextElementSibling(r)),l&&M.insertBefore(l,a,s)}}}class A4{constructor(t){this._updateQueue=new Set,this._lastUpdateQueueTime=0,this._changedParents=new WeakSet,this._dummyElements=[],this._dummyCallbacks=new WeakMap,this._domChanged=r=>{var n;this._changedParents.has(r)||(this._changedParents.add(r),!this._updateDummyInputsTimer&&(this._updateDummyInputsTimer=(n=this._win)===null||n===void 0?void 0:n.call(this).setTimeout(()=>{delete this._updateDummyInputsTimer;for(const o of this._dummyElements){const i=o.get();if(i){const a=this._dummyCallbacks.get(i);if(a){const l=M.getParentNode(i);(!l||this._changedParents.has(l))&&a()}}}this._changedParents=new WeakSet},uf)))},this._win=t}add(t,r){!this._dummyCallbacks.has(t)&&this._win&&(this._dummyElements.push(new dr(this._win,t)),this._dummyCallbacks.set(t,r),this.domChanged=this._domChanged)}remove(t){this._dummyElements=this._dummyElements.filter(r=>{const n=r.get();return n&&n!==t}),this._dummyCallbacks.delete(t),this._dummyElements.length===0&&delete this.domChanged}dispose(){var t;const r=(t=this._win)===null||t===void 0?void 0:t.call(this);this._updateTimer&&(r==null||r.clearTimeout(this._updateTimer),delete this._updateTimer),this._updateDummyInputsTimer&&(r==null||r.clearTimeout(this._updateDummyInputsTimer),delete this._updateDummyInputsTimer),this._changedParents=new WeakSet,this._dummyCallbacks=new WeakMap,this._dummyElements=[],this._updateQueue.clear(),delete this.domChanged,delete this._win}updatePositions(t){this._win&&(this._updateQueue.add(t),this._lastUpdateQueueTime=Date.now(),this._scheduledUpdatePositions())}_scheduledUpdatePositions(){var t;this._updateTimer||(this._updateTimer=(t=this._win)===null||t===void 0?void 0:t.call(this).setTimeout(()=>{if(delete this._updateTimer,this._lastUpdateQueueTime+uf<=Date.now()){const r=new Map,n=[];for(const o of this._updateQueue)n.push(o(r));this._updateQueue.clear();for(const o of n)o();r.clear()}else this._scheduledUpdatePositions()},uf))}}class M4{constructor(t,r,n,o,i,a,l){this._wrappers=[],this._isOutside=!1,this._transformElements=new Set,this._onFocusIn=(h,p,m)=>{this._onFocus(!0,h,p,m)},this._onFocusOut=(h,p,m)=>{this._onFocus(!1,h,p,m)},this.moveOut=h=>{var p;const m=this._firstDummy,y=this._lastDummy;if(m&&y){this._ensurePosition();const v=m.input,g=y.input,b=(p=this._element)===null||p===void 0?void 0:p.get();if(v&&g&&b){let k;h?(v.tabIndex=0,k=v):(g.tabIndex=0,k=g),k&&cn(k)}}},this.moveOutWithDefaultAction=(h,p)=>{var m;const y=this._firstDummy,v=this._lastDummy;if(y&&v){this._ensurePosition();const g=y.input,b=v.input,k=(m=this._element)===null||m===void 0?void 0:m.get();if(g&&b&&k){let _;h?!y.isOutside&&this._tabster.focusable.isFocusable(k,!0,!0,!0)?_=k:(y.useDefaultAction=!0,g.tabIndex=0,_=g):(v.useDefaultAction=!0,b.tabIndex=0,_=b),_&&Yn({by:"root",owner:k,next:null,relatedEvent:p})&&cn(_)}}},this.setTabbable=(h,p)=>{var m,y;for(const g of this._wrappers)if(g.manager===h){g.tabbable=p;break}const v=this._getCurrent();if(v){const g=v.tabbable?0:-1;let b=(m=this._firstDummy)===null||m===void 0?void 0:m.input;b&&(b.tabIndex=g),b=(y=this._lastDummy)===null||y===void 0?void 0:y.input,b&&(b.tabIndex=g)}},this._addDummyInputs=()=>{this._addTimer||(this._addTimer=this._getWindow().setTimeout(()=>{delete this._addTimer,this._ensurePosition(),this._addTransformOffsets()},0))},this._addTransformOffsets=()=>{this._tabster._dummyObserver.updatePositions(this._computeTransformOffsets)},this._computeTransformOffsets=h=>{var p,m;const y=((p=this._firstDummy)===null||p===void 0?void 0:p.input)||((m=this._lastDummy)===null||m===void 0?void 0:m.input),v=this._transformElements,g=new Set;let b=0,k=0;const _=this._getWindow();for(let w=y;w&&w.nodeType===Node.ELEMENT_NODE;w=M.getParentElement(w)){let S=h.get(w);if(S===void 0){const E=_.getComputedStyle(w).transform;E&&E!=="none"&&(S={scrollTop:w.scrollTop,scrollLeft:w.scrollLeft}),h.set(w,S||null)}S&&(g.add(w),v.has(w)||w.addEventListener("scroll",this._addTransformOffsets),b+=S.scrollTop,k+=S.scrollLeft)}for(const w of v)g.has(w)||w.removeEventListener("scroll",this._addTransformOffsets);return this._transformElements=g,()=>{var w,S;(w=this._firstDummy)===null||w===void 0||w.setTopLeft(b,k),(S=this._lastDummy)===null||S===void 0||S.setTopLeft(b,k)}};const s=r.get();if(!s)throw new Error("No element");this._tabster=t,this._getWindow=t.getWindow,this._callForDefaultAction=l;const c=s.__tabsterDummy;if((c||this)._wrappers.push({manager:n,priority:o,tabbable:!0}),c)return c;s.__tabsterDummy=this;const u=i==null?void 0:i.dummyInputsPosition,f=s.tagName;this._isOutside=u?u===Qy.Outside:(a||f==="UL"||f==="OL"||f==="TABLE")&&!(f==="LI"||f==="TD"||f==="TH"),this._firstDummy=new gc(this._getWindow,this._isOutside,{isFirst:!0},r),this._lastDummy=new gc(this._getWindow,this._isOutside,{isFirst:!1},r);const d=this._firstDummy.input;d&&t._dummyObserver.add(d,this._addDummyInputs),this._firstDummy.onFocusIn=this._onFocusIn,this._firstDummy.onFocusOut=this._onFocusOut,this._lastDummy.onFocusIn=this._onFocusIn,this._lastDummy.onFocusOut=this._onFocusOut,this._element=r,this._addDummyInputs()}dispose(t,r){var n,o,i,a;if((this._wrappers=this._wrappers.filter(s=>s.manager!==t&&!r)).length===0){delete((n=this._element)===null||n===void 0?void 0:n.get()).__tabsterDummy;for(const u of this._transformElements)u.removeEventListener("scroll",this._addTransformOffsets);this._transformElements.clear();const s=this._getWindow();this._addTimer&&(s.clearTimeout(this._addTimer),delete this._addTimer);const c=(o=this._firstDummy)===null||o===void 0?void 0:o.input;c&&this._tabster._dummyObserver.remove(c),(i=this._firstDummy)===null||i===void 0||i.dispose(),(a=this._lastDummy)===null||a===void 0||a.dispose()}}_onFocus(t,r,n,o){var i;const a=this._getCurrent();a&&(!r.useDefaultAction||this._callForDefaultAction)&&((i=a.manager.getHandler(t))===null||i===void 0||i(r,n,o))}_getCurrent(){return this._wrappers.sort((t,r)=>t.tabbable!==r.tabbable?t.tabbable?-1:1:t.priority-r.priority),this._wrappers[0]}_ensurePosition(){var t,r,n;const o=(t=this._element)===null||t===void 0?void 0:t.get(),i=(r=this._firstDummy)===null||r===void 0?void 0:r.input,a=(n=this._lastDummy)===null||n===void 0?void 0:n.input;if(!(!o||!i||!a))if(this._isOutside){const l=M.getParentNode(o);if(l){const s=M.getNextSibling(o);s!==a&&M.insertBefore(l,a,s),M.getPreviousElementSibling(o)!==i&&M.insertBefore(l,i,o)}}else{M.getLastElementChild(o)!==a&&M.appendChild(o,a);const l=M.getFirstElementChild(o);l&&l!==i&&l.parentNode&&M.insertBefore(l.parentNode,i,l)}}}function aw(e){let t=null;for(let r=M.getLastElementChild(e);r;r=M.getLastElementChild(r))t=r;return t||void 0}function O4(e,t){let r=e,n=null;for(;r&&!n;)n=t?M.getPreviousElementSibling(r):M.getNextElementSibling(r),r=M.getParentElement(r);return n||void 0}function un(e,t,r){const n=new CustomEvent(t,{bubbles:!0,cancelable:!0,composed:!0,detail:r});return n.details=r,e.dispatchEvent(n),!n.defaultPrevented}function Yn(e){return un(e.owner,Xy,e)}function ff(e,t,r,n){const o=e.storageEntry(t,!0);let i=!1;if(!o.aug){if(n===void 0)return i;o.aug={}}if(n===void 0){if(r in o.aug){const a=o.aug[r];delete o.aug[r],a===null?t.removeAttribute(r):t.setAttribute(r,a),i=!0}}else{let a;r in o.aug||(a=t.getAttribute(r)),a!==void 0&&a!==n&&(o.aug[r]=a,n===null?t.removeAttribute(r):t.setAttribute(r,n),i=!0)}return n===void 0&&Object.keys(o.aug).length===0&&(delete o.aug,e.storageEntry(t,!1)),i}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function cu(e,t){const r=JSON.stringify(e);return t===!0?r:{[kn]:r}}function L4(e,t){for(const r of Object.keys(t)){const n=t[r];n?e[r]=n:delete e[r]}}function q4(e,t,r){let n;if(r){const o=e.getAttribute(kn);if(o)try{n=JSON.parse(o)}catch{}}n||(n={}),L4(n,t),Object.keys(n).length>0?e.setAttribute(kn,cu(n,!0)):e.removeAttribute(kn)}class fv extends $i{constructor(t,r,n,o){super(t,r,su.Root,o,void 0,!0),this._onDummyInputFocus=i=>{var a;if(i.useDefaultAction)this._setFocused(!1);else{this._tabster.keyboardNavigation.setNavigatingWithKeyboard(!0);const l=this._element.get();if(l){this._setFocused(!0);const s=this._tabster.focusedElement.getFirstOrLastTabbable(i.isFirst,{container:l,ignoreAccessibility:!0});if(s){cn(s);return}}(a=i.input)===null||a===void 0||a.blur()}},this._setHandlers(this._onDummyInputFocus),this._tabster=t,this._setFocused=n}}class H4 extends $l{constructor(t,r,n,o,i){super(t,r,o),this._isFocused=!1,this._setFocused=c=>{var u;if(this._setFocusedTimer&&(this._tabster.getWindow().clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),this._isFocused===c)return;const f=this._element.get();f&&(c?(this._isFocused=!0,(u=this._dummyManager)===null||u===void 0||u.setTabbable(!1),un(this._tabster.root.eventTarget,"focus",{element:f})):this._setFocusedTimer=this._tabster.getWindow().setTimeout(()=>{var d;delete this._setFocusedTimer,this._isFocused=!1,(d=this._dummyManager)===null||d===void 0||d.setTabbable(!0),un(this._tabster.root.eventTarget,"blur",{element:f})},0))},this._onFocusIn=c=>{const u=this._tabster.getParent,f=this._element.get();let d=c.composedPath()[0];do{if(d===f){this._setFocused(!0);return}d=d&&u(d)}while(d)},this._onFocusOut=()=>{this._setFocused(!1)},this._onDispose=n;const a=t.getWindow;this.uid=Qs(a,r),this._sys=i,(t.controlTab||t.rootDummyInputs)&&this.addDummyInputs();const s=a().document;s.addEventListener(Vr,this._onFocusIn),s.addEventListener(fl,this._onFocusOut),this._add()}addDummyInputs(){this._dummyManager||(this._dummyManager=new fv(this._tabster,this._element,this._setFocused,this._sys))}dispose(){var t;this._onDispose(this);const r=this._tabster.getWindow(),n=r.document;n.removeEventListener(Vr,this._onFocusIn),n.removeEventListener(fl,this._onFocusOut),this._setFocusedTimer&&(r.clearTimeout(this._setFocusedTimer),delete this._setFocusedTimer),(t=this._dummyManager)===null||t===void 0||t.dispose(),this._remove()}moveOutWithDefaultAction(t,r){const n=this._dummyManager;if(n)n.moveOutWithDefaultAction(t,r);else{const o=this.getElement();o&&fv.moveWithPhantomDummy(this._tabster,o,!0,t,r)}}_add(){}_remove(){}}class Me{constructor(t,r){this._autoRootWaiting=!1,this._roots={},this._forceDummy=!1,this.rootById={},this._autoRootCreate=()=>{var n;const o=this._win().document,i=o.body;if(i){this._autoRootUnwait(o);const a=this._autoRoot;if(a)return q4(i,{root:a},!0),Jy(this._tabster,i),(n=Wt(this._tabster,i))===null||n===void 0?void 0:n.root}else this._autoRootWaiting||(this._autoRootWaiting=!0,o.addEventListener("readystatechange",this._autoRootCreate))},this._onRootDispose=n=>{delete this._roots[n.id]},this._tabster=t,this._win=t.getWindow,this._autoRoot=r,this.eventTarget=o4(this._win),t.queueInit(()=>{this._autoRoot&&this._autoRootCreate()})}_autoRootUnwait(t){t.removeEventListener("readystatechange",this._autoRootCreate),this._autoRootWaiting=!1}dispose(){const t=this._win();this._autoRootUnwait(t.document),delete this._autoRoot,Object.keys(this._roots).forEach(r=>{this._roots[r]&&(this._roots[r].dispose(),delete this._roots[r])}),this.rootById={}}createRoot(t,r,n){const o=new H4(this._tabster,t,this._onRootDispose,r,n);return this._roots[o.id]=o,this._forceDummy&&o.addDummyInputs(),o}addDummyInputs(){this._forceDummy=!0;const t=this._roots;for(const r of Object.keys(t))t[r].addDummyInputs()}static getRootByUId(t,r){const n=t().__tabsterInstance;return n&&n.root.rootById[r]}static getTabsterContext(t,r,n){n===void 0&&(n={});var o,i,a,l;if(!r.ownerDocument)return;const{checkRtl:s,referenceElement:c}=n,u=t.getParent;t.drainInitQueue();let f,d,h,p,m=!1,y,v,g,b,k=c||r;const _={};for(;k&&(!f||s);){const S=Wt(t,k);if(s&&g===void 0){const R=k.dir;R&&(g=R.toLowerCase()==="rtl")}if(!S){k=u(k);continue}const E=k.tagName;(S.uncontrolled||E==="IFRAME"||E==="WEBVIEW")&&(b=k),!p&&(!((o=S.focusable)===null||o===void 0)&&o.excludeFromMover)&&!h&&(m=!0);const N=S.modalizer,C=S.groupper,L=S.mover;!d&&N&&(d=N),!h&&C&&(!d||N)&&(d?(!C.isActive()&&C.getProps().tabbability&&d.userId!==((i=t.modalizer)===null||i===void 0?void 0:i.activeId)&&(d=void 0,h=C),v=C):h=C),!p&&L&&(!d||N)&&(!C||k!==r)&&(p=L,y=!!h&&h!==C),S.root&&(f=S.root),!((a=S.focusable)===null||a===void 0)&&a.ignoreKeydown&&Object.assign(_,S.focusable.ignoreKeydown),k=u(k)}if(!f){const S=t.root;S._autoRoot&&!((l=r.ownerDocument)===null||l===void 0)&&l.body&&(f=S._autoRootCreate())}return h&&!p&&(y=!0),f?{root:f,modalizer:d,groupper:h,mover:p,groupperBeforeMover:y,modalizerInGroupper:v,rtl:s?!!g:void 0,uncontrolled:b,excludedFromMover:m,ignoreKeydown:S=>!!_[S.key]}:void 0}static getRoot(t,r){var n;const o=t.getParent;for(let i=r;i;i=o(i)){const a=(n=Wt(t,i))===null||n===void 0?void 0:n.root;if(a)return a}}onRoot(t,r){r?delete this.rootById[t.uid]:this.rootById[t.uid]=t}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class lw{constructor(){this._callbacks=[]}dispose(){this._callbacks=[],delete this._val}subscribe(t){const r=this._callbacks;r.indexOf(t)<0&&r.push(t)}subscribeFirst(t){const r=this._callbacks,n=r.indexOf(t);n>=0&&r.splice(n,1),r.unshift(t)}unsubscribe(t){const r=this._callbacks.indexOf(t);r>=0&&this._callbacks.splice(r,1)}setVal(t,r){this._val!==t&&(this._val=t,this._callCallbacks(t,r))}getVal(){return this._val}trigger(t,r){this._callCallbacks(t,r)}_callCallbacks(t,r){this._callbacks.forEach(n=>n(t,r))}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class W4{constructor(t){this._tabster=t}dispose(){}getProps(t){const r=Wt(this._tabster,t);return r&&r.focusable||{}}isFocusable(t,r,n,o){return iw(t,_p)&&(r||t.tabIndex!==-1)?(n||this.isVisible(t))&&(o||this.isAccessible(t)):!1}isVisible(t){if(!t.ownerDocument||t.nodeType!==Node.ELEMENT_NODE||t.offsetParent===null&&t.ownerDocument.body!==t)return!1;const r=t.ownerDocument.defaultView;if(!r)return!1;const n=t.ownerDocument.body.getBoundingClientRect();return!(n.width===0&&n.height===0||r.getComputedStyle(t).visibility==="hidden")}isAccessible(t){var r;for(let n=t;n;n=M.getParentElement(n)){const o=Wt(this._tabster,n);if(this._isHidden(n)||!((r=o==null?void 0:o.focusable)===null||r===void 0?void 0:r.ignoreAriaDisabled)&&this._isDisabled(n))return!1}return!0}_isDisabled(t){return t.hasAttribute("disabled")}_isHidden(t){var r;const n=t.getAttribute("aria-hidden");return!!(n&&n.toLowerCase()==="true"&&!(!((r=this._tabster.modalizer)===null||r===void 0)&&r.isAugmented(t)))}findFirst(t,r){return this.findElement({...t},r)}findLast(t,r){return this.findElement({isBackward:!0,...t},r)}findNext(t,r){return this.findElement({...t},r)}findPrev(t,r){return this.findElement({...t,isBackward:!0},r)}findDefault(t,r){return this.findElement({...t,acceptCondition:n=>this.isFocusable(n,t.includeProgrammaticallyFocusable)&&!!this.getProps(n).isDefault},r)||null}findAll(t){return this._findElements(!0,t)||[]}findElement(t,r){const n=this._findElements(!1,t,r);return n&&n[0]}_findElements(t,r,n){var o,i,a;const{container:l,currentElement:s=null,includeProgrammaticallyFocusable:c,useActiveModalizer:u,ignoreAccessibility:f,modalizerId:d,isBackward:h,onElement:p}=r;n||(n={});const m=[];let{acceptCondition:y}=r;const v=!!y;if(!l)return null;y||(y=_=>this.isFocusable(_,c,!1,f));const g={container:l,modalizerUserId:d===void 0&&u?(o=this._tabster.modalizer)===null||o===void 0?void 0:o.activeId:d||((a=(i=Me.getTabsterContext(this._tabster,l))===null||i===void 0?void 0:i.modalizer)===null||a===void 0?void 0:a.userId),from:s||l,isBackward:h,acceptCondition:y,hasCustomCondition:v,includeProgrammaticallyFocusable:c,ignoreAccessibility:f,cachedGrouppers:{}},b=Bp(l.ownerDocument,l,_=>this._acceptElement(_,g));if(!b)return null;const k=_=>{var w,S;const E=(w=g.foundElement)!==null&&w!==void 0?w:g.foundBackward;return E&&m.push(E),t?E&&(g.found=!1,delete g.foundElement,delete g.foundBackward,delete g.fromCtx,g.from=E,p&&!p(E))?!1:!!(E||_):(E&&n&&(n.uncontrolled=(S=Me.getTabsterContext(this._tabster,E))===null||S===void 0?void 0:S.uncontrolled),!!(_&&!E))};if(s||(n.outOfDOMOrder=!0),s&&M.nodeContains(l,s))b.currentNode=s;else if(h){const _=aw(l);if(!_)return null;if(this._acceptElement(_,g)===NodeFilter.FILTER_ACCEPT&&!k(!0))return g.skippedFocusable&&(n.outOfDOMOrder=!0),m;b.currentNode=_}do h?b.previousNode():b.nextNode();while(k());return g.skippedFocusable&&(n.outOfDOMOrder=!0),m.length?m:null}_acceptElement(t,r){var n,o,i;if(r.found)return NodeFilter.FILTER_ACCEPT;const a=r.foundBackward;if(a&&(t===a||!M.nodeContains(a,t)))return r.found=!0,r.foundElement=a,NodeFilter.FILTER_ACCEPT;const l=r.container;if(t===l)return NodeFilter.FILTER_SKIP;if(!M.nodeContains(l,t)||t.__tabsterDummyContainer||M.nodeContains(r.rejectElementsFrom,t))return NodeFilter.FILTER_REJECT;const s=r.currentCtx=Me.getTabsterContext(this._tabster,t);if(!s)return NodeFilter.FILTER_SKIP;if(ow(t))return this.isFocusable(t,void 0,!0,!0)&&(r.skippedFocusable=!0),NodeFilter.FILTER_SKIP;if(!r.hasCustomCondition&&(t.tagName==="IFRAME"||t.tagName==="WEBVIEW"))return((n=s.modalizer)===null||n===void 0?void 0:n.userId)===((o=this._tabster.modalizer)===null||o===void 0?void 0:o.activeId)?(r.found=!0,r.rejectElementsFrom=r.foundElement=t,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT;if(!r.ignoreAccessibility&&!this.isAccessible(t))return this.isFocusable(t,!1,!0,!0)&&(r.skippedFocusable=!0),NodeFilter.FILTER_REJECT;let c,u=r.fromCtx;u||(u=r.fromCtx=Me.getTabsterContext(this._tabster,r.from));const f=u==null?void 0:u.mover;let d=s.groupper,h=s.mover;if(c=(i=this._tabster.modalizer)===null||i===void 0?void 0:i.acceptElement(t,r),c!==void 0&&(r.skippedFocusable=!0),c===void 0&&(d||h||f)){const p=d==null?void 0:d.getElement(),m=f==null?void 0:f.getElement();let y=h==null?void 0:h.getElement();y&&M.nodeContains(m,y)&&M.nodeContains(l,m)&&(!p||!h||M.nodeContains(m,p))&&(h=f,y=m),p&&(p===l||!M.nodeContains(l,p))&&(d=void 0),y&&!M.nodeContains(l,y)&&(h=void 0),d&&h&&(y&&p&&!M.nodeContains(p,y)?h=void 0:d=void 0),d&&(c=d.acceptElement(t,r)),h&&(c=h.acceptElement(t,r))}return c===void 0&&(c=r.acceptCondition(t)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP,c===NodeFilter.FILTER_SKIP&&this.isFocusable(t,!1,!0,!0)&&(r.skippedFocusable=!0)),c===NodeFilter.FILTER_ACCEPT&&!r.found&&(r.isBackward?(r.foundBackward=t,c=NodeFilter.FILTER_SKIP):(r.found=!0,r.foundElement=t)),c}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const Ye={Tab:9,Enter:13,Esc:27,Space:32,PageUp:33,PageDown:34,End:35,Home:36,Left:37,Up:38,Right:39,Down:40};/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */function U4(e,t){var r;const n=e.getParent;let o=t;do{const i=(r=Wt(e,o))===null||r===void 0?void 0:r.uncontrolled;if(i&&e.uncontrolled.isUncontrolledCompletely(o,!!i.completely))return o;o=n(o)}while(o)}class et extends lw{constructor(t,r){super(),this._init=()=>{const n=this._win(),o=n.document;o.addEventListener(Vr,this._onFocusIn,!0),o.addEventListener(fl,this._onFocusOut,!0),n.addEventListener("keydown",this._onKeyDown,!0);const i=M.getActiveElement(o);i&&i!==o.body&&this._setFocusedElement(i),this.subscribe(this._onChanged)},this._onFocusIn=n=>{const o=n.composedPath()[0];o&&this._setFocusedElement(o,n.detail.relatedTarget,n.detail.isFocusedProgrammatically)},this._onFocusOut=n=>{var o;this._setFocusedElement(void 0,(o=n.detail)===null||o===void 0?void 0:o.originalEvent.relatedTarget)},this._validateFocusedElement=n=>{},this._onKeyDown=n=>{if(n.keyCode!==Ye.Tab||n.ctrlKey)return;const o=this.getVal();if(!o||!o.ownerDocument||o.contentEditable==="true")return;const i=this._tabster,a=i.controlTab,l=Me.getTabsterContext(i,o);if(!l||l.ignoreKeydown(n))return;const s=n.shiftKey,c=et.findNextTabbable(i,l,void 0,o,void 0,s,!0),u=l.root.getElement();if(!u)return;const f=c==null?void 0:c.element,d=U4(i,o);if(f){const h=c.uncontrolled;if(l.uncontrolled||M.nodeContains(h,o)){if(!c.outOfDOMOrder&&h===l.uncontrolled||d&&!M.nodeContains(d,f))return;$i.addPhantomDummyWithTarget(i,o,s,f);return}if(h||f.tagName==="IFRAME"){Yn({by:"root",owner:u,next:f,relatedEvent:n})&&$i.moveWithPhantomDummy(this._tabster,h??f,!1,s,n);return}(a||c!=null&&c.outOfDOMOrder)&&Yn({by:"root",owner:u,next:f,relatedEvent:n})&&(n.preventDefault(),n.stopImmediatePropagation(),cn(f))}else!d&&Yn({by:"root",owner:u,next:null,relatedEvent:n})&&l.root.moveOutWithDefaultAction(s,n)},this._onChanged=(n,o)=>{var i,a;if(n)un(n,Gy,o);else{const l=(i=this._lastVal)===null||i===void 0?void 0:i.get();if(l){const s={...o},c=Me.getTabsterContext(this._tabster,l),u=(a=c==null?void 0:c.modalizer)===null||a===void 0?void 0:a.userId;u&&(s.modalizerId=u),un(l,Ky,s)}}},this._tabster=t,this._win=r,t.queueInit(this._init)}dispose(){super.dispose();const t=this._win(),r=t.document;r.removeEventListener(Vr,this._onFocusIn,!0),r.removeEventListener(fl,this._onFocusOut,!0),t.removeEventListener("keydown",this._onKeyDown,!0),this.unsubscribe(this._onChanged),delete et._lastResetElement,delete this._nextVal,delete this._lastVal}static forgetMemorized(t,r){var n,o;let i=et._lastResetElement,a=i&&i.get();a&&M.nodeContains(r,a)&&delete et._lastResetElement,a=(o=(n=t._nextVal)===null||n===void 0?void 0:n.element)===null||o===void 0?void 0:o.get(),a&&M.nodeContains(r,a)&&delete t._nextVal,i=t._lastVal,a=i&&i.get(),a&&M.nodeContains(r,a)&&delete t._lastVal}getFocusedElement(){return this.getVal()}getLastFocusedElement(){var t;let r=(t=this._lastVal)===null||t===void 0?void 0:t.get();return(!r||r&&!Cp(r.ownerDocument,r))&&(this._lastVal=r=void 0),r}focus(t,r,n){return this._tabster.focusable.isFocusable(t,r,!1,n)?(t.focus(),!0):!1}focusDefault(t){const r=this._tabster.focusable.findDefault({container:t});return r?(this._tabster.focusedElement.focus(r),!0):!1}getFirstOrLastTabbable(t,r){var n;const{container:o,ignoreAccessibility:i}=r;let a;if(o){const l=Me.getTabsterContext(this._tabster,o);l&&(a=(n=et.findNextTabbable(this._tabster,l,o,void 0,void 0,!t,i))===null||n===void 0?void 0:n.element)}return a&&!M.nodeContains(o,a)&&(a=void 0),a||void 0}_focusFirstOrLast(t,r){const n=this.getFirstOrLastTabbable(t,r);return n?(this.focus(n,!1,!0),!0):!1}focusFirst(t){return this._focusFirstOrLast(!0,t)}focusLast(t){return this._focusFirstOrLast(!1,t)}resetFocus(t){if(!this._tabster.focusable.isVisible(t))return!1;if(this._tabster.focusable.isFocusable(t,!0,!0,!0))this.focus(t);else{const r=t.getAttribute("tabindex"),n=t.getAttribute("aria-hidden");t.tabIndex=-1,t.setAttribute("aria-hidden","true"),et._lastResetElement=new dr(this._win,t),this.focus(t,!0,!0),this._setOrRemoveAttribute(t,"tabindex",r),this._setOrRemoveAttribute(t,"aria-hidden",n)}return!0}_setOrRemoveAttribute(t,r,n){n===null?t.removeAttribute(r):t.setAttribute(r,n)}_setFocusedElement(t,r,n){var o,i;if(this._tabster._noop)return;const a={relatedTarget:r};if(t){const s=(o=et._lastResetElement)===null||o===void 0?void 0:o.get();if(et._lastResetElement=void 0,s===t||ow(t))return;a.isFocusedProgrammatically=n;const c=Me.getTabsterContext(this._tabster,t),u=(i=c==null?void 0:c.modalizer)===null||i===void 0?void 0:i.userId;u&&(a.modalizerId=u)}const l=this._nextVal={element:t?new dr(this._win,t):void 0,details:a};t&&t!==this._val&&this._validateFocusedElement(t),this._nextVal===l&&this.setVal(t,a),this._nextVal=void 0}setVal(t,r){super.setVal(t,r),t&&(this._lastVal=new dr(this._win,t))}static findNextTabbable(t,r,n,o,i,a,l){const s=n||r.root.getElement();if(!s)return null;let c=null;const u=et._isTabbingTimer,f=t.getWindow();u&&f.clearTimeout(u),et.isTabbing=!0,et._isTabbingTimer=f.setTimeout(()=>{delete et._isTabbingTimer,et.isTabbing=!1},0);const d=r.modalizer,h=r.groupper,p=r.mover,m=y=>{if(c=y.findNextTabbable(o,i,a,l),o&&!(c!=null&&c.element)){const v=y!==d&&M.getParentElement(y.getElement());if(v){const g=Me.getTabsterContext(t,o,{referenceElement:v});if(g){const b=y.getElement(),k=a?b:b&&aw(b)||b;k&&(c=et.findNextTabbable(t,g,n,k,v,a,l),c&&(c.outOfDOMOrder=!0))}}}};if(h&&p)m(r.groupperBeforeMover?h:p);else if(h)m(h);else if(p)m(p);else if(d)m(d);else{const y={container:s,currentElement:o,referenceElement:i,ignoreAccessibility:l,useActiveModalizer:!0},v={};c={element:t.focusable[a?"findPrev":"findNext"](y,v),outOfDOMOrder:v.outOfDOMOrder,uncontrolled:v.uncontrolled}}return c}}et.isTabbing=!1;/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class $4 extends $i{constructor(t,r,n,o){super(n,t,su.Groupper,o,!0),this._setHandlers((i,a,l)=>{var s,c;const u=t.get(),f=i.input;if(u&&f){const d=Me.getTabsterContext(n,f);if(d){let h;h=(s=r.findNextTabbable(l||void 0,void 0,a,!0))===null||s===void 0?void 0:s.element,h||(h=(c=et.findNextTabbable(n,d,void 0,i.isOutside?f:O4(u,!a),void 0,a,!0))===null||c===void 0?void 0:c.element),h&&cn(h)}}})}}class V4 extends $l{constructor(t,r,n,o,i){super(t,r,o),this._shouldTabInside=!1,this.makeTabbable(!1),this._onDispose=n,t.controlTab||(this.dummyManager=new $4(this._element,this,t,i))}dispose(){var t;this._onDispose(this),this._element.get(),(t=this.dummyManager)===null||t===void 0||t.dispose(),delete this.dummyManager,delete this._first}findNextTabbable(t,r,n,o){var i;const a=this.getElement();if(!a)return null;const l=((i=t==null?void 0:t.__tabsterDummyContainer)===null||i===void 0?void 0:i.get())===a;if(!this._shouldTabInside&&t&&M.nodeContains(a,t)&&!l)return{element:void 0,outOfDOMOrder:!0};const s=this.getFirst(!0);if(!t||!M.nodeContains(a,t)||l)return{element:s,outOfDOMOrder:!0};const c=this._tabster;let u=null,f=!1,d;if(this._shouldTabInside&&s){const h={container:a,currentElement:t,referenceElement:r,ignoreAccessibility:o,useActiveModalizer:!0},p={};u=c.focusable[n?"findPrev":"findNext"](h,p),f=!!p.outOfDOMOrder,!u&&this._props.tabbability===Zy.LimitedTrapFocus&&(u=c.focusable[n?"findLast":"findFirst"]({container:a,ignoreAccessibility:o,useActiveModalizer:!0},p),f=!0),d=p.uncontrolled}return{element:u,uncontrolled:d,outOfDOMOrder:f}}makeTabbable(t){this._shouldTabInside=t||!this._props.tabbability}isActive(t){var r;const n=this.getElement()||null;let o=!0;for(let a=M.getParentElement(n);a;a=M.getParentElement(a)){const l=(r=Wt(this._tabster,a))===null||r===void 0?void 0:r.groupper;l&&(l._shouldTabInside||(o=!1))}let i=o?this._props.tabbability?this._shouldTabInside:!1:void 0;if(i&&t){const a=this._tabster.focusedElement.getFocusedElement();a&&(i=a!==this.getFirst(!0))}return i}getFirst(t){var r;const n=this.getElement();let o;if(n){if(t&&this._tabster.focusable.isFocusable(n))return n;o=(r=this._first)===null||r===void 0?void 0:r.get(),o||(o=this._tabster.focusable.findFirst({container:n,useActiveModalizer:!0})||void 0,o&&this.setFirst(o))}return o}setFirst(t){t?this._first=new dr(this._tabster.getWindow,t):delete this._first}acceptElement(t,r){const n=r.cachedGrouppers,o=M.getParentElement(this.getElement()),i=o&&Me.getTabsterContext(this._tabster,o),a=i==null?void 0:i.groupper,l=i!=null&&i.groupperBeforeMover?a:void 0;let s;const c=d=>{let h=n[d.id],p;return h?p=h.isActive:(p=this.isActive(!0),h=n[d.id]={isActive:p}),p};if(l&&(s=l.getElement(),!c(l)&&s&&r.container!==s&&M.nodeContains(r.container,s)))return r.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const u=c(this),f=this.getElement();if(f&&u!==!0){if(f===t&&a&&(s||(s=a.getElement()),s&&!c(a)&&M.nodeContains(r.container,s)&&s!==r.container)||f!==t&&M.nodeContains(f,t))return r.skippedFocusable=!0,NodeFilter.FILTER_REJECT;const d=n[this.id];let h;if("first"in d?h=d.first:h=d.first=this.getFirst(!0),h&&r.acceptCondition(h))return r.rejectElementsFrom=f,r.skippedFocusable=!0,h!==r.from?(r.found=!0,r.foundElement=h,NodeFilter.FILTER_ACCEPT):NodeFilter.FILTER_REJECT}}}class G4{constructor(t,r){this._current={},this._grouppers={},this._init=()=>{const n=this._win();this._tabster.focusedElement.subscribeFirst(this._onFocus);const o=n.document,i=M.getActiveElement(o);i&&this._onFocus(i),o.addEventListener("mousedown",this._onMouseDown,!0),n.addEventListener("keydown",this._onKeyDown,!0),n.addEventListener(Nd,this._onMoveFocus)},this._onGroupperDispose=n=>{delete this._grouppers[n.id]},this._onFocus=n=>{n&&this._updateCurrent(n,!0,!0)},this._onMouseDown=n=>{n.target&&this._updateCurrent(n.target,!0)},this._onKeyDown=n=>{if(n.keyCode!==Ye.Enter&&n.keyCode!==Ye.Esc||n.ctrlKey||n.altKey||n.shiftKey||n.metaKey)return;const o=this._tabster.focusedElement.getFocusedElement();o&&this.handleKeyPress(o,n)},this._onMoveFocus=n=>{var o;const i=n.composedPath()[0],a=(o=n.detail)===null||o===void 0?void 0:o.action;i&&a!==void 0&&!n.defaultPrevented&&(a===jd.Enter?this._enterGroupper(i):this._escapeGroupper(i),n.stopImmediatePropagation())},this._tabster=t,this._win=r,t.queueInit(this._init)}dispose(){const t=this._win();this._handleKeyPressTimer&&(t.clearTimeout(this._handleKeyPressTimer),delete this._handleKeyPressTimer),this._current={},this._updateTimer&&(t.clearTimeout(this._updateTimer),delete this._updateTimer),this._tabster.focusedElement.unsubscribe(this._onFocus),t.document.removeEventListener("mousedown",this._onMouseDown,!0),t.removeEventListener("keydown",this._onKeyDown,!0),t.removeEventListener(Nd,this._onMoveFocus),Object.keys(this._grouppers).forEach(r=>{this._grouppers[r]&&(this._grouppers[r].dispose(),delete this._grouppers[r])})}createGroupper(t,r,n){const o=new V4(this._tabster,t,this._onGroupperDispose,r,n);this._grouppers[o.id]=o;const i=this._tabster.focusedElement.getFocusedElement();return i&&M.nodeContains(t,i)&&!this._updateTimer&&(this._updateTimer=this._win().setTimeout(()=>{delete this._updateTimer,i===this._tabster.focusedElement.getFocusedElement()&&this._updateCurrent(i,!0,!0)},0)),o}forgetCurrentGrouppers(){this._current={}}_updateCurrent(t,r,n){var o;this._updateTimer&&(this._win().clearTimeout(this._updateTimer),delete this._updateTimer);const i={};let a=!0;for(let l=t;l;l=M.getParentElement(l)){const s=(o=Wt(this._tabster,l))===null||o===void 0?void 0:o.groupper;if(s){if(i[s.id]=!0,a&&n&&l!==t&&(a=!1),r||!a){this._current[s.id]=s;const c=s.isActive()||t!==l&&(!s.getProps().delegated||s.getFirst(!1)!==t);s.makeTabbable(c)}a=!1}}for(const l of Object.keys(this._current)){const s=this._current[l];s.id in i||(s.makeTabbable(!1),s.setFirst(void 0),delete this._current[l])}}_enterGroupper(t,r){const n=this._tabster,o=Me.getTabsterContext(n,t),i=(o==null?void 0:o.groupper)||(o==null?void 0:o.modalizerInGroupper),a=i==null?void 0:i.getElement();if(i&&a&&(t===a||i.getProps().delegated&&t===i.getFirst(!1))){const l=n.focusable.findNext({container:a,currentElement:t,useActiveModalizer:!0});if(l&&(!r||r&&Yn({by:"groupper",owner:a,next:l,relatedEvent:r})))return r&&(r.preventDefault(),r.stopImmediatePropagation()),l.focus(),l}return null}_escapeGroupper(t,r,n){var o;const i=this._tabster,a=Me.getTabsterContext(i,t),l=a==null?void 0:a.modalizerInGroupper;let s=(a==null?void 0:a.groupper)||l;const c=s==null?void 0:s.getElement();if(s&&c&&M.nodeContains(c,t)){let u;if(t!==c||n)u=s.getFirst(!0);else{const f=M.getParentElement(c),d=f?Me.getTabsterContext(i,f):void 0;s=d==null?void 0:d.groupper,u=s==null?void 0:s.getFirst(!0)}if(u&&(!r||r&&Yn({by:"groupper",owner:c,next:u,relatedEvent:r})))return s&&(s.makeTabbable(!1),l&&((o=i.modalizer)===null||o===void 0||o.setActive(void 0))),u.focus(),u}return null}moveFocus(t,r){return r===jd.Enter?this._enterGroupper(t):this._escapeGroupper(t)}handleKeyPress(t,r,n){const o=this._tabster,i=Me.getTabsterContext(o,t);if(i&&(i!=null&&i.groupper||i!=null&&i.modalizerInGroupper)){const a=this._win();if(this._handleKeyPressTimer&&(a.clearTimeout(this._handleKeyPressTimer),delete this._handleKeyPressTimer),i.ignoreKeydown(r))return;if(r.keyCode===Ye.Enter)this._enterGroupper(t,r);else if(r.keyCode===Ye.Esc){const l=o.focusedElement.getFocusedElement();this._handleKeyPressTimer=a.setTimeout(()=>{delete this._handleKeyPressTimer,!(l!==o.focusedElement.getFocusedElement()&&(n&&!l||!n))&&this._escapeGroupper(t,r,n)},0)}}}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class K4 extends lw{constructor(t){super(),this._onChange=r=>{this.setVal(r,void 0)},this._keyborg=xp(t()),this._keyborg.subscribe(this._onChange)}dispose(){super.dispose(),this._keyborg&&(this._keyborg.unsubscribe(this._onChange),Sp(this._keyborg),delete this._keyborg)}setNavigatingWithKeyboard(t){var r;(r=this._keyborg)===null||r===void 0||r.setVal(t)}isNavigatingWithKeyboard(){var t;return!!(!((t=this._keyborg)===null||t===void 0)&&t.isNavigatingWithKeyboard())}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */let X4=0;const df="aria-hidden";class Z4 extends $i{constructor(t,r,n){super(r,t,su.Modalizer,n),this._setHandlers((o,i)=>{var a,l,s;const c=t.get(),u=c&&((a=Me.getRoot(r,c))===null||a===void 0?void 0:a.getElement()),f=o.input;let d;if(u&&f){const h=(l=f.__tabsterDummyContainer)===null||l===void 0?void 0:l.get(),p=Me.getTabsterContext(r,h||f);p&&(d=(s=et.findNextTabbable(r,p,u,f,void 0,i,!0))===null||s===void 0?void 0:s.element),d&&cn(d)}})}}class Q4 extends $l{constructor(t,r,n,o,i,a){super(t,r,o),this._wasFocused=0,this.userId=o.id,this._onDispose=n,this._activeElements=a,t.controlTab||(this.dummyManager=new Z4(this._element,t,i))}makeActive(t){if(this._isActive!==t){this._isActive=t;const r=this.getElement();if(r){const n=this._activeElements,o=n.map(i=>i.get()).indexOf(r);t?o<0&&n.push(new dr(this._tabster.getWindow,r)):o>=0&&n.splice(o,1)}this.triggerFocusEvent(t?$y:Vy)}}focused(t){return t||(this._wasFocused=++X4),this._wasFocused}setProps(t){t.id&&(this.userId=t.id),this._props={...t}}dispose(){var t;this.makeActive(!1),this._onDispose(this),(t=this.dummyManager)===null||t===void 0||t.dispose(),delete this.dummyManager,this._activeElements=[],this._remove()}isActive(){return!!this._isActive}contains(t){return M.nodeContains(this.getElement(),t)}findNextTabbable(t,r,n,o){var i,a;if(!this.getElement())return null;const s=this._tabster;let c=null,u=!1,f;const d=t&&((i=Me.getRoot(s,t))===null||i===void 0?void 0:i.getElement());if(d){const h={container:d,currentElement:t,referenceElement:r,ignoreAccessibility:o,useActiveModalizer:!0},p={};c=s.focusable[n?"findPrev":"findNext"](h,p),!c&&this._props.isTrapped&&(!((a=s.modalizer)===null||a===void 0)&&a.activeId)?(c=s.focusable[n?"findLast":"findFirst"]({container:d,ignoreAccessibility:o,useActiveModalizer:!0},p),u=!0):u=!!p.outOfDOMOrder,f=p.uncontrolled}return{element:c,uncontrolled:f,outOfDOMOrder:u}}triggerFocusEvent(t,r){const n=this.getElement();let o=!1;if(n){const i=r?this._activeElements.map(a=>a.get()):[n];for(const a of i)a&&!un(a,t,{id:this.userId,element:n,eventName:t})&&(o=!0)}return o}_remove(){}}class J4{constructor(t,r,n){this._onModalizerDispose=i=>{const a=i.id,l=i.userId,s=this._parts[l];delete this._modalizers[a],s&&(delete s[a],Object.keys(s).length===0&&(delete this._parts[l],this.activeId===l&&this.setActive(void 0)))},this._onKeyDown=i=>{var a;if(i.keyCode!==Ye.Esc)return;const l=this._tabster,s=l.focusedElement.getFocusedElement();if(s){const c=Me.getTabsterContext(l,s),u=c==null?void 0:c.modalizer;if(c&&!c.groupper&&(u!=null&&u.isActive())&&!c.ignoreKeydown(i)){const f=u.userId;if(f){const d=this._parts[f];if(d){const h=Object.keys(d).map(p=>{var m;const y=d[p],v=y.getElement();let g;return v&&(g=(m=Wt(this._tabster,v))===null||m===void 0?void 0:m.groupper),y&&v&&g?{el:v,focusedSince:y.focused(!0)}:{focusedSince:0}}).filter(p=>p.focusedSince>0).sort((p,m)=>p.focusedSince>m.focusedSince?-1:p.focusedSince{var l,s;const c=i&&Me.getTabsterContext(this._tabster,i);if(!c||!i)return;const u=this._augMap;for(let d=i;d;d=M.getParentElement(d))u.has(d)&&(u.delete(d),ff(this._tabster,d,df));const f=c.modalizer;if((s=f||((l=Wt(this._tabster,i))===null||l===void 0?void 0:l.modalizer))===null||s===void 0||s.focused(),(f==null?void 0:f.userId)===this.activeId){this.currentIsOthersAccessible=f==null?void 0:f.getProps().isOthersAccessible;return}if(a.isFocusedProgrammatically||this.currentIsOthersAccessible||f!=null&&f.getProps().isAlwaysAccessible)this.setActive(f);else{const d=this._win();d.clearTimeout(this._restoreModalizerFocusTimer),this._restoreModalizerFocusTimer=d.setTimeout(()=>this._restoreModalizerFocus(i),100)}},this._tabster=t,this._win=t.getWindow,this._modalizers={},this._parts={},this._augMap=new WeakMap,this._aug=[],this._alwaysAccessibleSelector=r,this._accessibleCheck=n,this.activeElements=[],t.controlTab||t.root.addDummyInputs(),this._win().addEventListener("keydown",this._onKeyDown,!0),t.queueInit(()=>{this._tabster.focusedElement.subscribe(this._onFocus)})}dispose(){const t=this._win();t.removeEventListener("keydown",this._onKeyDown,!0),Object.keys(this._modalizers).forEach(r=>{this._modalizers[r]&&(this._modalizers[r].dispose(),delete this._modalizers[r])}),t.clearTimeout(this._restoreModalizerFocusTimer),t.clearTimeout(this._hiddenUpdateTimer),this._parts={},delete this.activeId,this.activeElements=[],this._augMap=new WeakMap,this._aug=[],this._tabster.focusedElement.unsubscribe(this._onFocus)}createModalizer(t,r,n){var o;const i=new Q4(this._tabster,t,this._onModalizerDispose,r,n,this.activeElements),a=i.id,l=r.id;this._modalizers[a]=i;let s=this._parts[l];return s||(s=this._parts[l]={}),s[a]=i,M.nodeContains(t,(o=this._tabster.focusedElement.getFocusedElement())!==null&&o!==void 0?o:null)&&(l!==this.activeId?this.setActive(i):i.makeActive(!0)),i}isAugmented(t){return this._augMap.has(t)}hiddenUpdate(){this._hiddenUpdateTimer||(this._hiddenUpdateTimer=this._win().setTimeout(()=>{delete this._hiddenUpdateTimer,this._hiddenUpdate()},250))}setActive(t){const r=t==null?void 0:t.userId,n=this.activeId;if(n!==r){if(this.activeId=r,n){const o=this._parts[n];if(o)for(const i of Object.keys(o))o[i].makeActive(!1)}if(r){const o=this._parts[r];if(o)for(const i of Object.keys(o))o[i].makeActive(!0)}this.currentIsOthersAccessible=t==null?void 0:t.getProps().isOthersAccessible,this.hiddenUpdate()}}focus(t,r,n){const o=Me.getTabsterContext(this._tabster,t),i=o==null?void 0:o.modalizer;if(i){this.setActive(i);const a=i.getProps(),l=i.getElement();if(l){if(r===void 0&&(r=a.isNoFocusFirst),!r&&this._tabster.keyboardNavigation.isNavigatingWithKeyboard()&&this._tabster.focusedElement.focusFirst({container:l})||(n===void 0&&(n=a.isNoFocusDefault),!n&&this._tabster.focusedElement.focusDefault(l)))return!0;this._tabster.focusedElement.resetFocus(l)}}return!1}acceptElement(t,r){var n;const o=r.modalizerUserId,i=(n=r.currentCtx)===null||n===void 0?void 0:n.modalizer;if(o)for(const l of this.activeElements){const s=l.get();if(s&&(M.nodeContains(t,s)||s===t))return NodeFilter.FILTER_SKIP}const a=o===(i==null?void 0:i.userId)||!o&&(i!=null&&i.getProps().isAlwaysAccessible)?void 0:NodeFilter.FILTER_SKIP;return a!==void 0&&(r.skippedFocusable=!0),a}_hiddenUpdate(){var t;const r=this._tabster,n=r.getWindow().document.body,o=this.activeId,i=this._parts,a=[],l=[],s=this._alwaysAccessibleSelector,c=s?Array.from(M.querySelectorAll(n,s)):[],u=[];for(const v of Object.keys(i)){const g=i[v];for(const b of Object.keys(g)){const k=g[b],_=k.getElement(),S=k.getProps().isAlwaysAccessible;_&&(v===o?(u.push(_),this.currentIsOthersAccessible||a.push(_)):S?c.push(_):l.push(_))}}const f=this._augMap,d=a.length>0?[...a,...c]:void 0,h=[],p=new WeakMap,m=(v,g)=>{var b;const k=v.tagName;if(k==="SCRIPT"||k==="STYLE")return;let _=!1;f.has(v)?g?_=!0:(f.delete(v),ff(r,v,df)):g&&!(!((b=this._accessibleCheck)===null||b===void 0)&&b.call(this,v,u))&&ff(r,v,df,"true")&&(f.set(v,!0),_=!0),_&&(h.push(new dr(r.getWindow,v)),p.set(v,!0))},y=v=>{for(let g=M.getFirstElementChild(v);g;g=M.getNextElementSibling(g)){let b=!1,k=!1,_=!1;if(d){const w=r.getParent(g);for(const S of d){if(g===S){b=!0;break}if(M.nodeContains(g,S)){k=!0;break}else M.nodeContains(S,w)&&(_=!0)}k?y(g):!b&&!_&&m(g,!0)}else m(g,!1)}};d||c.forEach(v=>m(v,!1)),l.forEach(v=>m(v,!0)),n&&y(n),(t=this._aug)===null||t===void 0||t.map(v=>v.get()).forEach(v=>{v&&!p.get(v)&&m(v,!1)}),this._aug=h,this._augMap=p}_restoreModalizerFocus(t){const r=t==null?void 0:t.ownerDocument;if(!t||!r)return;const n=Me.getTabsterContext(this._tabster,t),o=n==null?void 0:n.modalizer,i=this.activeId;if(!o&&!i||o&&i===o.userId)return;const a=n==null?void 0:n.root.getElement();if(a){let l=this._tabster.focusable.findFirst({container:a,useActiveModalizer:!0});if(l){if(t.compareDocumentPosition(l)&document.DOCUMENT_POSITION_PRECEDING&&(l=this._tabster.focusable.findLast({container:a,useActiveModalizer:!0}),!l))throw new Error("Something went wrong.");this._tabster.focusedElement.focus(l);return}}t.blur()}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const Y4=["input","textarea","*[contenteditable]"].join(", ");class eP extends $i{constructor(t,r,n,o){super(r,t,su.Mover,o),this._onFocusDummyInput=i=>{var a,l;const s=this._element.get(),c=i.input;if(s&&c){const u=Me.getTabsterContext(this._tabster,s);let f;u&&(f=(a=et.findNextTabbable(this._tabster,u,void 0,c,void 0,!i.isFirst,!0))===null||a===void 0?void 0:a.element);const d=(l=this._getMemorized())===null||l===void 0?void 0:l.get();d&&(f=d),f&&cn(f)}},this._tabster=r,this._getMemorized=n,this._setHandlers(this._onFocusDummyInput)}}const hf=1,dv=2,hv=3;class tP extends $l{constructor(t,r,n,o,i){var a;super(t,r,o),this._visible={},this._onIntersection=s=>{for(const c of s){const u=c.target,f=Qs(this._win,u);let d,h=this._fullyVisible;if(c.intersectionRatio>=.25?(d=c.intersectionRatio>=.75?mn.Visible:mn.PartiallyVisible,d===mn.Visible&&(h=f)):d=mn.Invisible,this._visible[f]!==d){d===void 0?(delete this._visible[f],h===f&&delete this._fullyVisible):(this._visible[f]=d,this._fullyVisible=h);const p=this.getState(u);p&&un(u,zd,p)}}},this._win=t.getWindow,this.visibilityTolerance=(a=o.visibilityTolerance)!==null&&a!==void 0?a:.8,(this._props.trackState||this._props.visibilityAware)&&(this._intersectionObserver=new IntersectionObserver(this._onIntersection,{threshold:[0,.25,.5,.75,1]}),this._observeState()),this._onDispose=n;const l=()=>o.memorizeCurrent?this._current:void 0;t.controlTab||(this.dummyManager=new eP(this._element,t,l,i))}dispose(){var t;this._onDispose(this),this._intersectionObserver&&(this._intersectionObserver.disconnect(),delete this._intersectionObserver),delete this._current,delete this._fullyVisible,delete this._allElements,delete this._updateQueue,this._unobserve&&(this._unobserve(),delete this._unobserve);const r=this._win();this._setCurrentTimer&&(r.clearTimeout(this._setCurrentTimer),delete this._setCurrentTimer),this._updateTimer&&(r.clearTimeout(this._updateTimer),delete this._updateTimer),(t=this.dummyManager)===null||t===void 0||t.dispose(),delete this.dummyManager}setCurrent(t){t?this._current=new dr(this._win,t):this._current=void 0,(this._props.trackState||this._props.visibilityAware)&&!this._setCurrentTimer&&(this._setCurrentTimer=this._win().setTimeout(()=>{var r;delete this._setCurrentTimer;const n=[];this._current!==this._prevCurrent&&(n.push(this._current),n.push(this._prevCurrent),this._prevCurrent=this._current);for(const o of n){const i=o==null?void 0:o.get();if(i&&((r=this._allElements)===null||r===void 0?void 0:r.get(i))===this){const a=this._props;if(i&&(a.visibilityAware!==void 0||a.trackState)){const l=this.getState(i);l&&un(i,zd,l)}}}}))}getCurrent(){var t;return((t=this._current)===null||t===void 0?void 0:t.get())||null}findNextTabbable(t,r,n,o){var i;const a=this.getElement(),l=a&&((i=t==null?void 0:t.__tabsterDummyContainer)===null||i===void 0?void 0:i.get())===a;if(!a)return null;let s=null,c=!1,u;if(this._props.tabbable||l||t&&!M.nodeContains(a,t)){const f={currentElement:t,referenceElement:r,container:a,ignoreAccessibility:o,useActiveModalizer:!0},d={};s=this._tabster.focusable[n?"findPrev":"findNext"](f,d),c=!!d.outOfDOMOrder,u=d.uncontrolled}return{element:s,uncontrolled:u,outOfDOMOrder:c}}acceptElement(t,r){var n,o,i;if(!et.isTabbing)return!((n=r.currentCtx)===null||n===void 0)&&n.excludedFromMover?NodeFilter.FILTER_REJECT:void 0;const{memorizeCurrent:a,visibilityAware:l,hasDefault:s=!0}=this._props,c=this.getElement();if(c&&(a||l||s)&&(!M.nodeContains(c,r.from)||((o=r.from.__tabsterDummyContainer)===null||o===void 0?void 0:o.get())===c)){let u;if(a){const f=(i=this._current)===null||i===void 0?void 0:i.get();f&&r.acceptCondition(f)&&(u=f)}if(!u&&s&&(u=this._tabster.focusable.findDefault({container:c,useActiveModalizer:!0})),!u&&l&&(u=this._tabster.focusable.findElement({container:c,useActiveModalizer:!0,isBackward:r.isBackward,acceptCondition:f=>{var d;const h=Qs(this._win,f),p=this._visible[h];return c!==f&&!!(!((d=this._allElements)===null||d===void 0)&&d.get(f))&&r.acceptCondition(f)&&(p===mn.Visible||p===mn.PartiallyVisible&&(l===mn.PartiallyVisible||!this._fullyVisible))}})),u)return r.found=!0,r.foundElement=u,r.rejectElementsFrom=c,r.skippedFocusable=!0,NodeFilter.FILTER_ACCEPT}}_observeState(){const t=this.getElement();if(this._unobserve||!t||typeof MutationObserver>"u")return;const r=this._win(),n=this._allElements=new WeakMap,o=this._tabster.focusable;let i=this._updateQueue=[];const a=M.createMutationObserver(h=>{for(const p of h){const m=p.target,y=p.removedNodes,v=p.addedNodes;if(p.type==="attributes")p.attributeName==="tabindex"&&i.push({element:m,type:dv});else{for(let g=0;g{var m,y;const v=n.get(h);v&&p&&((m=this._intersectionObserver)===null||m===void 0||m.unobserve(h),n.delete(h)),!v&&!p&&(n.set(h,this),(y=this._intersectionObserver)===null||y===void 0||y.observe(h))},s=h=>{const p=o.isFocusable(h);n.get(h)?p||l(h,!0):p&&l(h)},c=h=>{const{mover:p}=d(h);if(p&&p!==this)if(p.getElement()===h&&o.isFocusable(h))l(h);else return;const m=Bp(r.document,h,y=>{const{mover:v,groupper:g}=d(y);if(v&&v!==this)return NodeFilter.FILTER_REJECT;const b=g==null?void 0:g.getFirst(!0);return g&&g.getElement()!==y&&b&&b!==y?NodeFilter.FILTER_REJECT:(o.isFocusable(y)&&l(y),NodeFilter.FILTER_SKIP)});if(m)for(m.currentNode=h;m.nextNode(););},u=h=>{n.get(h)&&l(h,!0);for(let m=M.getFirstElementChild(h);m;m=M.getNextElementSibling(m))u(m)},f=()=>{!this._updateTimer&&i.length&&(this._updateTimer=r.setTimeout(()=>{delete this._updateTimer;for(const{element:h,type:p}of i)switch(p){case dv:s(h);break;case hf:c(h);break;case hv:u(h);break}i=this._updateQueue=[]},0))},d=h=>{const p={};for(let m=h;m;m=M.getParentElement(m)){const y=Wt(this._tabster,m);if(y&&(y.groupper&&!p.groupper&&(p.groupper=y.groupper),y.mover)){p.mover=y.mover;break}}return p};i.push({element:t,type:hf}),f(),a.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["tabindex"]}),this._unobserve=()=>{a.disconnect()}}getState(t){const r=Qs(this._win,t);if(r in this._visible){const n=this._visible[r]||mn.Invisible;return{isCurrent:this._current?this._current.get()===t:void 0,visibility:n}}}}function rP(e,t,r,n,o,i,a,l){const s=r{const n=this._win();n.addEventListener("keydown",this._onKeyDown,!0),n.addEventListener(Td,this._onMoveFocus),n.addEventListener(Rd,this._onMemorizedElement),this._tabster.focusedElement.subscribe(this._onFocus)},this._onMoverDispose=n=>{delete this._movers[n.id]},this._onFocus=n=>{var o;let i=n,a=n;for(let l=M.getParentElement(n);l;l=M.getParentElement(l)){const s=(o=Wt(this._tabster,l))===null||o===void 0?void 0:o.mover;s&&(s.setCurrent(a),i=void 0),!i&&this._tabster.focusable.isFocusable(l)&&(i=a=l)}},this._onKeyDown=async n=>{var o;if(this._ignoredInputTimer&&(this._win().clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),(o=this._ignoredInputResolve)===null||o===void 0||o.call(this,!1),n.ctrlKey||n.altKey||n.shiftKey||n.metaKey)return;const i=n.keyCode;let a;if(i===Ye.Down?a=Je.ArrowDown:i===Ye.Right?a=Je.ArrowRight:i===Ye.Up?a=Je.ArrowUp:i===Ye.Left?a=Je.ArrowLeft:i===Ye.PageDown?a=Je.PageDown:i===Ye.PageUp?a=Je.PageUp:i===Ye.Home?a=Je.Home:i===Ye.End&&(a=Je.End),!a)return;const l=this._tabster.focusedElement.getFocusedElement();!l||await this._isIgnoredInput(l,i)||this._moveFocus(l,a,n)},this._onMoveFocus=n=>{var o;const i=n.composedPath()[0],a=(o=n.detail)===null||o===void 0?void 0:o.key;i&&a!==void 0&&!n.defaultPrevented&&(this._moveFocus(i,a),n.stopImmediatePropagation())},this._onMemorizedElement=n=>{var o;const i=n.composedPath()[0];let a=(o=n.detail)===null||o===void 0?void 0:o.memorizedElement;if(i){const l=Me.getTabsterContext(this._tabster,i),s=l==null?void 0:l.mover;s&&(a&&!M.nodeContains(s.getElement(),a)&&(a=void 0),s.setCurrent(a),n.stopImmediatePropagation())}},this._tabster=t,this._win=r,this._movers={},t.queueInit(this._init)}dispose(){var t;const r=this._win();this._tabster.focusedElement.unsubscribe(this._onFocus),(t=this._ignoredInputResolve)===null||t===void 0||t.call(this,!1),this._ignoredInputTimer&&(r.clearTimeout(this._ignoredInputTimer),delete this._ignoredInputTimer),r.removeEventListener("keydown",this._onKeyDown,!0),r.removeEventListener(Td,this._onMoveFocus),r.removeEventListener(Rd,this._onMemorizedElement),Object.keys(this._movers).forEach(n=>{this._movers[n]&&(this._movers[n].dispose(),delete this._movers[n])})}createMover(t,r,n){const o=new tP(this._tabster,t,this._onMoverDispose,r,n);return this._movers[o.id]=o,o}moveFocus(t,r){return this._moveFocus(t,r)}_moveFocus(t,r,n){var o,i;const a=this._tabster,l=Me.getTabsterContext(a,t,{checkRtl:!0});if(!l||!l.mover||l.excludedFromMover||n&&l.ignoreKeydown(n))return null;const s=l.mover,c=s.getElement();if(l.groupperBeforeMover){const E=l.groupper;if(E&&!E.isActive(!0)){for(let N=M.getParentElement(E.getElement());N&&N!==c;N=M.getParentElement(N))if(!((i=(o=Wt(a,N))===null||o===void 0?void 0:o.groupper)===null||i===void 0)&&i.isActive(!0))return null}else return null}if(!c)return null;const u=a.focusable,f=s.getProps(),d=f.direction||Co.Both,h=d===Co.Both,p=h||d===Co.Vertical,m=h||d===Co.Horizontal,y=d===Co.GridLinear,v=y||d===Co.Grid,g=f.cyclic;let b,k,_,w=0,S=0;if(v&&(_=t.getBoundingClientRect(),w=Math.ceil(_.left),S=Math.floor(_.right)),l.rtl&&(r===Je.ArrowRight?r=Je.ArrowLeft:r===Je.ArrowLeft&&(r=Je.ArrowRight)),r===Je.ArrowDown&&p||r===Je.ArrowRight&&(m||v))if(b=u.findNext({currentElement:t,container:c,useActiveModalizer:!0}),b&&v){const E=Math.ceil(b.getBoundingClientRect().left);!y&&S>E&&(b=void 0)}else!b&&g&&(b=u.findFirst({container:c,useActiveModalizer:!0}));else if(r===Je.ArrowUp&&p||r===Je.ArrowLeft&&(m||v))if(b=u.findPrev({currentElement:t,container:c,useActiveModalizer:!0}),b&&v){const E=Math.floor(b.getBoundingClientRect().right);!y&&E>w&&(b=void 0)}else!b&&g&&(b=u.findLast({container:c,useActiveModalizer:!0}));else if(r===Je.Home)v?u.findElement({container:c,currentElement:t,useActiveModalizer:!0,isBackward:!0,acceptCondition:E=>{var N;if(!u.isFocusable(E))return!1;const C=Math.ceil((N=E.getBoundingClientRect().left)!==null&&N!==void 0?N:0);return E!==t&&w<=C?!0:(b=E,!1)}}):b=u.findFirst({container:c,useActiveModalizer:!0});else if(r===Je.End)v?u.findElement({container:c,currentElement:t,useActiveModalizer:!0,acceptCondition:E=>{var N;if(!u.isFocusable(E))return!1;const C=Math.ceil((N=E.getBoundingClientRect().left)!==null&&N!==void 0?N:0);return E!==t&&w>=C?!0:(b=E,!1)}}):b=u.findLast({container:c,useActiveModalizer:!0});else if(r===Je.PageUp){if(u.findElement({currentElement:t,container:c,useActiveModalizer:!0,isBackward:!0,acceptCondition:E=>u.isFocusable(E)?cv(this._win,E,s.visibilityTolerance)?(b=E,!1):!0:!1}),v&&b){const E=Math.ceil(b.getBoundingClientRect().left);u.findElement({currentElement:b,container:c,useActiveModalizer:!0,acceptCondition:N=>{if(!u.isFocusable(N))return!1;const C=Math.ceil(N.getBoundingClientRect().left);return w=C?!0:(b=N,!1)}})}k=!1}else if(r===Je.PageDown){if(u.findElement({currentElement:t,container:c,useActiveModalizer:!0,acceptCondition:E=>u.isFocusable(E)?cv(this._win,E,s.visibilityTolerance)?(b=E,!1):!0:!1}),v&&b){const E=Math.ceil(b.getBoundingClientRect().left);u.findElement({currentElement:b,container:c,useActiveModalizer:!0,isBackward:!0,acceptCondition:N=>{if(!u.isFocusable(N))return!1;const C=Math.ceil(N.getBoundingClientRect().left);return w>C||E<=C?!0:(b=N,!1)}})}k=!0}else if(v){const E=r===Je.ArrowUp,N=w,C=Math.ceil(_.top),L=S,R=Math.floor(_.bottom);let re,oe,te=0;u.findAll({container:c,currentElement:t,isBackward:E,onElement:he=>{const ee=he.getBoundingClientRect(),W=Math.ceil(ee.left),J=Math.ceil(ee.top),B=Math.floor(ee.right),ce=Math.floor(ee.bottom);if(E&&CJ)return!0;const ge=Math.ceil(Math.min(L,B))-Math.floor(Math.max(N,W)),P=Math.ceil(Math.min(L-N,B-W));if(ge>0&&P>=ge){const Se=ge/P;Se>te&&(re=he,te=Se)}else if(te===0){const Se=rP(N,C,L,R,W,J,B,ce);(oe===void 0||Se0)return!1;return!0}}),b=re}return b&&(!n||n&&Yn({by:"mover",owner:c,next:b,relatedEvent:n}))?(k!==void 0&&N4(this._win,b,k),n&&(n.preventDefault(),n.stopImmediatePropagation()),cn(b),b):null}async _isIgnoredInput(t,r){if(t.getAttribute("aria-expanded")==="true"&&t.hasAttribute("aria-activedescendant"))return!0;if(iw(t,Y4)){let n=0,o=0,i=0,a;if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"){const l=t.type;if(i=(t.value||"").length,l==="email"||l==="number"){if(i){const c=M.getSelection(t);if(c){const u=c.toString().length,f=r===Ye.Left||r===Ye.Up;if(c.modify("extend",f?"backward":"forward","character"),u!==c.toString().length)return c.modify("extend",f?"forward":"backward","character"),!0;i=0}}}else{const c=t.selectionStart;if(c===null)return l==="hidden";n=c||0,o=t.selectionEnd||0}}else t.contentEditable==="true"&&(a=new(F4(this._win))(l=>{this._ignoredInputResolve=h=>{delete this._ignoredInputResolve,l(h)};const s=this._win();this._ignoredInputTimer&&s.clearTimeout(this._ignoredInputTimer);const{anchorNode:c,focusNode:u,anchorOffset:f,focusOffset:d}=M.getSelection(t)||{};this._ignoredInputTimer=s.setTimeout(()=>{var h,p,m;delete this._ignoredInputTimer;const{anchorNode:y,focusNode:v,anchorOffset:g,focusOffset:b}=M.getSelection(t)||{};if(y!==c||v!==u||g!==f||b!==d){(h=this._ignoredInputResolve)===null||h===void 0||h.call(this,!1);return}if(n=g||0,o=b||0,i=((p=t.textContent)===null||p===void 0?void 0:p.length)||0,y&&v&&M.nodeContains(t,y)&&M.nodeContains(t,v)&&y!==t){let k=!1;const _=w=>{if(w===y)k=!0;else if(w===v)return!0;const S=w.textContent;if(S&&!M.getFirstChild(w)){const N=S.length;k?v!==y&&(o+=N):(n+=N,o+=N)}let E=!1;for(let N=M.getFirstChild(w);N&&!E;N=N.nextSibling)E=_(N);return E};_(t)}(m=this._ignoredInputResolve)===null||m===void 0||m.call(this,!0)},0)}));if(a&&!await a||n!==o||n>0&&(r===Ye.Left||r===Ye.Up||r===Ye.Home)||n"u")return()=>{};const o=t.getWindow;let i;const a=u=>{var f,d,h,p,m;for(const y of u){const v=y.target,g=y.removedNodes,b=y.addedNodes;if(y.type==="attributes")y.attributeName===kn&&r(t,v);else{for(let k=0;ks(h,f));if(d)for(;d.nextNode(););}function s(u,f){var d;if(!u.getAttribute)return NodeFilter.FILTER_SKIP;const h=u.__tabsterElementUID;return h&&i&&(f?delete i[h]:(d=i[h])!==null&&d!==void 0||(i[h]=new dr(o,u))),(Wt(t,u)||u.hasAttribute(kn))&&r(t,u,f),NodeFilter.FILTER_SKIP}const c=M.createMutationObserver(a);return n&&l(o().document.body),c.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[kn]}),()=>{c.disconnect()}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class iP{constructor(t){this._isUncontrolledCompletely=t}isUncontrolledCompletely(t,r){var n;const o=(n=this._isUncontrolledCompletely)===null||n===void 0?void 0:n.call(this,t,r);return o===void 0?r:o}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const mc="restorer:restorefocus",aP=10;class lP extends $l{constructor(t,r,n){var o;if(super(t,r,n),this._hasFocus=!1,this._onFocusOut=i=>{var a;const l=(a=this._element)===null||a===void 0?void 0:a.get();l&&i.relatedTarget===null&&un(l,mc),l&&!M.nodeContains(l,i.relatedTarget)&&(this._hasFocus=!1)},this._onFocusIn=()=>{this._hasFocus=!0},this._props.type===dl.Source){const i=(o=this._element)===null||o===void 0?void 0:o.get();i==null||i.addEventListener("focusout",this._onFocusOut),i==null||i.addEventListener("focusin",this._onFocusIn),this._hasFocus=M.nodeContains(i,i&&M.getActiveElement(i.ownerDocument))}}dispose(){var t;if(this._props.type===dl.Source){const r=(t=this._element)===null||t===void 0?void 0:t.get();if(r==null||r.removeEventListener("focusout",this._onFocusOut),r==null||r.removeEventListener("focusin",this._onFocusIn),this._hasFocus){const n=this._tabster.getWindow().document;un(n.body,mc)}}}}class sP{constructor(t){this._history=[],this._restoreFocusTimeout=0,this._onRestoreFocus=r=>{const n=this._getWindow();this._restoreFocusTimeout&&(n.clearTimeout(this._restoreFocusTimeout),this._restoreFocusTimeout=0);const o=r.composedPath()[0];o&&(this._restoreFocusTimeout=n.setTimeout(()=>this._restoreFocus(o)))},this._onFocusIn=r=>{var n;if(!r)return;const o=Wt(this._tabster,r);((n=o==null?void 0:o.restorer)===null||n===void 0?void 0:n.getProps().type)===dl.Target&&this._addToHistory(r)},this._restoreFocus=r=>{var n;const o=this._getWindow().document;if(M.getActiveElement(o)!==o.body||!this._keyboardNavState.isNavigatingWithKeyboard()&&M.nodeContains(o.body,r))return;let i=this._history.pop();for(;i&&!M.nodeContains(o.body,M.getParentElement(i.get()));)i=this._history.pop();(n=i==null?void 0:i.get())===null||n===void 0||n.focus()},this._tabster=t,this._getWindow=t.getWindow,this._getWindow().addEventListener(mc,this._onRestoreFocus),this._keyboardNavState=t.keyboardNavigation,this._focusedElementState=t.focusedElement,this._focusedElementState.subscribe(this._onFocusIn)}dispose(){const t=this._getWindow();this._focusedElementState.unsubscribe(this._onFocusIn),t.removeEventListener(mc,this._onRestoreFocus),this._restoreFocusTimeout&&t.clearTimeout(this._restoreFocusTimeout)}_addToHistory(t){var r;((r=this._history[this._history.length-1])===null||r===void 0?void 0:r.get())!==t&&(this._history.length>aP&&this._history.shift(),this._history.push(new dr(this._getWindow,t)))}createRestorer(t,r){const n=new lP(this._tabster,t,r);return r.type===dl.Target&&M.getActiveElement(t.ownerDocument)===t&&this._addToHistory(t),n}}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */class cP{constructor(t){this.keyboardNavigation=t.keyboardNavigation,this.focusedElement=t.focusedElement,this.focusable=t.focusable,this.root=t.root,this.uncontrolled=t.uncontrolled,this.core=t}}class uP{constructor(t,r){var n,o;this._forgetMemorizedElements=[],this._wrappers=new Set,this._initQueue=[],this._version="6.1.0",this._noop=!1,this.getWindow=()=>{if(!this._win)throw new Error("Using disposed Tabster.");return this._win},this._storage=E4(t),this._win=t;const i=this.getWindow;r!=null&&r.DOMAPI&&B4({...r.DOMAPI}),this.keyboardNavigation=new K4(i),this.focusedElement=new et(this,i),this.focusable=new W4(this),this.root=new Me(this,r==null?void 0:r.autoRoot),this.uncontrolled=new iP((r==null?void 0:r.checkUncontrolledCompletely)||(r==null?void 0:r.checkUncontrolledTrappingFocus)),this.controlTab=(n=r==null?void 0:r.controlTab)!==null&&n!==void 0?n:!0,this.rootDummyInputs=!!(r!=null&&r.rootDummyInputs),this._dummyObserver=new A4(i),this.getParent=(o=r==null?void 0:r.getParent)!==null&&o!==void 0?o:M.getParentNode,this.internal={stopObserver:()=>{this._unobserve&&(this._unobserve(),delete this._unobserve)},resumeObserver:a=>{if(!this._unobserve){const l=i().document;this._unobserve=oP(l,this,Jy,a)}}},tw(i),this.queueInit(()=>{this.internal.resumeObserver(!0)})}_mergeProps(t){var r;t&&(this.getParent=(r=t.getParent)!==null&&r!==void 0?r:this.getParent)}createTabster(t,r){const n=new cP(this);return t||this._wrappers.add(n),this._mergeProps(r),n}disposeTabster(t,r){r?this._wrappers.clear():this._wrappers.delete(t),this._wrappers.size===0&&this.dispose()}dispose(){var t,r,n,o,i,a,l,s;this.internal.stopObserver();const c=this._win;c==null||c.clearTimeout(this._initTimer),delete this._initTimer,this._initQueue=[],this._forgetMemorizedElements=[],c&&this._forgetMemorizedTimer&&(c.clearTimeout(this._forgetMemorizedTimer),delete this._forgetMemorizedTimer),(t=this.outline)===null||t===void 0||t.dispose(),(r=this.crossOrigin)===null||r===void 0||r.dispose(),(n=this.deloser)===null||n===void 0||n.dispose(),(o=this.groupper)===null||o===void 0||o.dispose(),(i=this.mover)===null||i===void 0||i.dispose(),(a=this.modalizer)===null||a===void 0||a.dispose(),(l=this.observedElement)===null||l===void 0||l.dispose(),(s=this.restorer)===null||s===void 0||s.dispose(),this.keyboardNavigation.dispose(),this.focusable.dispose(),this.focusedElement.dispose(),this.root.dispose(),this._dummyObserver.dispose(),T4(this.getWindow),uv(this.getWindow),this._storage=new WeakMap,this._wrappers.clear(),c&&(P4(c),delete c.__tabsterInstance,delete this._win)}storageEntry(t,r){const n=this._storage;let o=n.get(t);return o?r===!1&&Object.keys(o).length===0&&n.delete(t):r===!0&&(o={},n.set(t,o)),o}forceCleanup(){this._win&&(this._forgetMemorizedElements.push(this._win.document.body),!this._forgetMemorizedTimer&&(this._forgetMemorizedTimer=this._win.setTimeout(()=>{delete this._forgetMemorizedTimer;for(let t=this._forgetMemorizedElements.shift();t;t=this._forgetMemorizedElements.shift())uv(this.getWindow,t),et.forgetMemorized(this.focusedElement,t)},0),ew(this.getWindow,!0)))}queueInit(t){var r;this._win&&(this._initQueue.push(t),this._initTimer||(this._initTimer=(r=this._win)===null||r===void 0?void 0:r.setTimeout(()=>{delete this._initTimer,this.drainInitQueue()},0)))}drainInitQueue(){if(!this._win)return;const t=this._initQueue;this._initQueue=[],t.forEach(r=>r())}}function fP(e,t){let r=mP(e);return r?r.createTabster(!1,t):(r=new uP(e,t),e.__tabsterInstance=r,r.createTabster())}function dP(e){const t=e.core;return t.groupper||(t.groupper=new G4(t,t.getWindow)),t.groupper}function hP(e){const t=e.core;return t.mover||(t.mover=new nP(t,t.getWindow)),t.mover}function pP(e,t,r){const n=e.core;return n.modalizer||(n.modalizer=new J4(n,t,r)),n.modalizer}function Pp(e){const t=e.core;return t.restorer||(t.restorer=new sP(t)),t.restorer}function gP(e,t){e.core.disposeTabster(e,t)}function mP(e){return e.__tabsterInstance}const ni=()=>{const{targetDocument:e}=ht(),t=(e==null?void 0:e.defaultView)||void 0,r=t==null?void 0:t.__tabsterShadowDOMAPI,n=x.useMemo(()=>t?fP(t,{autoRoot:{},controlTab:!1,getParent:Ay,checkUncontrolledTrappingFocus:o=>{var i;return!!(!((i=o.firstElementChild)===null||i===void 0)&&i.hasAttribute("data-is-focus-trap-zone-bumper"))},DOMAPI:r}):null,[t,r]);return sn(()=>()=>{n&&gP(n)},[n]),n},hl=e=>{ni();const t=cu(e,!0);return x.useMemo(()=>({[cr.TabsterAttributeName]:t}),[t])},uu=(e={})=>{const{circular:t,axis:r,memorizeCurrent:n=!0,tabbable:o,ignoreDefaultKeydown:i,unstable_hasDefault:a}=e,l=ni();return l&&hP(l),hl({mover:{cyclic:!!t,direction:vP(r??"vertical"),memorizeCurrent:n,tabbable:o,hasDefault:a},...i&&{focusable:{ignoreKeydown:i}}})};function vP(e){switch(e){case"horizontal":return cr.MoverDirections.Horizontal;case"grid":return cr.MoverDirections.Grid;case"grid-linear":return cr.MoverDirections.GridLinear;case"both":return cr.MoverDirections.Both;case"vertical":default:return cr.MoverDirections.Vertical}}const bP=e=>{const t=ni();return t&&dP(t),hl({groupper:{tabbability:yP(e==null?void 0:e.tabBehavior)},focusable:{ignoreKeydown:e==null?void 0:e.ignoreDefaultKeydown}})},yP=e=>{switch(e){case"unlimited":return cr.GroupperTabbabilities.Unlimited;case"limited":return cr.GroupperTabbabilities.Limited;case"limited-trap-focus":return cr.GroupperTabbabilities.LimitedTrapFocus;default:return}},oi=()=>{const e=ni(),{targetDocument:t}=ht(),r=x.useCallback((l,s)=>(e==null?void 0:e.focusable.findAll({container:l,acceptCondition:s}))||[],[e]),n=x.useCallback(l=>e==null?void 0:e.focusable.findFirst({container:l}),[e]),o=x.useCallback(l=>e==null?void 0:e.focusable.findLast({container:l}),[e]),i=x.useCallback((l,s={})=>{if(!e||!t)return null;const{container:c=t.body}=s;return e.focusable.findNext({currentElement:l,container:c})},[e,t]),a=x.useCallback((l,s={})=>{if(!e||!t)return null;const{container:c=t.body}=s;return e.focusable.findPrev({currentElement:l,container:c})},[e,t]);return{findAllFocusable:r,findFirstFocusable:n,findLastFocusable:o,findNextFocusable:i,findPrevFocusable:a}},pv="data-fui-focus-visible",sw="data-fui-focus-within";function wP(e,t){if(cw(e))return()=>{};const r={current:void 0},n=xp(t);function o(s){n.isNavigatingWithKeyboard()&&Ko(s)&&(r.current=s,s.setAttribute(pv,""))}function i(){r.current&&(r.current.removeAttribute(pv),r.current=void 0)}n.subscribe(s=>{s||i()});const a=s=>{i();const c=s.composedPath()[0];o(c)},l=s=>{(!s.relatedTarget||Ko(s.relatedTarget)&&!e.contains(s.relatedTarget))&&i()};return e.addEventListener(Vr,a),e.addEventListener("focusout",l),e.focusVisible=!0,e.contains(t.document.activeElement)&&o(t.document.activeElement),()=>{i(),e.removeEventListener(Vr,a),e.removeEventListener("focusout",l),delete e.focusVisible,Sp(n)}}function cw(e){return e?e.focusVisible?!0:cw(e==null?void 0:e.parentElement):!1}function uw(e={}){const t=ht(),r=x.useRef(null);var n;const o=(n=e.targetDocument)!==null&&n!==void 0?n:t.targetDocument;return x.useEffect(()=>{if(o!=null&&o.defaultView&&r.current)return wP(r.current,o.defaultView)},[r,o]),r}function kP(e,t){const r=xp(t);r.subscribe(i=>{i||gv(e)});const n=i=>{r.isNavigatingWithKeyboard()&&mv(i.target)&&xP(e)},o=i=>{(!i.relatedTarget||mv(i.relatedTarget)&&!e.contains(i.relatedTarget))&&gv(e)};return e.addEventListener(Vr,n),e.addEventListener("focusout",o),()=>{e.removeEventListener(Vr,n),e.removeEventListener("focusout",o),Sp(r)}}function xP(e){e.setAttribute(sw,"")}function gv(e){e.removeAttribute(sw)}function mv(e){return e?!!(e&&typeof e=="object"&&"classList"in e&&"contains"in e):!1}function SP(){const{targetDocument:e}=ht(),t=x.useRef(null);return x.useEffect(()=>{if(e!=null&&e.defaultView&&t.current)return kP(t.current,e.defaultView)},[t,e]),t}const Ep=(e={})=>{const{trapFocus:t,alwaysFocusable:r,legacyTrapFocus:n}=e,o=ni();o&&(pP(o),Pp(o));const i=_n("modal-",e.id),a=hl({restorer:{type:cr.RestorerTypes.Source},...t&&{modalizer:{id:i,isOthersAccessible:!t,isAlwaysAccessible:r,isTrapped:n&&t}}}),l=hl({restorer:{type:cr.RestorerTypes.Target}});return{modalAttributes:a,triggerAttributes:l}};function _P(){const e=ni();return e&&Pp(e),cu({restorer:{type:cr.RestorerTypes.Target}})}function BP(){const e=ni();return e&&Pp(e),cu({restorer:{type:cr.RestorerTypes.Source}})}const Q={2:"#050505",4:"#0a0a0a",6:"#0f0f0f",8:"#141414",10:"#1a1a1a",12:"#1f1f1f",14:"#242424",16:"#292929",18:"#2e2e2e",20:"#333333",22:"#383838",24:"#3d3d3d",26:"#424242",28:"#474747",30:"#4d4d4d",32:"#525252",34:"#575757",36:"#5c5c5c",38:"#616161",40:"#666666",42:"#6b6b6b",44:"#707070",46:"#757575",48:"#7a7a7a",50:"#808080",52:"#858585",54:"#8a8a8a",56:"#8f8f8f",58:"#949494",60:"#999999",62:"#9e9e9e",64:"#a3a3a3",66:"#a8a8a8",68:"#adadad",70:"#b3b3b3",72:"#b8b8b8",74:"#bdbdbd",76:"#c2c2c2",78:"#c7c7c7",80:"#cccccc",82:"#d1d1d1",84:"#d6d6d6",86:"#dbdbdb",88:"#e0e0e0",90:"#e6e6e6",92:"#ebebeb",94:"#f0f0f0",96:"#f5f5f5",98:"#fafafa"},qn={5:"rgba(255, 255, 255, 0.05)",10:"rgba(255, 255, 255, 0.1)",20:"rgba(255, 255, 255, 0.2)",30:"rgba(255, 255, 255, 0.3)",40:"rgba(255, 255, 255, 0.4)",50:"rgba(255, 255, 255, 0.5)",60:"rgba(255, 255, 255, 0.6)",70:"rgba(255, 255, 255, 0.7)",80:"rgba(255, 255, 255, 0.8)",90:"rgba(255, 255, 255, 0.9)"},Hn={5:"rgba(0, 0, 0, 0.05)",10:"rgba(0, 0, 0, 0.1)",20:"rgba(0, 0, 0, 0.2)",30:"rgba(0, 0, 0, 0.3)",40:"rgba(0, 0, 0, 0.4)",50:"rgba(0, 0, 0, 0.5)",60:"rgba(0, 0, 0, 0.6)",70:"rgba(0, 0, 0, 0.7)",80:"rgba(0, 0, 0, 0.8)",90:"rgba(0, 0, 0, 0.9)"},it="#ffffff",CP="#000000",PP={shade50:"#130204",shade40:"#230308",shade30:"#420610",shade20:"#590815",shade10:"#690a19",primary:"#750b1c",tint10:"#861b2c",tint20:"#962f3f",tint30:"#ac4f5e",tint40:"#d69ca5",tint50:"#e9c7cd",tint60:"#f9f0f2"},fw={shade50:"#200205",shade40:"#3b0509",shade30:"#6e0811",shade20:"#960b18",shade10:"#b10e1c",primary:"#c50f1f",tint10:"#cc2635",tint20:"#d33f4c",tint30:"#dc626d",tint40:"#eeacb2",tint50:"#f6d1d5",tint60:"#fdf3f4"},EP={shade50:"#210809",shade40:"#3f1011",shade30:"#751d1f",shade20:"#9f282b",shade10:"#bc2f32",primary:"#d13438",tint10:"#d7494c",tint20:"#dc5e62",tint30:"#e37d80",tint40:"#f1bbbc",tint50:"#f8dadb",tint60:"#fdf6f6"},zP={shade50:"#230900",shade40:"#411200",shade30:"#7a2101",shade20:"#a62d01",shade10:"#c43501",primary:"#da3b01",tint10:"#de501c",tint20:"#e36537",tint30:"#e9835e",tint40:"#f4bfab",tint50:"#f9dcd1",tint60:"#fdf6f3"},TP={shade50:"#200d03",shade40:"#3d1805",shade30:"#712d09",shade20:"#9a3d0c",shade10:"#b6480e",primary:"#ca5010",tint10:"#d06228",tint20:"#d77440",tint30:"#df8e64",tint40:"#efc4ad",tint50:"#f7dfd2",tint60:"#fdf7f4"},NP={shade50:"#271002",shade40:"#4a1e04",shade30:"#8a3707",shade20:"#bc4b09",shade10:"#de590b",primary:"#f7630c",tint10:"#f87528",tint20:"#f98845",tint30:"#faa06b",tint40:"#fdcfb4",tint50:"#fee5d7",tint60:"#fff9f5"},RP={shade50:"#291600",shade40:"#4d2a00",shade30:"#8f4e00",shade20:"#c26a00",shade10:"#e67e00",primary:"#ff8c00",tint10:"#ff9a1f",tint20:"#ffa83d",tint30:"#ffba66",tint40:"#ffddb3",tint50:"#ffedd6",tint60:"#fffaf5"},jP={shade50:"#251a00",shade40:"#463100",shade30:"#835b00",shade20:"#b27c00",shade10:"#d39300",primary:"#eaa300",tint10:"#edad1c",tint20:"#efb839",tint30:"#f2c661",tint40:"#f9e2ae",tint50:"#fcefd3",tint60:"#fefbf4"},FP={shade50:"#282400",shade40:"#4c4400",shade30:"#817400",shade20:"#c0ad00",shade10:"#e4cc00",primary:"#fde300",tint10:"#fde61e",tint20:"#fdea3d",tint30:"#feee66",tint40:"#fef7b2",tint50:"#fffad6",tint60:"#fffef5"},DP={shade50:"#1f1900",shade40:"#3a2f00",shade30:"#6c5700",shade20:"#937700",shade10:"#ae8c00",primary:"#c19c00",tint10:"#c8a718",tint20:"#d0b232",tint30:"#dac157",tint40:"#ecdfa5",tint50:"#f5eece",tint60:"#fdfbf2"},IP={shade50:"#181202",shade40:"#2e2103",shade30:"#553e06",shade20:"#745408",shade10:"#89640a",primary:"#986f0b",tint10:"#a47d1e",tint20:"#b18c34",tint30:"#c1a256",tint40:"#e0cea2",tint50:"#efe4cb",tint60:"#fbf8f2"},AP={shade50:"#170e07",shade40:"#2b1a0e",shade30:"#50301a",shade20:"#6c4123",shade10:"#804d29",primary:"#8e562e",tint10:"#9c663f",tint20:"#a97652",tint30:"#bb8f6f",tint40:"#ddc3b0",tint50:"#edded3",tint60:"#faf7f4"},MP={shade50:"#0c1501",shade40:"#162702",shade30:"#294903",shade20:"#376304",shade10:"#427505",primary:"#498205",tint10:"#599116",tint20:"#6ba02b",tint30:"#85b44c",tint40:"#bdd99b",tint50:"#dbebc7",tint60:"#f6faf0"},OP={shade50:"#002111",shade40:"#003d20",shade30:"#00723b",shade20:"#009b51",shade10:"#00b85f",primary:"#00cc6a",tint10:"#19d279",tint20:"#34d889",tint30:"#5ae0a0",tint40:"#a8f0cd",tint50:"#cff7e4",tint60:"#f3fdf8"},LP={shade50:"#031a02",shade40:"#063004",shade30:"#0b5a08",shade20:"#0e7a0b",shade10:"#11910d",primary:"#13a10e",tint10:"#27ac22",tint20:"#3db838",tint30:"#5ec75a",tint40:"#a7e3a5",tint50:"#cef0cd",tint60:"#f2fbf2"},dw={shade50:"#031403",shade40:"#052505",shade30:"#094509",shade20:"#0c5e0c",shade10:"#0e700e",primary:"#107c10",tint10:"#218c21",tint20:"#359b35",tint30:"#54b054",tint40:"#9fd89f",tint50:"#c9eac9",tint60:"#f1faf1"},qP={shade50:"#021102",shade40:"#032003",shade30:"#063b06",shade20:"#085108",shade10:"#0a5f0a",primary:"#0b6a0b",tint10:"#1a7c1a",tint20:"#2d8e2d",tint30:"#4da64d",tint40:"#9ad29a",tint50:"#c6e7c6",tint60:"#f0f9f0"},HP={shade50:"#001d1f",shade40:"#00373a",shade30:"#00666d",shade20:"#008b94",shade10:"#00a5af",primary:"#00b7c3",tint10:"#18bfca",tint20:"#32c8d1",tint30:"#58d3db",tint40:"#a6e9ed",tint50:"#cef3f5",tint60:"#f2fcfd"},WP={shade50:"#001516",shade40:"#012728",shade30:"#02494c",shade20:"#026467",shade10:"#037679",primary:"#038387",tint10:"#159195",tint20:"#2aa0a4",tint30:"#4cb4b7",tint40:"#9bd9db",tint50:"#c7ebec",tint60:"#f0fafa"},UP={shade50:"#000f12",shade40:"#001b22",shade30:"#00333f",shade20:"#004555",shade10:"#005265",primary:"#005b70",tint10:"#0f6c81",tint20:"#237d92",tint30:"#4496a9",tint40:"#94c8d4",tint50:"#c3e1e8",tint60:"#eff7f9"},$P={shade50:"#001322",shade40:"#002440",shade30:"#004377",shade20:"#005ba1",shade10:"#006cbf",primary:"#0078d4",tint10:"#1a86d9",tint20:"#3595de",tint30:"#5caae5",tint40:"#a9d3f2",tint50:"#d0e7f8",tint60:"#f3f9fd"},VP={shade50:"#000c16",shade40:"#00172a",shade30:"#002c4e",shade20:"#003b6a",shade10:"#00467e",primary:"#004e8c",tint10:"#125e9a",tint20:"#286fa8",tint30:"#4a89ba",tint40:"#9abfdc",tint50:"#c7dced",tint60:"#f0f6fa"},GP={shade50:"#0d1126",shade40:"#182047",shade30:"#2c3c85",shade20:"#3c51b4",shade10:"#4760d5",primary:"#4f6bed",tint10:"#637cef",tint20:"#778df1",tint30:"#93a4f4",tint40:"#c8d1fa",tint50:"#e1e6fc",tint60:"#f7f9fe"},KP={shade50:"#00061d",shade40:"#000c36",shade30:"#001665",shade20:"#001e89",shade10:"#0023a2",primary:"#0027b4",tint10:"#173bbd",tint20:"#3050c6",tint30:"#546fd2",tint40:"#a3b2e8",tint50:"#ccd5f3",tint60:"#f2f4fc"},XP={shade50:"#120f25",shade40:"#221d46",shade30:"#3f3682",shade20:"#5649b0",shade10:"#6656d1",primary:"#7160e8",tint10:"#8172eb",tint20:"#9184ee",tint30:"#a79cf1",tint40:"#d2ccf8",tint50:"#e7e4fb",tint60:"#f9f8fe"},ZP={shade50:"#0f0717",shade40:"#1c0e2b",shade30:"#341a51",shade20:"#46236e",shade10:"#532982",primary:"#5c2e91",tint10:"#6b3f9e",tint20:"#7c52ab",tint30:"#9470bd",tint40:"#c6b1de",tint50:"#e0d3ed",tint60:"#f7f4fb"},QP={shade50:"#160418",shade40:"#29072e",shade30:"#4c0d55",shade20:"#671174",shade10:"#7a1589",primary:"#881798",tint10:"#952aa4",tint20:"#a33fb1",tint30:"#b55fc1",tint40:"#d9a7e0",tint50:"#eaceef",tint60:"#faf2fb"},JP={shade50:"#1f091d",shade40:"#3a1136",shade30:"#6d2064",shade20:"#932b88",shade10:"#af33a1",primary:"#c239b3",tint10:"#c94cbc",tint20:"#d161c4",tint30:"#da7ed0",tint40:"#edbbe7",tint50:"#f5daf2",tint60:"#fdf5fc"},YP={shade50:"#1c0b1f",shade40:"#35153a",shade30:"#63276d",shade20:"#863593",shade10:"#9f3faf",primary:"#b146c2",tint10:"#ba58c9",tint20:"#c36bd1",tint30:"#cf87da",tint40:"#e6bfed",tint50:"#f2dcf5",tint60:"#fcf6fd"},e6={shade50:"#24091b",shade40:"#441232",shade30:"#80215d",shade20:"#ad2d7e",shade10:"#cd3595",primary:"#e43ba6",tint10:"#e750b0",tint20:"#ea66ba",tint30:"#ef85c8",tint40:"#f7c0e3",tint50:"#fbddf0",tint60:"#fef6fb"},t6={shade50:"#1f0013",shade40:"#390024",shade30:"#6b0043",shade20:"#91005a",shade10:"#ac006b",primary:"#bf0077",tint10:"#c71885",tint20:"#ce3293",tint30:"#d957a8",tint40:"#eca5d1",tint50:"#f5cee6",tint60:"#fcf2f9"},r6={shade50:"#13000c",shade40:"#240017",shade30:"#43002b",shade20:"#5a003b",shade10:"#6b0045",primary:"#77004d",tint10:"#87105d",tint20:"#98246f",tint30:"#ad4589",tint40:"#d696c0",tint50:"#e9c4dc",tint60:"#faf0f6"},n6={shade50:"#141313",shade40:"#252323",shade30:"#444241",shade20:"#5d5958",shade10:"#6e6968",primary:"#7a7574",tint10:"#8a8584",tint20:"#9a9594",tint30:"#afabaa",tint40:"#d7d4d4",tint50:"#eae8e8",tint60:"#faf9f9"},o6={shade50:"#0f0e0e",shade40:"#1c1b1a",shade30:"#343231",shade20:"#474443",shade10:"#54514f",primary:"#5d5a58",tint10:"#706d6b",tint20:"#84817e",tint30:"#9e9b99",tint40:"#cecccb",tint50:"#e5e4e3",tint60:"#f8f8f8"},i6={shade50:"#111314",shade40:"#1f2426",shade30:"#3b4447",shade20:"#505c60",shade10:"#5f6d71",primary:"#69797e",tint10:"#79898d",tint20:"#89989d",tint30:"#a0adb2",tint40:"#cdd6d8",tint50:"#e4e9ea",tint60:"#f8f9fa"},a6={shade50:"#090a0b",shade40:"#111315",shade30:"#202427",shade20:"#2b3135",shade10:"#333a3f",primary:"#394146",tint10:"#4d565c",tint20:"#626c72",tint30:"#808a90",tint40:"#bcc3c7",tint50:"#dbdfe1",tint60:"#f6f7f8"},lr={red:EP,green:dw,darkOrange:zP,yellow:FP,berry:JP,lightGreen:LP,marigold:jP},pf={darkRed:PP,cranberry:fw,pumpkin:TP,peach:RP,gold:DP,brass:IP,brown:AP,forest:MP,seafoam:OP,darkGreen:qP,lightTeal:HP,teal:WP,steel:UP,blue:$P,royalBlue:VP,cornflower:GP,navy:KP,lavender:XP,purple:ZP,grape:QP,lilac:YP,pink:e6,magenta:t6,plum:r6,beige:n6,mink:o6,platinum:i6,anchor:a6},Ot={cranberry:fw,green:dw,orange:NP},l6=["red","green","darkOrange","yellow","berry","lightGreen","marigold"],s6=["darkRed","cranberry","pumpkin","peach","gold","brass","brown","forest","seafoam","darkGreen","lightTeal","teal","steel","blue","royalBlue","cornflower","navy","lavender","purple","grape","lilac","pink","magenta","plum","beige","mink","platinum","anchor"],sa={success:"green",warning:"orange",danger:"cranberry"},Vl=l6.reduce((e,t)=>{const r=t.slice(0,1).toUpperCase()+t.slice(1),n={[`colorPalette${r}Background1`]:lr[t].tint60,[`colorPalette${r}Background2`]:lr[t].tint40,[`colorPalette${r}Background3`]:lr[t].primary,[`colorPalette${r}Foreground1`]:lr[t].shade10,[`colorPalette${r}Foreground2`]:lr[t].shade30,[`colorPalette${r}Foreground3`]:lr[t].primary,[`colorPalette${r}BorderActive`]:lr[t].primary,[`colorPalette${r}Border1`]:lr[t].tint40,[`colorPalette${r}Border2`]:lr[t].primary};return Object.assign(e,n)},{});Vl.colorPaletteYellowForeground1=lr.yellow.shade30;Vl.colorPaletteRedForegroundInverted=lr.red.tint20;Vl.colorPaletteGreenForegroundInverted=lr.green.tint20;Vl.colorPaletteYellowForegroundInverted=lr.yellow.tint40;const c6=s6.reduce((e,t)=>{const r=t.slice(0,1).toUpperCase()+t.slice(1),n={[`colorPalette${r}Background2`]:pf[t].tint40,[`colorPalette${r}Foreground2`]:pf[t].shade30,[`colorPalette${r}BorderActive`]:pf[t].primary};return Object.assign(e,n)},{}),u6={...Vl,...c6},ca=Object.entries(sa).reduce((e,[t,r])=>{const n=t.slice(0,1).toUpperCase()+t.slice(1),o={[`colorStatus${n}Background1`]:Ot[r].tint60,[`colorStatus${n}Background2`]:Ot[r].tint40,[`colorStatus${n}Background3`]:Ot[r].primary,[`colorStatus${n}Foreground1`]:Ot[r].shade10,[`colorStatus${n}Foreground2`]:Ot[r].shade30,[`colorStatus${n}Foreground3`]:Ot[r].primary,[`colorStatus${n}ForegroundInverted`]:Ot[r].tint30,[`colorStatus${n}BorderActive`]:Ot[r].primary,[`colorStatus${n}Border1`]:Ot[r].tint40,[`colorStatus${n}Border2`]:Ot[r].primary};return Object.assign(e,o)},{});ca.colorStatusDangerBackground3Hover=Ot[sa.danger].shade10;ca.colorStatusDangerBackground3Pressed=Ot[sa.danger].shade20;ca.colorStatusWarningForeground1=Ot[sa.warning].shade20;ca.colorStatusWarningForeground3=Ot[sa.warning].shade20;ca.colorStatusWarningBorder2=Ot[sa.warning].shade20;const f6=e=>({colorNeutralForeground1:Q[14],colorNeutralForeground1Hover:Q[14],colorNeutralForeground1Pressed:Q[14],colorNeutralForeground1Selected:Q[14],colorNeutralForeground2:Q[26],colorNeutralForeground2Hover:Q[14],colorNeutralForeground2Pressed:Q[14],colorNeutralForeground2Selected:Q[14],colorNeutralForeground2BrandHover:e[80],colorNeutralForeground2BrandPressed:e[70],colorNeutralForeground2BrandSelected:e[80],colorNeutralForeground3:Q[38],colorNeutralForeground3Hover:Q[26],colorNeutralForeground3Pressed:Q[26],colorNeutralForeground3Selected:Q[26],colorNeutralForeground3BrandHover:e[80],colorNeutralForeground3BrandPressed:e[70],colorNeutralForeground3BrandSelected:e[80],colorNeutralForeground4:Q[44],colorNeutralForegroundDisabled:Q[74],colorNeutralForegroundInvertedDisabled:qn[40],colorBrandForegroundLink:e[70],colorBrandForegroundLinkHover:e[60],colorBrandForegroundLinkPressed:e[40],colorBrandForegroundLinkSelected:e[70],colorNeutralForeground2Link:Q[26],colorNeutralForeground2LinkHover:Q[14],colorNeutralForeground2LinkPressed:Q[14],colorNeutralForeground2LinkSelected:Q[14],colorCompoundBrandForeground1:e[80],colorCompoundBrandForeground1Hover:e[70],colorCompoundBrandForeground1Pressed:e[60],colorBrandForeground1:e[80],colorBrandForeground2:e[70],colorBrandForeground2Hover:e[60],colorBrandForeground2Pressed:e[30],colorNeutralForeground1Static:Q[14],colorNeutralForegroundStaticInverted:it,colorNeutralForegroundInverted:it,colorNeutralForegroundInvertedHover:it,colorNeutralForegroundInvertedPressed:it,colorNeutralForegroundInvertedSelected:it,colorNeutralForegroundInverted2:it,colorNeutralForegroundOnBrand:it,colorNeutralForegroundInvertedLink:it,colorNeutralForegroundInvertedLinkHover:it,colorNeutralForegroundInvertedLinkPressed:it,colorNeutralForegroundInvertedLinkSelected:it,colorBrandForegroundInverted:e[100],colorBrandForegroundInvertedHover:e[110],colorBrandForegroundInvertedPressed:e[100],colorBrandForegroundOnLight:e[80],colorBrandForegroundOnLightHover:e[70],colorBrandForegroundOnLightPressed:e[50],colorBrandForegroundOnLightSelected:e[60],colorNeutralBackground1:it,colorNeutralBackground1Hover:Q[96],colorNeutralBackground1Pressed:Q[88],colorNeutralBackground1Selected:Q[92],colorNeutralBackground2:Q[98],colorNeutralBackground2Hover:Q[94],colorNeutralBackground2Pressed:Q[86],colorNeutralBackground2Selected:Q[90],colorNeutralBackground3:Q[96],colorNeutralBackground3Hover:Q[92],colorNeutralBackground3Pressed:Q[84],colorNeutralBackground3Selected:Q[88],colorNeutralBackground4:Q[94],colorNeutralBackground4Hover:Q[98],colorNeutralBackground4Pressed:Q[96],colorNeutralBackground4Selected:it,colorNeutralBackground5:Q[92],colorNeutralBackground5Hover:Q[96],colorNeutralBackground5Pressed:Q[94],colorNeutralBackground5Selected:Q[98],colorNeutralBackground6:Q[90],colorNeutralBackgroundInverted:Q[16],colorNeutralBackgroundStatic:Q[20],colorNeutralBackgroundAlpha:qn[50],colorNeutralBackgroundAlpha2:qn[80],colorSubtleBackground:"transparent",colorSubtleBackgroundHover:Q[96],colorSubtleBackgroundPressed:Q[88],colorSubtleBackgroundSelected:Q[92],colorSubtleBackgroundLightAlphaHover:qn[70],colorSubtleBackgroundLightAlphaPressed:qn[50],colorSubtleBackgroundLightAlphaSelected:"transparent",colorSubtleBackgroundInverted:"transparent",colorSubtleBackgroundInvertedHover:Hn[10],colorSubtleBackgroundInvertedPressed:Hn[30],colorSubtleBackgroundInvertedSelected:Hn[20],colorTransparentBackground:"transparent",colorTransparentBackgroundHover:"transparent",colorTransparentBackgroundPressed:"transparent",colorTransparentBackgroundSelected:"transparent",colorNeutralBackgroundDisabled:Q[94],colorNeutralBackgroundInvertedDisabled:qn[10],colorNeutralStencil1:Q[90],colorNeutralStencil2:Q[98],colorNeutralStencil1Alpha:Hn[10],colorNeutralStencil2Alpha:Hn[5],colorBackgroundOverlay:Hn[40],colorScrollbarOverlay:Hn[50],colorBrandBackground:e[80],colorBrandBackgroundHover:e[70],colorBrandBackgroundPressed:e[40],colorBrandBackgroundSelected:e[60],colorCompoundBrandBackground:e[80],colorCompoundBrandBackgroundHover:e[70],colorCompoundBrandBackgroundPressed:e[60],colorBrandBackgroundStatic:e[80],colorBrandBackground2:e[160],colorBrandBackground2Hover:e[150],colorBrandBackground2Pressed:e[130],colorBrandBackground3Static:e[60],colorBrandBackground4Static:e[40],colorBrandBackgroundInverted:it,colorBrandBackgroundInvertedHover:e[160],colorBrandBackgroundInvertedPressed:e[140],colorBrandBackgroundInvertedSelected:e[150],colorNeutralCardBackground:Q[98],colorNeutralCardBackgroundHover:it,colorNeutralCardBackgroundPressed:Q[96],colorNeutralCardBackgroundSelected:Q[92],colorNeutralCardBackgroundDisabled:Q[94],colorNeutralStrokeAccessible:Q[38],colorNeutralStrokeAccessibleHover:Q[34],colorNeutralStrokeAccessiblePressed:Q[30],colorNeutralStrokeAccessibleSelected:e[80],colorNeutralStroke1:Q[82],colorNeutralStroke1Hover:Q[78],colorNeutralStroke1Pressed:Q[70],colorNeutralStroke1Selected:Q[74],colorNeutralStroke2:Q[88],colorNeutralStroke3:Q[94],colorNeutralStrokeSubtle:Q[88],colorNeutralStrokeOnBrand:it,colorNeutralStrokeOnBrand2:it,colorNeutralStrokeOnBrand2Hover:it,colorNeutralStrokeOnBrand2Pressed:it,colorNeutralStrokeOnBrand2Selected:it,colorBrandStroke1:e[80],colorBrandStroke2:e[140],colorBrandStroke2Hover:e[120],colorBrandStroke2Pressed:e[80],colorBrandStroke2Contrast:e[140],colorCompoundBrandStroke:e[80],colorCompoundBrandStrokeHover:e[70],colorCompoundBrandStrokePressed:e[60],colorNeutralStrokeDisabled:Q[88],colorNeutralStrokeInvertedDisabled:qn[40],colorTransparentStroke:"transparent",colorTransparentStrokeInteractive:"transparent",colorTransparentStrokeDisabled:"transparent",colorNeutralStrokeAlpha:Hn[5],colorNeutralStrokeAlpha2:qn[20],colorStrokeFocus1:it,colorStrokeFocus2:CP,colorNeutralShadowAmbient:"rgba(0,0,0,0.12)",colorNeutralShadowKey:"rgba(0,0,0,0.14)",colorNeutralShadowAmbientLighter:"rgba(0,0,0,0.06)",colorNeutralShadowKeyLighter:"rgba(0,0,0,0.07)",colorNeutralShadowAmbientDarker:"rgba(0,0,0,0.20)",colorNeutralShadowKeyDarker:"rgba(0,0,0,0.24)",colorBrandShadowAmbient:"rgba(0,0,0,0.30)",colorBrandShadowKey:"rgba(0,0,0,0.25)"}),d6={borderRadiusNone:"0",borderRadiusSmall:"2px",borderRadiusMedium:"4px",borderRadiusLarge:"6px",borderRadiusXLarge:"8px",borderRadiusCircular:"10000px"},h6={curveAccelerateMax:"cubic-bezier(0.9,0.1,1,0.2)",curveAccelerateMid:"cubic-bezier(1,0,1,1)",curveAccelerateMin:"cubic-bezier(0.8,0,0.78,1)",curveDecelerateMax:"cubic-bezier(0.1,0.9,0.2,1)",curveDecelerateMid:"cubic-bezier(0,0,0,1)",curveDecelerateMin:"cubic-bezier(0.33,0,0.1,1)",curveEasyEaseMax:"cubic-bezier(0.8,0,0.2,1)",curveEasyEase:"cubic-bezier(0.33,0,0.67,1)",curveLinear:"cubic-bezier(0,0,1,1)"},p6={durationUltraFast:"50ms",durationFaster:"100ms",durationFast:"150ms",durationNormal:"200ms",durationGentle:"250ms",durationSlow:"300ms",durationSlower:"400ms",durationUltraSlow:"500ms"},g6={fontSizeBase100:"10px",fontSizeBase200:"12px",fontSizeBase300:"14px",fontSizeBase400:"16px",fontSizeBase500:"20px",fontSizeBase600:"24px",fontSizeHero700:"28px",fontSizeHero800:"32px",fontSizeHero900:"40px",fontSizeHero1000:"68px"},m6={lineHeightBase100:"14px",lineHeightBase200:"16px",lineHeightBase300:"20px",lineHeightBase400:"22px",lineHeightBase500:"28px",lineHeightBase600:"32px",lineHeightHero700:"36px",lineHeightHero800:"40px",lineHeightHero900:"52px",lineHeightHero1000:"92px"},v6={fontWeightRegular:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},b6={fontFamilyBase:"'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif",fontFamilyMonospace:"Consolas, 'Courier New', Courier, monospace",fontFamilyNumeric:"Bahnschrift, 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif"},rt={none:"0",xxs:"2px",xs:"4px",sNudge:"6px",s:"8px",mNudge:"10px",m:"12px",l:"16px",xl:"20px",xxl:"24px",xxxl:"32px"},y6={spacingHorizontalNone:rt.none,spacingHorizontalXXS:rt.xxs,spacingHorizontalXS:rt.xs,spacingHorizontalSNudge:rt.sNudge,spacingHorizontalS:rt.s,spacingHorizontalMNudge:rt.mNudge,spacingHorizontalM:rt.m,spacingHorizontalL:rt.l,spacingHorizontalXL:rt.xl,spacingHorizontalXXL:rt.xxl,spacingHorizontalXXXL:rt.xxxl},w6={spacingVerticalNone:rt.none,spacingVerticalXXS:rt.xxs,spacingVerticalXS:rt.xs,spacingVerticalSNudge:rt.sNudge,spacingVerticalS:rt.s,spacingVerticalMNudge:rt.mNudge,spacingVerticalM:rt.m,spacingVerticalL:rt.l,spacingVerticalXL:rt.xl,spacingVerticalXXL:rt.xxl,spacingVerticalXXXL:rt.xxxl},k6={strokeWidthThin:"1px",strokeWidthThick:"2px",strokeWidthThicker:"3px",strokeWidthThickest:"4px"},Fi={colorNeutralForeground1:"var(--colorNeutralForeground1)",colorNeutralForeground1Hover:"var(--colorNeutralForeground1Hover)",colorNeutralForeground1Pressed:"var(--colorNeutralForeground1Pressed)",colorNeutralForeground1Selected:"var(--colorNeutralForeground1Selected)",colorNeutralForeground2:"var(--colorNeutralForeground2)",colorNeutralForeground2Hover:"var(--colorNeutralForeground2Hover)",colorNeutralForeground2Pressed:"var(--colorNeutralForeground2Pressed)",colorNeutralForeground2Selected:"var(--colorNeutralForeground2Selected)",colorNeutralForeground2BrandHover:"var(--colorNeutralForeground2BrandHover)",colorNeutralForeground2BrandPressed:"var(--colorNeutralForeground2BrandPressed)",colorNeutralForeground2BrandSelected:"var(--colorNeutralForeground2BrandSelected)",colorNeutralForeground3:"var(--colorNeutralForeground3)",colorNeutralForeground3Hover:"var(--colorNeutralForeground3Hover)",colorNeutralForeground3Pressed:"var(--colorNeutralForeground3Pressed)",colorNeutralForeground3Selected:"var(--colorNeutralForeground3Selected)",colorNeutralForeground3BrandHover:"var(--colorNeutralForeground3BrandHover)",colorNeutralForeground3BrandPressed:"var(--colorNeutralForeground3BrandPressed)",colorNeutralForeground3BrandSelected:"var(--colorNeutralForeground3BrandSelected)",colorNeutralForeground4:"var(--colorNeutralForeground4)",colorNeutralForegroundDisabled:"var(--colorNeutralForegroundDisabled)",colorBrandForegroundLink:"var(--colorBrandForegroundLink)",colorBrandForegroundLinkHover:"var(--colorBrandForegroundLinkHover)",colorBrandForegroundLinkPressed:"var(--colorBrandForegroundLinkPressed)",colorBrandForegroundLinkSelected:"var(--colorBrandForegroundLinkSelected)",colorNeutralForeground2Link:"var(--colorNeutralForeground2Link)",colorNeutralForeground2LinkHover:"var(--colorNeutralForeground2LinkHover)",colorNeutralForeground2LinkPressed:"var(--colorNeutralForeground2LinkPressed)",colorNeutralForeground2LinkSelected:"var(--colorNeutralForeground2LinkSelected)",colorCompoundBrandForeground1:"var(--colorCompoundBrandForeground1)",colorCompoundBrandForeground1Hover:"var(--colorCompoundBrandForeground1Hover)",colorCompoundBrandForeground1Pressed:"var(--colorCompoundBrandForeground1Pressed)",colorNeutralForegroundOnBrand:"var(--colorNeutralForegroundOnBrand)",colorNeutralForegroundInverted:"var(--colorNeutralForegroundInverted)",colorNeutralForegroundInvertedHover:"var(--colorNeutralForegroundInvertedHover)",colorNeutralForegroundInvertedPressed:"var(--colorNeutralForegroundInvertedPressed)",colorNeutralForegroundInvertedSelected:"var(--colorNeutralForegroundInvertedSelected)",colorNeutralForegroundInverted2:"var(--colorNeutralForegroundInverted2)",colorNeutralForegroundStaticInverted:"var(--colorNeutralForegroundStaticInverted)",colorNeutralForegroundInvertedLink:"var(--colorNeutralForegroundInvertedLink)",colorNeutralForegroundInvertedLinkHover:"var(--colorNeutralForegroundInvertedLinkHover)",colorNeutralForegroundInvertedLinkPressed:"var(--colorNeutralForegroundInvertedLinkPressed)",colorNeutralForegroundInvertedLinkSelected:"var(--colorNeutralForegroundInvertedLinkSelected)",colorNeutralForegroundInvertedDisabled:"var(--colorNeutralForegroundInvertedDisabled)",colorBrandForeground1:"var(--colorBrandForeground1)",colorBrandForeground2:"var(--colorBrandForeground2)",colorBrandForeground2Hover:"var(--colorBrandForeground2Hover)",colorBrandForeground2Pressed:"var(--colorBrandForeground2Pressed)",colorNeutralForeground1Static:"var(--colorNeutralForeground1Static)",colorBrandForegroundInverted:"var(--colorBrandForegroundInverted)",colorBrandForegroundInvertedHover:"var(--colorBrandForegroundInvertedHover)",colorBrandForegroundInvertedPressed:"var(--colorBrandForegroundInvertedPressed)",colorBrandForegroundOnLight:"var(--colorBrandForegroundOnLight)",colorBrandForegroundOnLightHover:"var(--colorBrandForegroundOnLightHover)",colorBrandForegroundOnLightPressed:"var(--colorBrandForegroundOnLightPressed)",colorBrandForegroundOnLightSelected:"var(--colorBrandForegroundOnLightSelected)",colorNeutralBackground1:"var(--colorNeutralBackground1)",colorNeutralBackground1Hover:"var(--colorNeutralBackground1Hover)",colorNeutralBackground1Pressed:"var(--colorNeutralBackground1Pressed)",colorNeutralBackground1Selected:"var(--colorNeutralBackground1Selected)",colorNeutralBackground2:"var(--colorNeutralBackground2)",colorNeutralBackground2Hover:"var(--colorNeutralBackground2Hover)",colorNeutralBackground2Pressed:"var(--colorNeutralBackground2Pressed)",colorNeutralBackground2Selected:"var(--colorNeutralBackground2Selected)",colorNeutralBackground3:"var(--colorNeutralBackground3)",colorNeutralBackground3Hover:"var(--colorNeutralBackground3Hover)",colorNeutralBackground3Pressed:"var(--colorNeutralBackground3Pressed)",colorNeutralBackground3Selected:"var(--colorNeutralBackground3Selected)",colorNeutralBackground4:"var(--colorNeutralBackground4)",colorNeutralBackground4Hover:"var(--colorNeutralBackground4Hover)",colorNeutralBackground4Pressed:"var(--colorNeutralBackground4Pressed)",colorNeutralBackground4Selected:"var(--colorNeutralBackground4Selected)",colorNeutralBackground5:"var(--colorNeutralBackground5)",colorNeutralBackground5Hover:"var(--colorNeutralBackground5Hover)",colorNeutralBackground5Pressed:"var(--colorNeutralBackground5Pressed)",colorNeutralBackground5Selected:"var(--colorNeutralBackground5Selected)",colorNeutralBackground6:"var(--colorNeutralBackground6)",colorNeutralBackgroundInverted:"var(--colorNeutralBackgroundInverted)",colorNeutralBackgroundStatic:"var(--colorNeutralBackgroundStatic)",colorNeutralBackgroundAlpha:"var(--colorNeutralBackgroundAlpha)",colorNeutralBackgroundAlpha2:"var(--colorNeutralBackgroundAlpha2)",colorSubtleBackground:"var(--colorSubtleBackground)",colorSubtleBackgroundHover:"var(--colorSubtleBackgroundHover)",colorSubtleBackgroundPressed:"var(--colorSubtleBackgroundPressed)",colorSubtleBackgroundSelected:"var(--colorSubtleBackgroundSelected)",colorSubtleBackgroundLightAlphaHover:"var(--colorSubtleBackgroundLightAlphaHover)",colorSubtleBackgroundLightAlphaPressed:"var(--colorSubtleBackgroundLightAlphaPressed)",colorSubtleBackgroundLightAlphaSelected:"var(--colorSubtleBackgroundLightAlphaSelected)",colorSubtleBackgroundInverted:"var(--colorSubtleBackgroundInverted)",colorSubtleBackgroundInvertedHover:"var(--colorSubtleBackgroundInvertedHover)",colorSubtleBackgroundInvertedPressed:"var(--colorSubtleBackgroundInvertedPressed)",colorSubtleBackgroundInvertedSelected:"var(--colorSubtleBackgroundInvertedSelected)",colorTransparentBackground:"var(--colorTransparentBackground)",colorTransparentBackgroundHover:"var(--colorTransparentBackgroundHover)",colorTransparentBackgroundPressed:"var(--colorTransparentBackgroundPressed)",colorTransparentBackgroundSelected:"var(--colorTransparentBackgroundSelected)",colorNeutralBackgroundDisabled:"var(--colorNeutralBackgroundDisabled)",colorNeutralBackgroundInvertedDisabled:"var(--colorNeutralBackgroundInvertedDisabled)",colorNeutralStencil1:"var(--colorNeutralStencil1)",colorNeutralStencil2:"var(--colorNeutralStencil2)",colorNeutralStencil1Alpha:"var(--colorNeutralStencil1Alpha)",colorNeutralStencil2Alpha:"var(--colorNeutralStencil2Alpha)",colorBackgroundOverlay:"var(--colorBackgroundOverlay)",colorScrollbarOverlay:"var(--colorScrollbarOverlay)",colorBrandBackground:"var(--colorBrandBackground)",colorBrandBackgroundHover:"var(--colorBrandBackgroundHover)",colorBrandBackgroundPressed:"var(--colorBrandBackgroundPressed)",colorBrandBackgroundSelected:"var(--colorBrandBackgroundSelected)",colorCompoundBrandBackground:"var(--colorCompoundBrandBackground)",colorCompoundBrandBackgroundHover:"var(--colorCompoundBrandBackgroundHover)",colorCompoundBrandBackgroundPressed:"var(--colorCompoundBrandBackgroundPressed)",colorBrandBackgroundStatic:"var(--colorBrandBackgroundStatic)",colorBrandBackground2:"var(--colorBrandBackground2)",colorBrandBackground2Hover:"var(--colorBrandBackground2Hover)",colorBrandBackground2Pressed:"var(--colorBrandBackground2Pressed)",colorBrandBackground3Static:"var(--colorBrandBackground3Static)",colorBrandBackground4Static:"var(--colorBrandBackground4Static)",colorBrandBackgroundInverted:"var(--colorBrandBackgroundInverted)",colorBrandBackgroundInvertedHover:"var(--colorBrandBackgroundInvertedHover)",colorBrandBackgroundInvertedPressed:"var(--colorBrandBackgroundInvertedPressed)",colorBrandBackgroundInvertedSelected:"var(--colorBrandBackgroundInvertedSelected)",colorNeutralCardBackground:"var(--colorNeutralCardBackground)",colorNeutralCardBackgroundHover:"var(--colorNeutralCardBackgroundHover)",colorNeutralCardBackgroundPressed:"var(--colorNeutralCardBackgroundPressed)",colorNeutralCardBackgroundSelected:"var(--colorNeutralCardBackgroundSelected)",colorNeutralCardBackgroundDisabled:"var(--colorNeutralCardBackgroundDisabled)",colorNeutralStrokeAccessible:"var(--colorNeutralStrokeAccessible)",colorNeutralStrokeAccessibleHover:"var(--colorNeutralStrokeAccessibleHover)",colorNeutralStrokeAccessiblePressed:"var(--colorNeutralStrokeAccessiblePressed)",colorNeutralStrokeAccessibleSelected:"var(--colorNeutralStrokeAccessibleSelected)",colorNeutralStroke1:"var(--colorNeutralStroke1)",colorNeutralStroke1Hover:"var(--colorNeutralStroke1Hover)",colorNeutralStroke1Pressed:"var(--colorNeutralStroke1Pressed)",colorNeutralStroke1Selected:"var(--colorNeutralStroke1Selected)",colorNeutralStroke2:"var(--colorNeutralStroke2)",colorNeutralStroke3:"var(--colorNeutralStroke3)",colorNeutralStrokeSubtle:"var(--colorNeutralStrokeSubtle)",colorNeutralStrokeOnBrand:"var(--colorNeutralStrokeOnBrand)",colorNeutralStrokeOnBrand2:"var(--colorNeutralStrokeOnBrand2)",colorNeutralStrokeOnBrand2Hover:"var(--colorNeutralStrokeOnBrand2Hover)",colorNeutralStrokeOnBrand2Pressed:"var(--colorNeutralStrokeOnBrand2Pressed)",colorNeutralStrokeOnBrand2Selected:"var(--colorNeutralStrokeOnBrand2Selected)",colorBrandStroke1:"var(--colorBrandStroke1)",colorBrandStroke2:"var(--colorBrandStroke2)",colorBrandStroke2Hover:"var(--colorBrandStroke2Hover)",colorBrandStroke2Pressed:"var(--colorBrandStroke2Pressed)",colorBrandStroke2Contrast:"var(--colorBrandStroke2Contrast)",colorCompoundBrandStroke:"var(--colorCompoundBrandStroke)",colorCompoundBrandStrokeHover:"var(--colorCompoundBrandStrokeHover)",colorCompoundBrandStrokePressed:"var(--colorCompoundBrandStrokePressed)",colorNeutralStrokeDisabled:"var(--colorNeutralStrokeDisabled)",colorNeutralStrokeInvertedDisabled:"var(--colorNeutralStrokeInvertedDisabled)",colorTransparentStroke:"var(--colorTransparentStroke)",colorTransparentStrokeInteractive:"var(--colorTransparentStrokeInteractive)",colorTransparentStrokeDisabled:"var(--colorTransparentStrokeDisabled)",colorNeutralStrokeAlpha:"var(--colorNeutralStrokeAlpha)",colorNeutralStrokeAlpha2:"var(--colorNeutralStrokeAlpha2)",colorStrokeFocus1:"var(--colorStrokeFocus1)",colorStrokeFocus2:"var(--colorStrokeFocus2)",colorNeutralShadowAmbient:"var(--colorNeutralShadowAmbient)",colorNeutralShadowKey:"var(--colorNeutralShadowKey)",colorNeutralShadowAmbientLighter:"var(--colorNeutralShadowAmbientLighter)",colorNeutralShadowKeyLighter:"var(--colorNeutralShadowKeyLighter)",colorNeutralShadowAmbientDarker:"var(--colorNeutralShadowAmbientDarker)",colorNeutralShadowKeyDarker:"var(--colorNeutralShadowKeyDarker)",colorBrandShadowAmbient:"var(--colorBrandShadowAmbient)",colorBrandShadowKey:"var(--colorBrandShadowKey)",colorPaletteRedBackground1:"var(--colorPaletteRedBackground1)",colorPaletteRedBackground2:"var(--colorPaletteRedBackground2)",colorPaletteRedBackground3:"var(--colorPaletteRedBackground3)",colorPaletteRedBorderActive:"var(--colorPaletteRedBorderActive)",colorPaletteRedBorder1:"var(--colorPaletteRedBorder1)",colorPaletteRedBorder2:"var(--colorPaletteRedBorder2)",colorPaletteRedForeground1:"var(--colorPaletteRedForeground1)",colorPaletteRedForeground2:"var(--colorPaletteRedForeground2)",colorPaletteRedForeground3:"var(--colorPaletteRedForeground3)",colorPaletteRedForegroundInverted:"var(--colorPaletteRedForegroundInverted)",colorPaletteGreenBackground1:"var(--colorPaletteGreenBackground1)",colorPaletteGreenBackground2:"var(--colorPaletteGreenBackground2)",colorPaletteGreenBackground3:"var(--colorPaletteGreenBackground3)",colorPaletteGreenBorderActive:"var(--colorPaletteGreenBorderActive)",colorPaletteGreenBorder1:"var(--colorPaletteGreenBorder1)",colorPaletteGreenBorder2:"var(--colorPaletteGreenBorder2)",colorPaletteGreenForeground1:"var(--colorPaletteGreenForeground1)",colorPaletteGreenForeground2:"var(--colorPaletteGreenForeground2)",colorPaletteGreenForeground3:"var(--colorPaletteGreenForeground3)",colorPaletteGreenForegroundInverted:"var(--colorPaletteGreenForegroundInverted)",colorPaletteDarkOrangeBackground1:"var(--colorPaletteDarkOrangeBackground1)",colorPaletteDarkOrangeBackground2:"var(--colorPaletteDarkOrangeBackground2)",colorPaletteDarkOrangeBackground3:"var(--colorPaletteDarkOrangeBackground3)",colorPaletteDarkOrangeBorderActive:"var(--colorPaletteDarkOrangeBorderActive)",colorPaletteDarkOrangeBorder1:"var(--colorPaletteDarkOrangeBorder1)",colorPaletteDarkOrangeBorder2:"var(--colorPaletteDarkOrangeBorder2)",colorPaletteDarkOrangeForeground1:"var(--colorPaletteDarkOrangeForeground1)",colorPaletteDarkOrangeForeground2:"var(--colorPaletteDarkOrangeForeground2)",colorPaletteDarkOrangeForeground3:"var(--colorPaletteDarkOrangeForeground3)",colorPaletteYellowBackground1:"var(--colorPaletteYellowBackground1)",colorPaletteYellowBackground2:"var(--colorPaletteYellowBackground2)",colorPaletteYellowBackground3:"var(--colorPaletteYellowBackground3)",colorPaletteYellowBorderActive:"var(--colorPaletteYellowBorderActive)",colorPaletteYellowBorder1:"var(--colorPaletteYellowBorder1)",colorPaletteYellowBorder2:"var(--colorPaletteYellowBorder2)",colorPaletteYellowForeground1:"var(--colorPaletteYellowForeground1)",colorPaletteYellowForeground2:"var(--colorPaletteYellowForeground2)",colorPaletteYellowForeground3:"var(--colorPaletteYellowForeground3)",colorPaletteYellowForegroundInverted:"var(--colorPaletteYellowForegroundInverted)",colorPaletteBerryBackground1:"var(--colorPaletteBerryBackground1)",colorPaletteBerryBackground2:"var(--colorPaletteBerryBackground2)",colorPaletteBerryBackground3:"var(--colorPaletteBerryBackground3)",colorPaletteBerryBorderActive:"var(--colorPaletteBerryBorderActive)",colorPaletteBerryBorder1:"var(--colorPaletteBerryBorder1)",colorPaletteBerryBorder2:"var(--colorPaletteBerryBorder2)",colorPaletteBerryForeground1:"var(--colorPaletteBerryForeground1)",colorPaletteBerryForeground2:"var(--colorPaletteBerryForeground2)",colorPaletteBerryForeground3:"var(--colorPaletteBerryForeground3)",colorPaletteMarigoldBackground1:"var(--colorPaletteMarigoldBackground1)",colorPaletteMarigoldBackground2:"var(--colorPaletteMarigoldBackground2)",colorPaletteMarigoldBackground3:"var(--colorPaletteMarigoldBackground3)",colorPaletteMarigoldBorderActive:"var(--colorPaletteMarigoldBorderActive)",colorPaletteMarigoldBorder1:"var(--colorPaletteMarigoldBorder1)",colorPaletteMarigoldBorder2:"var(--colorPaletteMarigoldBorder2)",colorPaletteMarigoldForeground1:"var(--colorPaletteMarigoldForeground1)",colorPaletteMarigoldForeground2:"var(--colorPaletteMarigoldForeground2)",colorPaletteMarigoldForeground3:"var(--colorPaletteMarigoldForeground3)",colorPaletteLightGreenBackground1:"var(--colorPaletteLightGreenBackground1)",colorPaletteLightGreenBackground2:"var(--colorPaletteLightGreenBackground2)",colorPaletteLightGreenBackground3:"var(--colorPaletteLightGreenBackground3)",colorPaletteLightGreenBorderActive:"var(--colorPaletteLightGreenBorderActive)",colorPaletteLightGreenBorder1:"var(--colorPaletteLightGreenBorder1)",colorPaletteLightGreenBorder2:"var(--colorPaletteLightGreenBorder2)",colorPaletteLightGreenForeground1:"var(--colorPaletteLightGreenForeground1)",colorPaletteLightGreenForeground2:"var(--colorPaletteLightGreenForeground2)",colorPaletteLightGreenForeground3:"var(--colorPaletteLightGreenForeground3)",colorPaletteAnchorBackground2:"var(--colorPaletteAnchorBackground2)",colorPaletteAnchorBorderActive:"var(--colorPaletteAnchorBorderActive)",colorPaletteAnchorForeground2:"var(--colorPaletteAnchorForeground2)",colorPaletteBeigeBackground2:"var(--colorPaletteBeigeBackground2)",colorPaletteBeigeBorderActive:"var(--colorPaletteBeigeBorderActive)",colorPaletteBeigeForeground2:"var(--colorPaletteBeigeForeground2)",colorPaletteBlueBackground2:"var(--colorPaletteBlueBackground2)",colorPaletteBlueBorderActive:"var(--colorPaletteBlueBorderActive)",colorPaletteBlueForeground2:"var(--colorPaletteBlueForeground2)",colorPaletteBrassBackground2:"var(--colorPaletteBrassBackground2)",colorPaletteBrassBorderActive:"var(--colorPaletteBrassBorderActive)",colorPaletteBrassForeground2:"var(--colorPaletteBrassForeground2)",colorPaletteBrownBackground2:"var(--colorPaletteBrownBackground2)",colorPaletteBrownBorderActive:"var(--colorPaletteBrownBorderActive)",colorPaletteBrownForeground2:"var(--colorPaletteBrownForeground2)",colorPaletteCornflowerBackground2:"var(--colorPaletteCornflowerBackground2)",colorPaletteCornflowerBorderActive:"var(--colorPaletteCornflowerBorderActive)",colorPaletteCornflowerForeground2:"var(--colorPaletteCornflowerForeground2)",colorPaletteCranberryBackground2:"var(--colorPaletteCranberryBackground2)",colorPaletteCranberryBorderActive:"var(--colorPaletteCranberryBorderActive)",colorPaletteCranberryForeground2:"var(--colorPaletteCranberryForeground2)",colorPaletteDarkGreenBackground2:"var(--colorPaletteDarkGreenBackground2)",colorPaletteDarkGreenBorderActive:"var(--colorPaletteDarkGreenBorderActive)",colorPaletteDarkGreenForeground2:"var(--colorPaletteDarkGreenForeground2)",colorPaletteDarkRedBackground2:"var(--colorPaletteDarkRedBackground2)",colorPaletteDarkRedBorderActive:"var(--colorPaletteDarkRedBorderActive)",colorPaletteDarkRedForeground2:"var(--colorPaletteDarkRedForeground2)",colorPaletteForestBackground2:"var(--colorPaletteForestBackground2)",colorPaletteForestBorderActive:"var(--colorPaletteForestBorderActive)",colorPaletteForestForeground2:"var(--colorPaletteForestForeground2)",colorPaletteGoldBackground2:"var(--colorPaletteGoldBackground2)",colorPaletteGoldBorderActive:"var(--colorPaletteGoldBorderActive)",colorPaletteGoldForeground2:"var(--colorPaletteGoldForeground2)",colorPaletteGrapeBackground2:"var(--colorPaletteGrapeBackground2)",colorPaletteGrapeBorderActive:"var(--colorPaletteGrapeBorderActive)",colorPaletteGrapeForeground2:"var(--colorPaletteGrapeForeground2)",colorPaletteLavenderBackground2:"var(--colorPaletteLavenderBackground2)",colorPaletteLavenderBorderActive:"var(--colorPaletteLavenderBorderActive)",colorPaletteLavenderForeground2:"var(--colorPaletteLavenderForeground2)",colorPaletteLightTealBackground2:"var(--colorPaletteLightTealBackground2)",colorPaletteLightTealBorderActive:"var(--colorPaletteLightTealBorderActive)",colorPaletteLightTealForeground2:"var(--colorPaletteLightTealForeground2)",colorPaletteLilacBackground2:"var(--colorPaletteLilacBackground2)",colorPaletteLilacBorderActive:"var(--colorPaletteLilacBorderActive)",colorPaletteLilacForeground2:"var(--colorPaletteLilacForeground2)",colorPaletteMagentaBackground2:"var(--colorPaletteMagentaBackground2)",colorPaletteMagentaBorderActive:"var(--colorPaletteMagentaBorderActive)",colorPaletteMagentaForeground2:"var(--colorPaletteMagentaForeground2)",colorPaletteMinkBackground2:"var(--colorPaletteMinkBackground2)",colorPaletteMinkBorderActive:"var(--colorPaletteMinkBorderActive)",colorPaletteMinkForeground2:"var(--colorPaletteMinkForeground2)",colorPaletteNavyBackground2:"var(--colorPaletteNavyBackground2)",colorPaletteNavyBorderActive:"var(--colorPaletteNavyBorderActive)",colorPaletteNavyForeground2:"var(--colorPaletteNavyForeground2)",colorPalettePeachBackground2:"var(--colorPalettePeachBackground2)",colorPalettePeachBorderActive:"var(--colorPalettePeachBorderActive)",colorPalettePeachForeground2:"var(--colorPalettePeachForeground2)",colorPalettePinkBackground2:"var(--colorPalettePinkBackground2)",colorPalettePinkBorderActive:"var(--colorPalettePinkBorderActive)",colorPalettePinkForeground2:"var(--colorPalettePinkForeground2)",colorPalettePlatinumBackground2:"var(--colorPalettePlatinumBackground2)",colorPalettePlatinumBorderActive:"var(--colorPalettePlatinumBorderActive)",colorPalettePlatinumForeground2:"var(--colorPalettePlatinumForeground2)",colorPalettePlumBackground2:"var(--colorPalettePlumBackground2)",colorPalettePlumBorderActive:"var(--colorPalettePlumBorderActive)",colorPalettePlumForeground2:"var(--colorPalettePlumForeground2)",colorPalettePumpkinBackground2:"var(--colorPalettePumpkinBackground2)",colorPalettePumpkinBorderActive:"var(--colorPalettePumpkinBorderActive)",colorPalettePumpkinForeground2:"var(--colorPalettePumpkinForeground2)",colorPalettePurpleBackground2:"var(--colorPalettePurpleBackground2)",colorPalettePurpleBorderActive:"var(--colorPalettePurpleBorderActive)",colorPalettePurpleForeground2:"var(--colorPalettePurpleForeground2)",colorPaletteRoyalBlueBackground2:"var(--colorPaletteRoyalBlueBackground2)",colorPaletteRoyalBlueBorderActive:"var(--colorPaletteRoyalBlueBorderActive)",colorPaletteRoyalBlueForeground2:"var(--colorPaletteRoyalBlueForeground2)",colorPaletteSeafoamBackground2:"var(--colorPaletteSeafoamBackground2)",colorPaletteSeafoamBorderActive:"var(--colorPaletteSeafoamBorderActive)",colorPaletteSeafoamForeground2:"var(--colorPaletteSeafoamForeground2)",colorPaletteSteelBackground2:"var(--colorPaletteSteelBackground2)",colorPaletteSteelBorderActive:"var(--colorPaletteSteelBorderActive)",colorPaletteSteelForeground2:"var(--colorPaletteSteelForeground2)",colorPaletteTealBackground2:"var(--colorPaletteTealBackground2)",colorPaletteTealBorderActive:"var(--colorPaletteTealBorderActive)",colorPaletteTealForeground2:"var(--colorPaletteTealForeground2)",colorStatusSuccessBackground1:"var(--colorStatusSuccessBackground1)",colorStatusSuccessBackground2:"var(--colorStatusSuccessBackground2)",colorStatusSuccessBackground3:"var(--colorStatusSuccessBackground3)",colorStatusSuccessForeground1:"var(--colorStatusSuccessForeground1)",colorStatusSuccessForeground2:"var(--colorStatusSuccessForeground2)",colorStatusSuccessForeground3:"var(--colorStatusSuccessForeground3)",colorStatusSuccessForegroundInverted:"var(--colorStatusSuccessForegroundInverted)",colorStatusSuccessBorderActive:"var(--colorStatusSuccessBorderActive)",colorStatusSuccessBorder1:"var(--colorStatusSuccessBorder1)",colorStatusSuccessBorder2:"var(--colorStatusSuccessBorder2)",colorStatusWarningBackground1:"var(--colorStatusWarningBackground1)",colorStatusWarningBackground2:"var(--colorStatusWarningBackground2)",colorStatusWarningBackground3:"var(--colorStatusWarningBackground3)",colorStatusWarningForeground1:"var(--colorStatusWarningForeground1)",colorStatusWarningForeground2:"var(--colorStatusWarningForeground2)",colorStatusWarningForeground3:"var(--colorStatusWarningForeground3)",colorStatusWarningForegroundInverted:"var(--colorStatusWarningForegroundInverted)",colorStatusWarningBorderActive:"var(--colorStatusWarningBorderActive)",colorStatusWarningBorder1:"var(--colorStatusWarningBorder1)",colorStatusWarningBorder2:"var(--colorStatusWarningBorder2)",colorStatusDangerBackground1:"var(--colorStatusDangerBackground1)",colorStatusDangerBackground2:"var(--colorStatusDangerBackground2)",colorStatusDangerBackground3:"var(--colorStatusDangerBackground3)",colorStatusDangerBackground3Hover:"var(--colorStatusDangerBackground3Hover)",colorStatusDangerBackground3Pressed:"var(--colorStatusDangerBackground3Pressed)",colorStatusDangerForeground1:"var(--colorStatusDangerForeground1)",colorStatusDangerForeground2:"var(--colorStatusDangerForeground2)",colorStatusDangerForeground3:"var(--colorStatusDangerForeground3)",colorStatusDangerForegroundInverted:"var(--colorStatusDangerForegroundInverted)",colorStatusDangerBorderActive:"var(--colorStatusDangerBorderActive)",colorStatusDangerBorder1:"var(--colorStatusDangerBorder1)",colorStatusDangerBorder2:"var(--colorStatusDangerBorder2)",borderRadiusNone:"var(--borderRadiusNone)",borderRadiusSmall:"var(--borderRadiusSmall)",borderRadiusMedium:"var(--borderRadiusMedium)",borderRadiusLarge:"var(--borderRadiusLarge)",borderRadiusXLarge:"var(--borderRadiusXLarge)",borderRadiusCircular:"var(--borderRadiusCircular)",fontFamilyBase:"var(--fontFamilyBase)",fontFamilyMonospace:"var(--fontFamilyMonospace)",fontFamilyNumeric:"var(--fontFamilyNumeric)",fontSizeBase100:"var(--fontSizeBase100)",fontSizeBase200:"var(--fontSizeBase200)",fontSizeBase300:"var(--fontSizeBase300)",fontSizeBase400:"var(--fontSizeBase400)",fontSizeBase500:"var(--fontSizeBase500)",fontSizeBase600:"var(--fontSizeBase600)",fontSizeHero700:"var(--fontSizeHero700)",fontSizeHero800:"var(--fontSizeHero800)",fontSizeHero900:"var(--fontSizeHero900)",fontSizeHero1000:"var(--fontSizeHero1000)",fontWeightRegular:"var(--fontWeightRegular)",fontWeightMedium:"var(--fontWeightMedium)",fontWeightSemibold:"var(--fontWeightSemibold)",fontWeightBold:"var(--fontWeightBold)",lineHeightBase100:"var(--lineHeightBase100)",lineHeightBase200:"var(--lineHeightBase200)",lineHeightBase300:"var(--lineHeightBase300)",lineHeightBase400:"var(--lineHeightBase400)",lineHeightBase500:"var(--lineHeightBase500)",lineHeightBase600:"var(--lineHeightBase600)",lineHeightHero700:"var(--lineHeightHero700)",lineHeightHero800:"var(--lineHeightHero800)",lineHeightHero900:"var(--lineHeightHero900)",lineHeightHero1000:"var(--lineHeightHero1000)",shadow2:"var(--shadow2)",shadow4:"var(--shadow4)",shadow8:"var(--shadow8)",shadow16:"var(--shadow16)",shadow28:"var(--shadow28)",shadow64:"var(--shadow64)",shadow2Brand:"var(--shadow2Brand)",shadow4Brand:"var(--shadow4Brand)",shadow8Brand:"var(--shadow8Brand)",shadow16Brand:"var(--shadow16Brand)",shadow28Brand:"var(--shadow28Brand)",shadow64Brand:"var(--shadow64Brand)",strokeWidthThin:"var(--strokeWidthThin)",strokeWidthThick:"var(--strokeWidthThick)",strokeWidthThicker:"var(--strokeWidthThicker)",strokeWidthThickest:"var(--strokeWidthThickest)",spacingHorizontalNone:"var(--spacingHorizontalNone)",spacingHorizontalXXS:"var(--spacingHorizontalXXS)",spacingHorizontalXS:"var(--spacingHorizontalXS)",spacingHorizontalSNudge:"var(--spacingHorizontalSNudge)",spacingHorizontalS:"var(--spacingHorizontalS)",spacingHorizontalMNudge:"var(--spacingHorizontalMNudge)",spacingHorizontalM:"var(--spacingHorizontalM)",spacingHorizontalL:"var(--spacingHorizontalL)",spacingHorizontalXL:"var(--spacingHorizontalXL)",spacingHorizontalXXL:"var(--spacingHorizontalXXL)",spacingHorizontalXXXL:"var(--spacingHorizontalXXXL)",spacingVerticalNone:"var(--spacingVerticalNone)",spacingVerticalXXS:"var(--spacingVerticalXXS)",spacingVerticalXS:"var(--spacingVerticalXS)",spacingVerticalSNudge:"var(--spacingVerticalSNudge)",spacingVerticalS:"var(--spacingVerticalS)",spacingVerticalMNudge:"var(--spacingVerticalMNudge)",spacingVerticalM:"var(--spacingVerticalM)",spacingVerticalL:"var(--spacingVerticalL)",spacingVerticalXL:"var(--spacingVerticalXL)",spacingVerticalXXL:"var(--spacingVerticalXXL)",spacingVerticalXXXL:"var(--spacingVerticalXXXL)",durationUltraFast:"var(--durationUltraFast)",durationFaster:"var(--durationFaster)",durationFast:"var(--durationFast)",durationNormal:"var(--durationNormal)",durationGentle:"var(--durationGentle)",durationSlow:"var(--durationSlow)",durationSlower:"var(--durationSlower)",durationUltraSlow:"var(--durationUltraSlow)",curveAccelerateMax:"var(--curveAccelerateMax)",curveAccelerateMid:"var(--curveAccelerateMid)",curveAccelerateMin:"var(--curveAccelerateMin)",curveDecelerateMax:"var(--curveDecelerateMax)",curveDecelerateMid:"var(--curveDecelerateMid)",curveDecelerateMin:"var(--curveDecelerateMin)",curveEasyEaseMax:"var(--curveEasyEaseMax)",curveEasyEase:"var(--curveEasyEase)",curveLinear:"var(--curveLinear)"};function vv(e,t,r=""){return{[`shadow2${r}`]:`0 0 2px ${e}, 0 1px 2px ${t}`,[`shadow4${r}`]:`0 0 2px ${e}, 0 2px 4px ${t}`,[`shadow8${r}`]:`0 0 2px ${e}, 0 4px 8px ${t}`,[`shadow16${r}`]:`0 0 2px ${e}, 0 8px 16px ${t}`,[`shadow28${r}`]:`0 0 8px ${e}, 0 14px 28px ${t}`,[`shadow64${r}`]:`0 0 8px ${e}, 0 32px 64px ${t}`}}const x6=e=>{const t=f6(e);return{...d6,...g6,...m6,...b6,...v6,...k6,...y6,...w6,...p6,...h6,...t,...u6,...ca,...vv(t.colorNeutralShadowAmbient,t.colorNeutralShadowKey),...vv(t.colorBrandShadowAmbient,t.colorBrandShadowKey,"Brand")}},S6={10:"#061724",20:"#082338",30:"#0a2e4a",40:"#0c3b5e",50:"#0e4775",60:"#0f548c",70:"#115ea3",80:"#0f6cbd",90:"#2886de",100:"#479ef5",110:"#62abf5",120:"#77b7f7",130:"#96c6fa",140:"#b4d6fa",150:"#cfe4fa",160:"#ebf3fc"},_6=x6(S6),hw={root:"fui-FluentProvider"},B6=vy({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",fsow6f:["f1o700av","fes3tcz"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}"]}),C6=e=>{const t=Wl(),r=B6({dir:e.dir,renderer:t});return e.root.className=G(hw.root,e.themeClassName,r.root,e.root.className),e},P6=x.useInsertionEffect?x.useInsertionEffect:sn,E6=(e,t)=>{if(!e)return;const r=e.createElement("style");return Object.keys(t).forEach(n=>{r.setAttribute(n,t[n])}),e.head.appendChild(r),r},z6=(e,t)=>{const r=e.sheet;r&&(r.cssRules.length>0&&r.deleteRule(0),r.insertRule(t,0))},T6=e=>{const{targetDocument:t,theme:r,rendererAttributes:n}=e,o=x.useRef(),i=_n(hw.root),a=n,l=x.useMemo(()=>QB(`.${i}`,r),[r,i]);return N6(t,i),P6(()=>{const s=t==null?void 0:t.getElementById(i);return s?o.current=s:(o.current=E6(t,{...a,id:i}),o.current&&z6(o.current,l)),()=>{var c;(c=o.current)===null||c===void 0||c.remove()}},[i,t,l,a]),{styleTagId:i,rule:l}};function N6(e,t){x.useState(()=>{if(!e)return;const r=e.getElementById(t);r&&e.head.append(r)})}const R6={},j6=(e,t)=>{const r=ht(),n=F6(),o=zy(),i=x.useContext(yp)||R6,{applyStylesToPortals:a=!0,customStyleHooks_unstable:l,dir:s=r.dir,targetDocument:c=r.targetDocument,theme:u,overrides_unstable:f={}}=e,d=gf(n,u),h=gf(o,f),p=gf(i,l),m=Wl();var y;const{styleTagId:v,rule:g}=T6({theme:d,targetDocument:c,rendererAttributes:(y=m.styleElementAttributes)!==null&&y!==void 0?y:{}});return{applyStylesToPortals:a,customStyleHooks_unstable:p,dir:s,targetDocument:c,theme:d,overrides_unstable:h,themeClassName:v,components:{root:"div"},root:be(Re("div",{...e,dir:s,ref:nr(t,uw({targetDocument:c}))}),{elementType:"div"}),serverStyleProps:{cssRule:g,attributes:{...m.styleElementAttributes,id:v}}}};function gf(e,t){return e&&t?{...e,...t}:e||t}function F6(){return x.useContext(By)}function D6(e){const{applyStylesToPortals:t,customStyleHooks_unstable:r,dir:n,root:o,targetDocument:i,theme:a,themeClassName:l,overrides_unstable:s}=e,c=x.useMemo(()=>({dir:n,targetDocument:i}),[n,i]),[u]=x.useState(()=>({})),f=x.useMemo(()=>({textDirection:n}),[n]);return{customStyleHooks_unstable:r,overrides_unstable:s,provider:c,textDirection:n,iconDirection:f,tooltip:u,theme:a,themeClassName:t?o.className:l}}const pw=x.forwardRef((e,t)=>{const r=j6(e,t);C6(r);const n=D6(r);return $3(r,n)});pw.displayName="FluentProvider";var gw={exports:{}},mw={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(e){function t(W,J){var B=W.length;W.push(J);e:for(;0>>1,ge=W[ce];if(0>>1;ceo(pt,B))Peo(Gt,pt)?(W[ce]=Gt,W[Pe]=B,ce=Pe):(W[ce]=pt,W[Se]=B,ce=Se);else if(Peo(Gt,B))W[ce]=Gt,W[Pe]=B,ce=Pe;else break e}}return J}function o(W,J){var B=W.sortIndex-J.sortIndex;return B!==0?B:W.id-J.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var s=[],c=[],u=1,f=null,d=3,h=!1,p=!1,m=!1,y=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,g=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(W){for(var J=r(c);J!==null;){if(J.callback===null)n(c);else if(J.startTime<=W)n(c),J.sortIndex=J.expirationTime,t(s,J);else break;J=r(c)}}function k(W){if(m=!1,b(W),!p)if(r(s)!==null)p=!0,he(_);else{var J=r(c);J!==null&&ee(k,J.startTime-W)}}function _(W,J){p=!1,m&&(m=!1,v(E),E=-1),h=!0;var B=d;try{for(b(J),f=r(s);f!==null&&(!(f.expirationTime>J)||W&&!L());){var ce=f.callback;if(typeof ce=="function"){f.callback=null,d=f.priorityLevel;var ge=ce(f.expirationTime<=J);J=e.unstable_now(),typeof ge=="function"?f.callback=ge:f===r(s)&&n(s),b(J)}else n(s);f=r(s)}if(f!==null)var P=!0;else{var Se=r(c);Se!==null&&ee(k,Se.startTime-J),P=!1}return P}finally{f=null,d=B,h=!1}}var w=!1,S=null,E=-1,N=5,C=-1;function L(){return!(e.unstable_now()-CW||125ce?(W.sortIndex=B,t(c,W),r(s)===null&&W===r(c)&&(m?(v(E),E=-1):m=!0,ee(k,B-ce))):(W.sortIndex=ge,t(s,W),p||h||(p=!0,he(_))),W},e.unstable_shouldYield=L,e.unstable_wrapCallback=function(W){var J=d;return function(){var B=d;d=J;try{return W.apply(this,arguments)}finally{d=B}}}})(mw);gw.exports=mw;var Dd=gw.exports;const I6=e=>r=>{const n=x.useRef(r.value),o=x.useRef(0),i=x.useRef();return i.current||(i.current={value:n,version:o,listeners:[]}),sn(()=>{n.current=r.value,o.current+=1,Dd.unstable_runWithPriority(Dd.unstable_NormalPriority,()=>{i.current.listeners.forEach(a=>{a([o.current,r.value])})})},[r.value]),x.createElement(e,{value:i.current},r.children)},ua=e=>{const t=x.createContext({value:{current:e},version:{current:-1},listeners:[]});return t.Provider=I6(t.Provider),delete t.Consumer,t},fa=(e,t)=>{const r=x.useContext(e),{value:{current:n},version:{current:o},listeners:i}=r,a=t(n),[l,s]=x.useReducer((c,u)=>{if(!u)return[n,a];if(u[0]<=o)return bs(c[1],a)?c:[n,a];try{if(bs(c[0],u[1]))return c;const f=t(u[1]);return bs(c[1],f)?c:[u[1],f]}catch{}return[c[0],c[1]]},[n,a]);return bs(l[1],a)||s(void 0),sn(()=>(i.push(s),()=>{const c=i.indexOf(s);i.splice(c,1)}),[i]),l[1]};function A6(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}const bs=typeof Object.is=="function"?Object.is:A6;function zp(e){const t=x.useContext(e);return t.version?t.version.current!==-1:!1}const vw=ua(void 0),M6={openItems:[],collapsible:!1,multiple:!1,navigation:void 0,requestToggle(){}},{Provider:O6}=vw,pl=e=>fa(vw,(t=M6)=>e(t)),L6=(e,t)=>U(e.root,{children:U(O6,{value:t.accordion,children:e.root.children})}),q6=(e,t)=>{const{openItems:r,defaultOpenItems:n,multiple:o=!1,collapsible:i=!1,onToggle:a,navigation:l}=e,[s,c]=Rn({state:x.useMemo(()=>U6(r),[r]),defaultState:()=>H6({defaultOpenItems:n,multiple:o}),initialState:[]}),u=uu({circular:l==="circular",tabbable:!0}),f=se(d=>{const h=W6(d.value,s,o,i);a==null||a(d.event,{value:d.value,openItems:h}),c(h)});return{collapsible:i,multiple:o,navigation:l,openItems:s,requestToggle:f,components:{root:"div"},root:be(Re("div",{...e,...l?u:void 0,ref:t}),{elementType:"div"})}};function H6({defaultOpenItems:e,multiple:t}){return e!==void 0?Array.isArray(e)?t?e:[e[0]]:[e]:[]}function W6(e,t,r,n){if(r)if(t.includes(e)){if(t.length>1||n)return t.filter(o=>o!==e)}else return[...t,e].sort();else return t[0]===e&&n?[]:[e];return t}function U6(e){if(e!==void 0)return Array.isArray(e)?e:[e]}function $6(e){const{navigation:t,openItems:r,requestToggle:n,multiple:o,collapsible:i}=e;return{accordion:{navigation:t,openItems:r,requestToggle:n,collapsible:i,multiple:o}}}const V6={root:"fui-Accordion"},G6=e=>(e.root.className=G(V6.root,e.root.className),e),bw=x.forwardRef((e,t)=>{const r=q6(e,t),n=$6(r);return G6(r),De("useAccordionStyles_unstable")(r),L6(r,n)});bw.displayName="Accordion";const K6=(e,t)=>{const{value:r,disabled:n=!1}=e,o=pl(l=>l.requestToggle),i=pl(l=>l.openItems.includes(r)),a=se(l=>o({event:l,value:r}));return{open:i,value:r,disabled:n,onHeaderClick:a,components:{root:"div"},root:be(Re("div",{ref:t,...e}),{elementType:"div"})}};function X6(e){const{disabled:t,open:r,value:n,onHeaderClick:o}=e;return{accordionItem:x.useMemo(()=>({disabled:t,open:r,value:n,onHeaderClick:o}),[t,r,n,o])}}const yw=x.createContext(void 0),Z6={open:!1,disabled:!1,value:void 0,onHeaderClick(){}},{Provider:Q6}=yw,ww=()=>{var e;return(e=x.useContext(yw))!==null&&e!==void 0?e:Z6},J6=(e,t)=>U(e.root,{children:U(Q6,{value:t.accordionItem,children:e.root.children})}),Y6={root:"fui-AccordionItem"},eE=e=>(e.root.className=G(Y6.root,e.root.className),e),kw=x.forwardRef((e,t)=>{const r=K6(e,t),n=X6(r);return eE(r),De("useAccordionItemStyles_unstable")(r),J6(r,n)});kw.displayName="AccordionItem";const Ka="Enter",La=" ",tE="Tab",rE="ArrowDown",xw="ArrowLeft",Sw="ArrowRight",fu="Escape";function Vi(e,t){const{disabled:r,disabledFocusable:n=!1,["aria-disabled"]:o,onClick:i,onKeyDown:a,onKeyUp:l,...s}=t??{},c=typeof o=="string"?o==="true":o,u=r||n||c,f=se(p=>{u?(p.preventDefault(),p.stopPropagation()):i==null||i(p)}),d=se(p=>{if(a==null||a(p),p.isDefaultPrevented())return;const m=p.key;if(u&&(m===Ka||m===La)){p.preventDefault(),p.stopPropagation();return}if(m===La){p.preventDefault();return}else m===Ka&&(p.preventDefault(),p.currentTarget.click())}),h=se(p=>{if(l==null||l(p),p.isDefaultPrevented())return;const m=p.key;if(u&&(m===Ka||m===La)){p.preventDefault(),p.stopPropagation();return}m===La&&(p.preventDefault(),p.currentTarget.click())});if(e==="button"||e===void 0)return{...s,disabled:r&&!n,"aria-disabled":n?!0:c,onClick:n?void 0:f,onKeyUp:n?void 0:l,onKeyDown:n?void 0:a};{const p={role:"button",tabIndex:r&&!n?void 0:0,...s,onClick:f,onKeyUp:h,onKeyDown:d,"aria-disabled":r||n||c};return e==="a"&&u&&(p.href=void 0),p}}const nE=(e,t)=>{const{icon:r,button:n,expandIcon:o,inline:i=!1,size:a="medium",expandIconPosition:l="start"}=e,{value:s,disabled:c,open:u}=ww(),f=pl(y=>y.requestToggle),d=pl(y=>!y.collapsible&&y.openItems.length===1&&u),{dir:h}=ht();let p;l==="end"?p=u?-90:90:p=u?90:h!=="rtl"?0:180;const m=be(n,{elementType:"button",defaultProps:{disabled:c,disabledFocusable:d,"aria-expanded":u,type:"button"}});return m.onClick=se(y=>{if(wy(n)){var v;(v=n.onClick)===null||v===void 0||v.call(n,y)}y.defaultPrevented||f({value:s,event:y})}),{disabled:c,open:u,size:a,inline:i,expandIconPosition:l,components:{root:"div",button:"button",expandIcon:"span",icon:"div"},root:be(Re("div",{ref:t,...e}),{elementType:"div"}),icon:Te(r,{elementType:"div"}),expandIcon:Te(o,{renderByDefault:!0,defaultProps:{children:x.createElement(Ly,{style:{transform:`rotate(${p}deg)`}}),"aria-hidden":!0},elementType:"span"}),button:Vi(m.as,m)}},oE=x.createContext(void 0),{Provider:iE}=oE,aE=(e,t)=>U(iE,{value:t.accordionHeader,children:U(e.root,{children:At(e.button,{children:[e.expandIconPosition==="start"&&e.expandIcon&&U(e.expandIcon,{}),e.icon&&U(e.icon,{}),e.root.children,e.expandIconPosition==="end"&&e.expandIcon&&U(e.expandIcon,{})]})})}),ys={root:"fui-AccordionHeader",button:"fui-AccordionHeader__button",expandIcon:"fui-AccordionHeader__expandIcon",icon:"fui-AccordionHeader__icon"},lE=K({resetButton:{B7ck84d:"f1e4lqlz",De3pzq:"f1u2r49w",sj55zd:"f1ym3bx4",Bahqtrf:"f1mo0ibp",Be2twd7:"fjoy568",Bg96gwp:"fytdu2e",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1qch9an",uwmqm3:["f1cnd47f","fhxju0i"],Bv0vk6g:"f37px4s",fsow6f:"fgusgyc"},focusIndicator:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"frrh606",clg4pj:["f1v5zibi","fo2hd23"],hgwjuy:"ful5kiu",Bonggc9:["fo2hd23","f1v5zibi"],B1tsrr9:["f1jqcqds","ftffrms"],Dah5zi:["ftffrms","f1jqcqds"],Bkh64rk:["f2e7qr6","fsr1zz6"],qqdqy8:["fsr1zz6","f2e7qr6"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f57olzd",Bule8hv:["f4stah7","fs1por5"],Bjwuhne:"f480a47",Ghsupd:["fs1por5","f4stah7"]},root:{sj55zd:"f19n0e5",De3pzq:"f1c21dwh",B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},rootDisabled:{Bcmaq0h:"fwrgwhw",sj55zd:"f1s2aq7o"},rootInline:{mc9l5x:"f14t3ns0"},button:{qhf8xq:"f10pi13n",a9b677:"fly5x3f",B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],z8tnut:"f1g0x7ka",z189sj:["fw5db7e","f1uw59to"],Byoj8tv:"f1qch9an",uwmqm3:["f1ng84yb","f11gcy0p"],sshi5w:"f5pgtk9",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bceei9c:"f1k6fduh",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B7ck84d:"f1ewtqcl"},buttonSmall:{sshi5w:"f1nxs5xn",Be2twd7:"fy9rknc"},buttonLarge:{Bg96gwp:"faaz57k",Be2twd7:"fod5ikn"},buttonExtraLarge:{Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},buttonInline:{mc9l5x:"ftuwxu6"},buttonExpandIconEndNoIcon:{uwmqm3:["f1uw59to","fw5db7e"]},buttonExpandIconEnd:{z189sj:["f11gcy0p","f1ng84yb"]},buttonDisabled:{Bceei9c:"fdrzuqr"},expandIcon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"},expandIconStart:{z189sj:["f1vdfbxk","f1f5gg8d"]},expandIconEnd:{Bh6795r:"fqerorx",Bnnss6s:"f1neuvcm",xawz:"flqd7gy",mc9l5x:"f22iagw",Brf1p80:"f9c4gz4",uwmqm3:["f1f5gg8d","f1vdfbxk"]},icon:{Bqenvij:"f1l02sjl",mc9l5x:"f22iagw",Bt984gj:"f122n59",z189sj:["f1vdfbxk","f1f5gg8d"],Bg96gwp:"f106mvju",Be2twd7:"f1pp30po"}},{d:[".f1e4lqlz{box-sizing:content-box;}",".f1u2r49w{background-color:inherit;}",".f1ym3bx4{color:inherit;}",".f1mo0ibp{font-family:inherit;}",".fjoy568{font-size:inherit;}",".fytdu2e{line-height:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1qch9an{padding-bottom:0;}",".f37px4s{-webkit-appearance:button;}",".fgusgyc{text-align:unset;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".frrh606[data-fui-focus-visible]::after{border-top-width:2px;}",".f1v5zibi[data-fui-focus-visible]::after{border-right-width:2px;}",".fo2hd23[data-fui-focus-visible]::after{border-left-width:2px;}",".ful5kiu[data-fui-focus-visible]::after{border-bottom-width:2px;}",".f1jqcqds[data-fui-focus-visible]::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".ftffrms[data-fui-focus-visible]::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f2e7qr6[data-fui-focus-visible]::after{border-top-right-radius:var(--borderRadiusMedium);}",".fsr1zz6[data-fui-focus-visible]::after{border-top-left-radius:var(--borderRadiusMedium);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f57olzd[data-fui-focus-visible]::after{top:calc(2px * -1);}",".f4stah7[data-fui-focus-visible]::after{right:calc(2px * -1);}",".fs1por5[data-fui-focus-visible]::after{left:calc(2px * -1);}",".f480a47[data-fui-focus-visible]::after{bottom:calc(2px * -1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fwrgwhw{background-image:none;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f14t3ns0{display:inline-block;}",".f10pi13n{position:relative;}",".fly5x3f{width:100%;}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".fw5db7e{padding-right:var(--spacingHorizontalM);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f5pgtk9{min-height:44px;}",".f22iagw{display:flex;}",".f122n59{align-items:center;}",".f1k6fduh{cursor:pointer;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1ewtqcl{box-sizing:border-box;}",".f1nxs5xn{min-height:32px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".ftuwxu6{display:inline-flex;}",".fdrzuqr{cursor:not-allowed;}",".f1l02sjl{height:100%;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".fqerorx{flex-grow:1;}",".f1neuvcm{flex-shrink:1;}",".flqd7gy{flex-basis:0%;}",".f9c4gz4{justify-content:flex-end;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}]]}),sE=e=>{const t=lE();return e.root.className=G(ys.root,t.root,e.inline&&t.rootInline,e.disabled&&t.rootDisabled,e.root.className),e.button.className=G(ys.button,t.resetButton,t.button,t.focusIndicator,e.expandIconPosition==="end"&&!e.icon&&t.buttonExpandIconEndNoIcon,e.expandIconPosition==="end"&&t.buttonExpandIconEnd,e.inline&&t.buttonInline,e.size==="small"&&t.buttonSmall,e.size==="large"&&t.buttonLarge,e.size==="extra-large"&&t.buttonExtraLarge,e.disabled&&t.buttonDisabled,e.button.className),e.expandIcon&&(e.expandIcon.className=G(ys.expandIcon,t.expandIcon,e.expandIconPosition==="start"&&t.expandIconStart,e.expandIconPosition==="end"&&t.expandIconEnd,e.expandIcon.className)),e.icon&&(e.icon.className=G(ys.icon,t.icon,e.icon.className)),e};function cE(e){const{disabled:t,expandIconPosition:r,open:n,size:o}=e;return{accordionHeader:x.useMemo(()=>({disabled:t,expandIconPosition:r,open:n,size:o}),[t,r,n,o])}}const _w=x.forwardRef((e,t)=>{const r=nE(e,t),n=cE(r);return sE(r),De("useAccordionHeaderStyles_unstable")(r),aE(r,n)});_w.displayName="AccordionHeader";const uE=(e,t)=>{const{open:r}=ww(),n=hl({focusable:{excludeFromMover:!0}}),o=pl(i=>i.navigation);return{open:r,components:{root:"div"},root:be(Re("div",{ref:t,...e,...o&&n}),{elementType:"div"})}},fE=e=>e.open?U(e.root,{children:e.root.children}):null,dE={root:"fui-AccordionPanel"},hE=K({root:{B6of3ja:"f1hu3pq6",t21cq0:["fkujibs","f199hnxi"],jrapky:"f19f4twv",Frg6f3:["f199hnxi","fkujibs"]}},{d:[".f1hu3pq6{margin-top:0;}",".fkujibs{margin-right:var(--spacingHorizontalM);}",".f199hnxi{margin-left:var(--spacingHorizontalM);}",".f19f4twv{margin-bottom:0;}"]}),pE=e=>{const t=hE();return e.root.className=G(dE.root,t.root,e.root.className),e},Bw=x.forwardRef((e,t)=>{const r=uE(e,t);return pE(r),De("useAccordionPanelStyles_unstable")(r),fE(r)});Bw.displayName="AccordionPanel";const gE=e=>At(e.root,{children:[e.initials&&U(e.initials,{}),e.icon&&U(e.icon,{}),e.image&&U(e.image,{}),e.badge&&U(e.badge,{}),e.activeAriaLabelElement]}),mE=/[\(\[\{][^\)\]\}]*[\)\]\}]/g,vE=/[\0-\u001F\!-/:-@\[-`\{-\u00BF\u0250-\u036F\uD800-\uFFFF]/g,bE=/^\d+[\d\s]*(:?ext|x|)\s*\d+$/i,yE=/\s+/g,wE=/[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uAC00-\uD7AF\uD7B0-\uD7FF\u3040-\u309F\u30A0-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD869][\uDC00-\uDED6]/;function kE(e,t,r){let n="";const o=e.split(" ");return o.length!==0&&(n+=o[0].charAt(0).toUpperCase()),r||(o.length===2?n+=o[1].charAt(0).toUpperCase():o.length===3&&(n+=o[2].charAt(0).toUpperCase())),t&&n.length>1?n.charAt(1)+n.charAt(0):n}function xE(e){return e=e.replace(mE,""),e=e.replace(vE,""),e=e.replace(yE," "),e=e.trim(),e}function SE(e,t,r){return!e||(e=xE(e),wE.test(e)||!(r!=null&&r.allowPhoneInitials)&&bE.test(e))?"":kE(e,t,r==null?void 0:r.firstInitialOnly)}const _E=(e,t)=>{const{shape:r="circular",size:n="medium",iconPosition:o="before",appearance:i="filled",color:a="brand"}=e;return{shape:r,size:n,iconPosition:o,appearance:i,color:a,components:{root:"div",icon:"span"},root:be(Re("div",{ref:t,...e}),{elementType:"div"}),icon:Te(e.icon,{elementType:"span"})}},BE=e=>At(e.root,{children:[e.iconPosition==="before"&&e.icon&&U(e.icon,{}),e.root.children,e.iconPosition==="after"&&e.icon&&U(e.icon,{})]}),CE={tiny:$m,"extra-small":$m,small:_3,medium:B3,large:Vm,"extra-large":Vm},PE={tiny:Hm,"extra-small":Hm,small:k3,medium:S3,large:Um,"extra-large":Um},EE={tiny:qm,"extra-small":qm,small:w3,medium:x3,large:Wm,"extra-large":Wm},zE={tiny:Gm,"extra-small":Gm,small:C3,medium:P3,large:Km,"extra-large":Km},TE={tiny:Xm,"extra-small":Xm,small:E3,medium:z3,large:Zm,"extra-large":Zm},NE={tiny:Qm,"extra-small":Qm,small:T3,medium:R3,large:Ym,"extra-large":Ym},RE={tiny:Jm,"extra-small":Jm,small:N3,medium:j3,large:ev,"extra-large":ev},mf={tiny:nv,"extra-small":nv,small:I3,medium:A3,large:ov,"extra-large":ov},jE={tiny:tv,"extra-small":tv,small:F3,medium:D3,large:rv,"extra-large":rv},bv={tiny:iv,"extra-small":iv,small:M3,medium:O3,large:av,"extra-large":av},FE=(e,t,r)=>{switch(e){case"available":return t?PE[r]:EE[r];case"away":return t?mf[r]:CE[r];case"blocked":return zE[r];case"busy":return t?bv[r]:TE[r];case"do-not-disturb":return t?RE[r]:NE[r];case"offline":return t?mf[r]:jE[r];case"out-of-office":return mf[r];case"unknown":return bv[r]}},yv={busy:"busy","out-of-office":"out of office",away:"away",available:"available",offline:"offline","do-not-disturb":"do not disturb",unknown:"unknown",blocked:"blocked"},DE=(e,t)=>{const{size:r="medium",status:n="available",outOfOffice:o=!1}=e,i=yv[n],a=e.outOfOffice&&e.status!=="out-of-office"?` ${yv["out-of-office"]}`:"",l=FE(n,o,r);return{..._E({"aria-label":i+a,role:"img",...e,size:r,icon:Te(e.icon,{defaultProps:{children:l?x.createElement(l,null):null},renderByDefault:!0,elementType:"span"})},t),status:n,outOfOffice:o}},wv={root:"fui-PresenceBadge",icon:"fui-PresenceBadge__icon"},IE=e=>e==="busy"||e==="do-not-disturb"||e==="blocked",AE=Qe("r832ydo",null,[".r832ydo{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;border-radius:var(--borderRadiusCircular);background-color:var(--colorNeutralBackground1);padding:1px;background-clip:content-box;}"]),ME=Qe("r11ag4qr",null,[".r11ag4qr{display:flex;margin:-1px;}"]),OE=K({statusBusy:{sj55zd:"fvi85wt"},statusAway:{sj55zd:"f14k8a89"},statusAvailable:{sj55zd:"fqa5hgp"},statusOffline:{sj55zd:"f11d4kpn"},statusOutOfOffice:{sj55zd:"fdce8r3"},statusUnknown:{sj55zd:"f11d4kpn"},outOfOffice:{sj55zd:"fr0bkrk"},outOfOfficeAvailable:{sj55zd:"fqa5hgp"},outOfOfficeBusy:{sj55zd:"fvi85wt"},outOfOfficeUnknown:{sj55zd:"f11d4kpn"},tiny:{Bubjx69:"f9ikmtg",a9b677:"f16dn6v3",B2eet1l:"f1w2irj7",B5pe6w7:"fab5kbq",p4uzdd:"f1ms1d91"},large:{Bubjx69:"f9ikmtg",a9b677:"f64fuq3",B5pe6w7:"f1vfi1yj",p4uzdd:"f15s34gz"},extraLarge:{Bubjx69:"f9ikmtg",a9b677:"f1w9dchk",B5pe6w7:"f14efy9b",p4uzdd:"fhipgdu"}},{d:[".fvi85wt{color:var(--colorPaletteRedBackground3);}",".f14k8a89{color:var(--colorPaletteMarigoldBackground3);}",".fqa5hgp{color:var(--colorPaletteLightGreenForeground3);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".fdce8r3{color:var(--colorPaletteBerryForeground3);}",".fr0bkrk{color:var(--colorNeutralBackground1);}",".f9ikmtg{aspect-ratio:1;}",".f16dn6v3{width:6px;}",".f1w2irj7{background-clip:unset;}",".fab5kbq svg{width:6px!important;}",".f1ms1d91 svg{height:6px!important;}",".f64fuq3{width:20px;}",".f1vfi1yj svg{width:20px!important;}",".f15s34gz svg{height:20px!important;}",".f1w9dchk{width:28px;}",".f14efy9b svg{width:28px!important;}",".fhipgdu svg{height:28px!important;}"]}),LE=e=>{const t=AE(),r=ME(),n=OE(),o=IE(e.status);return e.root.className=G(wv.root,t,o&&n.statusBusy,e.status==="away"&&n.statusAway,e.status==="available"&&n.statusAvailable,e.status==="offline"&&n.statusOffline,e.status==="out-of-office"&&n.statusOutOfOffice,e.status==="unknown"&&n.statusUnknown,e.outOfOffice&&n.outOfOffice,e.outOfOffice&&e.status==="available"&&n.outOfOfficeAvailable,e.outOfOffice&&o&&n.outOfOfficeBusy,e.outOfOffice&&(e.status==="out-of-office"||e.status==="away"||e.status==="offline")&&n.statusOutOfOffice,e.outOfOffice&&e.status==="unknown"&&n.outOfOfficeUnknown,e.size==="tiny"&&n.tiny,e.size==="large"&&n.large,e.size==="extra-large"&&n.extraLarge,e.root.className),e.icon&&(e.icon.className=G(wv.icon,r,e.icon.className)),e},Id=x.forwardRef((e,t)=>{const r=DE(e,t);return LE(r),De("usePresenceBadgeStyles_unstable")(r),BE(r)});Id.displayName="PresenceBadge";const Cw=x.createContext(void 0),qE={},HE=Cw.Provider,WE=()=>{var e;return(e=x.useContext(Cw))!==null&&e!==void 0?e:qE},UE={active:"active",inactive:"inactive"},$E=(e,t)=>{const{dir:r}=ht(),{shape:n,size:o}=WE(),{name:i,size:a=o??32,shape:l=n??"circular",active:s="unset",activeAppearance:c="ring",idForColor:u}=e;let{color:f="neutral"}=e;if(f==="colorful"){var d;f=kv[GE((d=u??i)!==null&&d!==void 0?d:"")%kv.length]}const h=_n("avatar-"),p=be(Re("span",{role:"img",id:h,...e,ref:t},["name"]),{elementType:"span"}),[m,y]=x.useState(void 0);let v=Te(e.image,{defaultProps:{alt:"",role:"presentation","aria-hidden":!0,hidden:m},elementType:"img"});v!=null&&v.src||(v=void 0),v&&(v.onError=Et(v.onError,()=>y(!0)),v.onLoad=Et(v.onLoad,()=>y(void 0)));let g=Te(e.initials,{renderByDefault:!0,defaultProps:{children:SE(i,r==="rtl",{firstInitialOnly:a<=16}),id:h+"__initials"},elementType:"span"});g!=null&&g.children||(g=void 0);let b;!g&&(!v||m)&&(b=Te(e.icon,{renderByDefault:!0,defaultProps:{children:x.createElement(f3,null),"aria-hidden":!0},elementType:"span"}));const k=Te(e.badge,{defaultProps:{size:VE(a),id:h+"__badge"},elementType:Id});let _;if(!p["aria-label"]&&!p["aria-labelledby"]&&(i?(p["aria-label"]=i,k&&(p["aria-labelledby"]=p.id+" "+k.id)):g&&(p["aria-labelledby"]=g.id+(k?" "+k.id:"")),s==="active"||s==="inactive")){const w=UE[s];if(p["aria-labelledby"]){const S=h+"__active";p["aria-labelledby"]+=" "+S,_=x.createElement("span",{hidden:!0,id:S},w)}else p["aria-label"]&&(p["aria-label"]+=" "+w)}return{size:a,shape:l,active:s,activeAppearance:c,activeAriaLabelElement:_,color:f,components:{root:"span",initials:"span",icon:"span",image:"img",badge:Id},root:p,initials:g,icon:b,image:v,badge:k}},VE=e=>e>=96?"extra-large":e>=64?"large":e>=56?"medium":e>=40?"small":e>=28?"extra-small":"tiny",kv=["dark-red","cranberry","red","pumpkin","peach","marigold","gold","brass","brown","forest","seafoam","dark-green","light-teal","teal","steel","blue","royal-blue","cornflower","navy","lavender","purple","grape","lilac","pink","magenta","plum","beige","mink","platinum","anchor"],GE=e=>{let t=0;for(let r=e.length-1;r>=0;r--){const n=e.charCodeAt(r),o=r%8;t^=(n<>8-o)}return t},xa={root:"fui-Avatar",image:"fui-Avatar__image",initials:"fui-Avatar__initials",icon:"fui-Avatar__icon",badge:"fui-Avatar__badge"},KE=Qe("r81b29z","r1aatmv",{r:[".r81b29z{display:inline-block;flex-shrink:0;position:relative;vertical-align:middle;border-radius:var(--borderRadiusCircular);font-family:var(--fontFamilyBase);font-weight:var(--fontWeightSemibold);font-size:var(--fontSizeBase300);width:32px;height:32px;}",".r81b29z::before,.r81b29z::after{position:absolute;top:0;left:0;bottom:0;right:0;z-index:-1;margin:calc(-2 * var(--fui-Avatar-ringWidth, 0px));border-radius:inherit;transition-property:margin,opacity;transition-timing-function:var(--curveEasyEaseMax),var(--curveLinear);transition-duration:var(--durationUltraSlow),var(--durationSlower);}",".r81b29z::before{border-style:solid;border-width:var(--fui-Avatar-ringWidth);}",".r1aatmv{display:inline-block;flex-shrink:0;position:relative;vertical-align:middle;border-radius:var(--borderRadiusCircular);font-family:var(--fontFamilyBase);font-weight:var(--fontWeightSemibold);font-size:var(--fontSizeBase300);width:32px;height:32px;}",".r1aatmv::before,.r1aatmv::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:calc(-2 * var(--fui-Avatar-ringWidth, 0px));border-radius:inherit;transition-property:margin,opacity;transition-timing-function:var(--curveEasyEaseMax),var(--curveLinear);transition-duration:var(--durationUltraSlow),var(--durationSlower);}",".r1aatmv::before{border-style:solid;border-width:var(--fui-Avatar-ringWidth);}"],s:["@media screen and (prefers-reduced-motion: reduce){.r81b29z::before,.r81b29z::after{transition-duration:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r1aatmv::before,.r1aatmv::after{transition-duration:0.01ms;}}"]}),XE=Qe("r136dc0n","rjly0nl",[".r136dc0n{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;vertical-align:top;}",".rjly0nl{position:absolute;top:0;right:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;vertical-align:top;}"]),ZE=Qe("rip04v","r31uzil",[".rip04v{position:absolute;box-sizing:border-box;top:0;left:0;width:100%;height:100%;line-height:1;border:var(--strokeWidthThin) solid var(--colorTransparentStroke);display:flex;align-items:center;justify-content:center;vertical-align:center;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:inherit;}",".r31uzil{position:absolute;box-sizing:border-box;top:0;right:0;width:100%;height:100%;line-height:1;border:var(--strokeWidthThin) solid var(--colorTransparentStroke);display:flex;align-items:center;justify-content:center;vertical-align:center;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:inherit;}"]),QE=K({textCaption2Strong:{Be2twd7:"f13mqy1h"},textCaption1Strong:{Be2twd7:"fy9rknc"},textSubtitle2:{Be2twd7:"fod5ikn"},textSubtitle1:{Be2twd7:"f1pp30po"},textTitle3:{Be2twd7:"f1x0m3f5"},squareSmall:{Bbmb7ep:["f1g3puop","fi2rrw2"],Beyfa6y:["fi2rrw2","f1g3puop"],B7oj6ja:["f1rstyi9","f1s4nn1u"],Btl43ni:["f1s4nn1u","f1rstyi9"]},squareMedium:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},squareLarge:{Bbmb7ep:["f1ldthgs","frrelxk"],Beyfa6y:["frrelxk","f1ldthgs"],B7oj6ja:["fobrfso","ffisxpw"],Btl43ni:["ffisxpw","fobrfso"]},squareXLarge:{Bbmb7ep:["fnivh3a","fc7yr5o"],Beyfa6y:["fc7yr5o","fnivh3a"],B7oj6ja:["f1el4m67","f8yange"],Btl43ni:["f8yange","f1el4m67"]},activeOrInactive:{Bz10aip:"ftfx35i",Bmy1vo4:"fv0atk9",B3o57yi:"f1iry5bo",Bkqvd7p:"f15n41j8",Hwfdqs:"f1onx1g3"},ring:{Ftih45:"f1wl9k8s"},ringBadgeCutout:{f4a502:"fp2gujx"},ringThick:{of393c:"fq1w1vq"},ringThicker:{of393c:"fzg6ace"},ringThickest:{of393c:"f1nu8p71"},shadow:{Bsft5z2:"f13zj6fq"},shadow4:{Be6vj1x:"fcjn15l"},shadow8:{Be6vj1x:"f1tm8t9f"},shadow16:{Be6vj1x:"f1a1aohj"},shadow28:{Be6vj1x:"fond6v5"},inactive:{abs64n:"fp25eh",Bz10aip:"f1clczzi",Bkqvd7p:"f1l3s34x",Bucmhp4:"f1f5ar78",b2tv09:["fqxtap0","fhjukvy"],Bfgortx:"f1qj1nzo",Bnvr3x9:["fhjukvy","fqxtap0"],b6ubon:"fw457kn",Bqinb2h:"f1wmllxl"},badge:{qhf8xq:"f1euv43f",B5kzvoi:"f1yab3r1",j35jbq:["f1e31b4d","f1vgc2s3"]},badgeCutout:{btxmck:"f1eugkqs"},badgeAlign:{Dnlfbu:["f1tlnv9o","f1y9kyih"]},tiny:{Bdjeniz:"f1uwoubl",niu6jh:"fid048z"},"extra-small":{Bdjeniz:"f13ar0e0",niu6jh:"fid048z"},small:{Bdjeniz:"fwwuruf",niu6jh:"fid048z"},medium:{Bdjeniz:"f1af27q5",niu6jh:"fid048z"},large:{Bdjeniz:"f18yy57a",niu6jh:"f924bxt"},"extra-large":{Bdjeniz:"f2jg042",niu6jh:"f924bxt"},icon12:{Be2twd7:"f1ugzwwg"},icon16:{Be2twd7:"f4ybsrx"},icon20:{Be2twd7:"fe5j1ua"},icon24:{Be2twd7:"f1rt2boy"},icon28:{Be2twd7:"f24l1pt"},icon32:{Be2twd7:"ffl51b"},icon48:{Be2twd7:"f18m8u13"}},{d:[".f13mqy1h{font-size:var(--fontSizeBase100);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",".f1g3puop{border-bottom-right-radius:var(--borderRadiusSmall);}",".fi2rrw2{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1rstyi9{border-top-right-radius:var(--borderRadiusSmall);}",".f1s4nn1u{border-top-left-radius:var(--borderRadiusSmall);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1ldthgs{border-bottom-right-radius:var(--borderRadiusLarge);}",".frrelxk{border-bottom-left-radius:var(--borderRadiusLarge);}",".fobrfso{border-top-right-radius:var(--borderRadiusLarge);}",".ffisxpw{border-top-left-radius:var(--borderRadiusLarge);}",".fnivh3a{border-bottom-right-radius:var(--borderRadiusXLarge);}",".fc7yr5o{border-bottom-left-radius:var(--borderRadiusXLarge);}",".f1el4m67{border-top-right-radius:var(--borderRadiusXLarge);}",".f8yange{border-top-left-radius:var(--borderRadiusXLarge);}",".ftfx35i{transform:perspective(1px);}",".fv0atk9{transition-property:transform,opacity;}",".f1iry5bo{transition-duration:var(--durationUltraSlow),var(--durationFaster);}",".f15n41j8{transition-timing-function:var(--curveEasyEaseMax),var(--curveLinear);}",'.f1wl9k8s::before{content:"";}',".fp2gujx::before{-webkit-mask-image:radial-gradient(circle at bottom calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)) var(--fui-Avatar-badgeAlign) calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));mask-image:radial-gradient(circle at bottom calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)) var(--fui-Avatar-badgeAlign) calc(var(--fui-Avatar-badgeRadius) + 2 * var(--fui-Avatar-ringWidth)), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));}",".fq1w1vq{--fui-Avatar-ringWidth:var(--strokeWidthThick);}",".fzg6ace{--fui-Avatar-ringWidth:var(--strokeWidthThicker);}",".f1nu8p71{--fui-Avatar-ringWidth:var(--strokeWidthThickest);}",'.f13zj6fq::after{content:"";}',".fcjn15l::after{box-shadow:var(--shadow4);}",".f1tm8t9f::after{box-shadow:var(--shadow8);}",".f1a1aohj::after{box-shadow:var(--shadow16);}",".fond6v5::after{box-shadow:var(--shadow28);}",".fp25eh{opacity:0.8;}",".f1clczzi{transform:scale(0.875);}",".f1l3s34x{transition-timing-function:var(--curveDecelerateMin),var(--curveLinear);}",".f1f5ar78::before,.f1f5ar78::after{margin-top:0;}",".fqxtap0::before,.fqxtap0::after{margin-right:0;}",".fhjukvy::before,.fhjukvy::after{margin-left:0;}",".f1qj1nzo::before,.f1qj1nzo::after{margin-bottom:0;}",".fw457kn::before,.fw457kn::after{opacity:0;}",".f1wmllxl::before,.f1wmllxl::after{transition-timing-function:var(--curveDecelerateMin),var(--curveLinear);}",".f1euv43f{position:absolute;}",".f1yab3r1{bottom:0;}",".f1e31b4d{right:0;}",".f1vgc2s3{left:0;}",".f1eugkqs{-webkit-mask-image:radial-gradient(circle at bottom var(--fui-Avatar-badgeRadius) var(--fui-Avatar-badgeAlign) var(--fui-Avatar-badgeRadius), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));mask-image:radial-gradient(circle at bottom var(--fui-Avatar-badgeRadius) var(--fui-Avatar-badgeAlign) var(--fui-Avatar-badgeRadius), transparent calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) - 0.25px), white calc(var(--fui-Avatar-badgeRadius) + var(--fui-Avatar-badgeGap) + 0.25px));}",".f1tlnv9o{--fui-Avatar-badgeAlign:right;}",".f1y9kyih{--fui-Avatar-badgeAlign:left;}",".f1uwoubl{--fui-Avatar-badgeRadius:3px;}",".fid048z{--fui-Avatar-badgeGap:var(--strokeWidthThin);}",".f13ar0e0{--fui-Avatar-badgeRadius:5px;}",".fwwuruf{--fui-Avatar-badgeRadius:6px;}",".f1af27q5{--fui-Avatar-badgeRadius:8px;}",".f18yy57a{--fui-Avatar-badgeRadius:10px;}",".f924bxt{--fui-Avatar-badgeGap:var(--strokeWidthThick);}",".f2jg042{--fui-Avatar-badgeRadius:14px;}",".f1ugzwwg{font-size:12px;}",".f4ybsrx{font-size:16px;}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".f24l1pt{font-size:28px;}",".ffl51b{font-size:32px;}",".f18m8u13{font-size:48px;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1onx1g3{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),JE=K({16:{a9b677:"fjw5fx7",Bqenvij:"fd461yt"},20:{a9b677:"f64fuq3",Bqenvij:"fjamq6b"},24:{a9b677:"fq4mcun",Bqenvij:"frvgh55"},28:{a9b677:"f1w9dchk",Bqenvij:"fxldao9"},32:{a9b677:"f1szoe96",Bqenvij:"f1d2rq10"},36:{a9b677:"fpdz1er",Bqenvij:"f8ljn23"},40:{a9b677:"feqmc2u",Bqenvij:"fbhnoac"},48:{a9b677:"f124akge",Bqenvij:"ff2sm71"},56:{a9b677:"f1u66zr1",Bqenvij:"fzki0ko"},64:{a9b677:"fa9ln6p",Bqenvij:"f16k9i2m"},72:{a9b677:"fhcae8x",Bqenvij:"f1shusfg"},96:{a9b677:"f1kyr2gn",Bqenvij:"fypu0ge"},120:{a9b677:"fwfqyga",Bqenvij:"fjr5b71"},128:{a9b677:"f1iksgmy",Bqenvij:"fele2au"}},{d:[".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f1w9dchk{width:28px;}",".fxldao9{height:28px;}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fpdz1er{width:36px;}",".f8ljn23{height:36px;}",".feqmc2u{width:40px;}",".fbhnoac{height:40px;}",".f124akge{width:48px;}",".ff2sm71{height:48px;}",".f1u66zr1{width:56px;}",".fzki0ko{height:56px;}",".fa9ln6p{width:64px;}",".f16k9i2m{height:64px;}",".fhcae8x{width:72px;}",".f1shusfg{height:72px;}",".f1kyr2gn{width:96px;}",".fypu0ge{height:96px;}",".fwfqyga{width:120px;}",".fjr5b71{height:120px;}",".f1iksgmy{width:128px;}",".fele2au{height:128px;}"]}),YE=K({neutral:{sj55zd:"f11d4kpn",De3pzq:"f18f03hv"},brand:{sj55zd:"fonrgv7",De3pzq:"f1blnnmj"},"dark-red":{sj55zd:"fqjd1y1",De3pzq:"f1vq2oo4"},cranberry:{sj55zd:"fg9gses",De3pzq:"f1lwxszt"},red:{sj55zd:"f23f7i0",De3pzq:"f1q9qhfq"},pumpkin:{sj55zd:"fjnan08",De3pzq:"fz91bi3"},peach:{sj55zd:"fknu15p",De3pzq:"f1b9nr51"},marigold:{sj55zd:"f9603vw",De3pzq:"f3z4w6d"},gold:{sj55zd:"fmq0uwp",De3pzq:"fg50kya"},brass:{sj55zd:"f28g5vo",De3pzq:"f4w2gd0"},brown:{sj55zd:"ftl572b",De3pzq:"f14wu1f4"},forest:{sj55zd:"f1gymlvd",De3pzq:"f19ut4y6"},seafoam:{sj55zd:"fnnb6wn",De3pzq:"f1n057jc"},"dark-green":{sj55zd:"ff58qw8",De3pzq:"f11t05wk"},"light-teal":{sj55zd:"f1up9qbj",De3pzq:"f42feg1"},teal:{sj55zd:"f135dsb4",De3pzq:"f6hvv1p"},steel:{sj55zd:"f151dlcp",De3pzq:"f1lnp8zf"},blue:{sj55zd:"f1rjv50u",De3pzq:"f1ggcpy6"},"royal-blue":{sj55zd:"f1emykk5",De3pzq:"f12rj61f"},cornflower:{sj55zd:"fqsigj7",De3pzq:"f8k7hur"},navy:{sj55zd:"f1nj97xi",De3pzq:"f19gw0ux"},lavender:{sj55zd:"fwctg0i",De3pzq:"ff379vm"},purple:{sj55zd:"fjrsgpu",De3pzq:"f1mzf1e1"},grape:{sj55zd:"f1fiiydq",De3pzq:"f1o4k8oy"},lilac:{sj55zd:"f1res9jt",De3pzq:"f1x6mz1o"},pink:{sj55zd:"fv3fbbi",De3pzq:"fydlv6t"},magenta:{sj55zd:"f1f1fwnz",De3pzq:"f4xb6j5"},plum:{sj55zd:"f8ptl6j",De3pzq:"fqo8e26"},beige:{sj55zd:"f1ntv3ld",De3pzq:"f101elhj"},mink:{sj55zd:"f1fscmp",De3pzq:"f13g8o5c"},platinum:{sj55zd:"f1dr00v2",De3pzq:"fkh7blw"},anchor:{sj55zd:"f1f3ti53",De3pzq:"fu4yj0j"}},{d:[".f11d4kpn{color:var(--colorNeutralForeground3);}",".f18f03hv{background-color:var(--colorNeutralBackground6);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".f1blnnmj{background-color:var(--colorBrandBackgroundStatic);}",".fqjd1y1{color:var(--colorPaletteDarkRedForeground2);}",".f1vq2oo4{background-color:var(--colorPaletteDarkRedBackground2);}",".fg9gses{color:var(--colorPaletteCranberryForeground2);}",".f1lwxszt{background-color:var(--colorPaletteCranberryBackground2);}",".f23f7i0{color:var(--colorPaletteRedForeground2);}",".f1q9qhfq{background-color:var(--colorPaletteRedBackground2);}",".fjnan08{color:var(--colorPalettePumpkinForeground2);}",".fz91bi3{background-color:var(--colorPalettePumpkinBackground2);}",".fknu15p{color:var(--colorPalettePeachForeground2);}",".f1b9nr51{background-color:var(--colorPalettePeachBackground2);}",".f9603vw{color:var(--colorPaletteMarigoldForeground2);}",".f3z4w6d{background-color:var(--colorPaletteMarigoldBackground2);}",".fmq0uwp{color:var(--colorPaletteGoldForeground2);}",".fg50kya{background-color:var(--colorPaletteGoldBackground2);}",".f28g5vo{color:var(--colorPaletteBrassForeground2);}",".f4w2gd0{background-color:var(--colorPaletteBrassBackground2);}",".ftl572b{color:var(--colorPaletteBrownForeground2);}",".f14wu1f4{background-color:var(--colorPaletteBrownBackground2);}",".f1gymlvd{color:var(--colorPaletteForestForeground2);}",".f19ut4y6{background-color:var(--colorPaletteForestBackground2);}",".fnnb6wn{color:var(--colorPaletteSeafoamForeground2);}",".f1n057jc{background-color:var(--colorPaletteSeafoamBackground2);}",".ff58qw8{color:var(--colorPaletteDarkGreenForeground2);}",".f11t05wk{background-color:var(--colorPaletteDarkGreenBackground2);}",".f1up9qbj{color:var(--colorPaletteLightTealForeground2);}",".f42feg1{background-color:var(--colorPaletteLightTealBackground2);}",".f135dsb4{color:var(--colorPaletteTealForeground2);}",".f6hvv1p{background-color:var(--colorPaletteTealBackground2);}",".f151dlcp{color:var(--colorPaletteSteelForeground2);}",".f1lnp8zf{background-color:var(--colorPaletteSteelBackground2);}",".f1rjv50u{color:var(--colorPaletteBlueForeground2);}",".f1ggcpy6{background-color:var(--colorPaletteBlueBackground2);}",".f1emykk5{color:var(--colorPaletteRoyalBlueForeground2);}",".f12rj61f{background-color:var(--colorPaletteRoyalBlueBackground2);}",".fqsigj7{color:var(--colorPaletteCornflowerForeground2);}",".f8k7hur{background-color:var(--colorPaletteCornflowerBackground2);}",".f1nj97xi{color:var(--colorPaletteNavyForeground2);}",".f19gw0ux{background-color:var(--colorPaletteNavyBackground2);}",".fwctg0i{color:var(--colorPaletteLavenderForeground2);}",".ff379vm{background-color:var(--colorPaletteLavenderBackground2);}",".fjrsgpu{color:var(--colorPalettePurpleForeground2);}",".f1mzf1e1{background-color:var(--colorPalettePurpleBackground2);}",".f1fiiydq{color:var(--colorPaletteGrapeForeground2);}",".f1o4k8oy{background-color:var(--colorPaletteGrapeBackground2);}",".f1res9jt{color:var(--colorPaletteLilacForeground2);}",".f1x6mz1o{background-color:var(--colorPaletteLilacBackground2);}",".fv3fbbi{color:var(--colorPalettePinkForeground2);}",".fydlv6t{background-color:var(--colorPalettePinkBackground2);}",".f1f1fwnz{color:var(--colorPaletteMagentaForeground2);}",".f4xb6j5{background-color:var(--colorPaletteMagentaBackground2);}",".f8ptl6j{color:var(--colorPalettePlumForeground2);}",".fqo8e26{background-color:var(--colorPalettePlumBackground2);}",".f1ntv3ld{color:var(--colorPaletteBeigeForeground2);}",".f101elhj{background-color:var(--colorPaletteBeigeBackground2);}",".f1fscmp{color:var(--colorPaletteMinkForeground2);}",".f13g8o5c{background-color:var(--colorPaletteMinkBackground2);}",".f1dr00v2{color:var(--colorPalettePlatinumForeground2);}",".fkh7blw{background-color:var(--colorPalettePlatinumBackground2);}",".f1f3ti53{color:var(--colorPaletteAnchorForeground2);}",".fu4yj0j{background-color:var(--colorPaletteAnchorBackground2);}"]}),ez=K({neutral:{Bic5iru:"f1uuiafn"},brand:{Bic5iru:"f1uuiafn"},"dark-red":{Bic5iru:"f1t2x9on"},cranberry:{Bic5iru:"f1pvshc9"},red:{Bic5iru:"f1ectbk9"},pumpkin:{Bic5iru:"fvzpl0b"},peach:{Bic5iru:"fwj2kd7"},marigold:{Bic5iru:"fr120vy"},gold:{Bic5iru:"f8xmmar"},brass:{Bic5iru:"f1hbety2"},brown:{Bic5iru:"f1vg3s4g"},forest:{Bic5iru:"f1m3olm5"},seafoam:{Bic5iru:"f17xiqtr"},"dark-green":{Bic5iru:"fx32vyh"},"light-teal":{Bic5iru:"f1mkihwv"},teal:{Bic5iru:"fecnooh"},steel:{Bic5iru:"f15hfgzm"},blue:{Bic5iru:"fqproka"},"royal-blue":{Bic5iru:"f17v2w59"},cornflower:{Bic5iru:"fp0q1mo"},navy:{Bic5iru:"f1nlym55"},lavender:{Bic5iru:"f62vk8h"},purple:{Bic5iru:"f15zl69q"},grape:{Bic5iru:"f53w4j7"},lilac:{Bic5iru:"fu2771t"},pink:{Bic5iru:"fzflscs"},magenta:{Bic5iru:"fb6rmqc"},plum:{Bic5iru:"f1a4gm5b"},beige:{Bic5iru:"f1qpf9z1"},mink:{Bic5iru:"f1l7or83"},platinum:{Bic5iru:"fzrj0iu"},anchor:{Bic5iru:"f8oz6wf"}},{d:[".f1uuiafn::before{color:var(--colorBrandStroke1);}",".f1t2x9on::before{color:var(--colorPaletteDarkRedBorderActive);}",".f1pvshc9::before{color:var(--colorPaletteCranberryBorderActive);}",".f1ectbk9::before{color:var(--colorPaletteRedBorderActive);}",".fvzpl0b::before{color:var(--colorPalettePumpkinBorderActive);}",".fwj2kd7::before{color:var(--colorPalettePeachBorderActive);}",".fr120vy::before{color:var(--colorPaletteMarigoldBorderActive);}",".f8xmmar::before{color:var(--colorPaletteGoldBorderActive);}",".f1hbety2::before{color:var(--colorPaletteBrassBorderActive);}",".f1vg3s4g::before{color:var(--colorPaletteBrownBorderActive);}",".f1m3olm5::before{color:var(--colorPaletteForestBorderActive);}",".f17xiqtr::before{color:var(--colorPaletteSeafoamBorderActive);}",".fx32vyh::before{color:var(--colorPaletteDarkGreenBorderActive);}",".f1mkihwv::before{color:var(--colorPaletteLightTealBorderActive);}",".fecnooh::before{color:var(--colorPaletteTealBorderActive);}",".f15hfgzm::before{color:var(--colorPaletteSteelBorderActive);}",".fqproka::before{color:var(--colorPaletteBlueBorderActive);}",".f17v2w59::before{color:var(--colorPaletteRoyalBlueBorderActive);}",".fp0q1mo::before{color:var(--colorPaletteCornflowerBorderActive);}",".f1nlym55::before{color:var(--colorPaletteNavyBorderActive);}",".f62vk8h::before{color:var(--colorPaletteLavenderBorderActive);}",".f15zl69q::before{color:var(--colorPalettePurpleBorderActive);}",".f53w4j7::before{color:var(--colorPaletteGrapeBorderActive);}",".fu2771t::before{color:var(--colorPaletteLilacBorderActive);}",".fzflscs::before{color:var(--colorPalettePinkBorderActive);}",".fb6rmqc::before{color:var(--colorPaletteMagentaBorderActive);}",".f1a4gm5b::before{color:var(--colorPalettePlumBorderActive);}",".f1qpf9z1::before{color:var(--colorPaletteBeigeBorderActive);}",".f1l7or83::before{color:var(--colorPaletteMinkBorderActive);}",".fzrj0iu::before{color:var(--colorPalettePlatinumBorderActive);}",".f8oz6wf::before{color:var(--colorPaletteAnchorBorderActive);}"]}),tz=e=>{const{size:t,shape:r,active:n,activeAppearance:o,color:i}=e,a=KE(),l=XE(),s=ZE(),c=QE(),u=JE(),f=YE(),d=ez(),h=[a,t!==32&&u[t]];if(e.badge&&h.push(c.badgeAlign,c[e.badge.size||"medium"]),t<=24?h.push(c.textCaption2Strong):t<=28?h.push(c.textCaption1Strong):t<=40||(t<=56?h.push(c.textSubtitle2):t<=96?h.push(c.textSubtitle1):h.push(c.textTitle3)),r==="square"&&(t<=24?h.push(c.squareSmall):t<=48?h.push(c.squareMedium):t<=72?h.push(c.squareLarge):h.push(c.squareXLarge)),(n==="active"||n==="inactive")&&(h.push(c.activeOrInactive),(o==="ring"||o==="ring-shadow")&&(h.push(c.ring,d[i]),e.badge&&h.push(c.ringBadgeCutout),t<=48?h.push(c.ringThick):t<=64?h.push(c.ringThicker):h.push(c.ringThickest)),(o==="shadow"||o==="ring-shadow")&&(h.push(c.shadow),t<=28?h.push(c.shadow4):t<=48?h.push(c.shadow8):t<=64?h.push(c.shadow16):h.push(c.shadow28)),n==="inactive"&&h.push(c.inactive)),e.root.className=G(xa.root,...h,e.root.className),e.badge&&(e.badge.className=G(xa.badge,c.badge,e.badge.className)),e.image&&(e.image.className=G(xa.image,l,f[i],e.badge&&c.badgeCutout,e.image.className)),e.initials&&(e.initials.className=G(xa.initials,s,f[i],e.badge&&c.badgeCutout,e.initials.className)),e.icon){let p;t<=16?p=c.icon12:t<=24?p=c.icon16:t<=40?p=c.icon20:t<=48?p=c.icon24:t<=56?p=c.icon28:t<=72?p=c.icon32:p=c.icon48,e.icon.className=G(xa.icon,s,p,f[i],e.badge&&c.badgeCutout,e.icon.className)}return e},yi=x.forwardRef((e,t)=>{const r=$E(e,t);return tz(r),De("useAvatarStyles_unstable")(r),gE(r)});yi.displayName="Avatar";function rz(e){const t=e.clientX,r=e.clientY,n=t+1,o=r+1;function i(){return{left:t,top:r,right:n,bottom:o,x:t,y:r,height:1,width:1}}return{getBoundingClientRect:i}}const xv="data-popper-is-intersecting",Sv="data-popper-escaped",_v="data-popper-reference-hidden",nz="data-popper-placement",Ad="fui-positioningend",oz=["top","right","bottom","left"],Xo=Math.min,Sr=Math.max,vc=Math.round,co=e=>({x:e,y:e}),iz={left:"right",right:"left",bottom:"top",top:"bottom"},az={start:"end",end:"start"};function Md(e,t,r){return Sr(e,Xo(t,r))}function Bn(e,t){return typeof e=="function"?e(t):e}function Cn(e){return e.split("-")[0]}function da(e){return e.split("-")[1]}function Tp(e){return e==="x"?"y":"x"}function Np(e){return e==="y"?"height":"width"}function ha(e){return["top","bottom"].includes(Cn(e))?"y":"x"}function Rp(e){return Tp(ha(e))}function lz(e,t,r){r===void 0&&(r=!1);const n=da(e),o=Rp(e),i=Np(o);let a=o==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=bc(a)),[a,bc(a)]}function sz(e){const t=bc(e);return[Od(e),t,Od(t)]}function Od(e){return e.replace(/start|end/g,t=>az[t])}function cz(e,t,r){const n=["left","right"],o=["right","left"],i=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return r?t?o:n:t?n:o;case"left":case"right":return t?i:a;default:return[]}}function uz(e,t,r,n){const o=da(e);let i=cz(Cn(e),r==="start",n);return o&&(i=i.map(a=>a+"-"+o),t&&(i=i.concat(i.map(Od)))),i}function bc(e){return e.replace(/left|right|bottom|top/g,t=>iz[t])}function fz(e){return{top:0,right:0,bottom:0,left:0,...e}}function Pw(e){return typeof e!="number"?fz(e):{top:e,right:e,bottom:e,left:e}}function yc(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function Bv(e,t,r){let{reference:n,floating:o}=e;const i=ha(t),a=Rp(t),l=Np(a),s=Cn(t),c=i==="y",u=n.x+n.width/2-o.width/2,f=n.y+n.height/2-o.height/2,d=n[l]/2-o[l]/2;let h;switch(s){case"top":h={x:u,y:n.y-o.height};break;case"bottom":h={x:u,y:n.y+n.height};break;case"right":h={x:n.x+n.width,y:f};break;case"left":h={x:n.x-o.width,y:f};break;default:h={x:n.x,y:n.y}}switch(da(t)){case"start":h[a]-=d*(r&&c?-1:1);break;case"end":h[a]+=d*(r&&c?-1:1);break}return h}const dz=async(e,t,r)=>{const{placement:n="bottom",strategy:o="absolute",middleware:i=[],platform:a}=r,l=i.filter(Boolean),s=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:f}=Bv(c,n,s),d=n,h={},p=0;for(let m=0;m({name:"arrow",options:e,async fn(t){const{x:r,y:n,placement:o,rects:i,platform:a,elements:l,middlewareData:s}=t,{element:c,padding:u=0}=Bn(e,t)||{};if(c==null)return{};const f=Pw(u),d={x:r,y:n},h=Rp(o),p=Np(h),m=await a.getDimensions(c),y=h==="y",v=y?"top":"left",g=y?"bottom":"right",b=y?"clientHeight":"clientWidth",k=i.reference[p]+i.reference[h]-d[h]-i.floating[p],_=d[h]-i.reference[h],w=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let S=w?w[b]:0;(!S||!await(a.isElement==null?void 0:a.isElement(w)))&&(S=l.floating[b]||i.floating[p]);const E=k/2-_/2,N=S/2-m[p]/2-1,C=Xo(f[v],N),L=Xo(f[g],N),R=C,re=S-m[p]-L,oe=S/2-m[p]/2+E,te=Md(R,oe,re),he=!s.arrow&&da(o)!=null&&oe!==te&&i.reference[p]/2-(oeR<=0)){var N,C;const R=(((N=i.flip)==null?void 0:N.index)||0)+1,re=_[R];if(re)return{data:{index:R,overflows:E},reset:{placement:re}};let oe=(C=E.filter(te=>te.overflows[0]<=0).sort((te,he)=>te.overflows[1]-he.overflows[1])[0])==null?void 0:C.placement;if(!oe)switch(h){case"bestFit":{var L;const te=(L=E.map(he=>[he.placement,he.overflows.filter(ee=>ee>0).reduce((ee,W)=>ee+W,0)]).sort((he,ee)=>he[1]-ee[1])[0])==null?void 0:L[0];te&&(oe=te);break}case"initialPlacement":oe=l;break}if(o!==oe)return{reset:{placement:oe}}}return{}}}};function Cv(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Pv(e){return oz.some(t=>e[t]>=0)}const gz=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:r}=t,{strategy:n="referenceHidden",...o}=Bn(e,t);switch(n){case"referenceHidden":{const i=await Gi(t,{...o,elementContext:"reference"}),a=Cv(i,r.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:Pv(a)}}}case"escaped":{const i=await Gi(t,{...o,altBoundary:!0}),a=Cv(i,r.floating);return{data:{escapedOffsets:a,escaped:Pv(a)}}}default:return{}}}}};async function mz(e,t){const{placement:r,platform:n,elements:o}=e,i=await(n.isRTL==null?void 0:n.isRTL(o.floating)),a=Cn(r),l=da(r),s=ha(r)==="y",c=["left","top"].includes(a)?-1:1,u=i&&s?-1:1,f=Bn(t,e);let{mainAxis:d,crossAxis:h,alignmentAxis:p}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...f};return l&&typeof p=="number"&&(h=l==="end"?p*-1:p),s?{x:h*u,y:d*c}:{x:d*c,y:h*u}}const vz=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var r,n;const{x:o,y:i,placement:a,middlewareData:l}=t,s=await mz(t,e);return a===((r=l.offset)==null?void 0:r.placement)&&(n=l.arrow)!=null&&n.alignmentOffset?{}:{x:o+s.x,y:i+s.y,data:{...s,placement:a}}}}},bz=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:r,y:n,placement:o}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:l={fn:y=>{let{x:v,y:g}=y;return{x:v,y:g}}},...s}=Bn(e,t),c={x:r,y:n},u=await Gi(t,s),f=ha(Cn(o)),d=Tp(f);let h=c[d],p=c[f];if(i){const y=d==="y"?"top":"left",v=d==="y"?"bottom":"right",g=h+u[y],b=h-u[v];h=Md(g,h,b)}if(a){const y=f==="y"?"top":"left",v=f==="y"?"bottom":"right",g=p+u[y],b=p-u[v];p=Md(g,p,b)}const m=l.fn({...t,[d]:h,[f]:p});return{...m,data:{x:m.x-r,y:m.y-n}}}}},yz=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:r,y:n,placement:o,rects:i,middlewareData:a}=t,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=Bn(e,t),u={x:r,y:n},f=ha(o),d=Tp(f);let h=u[d],p=u[f];const m=Bn(l,t),y=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(s){const b=d==="y"?"height":"width",k=i.reference[d]-i.floating[b]+y.mainAxis,_=i.reference[d]+i.reference[b]-y.mainAxis;h_&&(h=_)}if(c){var v,g;const b=d==="y"?"width":"height",k=["top","left"].includes(Cn(o)),_=i.reference[f]-i.floating[b]+(k&&((v=a.offset)==null?void 0:v[f])||0)+(k?0:y.crossAxis),w=i.reference[f]+i.reference[b]+(k?0:((g=a.offset)==null?void 0:g[f])||0)-(k?y.crossAxis:0);p<_?p=_:p>w&&(p=w)}return{[d]:h,[f]:p}}}},wz=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:r,rects:n,platform:o,elements:i}=t,{apply:a=()=>{},...l}=Bn(e,t),s=await Gi(t,l),c=Cn(r),u=da(r),f=ha(r)==="y",{width:d,height:h}=n.floating;let p,m;c==="top"||c==="bottom"?(p=c,m=u===(await(o.isRTL==null?void 0:o.isRTL(i.floating))?"start":"end")?"left":"right"):(m=c,p=u==="end"?"top":"bottom");const y=h-s[p],v=d-s[m],g=!t.middlewareData.shift;let b=y,k=v;if(f){const w=d-s.left-s.right;k=u||g?Xo(v,w):w}else{const w=h-s.top-s.bottom;b=u||g?Xo(y,w):w}if(g&&!u){const w=Sr(s.left,0),S=Sr(s.right,0),E=Sr(s.top,0),N=Sr(s.bottom,0);f?k=d-2*(w!==0||S!==0?w+S:Sr(s.left,s.right)):b=h-2*(E!==0||N!==0?E+N:Sr(s.top,s.bottom))}await a({...t,availableWidth:k,availableHeight:b});const _=await o.getDimensions(i.floating);return d!==_.width||h!==_.height?{reset:{rects:!0}}:{}}}};function uo(e){return Ew(e)?(e.nodeName||"").toLowerCase():"#document"}function hr(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function go(e){var t;return(t=(Ew(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Ew(e){return e instanceof Node||e instanceof hr(e).Node}function Pn(e){return e instanceof Element||e instanceof hr(e).Element}function fn(e){return e instanceof HTMLElement||e instanceof hr(e).HTMLElement}function Ev(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof hr(e).ShadowRoot}function Gl(e){const{overflow:t,overflowX:r,overflowY:n,display:o}=Nr(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!["inline","contents"].includes(o)}function kz(e){return["table","td","th"].includes(uo(e))}function jp(e){const t=Fp(),r=Nr(e);return r.transform!=="none"||r.perspective!=="none"||(r.containerType?r.containerType!=="normal":!1)||!t&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!t&&(r.filter?r.filter!=="none":!1)||["transform","perspective","filter"].some(n=>(r.willChange||"").includes(n))||["paint","layout","strict","content"].some(n=>(r.contain||"").includes(n))}function xz(e){let t=Ki(e);for(;fn(t)&&!du(t);){if(jp(t))return t;t=Ki(t)}return null}function Fp(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function du(e){return["html","body","#document"].includes(uo(e))}function Nr(e){return hr(e).getComputedStyle(e)}function hu(e){return Pn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ki(e){if(uo(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Ev(e)&&e.host||go(e);return Ev(t)?t.host:t}function zw(e){const t=Ki(e);return du(t)?e.ownerDocument?e.ownerDocument.body:e.body:fn(t)&&Gl(t)?t:zw(t)}function Ld(e,t,r){var n;t===void 0&&(t=[]),r===void 0&&(r=!0);const o=zw(e),i=o===((n=e.ownerDocument)==null?void 0:n.body),a=hr(o);return i?t.concat(a,a.visualViewport||[],Gl(o)?o:[],a.frameElement&&r?Ld(a.frameElement):[]):t.concat(o,Ld(o,[],r))}function Tw(e){const t=Nr(e);let r=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const o=fn(e),i=o?e.offsetWidth:r,a=o?e.offsetHeight:n,l=vc(r)!==i||vc(n)!==a;return l&&(r=i,n=a),{width:r,height:n,$:l}}function Nw(e){return Pn(e)?e:e.contextElement}function Di(e){const t=Nw(e);if(!fn(t))return co(1);const r=t.getBoundingClientRect(),{width:n,height:o,$:i}=Tw(t);let a=(i?vc(r.width):r.width)/n,l=(i?vc(r.height):r.height)/o;return(!a||!Number.isFinite(a))&&(a=1),(!l||!Number.isFinite(l))&&(l=1),{x:a,y:l}}const Sz=co(0);function Rw(e){const t=hr(e);return!Fp()||!t.visualViewport?Sz:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function _z(e,t,r){return t===void 0&&(t=!1),!r||t&&r!==hr(e)?!1:t}function gl(e,t,r,n){t===void 0&&(t=!1),r===void 0&&(r=!1);const o=e.getBoundingClientRect(),i=Nw(e);let a=co(1);t&&(n?Pn(n)&&(a=Di(n)):a=Di(e));const l=_z(i,r,n)?Rw(i):co(0);let s=(o.left+l.x)/a.x,c=(o.top+l.y)/a.y,u=o.width/a.x,f=o.height/a.y;if(i){const d=hr(i),h=n&&Pn(n)?hr(n):n;let p=d,m=p.frameElement;for(;m&&n&&h!==p;){const y=Di(m),v=m.getBoundingClientRect(),g=Nr(m),b=v.left+(m.clientLeft+parseFloat(g.paddingLeft))*y.x,k=v.top+(m.clientTop+parseFloat(g.paddingTop))*y.y;s*=y.x,c*=y.y,u*=y.x,f*=y.y,s+=b,c+=k,p=hr(m),m=p.frameElement}}return yc({width:u,height:f,x:s,y:c})}const Bz=[":popover-open",":modal"];function jw(e){return Bz.some(t=>{try{return e.matches(t)}catch{return!1}})}function Cz(e){let{elements:t,rect:r,offsetParent:n,strategy:o}=e;const i=o==="fixed",a=go(n),l=t?jw(t.floating):!1;if(n===a||l&&i)return r;let s={scrollLeft:0,scrollTop:0},c=co(1);const u=co(0),f=fn(n);if((f||!f&&!i)&&((uo(n)!=="body"||Gl(a))&&(s=hu(n)),fn(n))){const d=gl(n);c=Di(n),u.x=d.x+n.clientLeft,u.y=d.y+n.clientTop}return{width:r.width*c.x,height:r.height*c.y,x:r.x*c.x-s.scrollLeft*c.x+u.x,y:r.y*c.y-s.scrollTop*c.y+u.y}}function Pz(e){return Array.from(e.getClientRects())}function Fw(e){return gl(go(e)).left+hu(e).scrollLeft}function Ez(e){const t=go(e),r=hu(e),n=e.ownerDocument.body,o=Sr(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),i=Sr(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let a=-r.scrollLeft+Fw(e);const l=-r.scrollTop;return Nr(n).direction==="rtl"&&(a+=Sr(t.clientWidth,n.clientWidth)-o),{width:o,height:i,x:a,y:l}}function zz(e,t){const r=hr(e),n=go(e),o=r.visualViewport;let i=n.clientWidth,a=n.clientHeight,l=0,s=0;if(o){i=o.width,a=o.height;const c=Fp();(!c||c&&t==="fixed")&&(l=o.offsetLeft,s=o.offsetTop)}return{width:i,height:a,x:l,y:s}}function Tz(e,t){const r=gl(e,!0,t==="fixed"),n=r.top+e.clientTop,o=r.left+e.clientLeft,i=fn(e)?Di(e):co(1),a=e.clientWidth*i.x,l=e.clientHeight*i.y,s=o*i.x,c=n*i.y;return{width:a,height:l,x:s,y:c}}function zv(e,t,r){let n;if(t==="viewport")n=zz(e,r);else if(t==="document")n=Ez(go(e));else if(Pn(t))n=Tz(t,r);else{const o=Rw(e);n={...t,x:t.x-o.x,y:t.y-o.y}}return yc(n)}function Dw(e,t){const r=Ki(e);return r===t||!Pn(r)||du(r)?!1:Nr(r).position==="fixed"||Dw(r,t)}function Nz(e,t){const r=t.get(e);if(r)return r;let n=Ld(e,[],!1).filter(l=>Pn(l)&&uo(l)!=="body"),o=null;const i=Nr(e).position==="fixed";let a=i?Ki(e):e;for(;Pn(a)&&!du(a);){const l=Nr(a),s=jp(a);!s&&l.position==="fixed"&&(o=null),(i?!s&&!o:!s&&l.position==="static"&&!!o&&["absolute","fixed"].includes(o.position)||Gl(a)&&!s&&Dw(e,a))?n=n.filter(u=>u!==a):o=l,a=Ki(a)}return t.set(e,n),n}function Rz(e){let{element:t,boundary:r,rootBoundary:n,strategy:o}=e;const a=[...r==="clippingAncestors"?Nz(t,this._c):[].concat(r),n],l=a[0],s=a.reduce((c,u)=>{const f=zv(t,u,o);return c.top=Sr(f.top,c.top),c.right=Xo(f.right,c.right),c.bottom=Xo(f.bottom,c.bottom),c.left=Sr(f.left,c.left),c},zv(t,l,o));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function jz(e){const{width:t,height:r}=Tw(e);return{width:t,height:r}}function Fz(e,t,r){const n=fn(t),o=go(t),i=r==="fixed",a=gl(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const s=co(0);if(n||!n&&!i)if((uo(t)!=="body"||Gl(o))&&(l=hu(t)),n){const f=gl(t,!0,i,t);s.x=f.x+t.clientLeft,s.y=f.y+t.clientTop}else o&&(s.x=Fw(o));const c=a.left+l.scrollLeft-s.x,u=a.top+l.scrollTop-s.y;return{x:c,y:u,width:a.width,height:a.height}}function Tv(e,t){return!fn(e)||Nr(e).position==="fixed"?null:t?t(e):e.offsetParent}function Iw(e,t){const r=hr(e);if(!fn(e)||jw(e))return r;let n=Tv(e,t);for(;n&&kz(n)&&Nr(n).position==="static";)n=Tv(n,t);return n&&(uo(n)==="html"||uo(n)==="body"&&Nr(n).position==="static"&&!jp(n))?r:n||xz(e)||r}const Dz=async function(e){const t=this.getOffsetParent||Iw,r=this.getDimensions;return{reference:Fz(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await r(e.floating)}}};function Iz(e){return Nr(e).direction==="rtl"}const Az={convertOffsetParentRelativeRectToViewportRelativeRect:Cz,getDocumentElement:go,getClippingRect:Rz,getOffsetParent:Iw,getElementRects:Dz,getClientRects:Pz,getDimensions:jz,getScale:Di,isElement:Pn,isRTL:Iz},Mz=bz,Oz=pz,Lz=wz,Nv=gz,qz=hz,Hz=yz,Wz=(e,t,r)=>{const n=new Map,o={platform:Az,...r},i={...o.platform,_c:n};return dz(e,t,{...o,platform:i})};function Aw(e){const t=e.split("-");return{side:t[0],alignment:t[1]}}const Uz=e=>e.nodeName==="HTML"?e:e.parentNode||e.host,$z=e=>{var t;return e.nodeType!==1?{}:((t=e.ownerDocument)===null||t===void 0?void 0:t.defaultView).getComputedStyle(e,null)},pu=e=>{const t=e&&Uz(e);if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}const{overflow:r,overflowX:n,overflowY:o}=$z(t);return/(auto|scroll|overlay)/.test(r+o+n)?t:pu(t)},Vz=e=>{var t;const r=pu(e);return r?r!==((t=r.ownerDocument)===null||t===void 0?void 0:t.body):!1};function Dp(e,t){if(t==="window")return e==null?void 0:e.ownerDocument.documentElement;if(t==="clippingParents")return"clippingAncestors";if(t==="scrollParent"){let r=pu(e);return r.nodeName==="BODY"&&(r=e==null?void 0:e.ownerDocument.documentElement),r}return t}function Gz(e,t){return typeof e=="number"||typeof e=="object"&&e!==null?vf(e,t):typeof e=="function"?r=>{const n=e(r);return vf(n,t)}:{mainAxis:t}}const vf=(e,t)=>{if(typeof e=="number")return{mainAxis:e+t};var r;return{...e,mainAxis:((r=e.mainAxis)!==null&&r!==void 0?r:0)+t}};function Kz(e,t){if(typeof e=="number")return e;const{start:r,end:n,...o}=e,i=o,a=t?"end":"start",l=t?"start":"end";return e[a]&&(i.left=e[a]),e[l]&&(i.right=e[l]),i}const Xz=e=>({above:"top",below:"bottom",before:e?"right":"left",after:e?"left":"right"}),Zz=()=>({start:"start",end:"end",top:"start",bottom:"end",center:void 0}),Qz=(e,t)=>{const r=e==="above"||e==="below",n=t==="top"||t==="bottom";return r&&n||!r&&!n},Mw=(e,t,r)=>{const n=Qz(t,e)?"center":e,o=t&&Xz(r)[t],i=n&&Zz()[n];return o&&i?`${o}-${i}`:o},Jz=()=>({top:"above",bottom:"below",right:"after",left:"before"}),Yz=e=>e==="above"||e==="below"?{start:"start",end:"end"}:{start:"top",end:"bottom"},eT=e=>{const{side:t,alignment:r}=Aw(e),n=Jz()[t],o=r&&Yz(n)[r];return{position:n,alignment:o}},tT={above:{position:"above",align:"center"},"above-start":{position:"above",align:"start"},"above-end":{position:"above",align:"end"},below:{position:"below",align:"center"},"below-start":{position:"below",align:"start"},"below-end":{position:"below",align:"end"},before:{position:"before",align:"center"},"before-top":{position:"before",align:"top"},"before-bottom":{position:"before",align:"bottom"},after:{position:"after",align:"center"},"after-top":{position:"after",align:"top"},"after-bottom":{position:"after",align:"bottom"}};function Ip(e){return e==null?{}:typeof e=="string"?tT[e]:e}function bf(e,t,r){const n=x.useRef(!0),[o]=x.useState(()=>({value:e,callback:t,facade:{get current(){return o.value},set current(i){const a=o.value;if(a!==i){if(o.value=i,r&&n.current)return;o.callback(i,a)}}}}));return sn(()=>{n.current=!1},[]),o.callback=t,o.facade}function rT(e){let t;return()=>(t||(t=new Promise(r=>{Promise.resolve().then(()=>{t=void 0,r(e())})})),t)}function nT(e){const{arrow:t,middlewareData:r}=e;if(!r.arrow||!t)return;const{x:n,y:o}=r.arrow;Object.assign(t.style,{left:`${n}px`,top:`${o}px`})}function oT(e){var t,r,n;const{container:o,placement:i,middlewareData:a,strategy:l,lowPPI:s,coordinates:c,useTransform:u=!0}=e;if(!o)return;o.setAttribute(nz,i),o.removeAttribute(xv),a.intersectionObserver.intersecting&&o.setAttribute(xv,""),o.removeAttribute(Sv),!((t=a.hide)===null||t===void 0)&&t.escaped&&o.setAttribute(Sv,""),o.removeAttribute(_v),!((r=a.hide)===null||r===void 0)&&r.referenceHidden&&o.setAttribute(_v,"");const f=((n=o.ownerDocument.defaultView)===null||n===void 0?void 0:n.devicePixelRatio)||1,d=Math.round(c.x*f)/f,h=Math.round(c.y*f)/f;if(Object.assign(o.style,{position:l}),u){Object.assign(o.style,{transform:s?`translate(${d}px, ${h}px)`:`translate3d(${d}px, ${h}px, 0)`});return}Object.assign(o.style,{left:`${d}px`,top:`${h}px`})}const iT=e=>{switch(e){case"always":case!0:return{applyMaxWidth:!0,applyMaxHeight:!0};case"width-always":case"width":return{applyMaxWidth:!0,applyMaxHeight:!1};case"height-always":case"height":return{applyMaxWidth:!1,applyMaxHeight:!0};default:return!1}};function aT(){return{name:"coverTarget",fn:e=>{const{placement:t,rects:r,x:n,y:o}=e,i=Aw(t).side,a={x:n,y:o};switch(i){case"bottom":a.y-=r.reference.height;break;case"top":a.y+=r.reference.height;break;case"left":a.x+=r.reference.width;break;case"right":a.x-=r.reference.width;break}return a}}}function lT(e){const{hasScrollableElement:t,flipBoundary:r,container:n,fallbackPositions:o=[],isRtl:i}=e,a=o.reduce((l,s)=>{const{position:c,align:u}=Ip(s),f=Mw(u,c,i);return f&&l.push(f),l},[]);return Oz({...t&&{boundary:"clippingAncestors"},...r&&{altBoundary:!0,boundary:Dp(n,r)},fallbackStrategy:"bestFit",...a.length&&{fallbackPlacements:a}})}function sT(){return{name:"intersectionObserver",fn:async e=>{const t=e.rects.floating,r=await Gi(e,{altBoundary:!0}),n=r.top0,o=r.bottom0;return{data:{intersecting:n||o}}}}}const cT=e=>({name:"resetMaxSize",fn({middlewareData:t,elements:r}){var n;if(!((n=t.resetMaxSize)===null||n===void 0)&&n.maxSizeAlreadyReset)return{};const{applyMaxWidth:o,applyMaxHeight:i}=e;return o&&(r.floating.style.removeProperty("box-sizing"),r.floating.style.removeProperty("max-width"),r.floating.style.removeProperty("width")),i&&(r.floating.style.removeProperty("box-sizing"),r.floating.style.removeProperty("max-height"),r.floating.style.removeProperty("height")),{data:{maxSizeAlreadyReset:!0},reset:{rects:!0}}}});function uT(e,t){const{container:r,overflowBoundary:n}=t;return Lz({...n&&{altBoundary:!0,boundary:Dp(r,n)},apply({availableHeight:o,availableWidth:i,elements:a,rects:l}){const s=(f,d,h)=>{if(f&&(a.floating.style.setProperty("box-sizing","border-box"),a.floating.style.setProperty(`max-${d}`,`${h}px`),l.floating[d]>h)){a.floating.style.setProperty(d,`${h}px`);const p=d==="width"?"x":"y";a.floating.style.getPropertyValue(`overflow-${p}`)||a.floating.style.setProperty(`overflow-${p}`,"auto")}},{applyMaxWidth:c,applyMaxHeight:u}=e;s(c,"width",i),s(u,"height",o)}})}function fT(e){return!e||typeof e=="number"||typeof e=="object"?e:({rects:{floating:t,reference:r},placement:n})=>{const{position:o,alignment:i}=eT(n);return e({positionedRect:t,targetRect:r,position:o,alignment:i})}}function dT(e){const t=fT(e);return vz(t)}function hT(e){const{hasScrollableElement:t,disableTether:r,overflowBoundary:n,container:o,overflowBoundaryPadding:i,isRtl:a}=e;return Mz({...t&&{boundary:"clippingAncestors"},...r&&{crossAxis:r==="all",limiter:Hz({crossAxis:r!=="all",mainAxis:!1})},...i&&{padding:Kz(i,a)},...n&&{altBoundary:!0,boundary:Dp(o,n)}})}const Rv="--fui-match-target-size";function pT(){return{name:"matchTargetSize",fn:async e=>{const{rects:{reference:t,floating:r},elements:{floating:n},middlewareData:{matchTargetSize:{matchTargetSizeAttempt:o=!1}={}}}=e;if(t.width===r.width||o)return{};const{width:i}=t;return n.style.setProperty(Rv,`${i}px`),n.style.width||(n.style.width=`var(${Rv})`),{data:{matchTargetSizeAttempt:!0},reset:{rects:!0}}}}}function jv(e){const t=[];let r=e;for(;r;){const n=pu(r);if(e.ownerDocument.body===n){t.push(n);break}if(n.nodeName==="BODY"&&n!==e.ownerDocument.body)break;t.push(n),r=n}return t}function gT(e,t){return new e.ResizeObserver(t)}function mT(e){let t=!1;const{container:r,target:n,arrow:o,strategy:i,middleware:a,placement:l,useTransform:s=!0,disableUpdateOnResize:c=!1}=e,u=r.ownerDocument.defaultView;if(!n||!r||!u)return{updatePosition:()=>{},dispose:()=>{}};const f=c?null:gT(u,v=>{v.every(b=>b.contentRect.width>0&&b.contentRect.height>0)&&m()});let d=!0;const h=new Set;Object.assign(r.style,{position:"fixed",left:0,top:0,margin:0});const p=()=>{t||(d&&(jv(r).forEach(v=>h.add(v)),Ko(n)&&jv(n).forEach(v=>h.add(v)),h.forEach(v=>{v.addEventListener("scroll",m,{passive:!0})}),f==null||f.observe(r),Ko(n)&&(f==null||f.observe(n)),d=!1),Object.assign(r.style,{position:i}),Wz(n,r,{placement:l,middleware:a,strategy:i}).then(({x:v,y:g,middlewareData:b,placement:k})=>{t||(nT({arrow:o,middlewareData:b}),oT({container:r,middlewareData:b,placement:k,coordinates:{x:v,y:g},lowPPI:((u==null?void 0:u.devicePixelRatio)||1)<=1,strategy:i,useTransform:s}),r.dispatchEvent(new CustomEvent(Ad)))}).catch(v=>{}))},m=rT(()=>p()),y=()=>{t=!0,u&&(u.removeEventListener("scroll",m),u.removeEventListener("resize",m)),h.forEach(v=>{v.removeEventListener("scroll",m)}),h.clear(),f==null||f.disconnect()};return u&&(u.addEventListener("scroll",m,{passive:!0}),u.addEventListener("resize",m)),m(),{updatePosition:m,dispose:y}}function Ow(e){const t=x.useRef(null),r=x.useRef(null),n=x.useRef(null),o=x.useRef(null),i=x.useRef(null),{enabled:a=!0}=e,l=vT(e),s=x.useCallback(()=>{t.current&&t.current.dispose(),t.current=null;var p;const m=(p=n.current)!==null&&p!==void 0?p:r.current;a&&la()&&m&&o.current&&(t.current=mT({container:o.current,target:m,arrow:i.current,...l(o.current,i.current)}))},[a,l]),c=se(p=>{n.current=p,s()});x.useImperativeHandle(e.positioningRef,()=>({updatePosition:()=>{var p;return(p=t.current)===null||p===void 0?void 0:p.updatePosition()},setTarget:p=>{e.target,c(p)}}),[e.target,c]),sn(()=>{var p;c((p=e.target)!==null&&p!==void 0?p:null)},[e.target,c]),sn(()=>{s()},[s]);const u=bf(null,p=>{r.current!==p&&(r.current=p,s())}),f=se(()=>{var p;return(p=e.onPositioningEnd)===null||p===void 0?void 0:p.call(e)}),d=bf(null,p=>{if(o.current!==p){var m;(m=o.current)===null||m===void 0||m.removeEventListener(Ad,f),p==null||p.addEventListener(Ad,f),o.current=p,s()}}),h=bf(null,p=>{i.current!==p&&(i.current=p,s())});return{targetRef:u,containerRef:d,arrowRef:h}}function vT(e){const{align:t,arrowPadding:r,autoSize:n,coverTarget:o,flipBoundary:i,offset:a,overflowBoundary:l,pinned:s,position:c,unstable_disableTether:u,positionFixed:f,strategy:d,overflowBoundaryPadding:h,fallbackPositions:p,useTransform:m,matchTargetSize:y,disableUpdateOnResize:v=!1}=e,{dir:g,targetDocument:b}=ht(),k=g==="rtl",_=d??f?"fixed":"absolute",w=iT(n);return x.useCallback((S,E)=>{const N=Vz(S),C=[w&&cT(w),y&&pT(),a&&dT(a),o&&aT(),!s&&lT({container:S,flipBoundary:i,hasScrollableElement:N,isRtl:k,fallbackPositions:p}),hT({container:S,hasScrollableElement:N,overflowBoundary:l,disableTether:u,overflowBoundaryPadding:h,isRtl:k}),w&&uT(w,{container:S,overflowBoundary:l}),sT(),E&&qz({element:E,padding:r}),Nv({strategy:"referenceHidden"}),Nv({strategy:"escaped"}),!1].filter(Boolean);return{placement:Mw(t,c,k),middleware:C,strategy:_,useTransform:m,disableUpdateOnResize:v}},[t,r,w,o,u,i,k,a,l,s,c,_,h,p,m,y,b,v])}const Lw=e=>{const[t,r]=x.useState(e);return[t,o=>{if(o==null){r(void 0);return}let i;o instanceof MouseEvent?i=o:i=o.nativeEvent,i instanceof MouseEvent;const a=rz(i);r(a)}]},Ap=ua(void 0),bT={open:!1,setOpen:()=>null,toggleOpen:()=>null,triggerRef:{current:null},contentRef:{current:null},arrowRef:{current:null},openOnContext:!1,openOnHover:!1,size:"medium",trapFocus:!1,inline:!1};Ap.Provider;const Pt=e=>fa(Ap,(t=bT)=>e(t)),yT=(e,t)=>{const r=Pt(g=>g.contentRef),n=Pt(g=>g.openOnHover),o=Pt(g=>g.setOpen),i=Pt(g=>g.mountNode),a=Pt(g=>g.arrowRef),l=Pt(g=>g.size),s=Pt(g=>g.withArrow),c=Pt(g=>g.appearance),u=Pt(g=>g.trapFocus),f=Pt(g=>g.inertTrapFocus),d=Pt(g=>g.inline),{modalAttributes:h}=Ep({trapFocus:u,legacyTrapFocus:!f,alwaysFocusable:!u}),p={inline:d,appearance:c,withArrow:s,size:l,arrowRef:a,mountNode:i,components:{root:"div"},root:be(Re("div",{ref:nr(t,r),role:u?"dialog":"group","aria-modal":u?!0:void 0,...h,...e}),{elementType:"div"})},{onMouseEnter:m,onMouseLeave:y,onKeyDown:v}=p.root;return p.root.onMouseEnter=g=>{n&&o(g,!0),m==null||m(g)},p.root.onMouseLeave=g=>{n&&o(g,!1),y==null||y(g)},p.root.onKeyDown=g=>{var b;g.key==="Escape"&&(!((b=r.current)===null||b===void 0)&&b.contains(g.target))&&(g.preventDefault(),o(g,!1)),v==null||v(g)},p};function wT(e){return Ko(e)?{element:e}:typeof e=="object"?e===null?{element:null}:e:{}}var qw=()=>x.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner.current,kT=()=>!1,Fv=new WeakSet;function xT(e,t){const r=qw();x.useEffect(()=>{if(!Fv.has(r)){Fv.add(r),e();return}return e()},t)}var Dv=new WeakSet;function ST(e,t){return x.useMemo(()=>{const r=qw();return Dv.has(r)?e():(Dv.add(r),null)},t)}function _T(e,t){var r;const n=kT()&&!1,o=n?ST:x.useMemo,i=n?xT:x.useEffect,[a,l]=(r=o(()=>e(),t))!=null?r:[null,()=>null];return i(()=>l,t),a}const BT=K({root:{qhf8xq:"f1euv43f",Bhzewxz:"f15twtuk",oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["f1e31b4d","f1vgc2s3"],Bj3rh1h:"f494woh"}},{d:[".f1euv43f{position:absolute;}",".f15twtuk{top:0;}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".f494woh{z-index:1000000;}"]}),Iv=ll.useInsertionEffect,CT=e=>{const{targetDocument:t,dir:r}=ht(),n=GC(),o=uw(),i=BT(),a=OC(),l=G(a,i.root,e.className),s=n??(t==null?void 0:t.body),c=_T(()=>{if(s===void 0||e.disabled)return[null,()=>null];const u=s.ownerDocument.createElement("div");return s.appendChild(u),[u,()=>u.remove()]},[s]);return Iv?Iv(()=>{if(!c)return;const u=l.split(" ").filter(Boolean);return c.classList.add(...u),c.setAttribute("dir",r),o.current=c,()=>{c.classList.remove(...u),c.removeAttribute("dir")}},[l,r,c,o]):x.useMemo(()=>{c&&(c.className=l,c.setAttribute("dir",r),o.current=c)},[l,r,c,o]),c},PT=e=>{const{element:t,className:r}=wT(e.mountNode),n=x.useRef(null),o=CT({disabled:!!t,className:r}),i=t??o,a={children:e.children,mountNode:i,virtualParentRootRef:n};return x.useEffect(()=>{if(!i)return;const l=n.current,s=i.contains(l);if(l&&!s)return Lm(i,l),()=>{Lm(i,void 0)}},[n,i]),a};var Hw={exports:{}},br={};/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ww=x,vr=Dd;function q(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),qd=Object.prototype.hasOwnProperty,ET=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Av={},Mv={};function zT(e){return qd.call(Mv,e)?!0:qd.call(Av,e)?!1:ET.test(e)?Mv[e]=!0:(Av[e]=!0,!1)}function TT(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function NT(e,t,r,n){if(t===null||typeof t>"u"||TT(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Vt(e,t,r,n,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=o,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var Tt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Tt[e]=new Vt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Tt[t]=new Vt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Tt[e]=new Vt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Tt[e]=new Vt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Tt[e]=new Vt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Tt[e]=new Vt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Tt[e]=new Vt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Tt[e]=new Vt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Tt[e]=new Vt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Mp=/[\-:]([a-z])/g;function Op(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Mp,Op);Tt[t]=new Vt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Mp,Op);Tt[t]=new Vt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Mp,Op);Tt[t]=new Vt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Tt[e]=new Vt(e,1,!1,e.toLowerCase(),null,!1,!1)});Tt.xlinkHref=new Vt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Tt[e]=new Vt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Lp(e,t,r,n){var o=Tt.hasOwnProperty(t)?Tt[t]:null;(o!==null?o.type!==0:n||!(2l||o[a]!==i[l]){var s=` +`+o[a].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=a&&0<=l);break}}}finally{wf=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?qa(e):""}function RT(e){switch(e.tag){case 5:return qa(e.type);case 16:return qa("Lazy");case 13:return qa("Suspense");case 19:return qa("SuspenseList");case 0:case 2:case 15:return e=kf(e.type,!1),e;case 11:return e=kf(e.type.render,!1),e;case 1:return e=kf(e.type,!0),e;default:return""}}function $d(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ki:return"Fragment";case wi:return"Portal";case Hd:return"Profiler";case qp:return"StrictMode";case Wd:return"Suspense";case Ud:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Vw:return(e.displayName||"Context")+".Consumer";case $w:return(e._context.displayName||"Context")+".Provider";case Hp:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Wp:return t=e.displayName||null,t!==null?t:$d(e.type)||"Memo";case Gn:t=e._payload,e=e._init;try{return $d(e(t))}catch{}}return null}function jT(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return $d(t);case 8:return t===qp?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function fo(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Kw(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function FT(e){var t=Kw(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var o=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){n=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(a){n=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ks(e){e._valueTracker||(e._valueTracker=FT(e))}function Xw(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=Kw(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function wc(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Vd(e,t){var r=t.checked;return Ze({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Lv(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=fo(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Zw(e,t){t=t.checked,t!=null&&Lp(e,"checked",t,!1)}function Gd(e,t){Zw(e,t);var r=fo(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Kd(e,t.type,r):t.hasOwnProperty("defaultValue")&&Kd(e,t.type,fo(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function qv(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Kd(e,t,r){(t!=="number"||wc(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Ha=Array.isArray;function Ii(e,t,r,n){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=xs.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function vl(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Xa={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},DT=["Webkit","ms","Moz","O"];Object.keys(Xa).forEach(function(e){DT.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Xa[t]=Xa[e]})});function ek(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Xa.hasOwnProperty(e)&&Xa[e]?(""+t).trim():t+"px"}function tk(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,o=ek(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,o):e[r]=o}}var IT=Ze({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Qd(e,t){if(t){if(IT[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(q(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(q(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(q(61))}if(t.style!=null&&typeof t.style!="object")throw Error(q(62))}}function Jd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Yd=null;function Up(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var eh=null,Ai=null,Mi=null;function Uv(e){if(e=Zl(e)){if(typeof eh!="function")throw Error(q(280));var t=e.stateNode;t&&(t=yu(t),eh(e.stateNode,e.type,t))}}function rk(e){Ai?Mi?Mi.push(e):Mi=[e]:Ai=e}function nk(){if(Ai){var e=Ai,t=Mi;if(Mi=Ai=null,Uv(e),t)for(e=0;e>>=0,e===0?32:31-(GT(e)/KT|0)|0}var Ss=64,_s=4194304;function Wa(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function _c(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,o=e.suspendedLanes,i=e.pingedLanes,a=r&268435455;if(a!==0){var l=a&~o;l!==0?n=Wa(l):(i&=a,i!==0&&(n=Wa(i)))}else a=r&~o,a!==0?n=Wa(a):i!==0&&(n=Wa(i));if(n===0)return 0;if(t!==0&&t!==n&&!(t&o)&&(o=n&-n,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function Kl(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Wr(t),e[t]=r}function JT(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=Qa),Yv=" ",e1=!1;function Sk(e,t){switch(e){case"keyup":return CN.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function _k(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var xi=!1;function EN(e,t){switch(e){case"compositionend":return _k(t);case"keypress":return t.which!==32?null:(e1=!0,Yv);case"textInput":return e=t.data,e===Yv&&e1?null:e;default:return null}}function zN(e,t){if(xi)return e==="compositionend"||!Jp&&Sk(e,t)?(e=kk(),Ys=Xp=Qn=null,xi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=o1(r)}}function Ek(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ek(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function zk(){for(var e=window,t=wc();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=wc(e.document)}return t}function Yp(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function MN(e){var t=zk(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&Ek(r.ownerDocument.documentElement,r)){if(n!==null&&Yp(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=r.textContent.length,i=Math.min(n.start,o);n=n.end===void 0?i:Math.min(n.end,o),!e.extend&&i>n&&(o=n,n=i,i=o),o=i1(r,i);var a=i1(r,n);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>n?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Si=null,ah=null,Ya=null,lh=!1;function a1(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;lh||Si==null||Si!==wc(n)||(n=Si,"selectionStart"in n&&Yp(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Ya&&Sl(Ya,n)||(Ya=n,n=Pc(ah,"onSelect"),0Ci||(e.current=hh[Ci],hh[Ci]=null,Ci--)}function Oe(e,t){Ci++,hh[Ci]=e.current,e.current=t}var ho={},It=vo(ho),er=vo(!1),Zo=ho;function Zi(e,t){var r=e.type.contextTypes;if(!r)return ho;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in r)o[i]=t[i];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function tr(e){return e=e.childContextTypes,e!=null}function zc(){He(er),He(It)}function h1(e,t,r){if(It.current!==ho)throw Error(q(168));Oe(It,t),Oe(er,r)}function Mk(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var o in n)if(!(o in t))throw Error(q(108,jT(e)||"Unknown",o));return Ze({},r,n)}function Tc(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ho,Zo=It.current,Oe(It,e),Oe(er,er.current),!0}function p1(e,t,r){var n=e.stateNode;if(!n)throw Error(q(169));r?(e=Mk(e,t,Zo),n.__reactInternalMemoizedMergedChildContext=e,He(er),He(It),Oe(It,e)):He(er),Oe(er,r)}var bn=null,wu=!1,Df=!1;function Ok(e){bn===null?bn=[e]:bn.push(e)}function ZN(e){wu=!0,Ok(e)}function bo(){if(!Df&&bn!==null){Df=!0;var e=0,t=Ne;try{var r=bn;for(Ne=1;e>=a,o-=a,yn=1<<32-Wr(t)+o|r<E?(N=S,S=null):N=S.sibling;var C=d(v,S,b[E],k);if(C===null){S===null&&(S=N);break}e&&S&&C.alternate===null&&t(v,S),g=i(C,g,E),w===null?_=C:w.sibling=C,w=C,S=N}if(E===b.length)return r(v,S),Ue&&Po(v,E),_;if(S===null){for(;EE?(N=S,S=null):N=S.sibling;var L=d(v,S,C.value,k);if(L===null){S===null&&(S=N);break}e&&S&&L.alternate===null&&t(v,S),g=i(L,g,E),w===null?_=L:w.sibling=L,w=L,S=N}if(C.done)return r(v,S),Ue&&Po(v,E),_;if(S===null){for(;!C.done;E++,C=b.next())C=f(v,C.value,k),C!==null&&(g=i(C,g,E),w===null?_=C:w.sibling=C,w=C);return Ue&&Po(v,E),_}for(S=n(v,S);!C.done;E++,C=b.next())C=h(S,v,E,C.value,k),C!==null&&(e&&C.alternate!==null&&S.delete(C.key===null?E:C.key),g=i(C,g,E),w===null?_=C:w.sibling=C,w=C);return e&&S.forEach(function(R){return t(v,R)}),Ue&&Po(v,E),_}function y(v,g,b,k){if(typeof b=="object"&&b!==null&&b.type===ki&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case ws:e:{for(var _=b.key,w=g;w!==null;){if(w.key===_){if(_=b.type,_===ki){if(w.tag===7){r(v,w.sibling),g=o(w,b.props.children),g.return=v,v=g;break e}}else if(w.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===Gn&&k1(_)===w.type){r(v,w.sibling),g=o(w,b.props),g.ref=Ea(v,w,b),g.return=v,v=g;break e}r(v,w);break}else t(v,w);w=w.sibling}b.type===ki?(g=$o(b.props.children,v.mode,k,b.key),g.return=v,v=g):(k=lc(b.type,b.key,b.props,null,v.mode,k),k.ref=Ea(v,g,b),k.return=v,v=k)}return a(v);case wi:e:{for(w=b.key;g!==null;){if(g.key===w)if(g.tag===4&&g.stateNode.containerInfo===b.containerInfo&&g.stateNode.implementation===b.implementation){r(v,g.sibling),g=o(g,b.children||[]),g.return=v,v=g;break e}else{r(v,g);break}else t(v,g);g=g.sibling}g=Wf(b,v.mode,k),g.return=v,v=g}return a(v);case Gn:return w=b._init,y(v,g,w(b._payload),k)}if(Ha(b))return p(v,g,b,k);if(Sa(b))return m(v,g,b,k);Ns(v,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,g!==null&&g.tag===6?(r(v,g.sibling),g=o(g,b),g.return=v,v=g):(r(v,g),g=Hf(b,v.mode,k),g.return=v,v=g),a(v)):r(v,g)}return y}var Ji=Gk(!0),Kk=Gk(!1),Ql={},ln=vo(Ql),Pl=vo(Ql),El=vo(Ql);function Mo(e){if(e===Ql)throw Error(q(174));return e}function sg(e,t){switch(Oe(El,t),Oe(Pl,e),Oe(ln,Ql),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Zd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Zd(t,e)}He(ln),Oe(ln,t)}function Yi(){He(ln),He(Pl),He(El)}function Xk(e){Mo(El.current);var t=Mo(ln.current),r=Zd(t,e.type);t!==r&&(Oe(Pl,e),Oe(ln,r))}function cg(e){Pl.current===e&&(He(ln),He(Pl))}var $e=vo(0);function Ic(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var If=[];function ug(){for(var e=0;er?r:4,e(!0);var n=Af.transition;Af.transition={};try{e(!1),t()}finally{Ne=r,Af.transition=n}}function fx(){return jr().memoizedState}function eR(e,t,r){var n=ao(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},dx(e))hx(t,r);else if(r=Wk(e,t,r,n),r!==null){var o=Ut();Ur(r,e,n,o),px(r,t,n)}}function tR(e,t,r){var n=ao(e),o={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(dx(e))hx(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,l=i(a,r);if(o.hasEagerState=!0,o.eagerState=l,Gr(l,a)){var s=t.interleaved;s===null?(o.next=o,ag(t)):(o.next=s.next,s.next=o),t.interleaved=o;return}}catch{}finally{}r=Wk(e,t,o,n),r!==null&&(o=Ut(),Ur(r,e,n,o),px(r,t,n))}}function dx(e){var t=e.alternate;return e===Xe||t!==null&&t===Xe}function hx(e,t){el=Ac=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function px(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Vp(e,r)}}var Mc={readContext:Rr,useCallback:Nt,useContext:Nt,useEffect:Nt,useImperativeHandle:Nt,useInsertionEffect:Nt,useLayoutEffect:Nt,useMemo:Nt,useReducer:Nt,useRef:Nt,useState:Nt,useDebugValue:Nt,useDeferredValue:Nt,useTransition:Nt,useMutableSource:Nt,useSyncExternalStore:Nt,useId:Nt,unstable_isNewReconciler:!1},rR={readContext:Rr,useCallback:function(e,t){return Yr().memoizedState=[e,t===void 0?null:t],e},useContext:Rr,useEffect:S1,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,nc(4194308,4,ax.bind(null,t,e),r)},useLayoutEffect:function(e,t){return nc(4194308,4,e,t)},useInsertionEffect:function(e,t){return nc(4,2,e,t)},useMemo:function(e,t){var r=Yr();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=Yr();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=eR.bind(null,Xe,e),[n.memoizedState,e]},useRef:function(e){var t=Yr();return e={current:e},t.memoizedState=e},useState:x1,useDebugValue:gg,useDeferredValue:function(e){return Yr().memoizedState=e},useTransition:function(){var e=x1(!1),t=e[0];return e=YN.bind(null,e[1]),Yr().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Xe,o=Yr();if(Ue){if(r===void 0)throw Error(q(407));r=r()}else{if(r=t(),xt===null)throw Error(q(349));Jo&30||Jk(n,t,r)}o.memoizedState=r;var i={value:r,getSnapshot:t};return o.queue=i,S1(ex.bind(null,n,i,e),[e]),n.flags|=2048,Nl(9,Yk.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=Yr(),t=xt.identifierPrefix;if(Ue){var r=wn,n=yn;r=(n&~(1<<32-Wr(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=zl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=a.createElement(r,{is:n.is}):(e=a.createElement(r),r==="select"&&(a=e,n.multiple?a.multiple=!0:n.size&&(a.size=n.size))):e=a.createElementNS(e,r),e[rn]=t,e[Cl]=n,Sx(e,t,!1,!1),t.stateNode=e;e:{switch(a=Jd(r,n),r){case"dialog":qe("cancel",e),qe("close",e),o=n;break;case"iframe":case"object":case"embed":qe("load",e),o=n;break;case"video":case"audio":for(o=0;ota&&(t.flags|=128,n=!0,za(i,!1),t.lanes=4194304)}else{if(!n)if(e=Ic(a),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),za(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Ue)return Rt(t),null}else 2*lt()-i.renderingStartTime>ta&&r!==1073741824&&(t.flags|=128,n=!0,za(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(r=i.last,r!==null?r.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=lt(),t.sibling=null,r=$e.current,Oe($e,n?r&1|2:r&1),t):(Rt(t),null);case 22:case 23:return kg(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?sr&1073741824&&(Rt(t),t.subtreeFlags&6&&(t.flags|=8192)):Rt(t),null;case 24:return null;case 25:return null}throw Error(q(156,t.tag))}function uR(e,t){switch(tg(t),t.tag){case 1:return tr(t.type)&&zc(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yi(),He(er),He(It),ug(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return cg(t),null;case 13:if(He($e),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(q(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return He($e),null;case 4:return Yi(),null;case 10:return ig(t.type._context),null;case 22:case 23:return kg(),null;case 24:return null;default:return null}}var js=!1,jt=!1,fR=typeof WeakSet=="function"?WeakSet:Set,X=null;function Ti(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){nt(e,t,n)}else r.current=null}function Bh(e,t,r){try{r()}catch(n){nt(e,t,n)}}var R1=!1;function dR(e,t){if(sh=Bc,e=zk(),Yp(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var a=0,l=-1,s=-1,c=0,u=0,f=e,d=null;t:for(;;){for(var h;f!==r||o!==0&&f.nodeType!==3||(l=a+o),f!==i||n!==0&&f.nodeType!==3||(s=a+n),f.nodeType===3&&(a+=f.nodeValue.length),(h=f.firstChild)!==null;)d=f,f=h;for(;;){if(f===e)break t;if(d===r&&++c===o&&(l=a),d===i&&++u===n&&(s=a),(h=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=h}r=l===-1||s===-1?null:{start:l,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(ch={focusedElem:e,selectionRange:r},Bc=!1,X=t;X!==null;)if(t=X,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,X=e;else for(;X!==null;){t=X;try{var p=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var m=p.memoizedProps,y=p.memoizedState,v=t.stateNode,g=v.getSnapshotBeforeUpdate(t.elementType===t.type?m:Mr(t.type,m),y);v.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(q(163))}}catch(k){nt(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,X=e;break}X=t.return}return p=R1,R1=!1,p}function tl(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&Bh(t,r,i)}o=o.next}while(o!==n)}}function Su(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function Ch(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function Cx(e){var t=e.alternate;t!==null&&(e.alternate=null,Cx(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[rn],delete t[Cl],delete t[dh],delete t[KN],delete t[XN])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Px(e){return e.tag===5||e.tag===3||e.tag===4}function j1(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Px(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ph(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Ec));else if(n!==4&&(e=e.child,e!==null))for(Ph(e,t,r),e=e.sibling;e!==null;)Ph(e,t,r),e=e.sibling}function Eh(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Eh(e,t,r),e=e.sibling;e!==null;)Eh(e,t,r),e=e.sibling}var Ct=null,Or=!1;function Wn(e,t,r){for(r=r.child;r!==null;)Ex(e,t,r),r=r.sibling}function Ex(e,t,r){if(an&&typeof an.onCommitFiberUnmount=="function")try{an.onCommitFiberUnmount(gu,r)}catch{}switch(r.tag){case 5:jt||Ti(r,t);case 6:var n=Ct,o=Or;Ct=null,Wn(e,t,r),Ct=n,Or=o,Ct!==null&&(Or?(e=Ct,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Ct.removeChild(r.stateNode));break;case 18:Ct!==null&&(Or?(e=Ct,r=r.stateNode,e.nodeType===8?Ff(e.parentNode,r):e.nodeType===1&&Ff(e,r),kl(e)):Ff(Ct,r.stateNode));break;case 4:n=Ct,o=Or,Ct=r.stateNode.containerInfo,Or=!0,Wn(e,t,r),Ct=n,Or=o;break;case 0:case 11:case 14:case 15:if(!jt&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){o=n=n.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&Bh(r,t,a),o=o.next}while(o!==n)}Wn(e,t,r);break;case 1:if(!jt&&(Ti(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(l){nt(r,t,l)}Wn(e,t,r);break;case 21:Wn(e,t,r);break;case 22:r.mode&1?(jt=(n=jt)||r.memoizedState!==null,Wn(e,t,r),jt=n):Wn(e,t,r);break;default:Wn(e,t,r)}}function F1(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new fR),t.forEach(function(n){var o=kR.bind(null,e,n);r.has(n)||(r.add(n),n.then(o,o))})}}function Dr(e,t){var r=t.deletions;if(r!==null)for(var n=0;no&&(o=a),n&=~i}if(n=o,n=lt()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*pR(n/1960))-n,10e?16:e,Jn===null)var n=!1;else{if(e=Jn,Jn=null,qc=0,Ee&6)throw Error(q(331));var o=Ee;for(Ee|=4,X=e.current;X!==null;){var i=X,a=i.child;if(X.flags&16){var l=i.deletions;if(l!==null){for(var s=0;slt()-yg?Uo(e,0):bg|=r),rr(e,t)}function Ix(e,t){t===0&&(e.mode&1?(t=_s,_s<<=1,!(_s&130023424)&&(_s=4194304)):t=1);var r=Ut();e=Tn(e,t),e!==null&&(Kl(e,t,r),rr(e,r))}function wR(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Ix(e,r)}function kR(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(q(314))}n!==null&&n.delete(t),Ix(e,r)}var Ax;Ax=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||er.current)Yt=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Yt=!1,sR(e,t,r);Yt=!!(e.flags&131072)}else Yt=!1,Ue&&t.flags&1048576&&Lk(t,Rc,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;oc(e,t),e=t.pendingProps;var o=Zi(t,It.current);Li(t,r),o=dg(null,t,n,e,o,r);var i=hg();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,tr(n)?(i=!0,Tc(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,lg(t),o.updater=ku,t.stateNode=o,o._reactInternals=t,bh(t,n,e,r),t=kh(null,t,n,!0,i,r)):(t.tag=0,Ue&&i&&eg(t),Lt(null,t,o,r),t=t.child),t;case 16:n=t.elementType;e:{switch(oc(e,t),e=t.pendingProps,o=n._init,n=o(n._payload),t.type=n,o=t.tag=SR(n),e=Mr(n,e),o){case 0:t=wh(null,t,n,e,r);break e;case 1:t=z1(null,t,n,e,r);break e;case 11:t=P1(null,t,n,e,r);break e;case 14:t=E1(null,t,n,Mr(n.type,e),r);break e}throw Error(q(306,n,""))}return t;case 0:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:Mr(n,o),wh(e,t,n,o,r);case 1:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:Mr(n,o),z1(e,t,n,o,r);case 3:e:{if(wx(t),e===null)throw Error(q(387));n=t.pendingProps,i=t.memoizedState,o=i.element,Uk(e,t),Dc(t,n,null,r);var a=t.memoizedState;if(n=a.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=ea(Error(q(423)),t),t=T1(e,t,n,r,o);break e}else if(n!==o){o=ea(Error(q(424)),t),t=T1(e,t,n,r,o);break e}else for(ur=no(t.stateNode.containerInfo.firstChild),pr=t,Ue=!0,qr=null,r=Kk(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Qi(),n===o){t=Nn(e,t,r);break e}Lt(e,t,n,r)}t=t.child}return t;case 5:return Xk(t),e===null&&gh(t),n=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,uh(n,o)?a=null:i!==null&&uh(n,i)&&(t.flags|=32),yx(e,t),Lt(e,t,a,r),t.child;case 6:return e===null&&gh(t),null;case 13:return kx(e,t,r);case 4:return sg(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Ji(t,null,n,r):Lt(e,t,n,r),t.child;case 11:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:Mr(n,o),P1(e,t,n,o,r);case 7:return Lt(e,t,t.pendingProps,r),t.child;case 8:return Lt(e,t,t.pendingProps.children,r),t.child;case 12:return Lt(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,Oe(jc,n._currentValue),n._currentValue=a,i!==null)if(Gr(i.value,a)){if(i.children===o.children&&!er.current){t=Nn(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){a=i.child;for(var s=l.firstContext;s!==null;){if(s.context===n){if(i.tag===1){s=xn(-1,r&-r),s.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?s.next=s:(s.next=u.next,u.next=s),c.pending=s}}i.lanes|=r,s=i.alternate,s!==null&&(s.lanes|=r),mh(i.return,r,t),l.lanes|=r;break}s=s.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(q(341));a.lanes|=r,l=a.alternate,l!==null&&(l.lanes|=r),mh(a,r,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Lt(e,t,o.children,r),t=t.child}return t;case 9:return o=t.type,n=t.pendingProps.children,Li(t,r),o=Rr(o),n=n(o),t.flags|=1,Lt(e,t,n,r),t.child;case 14:return n=t.type,o=Mr(n,t.pendingProps),o=Mr(n.type,o),E1(e,t,n,o,r);case 15:return vx(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:Mr(n,o),oc(e,t),t.tag=1,tr(n)?(e=!0,Tc(t)):e=!1,Li(t,r),Vk(t,n,o),bh(t,n,o,r),kh(null,t,n,!0,e,r);case 19:return xx(e,t,r);case 22:return bx(e,t,r)}throw Error(q(156,t.tag))};function Mx(e,t){return uk(e,t)}function xR(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pr(e,t,r,n){return new xR(e,t,r,n)}function Sg(e){return e=e.prototype,!(!e||!e.isReactComponent)}function SR(e){if(typeof e=="function")return Sg(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Hp)return 11;if(e===Wp)return 14}return 2}function lo(e,t){var r=e.alternate;return r===null?(r=Pr(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function lc(e,t,r,n,o,i){var a=2;if(n=e,typeof e=="function")Sg(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case ki:return $o(r.children,o,i,t);case qp:a=8,o|=8;break;case Hd:return e=Pr(12,r,t,o|2),e.elementType=Hd,e.lanes=i,e;case Wd:return e=Pr(13,r,t,o),e.elementType=Wd,e.lanes=i,e;case Ud:return e=Pr(19,r,t,o),e.elementType=Ud,e.lanes=i,e;case Gw:return Bu(r,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case $w:a=10;break e;case Vw:a=9;break e;case Hp:a=11;break e;case Wp:a=14;break e;case Gn:a=16,n=null;break e}throw Error(q(130,e==null?e:typeof e,""))}return t=Pr(a,r,t,o),t.elementType=e,t.type=n,t.lanes=i,t}function $o(e,t,r,n){return e=Pr(7,e,n,t),e.lanes=r,e}function Bu(e,t,r,n){return e=Pr(22,e,n,t),e.elementType=Gw,e.lanes=r,e.stateNode={isHidden:!1},e}function Hf(e,t,r){return e=Pr(6,e,null,t),e.lanes=r,e}function Wf(e,t,r){return t=Pr(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function _R(e,t,r,n,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Sf(0),this.expirationTimes=Sf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Sf(0),this.identifierPrefix=n,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function _g(e,t,r,n,o,i,a,l,s){return e=new _R(e,t,r,l,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Pr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},lg(i),e}function BR(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Hx)}catch(e){console.error(e)}}Hx(),Hw.exports=br;var Eg=Hw.exports;const Is=Yc(Eg),TR=e=>x.createElement("span",{hidden:!0,ref:e.virtualParentRootRef},e.mountNode&&Eg.createPortal(e.children,e.mountNode)),Tu=e=>{const t=PT(e);return TR(t)};Tu.displayName="Portal";const NR=e=>{const t=At(e.root,{children:[e.withArrow&&U("div",{ref:e.arrowRef,className:e.arrowClassName}),e.root.children]});return e.inline?t:U(Tu,{mountNode:e.mountNode,children:t})},RR={root:"fui-PopoverSurface"},jR={small:6,medium:8,large:8},FR=K({root:{sj55zd:"f19n0e5",De3pzq:"fxugw4r",E5pizo:"f1hg901r",Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B93otf3:"f18k4bn6",vin17d:"fo1kyvf",Ezkn3b:"fetxo7e",nyiy2g:"f8x1vz1",swvrvq:"f8g0anz",Bkovbt3:"fezwn9i",hgjdhn:"fz5efge",fsy9dk:"f1ydixl4",B3ogreh:"f8dgqj5",jv49x5:"fnyfnr8",Bk7o48c:"fgw77r4",Bv12yb3:"ftje0s4",z0t1cu:"fi19xcv",Bks05zx:"f1mzajhk",Bvtglag:"fjp4h9y"},inline:{Bj3rh1h:"f19g0ac"},inverted:{De3pzq:"fg3r6xk",sj55zd:"fonrgv7"},brand:{De3pzq:"ffp7eso",sj55zd:"f1phragk"},smallPadding:{z8tnut:"f1kcqot9",z189sj:["f11qrl6u","fjlbh76"],Byoj8tv:"fpe6lb7",uwmqm3:["fjlbh76","f11qrl6u"]},mediumPadding:{z8tnut:"fqag9an",z189sj:["f1gbmcue","f1rh9g5y"],Byoj8tv:"fp67ikv",uwmqm3:["f1rh9g5y","f1gbmcue"]},largePadding:{z8tnut:"fc7z3ec",z189sj:["fat0sn4","fekwl8i"],Byoj8tv:"fe2my4m",uwmqm3:["fekwl8i","fat0sn4"]},smallArrow:{a9b677:"f1ekdpwm",Bqenvij:"f83vc9z"},mediumLargeArrow:{a9b677:"f1kmc0fn",Bqenvij:"fb6lvc5"},arrow:{qhf8xq:"f1euv43f",De3pzq:"f1u2r49w",Bcdw1i0:"fd7fpy0",Bj3rh1h:"f1bsuimh",Ftih45:"f1wl9k8s",B1puzpu:"f1wkw4r9",Brfgrao:"f1j7ml58",Bcvre1j:"fyl8oag",Ccq8qp:"frdoeuz",Baz25je:"fb81m9q",cmx5o7:"f1ljr5q2",B4f6apu:"fyfemzf",m598lv:"focyt6c",Bk5zm6e:"fnhxbxj",y0oebl:"fdw6hkg",qa3bma:"f11yjt3y",Bqjgrrk:"f1172wan",Budzafs:["f9e5op9","f112wvtl"],Hv9wc6:"f16cagkn",hl6cv3:"f1773hnp",c8svkw:"fw7o64x",yayu3t:"f1v7783n",nr3p0k:"f1f0d6v",rhl9o9:"fh2hsk5",wiz9v7:"f1gj3y7g",B6q6orb:"f11yvu4",ndpsmx:"f17lejdj"}},{d:[".f19n0e5{color:var(--colorNeutralForeground1);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1hg901r{box-shadow:var(--shadow16);}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f18k4bn6{animation-composition:accumulate;}",".fo1kyvf{animation-duration:var(--durationSlower);}",".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",".f8x1vz1{--fui-positioning-slide-distance-x:0px;}",".f8g0anz{--fui-positioning-slide-distance-y:10px;}",".fezwn9i[data-popper-placement^=right]{--fui-positioning-slide-distance-x:-10px;}",".fz5efge[data-popper-placement^=right]{--fui-positioning-slide-distance-y:0px;}",".f1ydixl4[data-popper-placement^=bottom]{--fui-positioning-slide-distance-x:0px;}",".f8dgqj5[data-popper-placement^=bottom]{--fui-positioning-slide-distance-y:-10px;}",".fnyfnr8[data-popper-placement^=left]{--fui-positioning-slide-distance-x:10px;}",".fgw77r4[data-popper-placement^=left]{--fui-positioning-slide-distance-y:0px;}",".ftje0s4{animation-name:f5j8bii,f79suad;}",".f19g0ac{z-index:1;}",".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}",".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".f1kcqot9{padding-top:12px;}",".f11qrl6u{padding-right:12px;}",".fjlbh76{padding-left:12px;}",".fpe6lb7{padding-bottom:12px;}",".fqag9an{padding-top:16px;}",".f1gbmcue{padding-right:16px;}",".f1rh9g5y{padding-left:16px;}",".fp67ikv{padding-bottom:16px;}",".fc7z3ec{padding-top:20px;}",".fat0sn4{padding-right:20px;}",".fekwl8i{padding-left:20px;}",".fe2my4m{padding-bottom:20px;}",".f1ekdpwm{width:8.484px;}",".f83vc9z{height:8.484px;}",".f1kmc0fn{width:11.312px;}",".fb6lvc5{height:11.312px;}",".f1euv43f{position:absolute;}",".f1u2r49w{background-color:inherit;}",".fd7fpy0{visibility:hidden;}",".f1bsuimh{z-index:-1;}",'.f1wl9k8s::before{content:"";}',".f1wkw4r9::before{visibility:visible;}",".f1j7ml58::before{position:absolute;}",".fyl8oag::before{box-sizing:border-box;}",".frdoeuz::before{width:inherit;}",".fb81m9q::before{height:inherit;}",".f1ljr5q2::before{background-color:inherit;}",".fyfemzf::before{border-right-width:1px;}",".focyt6c::before{border-right-style:solid;}",".fnhxbxj::before{border-right-color:var(--colorTransparentStroke);}",".fdw6hkg::before{border-bottom-width:1px;}",".f11yjt3y::before{border-bottom-style:solid;}",".f1172wan::before{border-bottom-color:var(--colorTransparentStroke);}",".f9e5op9::before{border-bottom-right-radius:var(--borderRadiusSmall);}",".f112wvtl::before{border-bottom-left-radius:var(--borderRadiusSmall);}",".f16cagkn::before{transform:rotate(var(--fui-positioning-angle)) translate(0, 50%) rotate(45deg);}",'[data-popper-placement^="top"] .f1773hnp{bottom:-1px;}','[data-popper-placement^="top"] .fw7o64x{--fui-positioning-angle:0;}','[data-popper-placement^="right"] .f1v7783n{left:-1px;}','[data-popper-placement^="right"] .f1f0d6v{--fui-positioning-angle:90deg;}','[data-popper-placement^="bottom"] .fh2hsk5{top:-1px;}','[data-popper-placement^="bottom"] .f1gj3y7g{--fui-positioning-angle:180deg;}','[data-popper-placement^="left"] .f11yvu4{right:-1px;}','[data-popper-placement^="left"] .f17lejdj{--fui-positioning-angle:270deg;}'],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f79suad{from{transform:translate(var(--fui-positioning-slide-distance-x), var(--fui-positioning-slide-distance-y));}}"],m:[["@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",{m:"(prefers-reduced-motion)"}],["@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",{m:"(prefers-reduced-motion)"}]],t:["@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"]}),DR=e=>{const t=FR();return e.root.className=G(RR.root,t.root,e.inline&&t.inline,e.size==="small"&&t.smallPadding,e.size==="medium"&&t.mediumPadding,e.size==="large"&&t.largePadding,e.appearance==="inverted"&&t.inverted,e.appearance==="brand"&&t.brand,e.root.className),e.arrowClassName=G(t.arrow,e.size==="small"?t.smallArrow:t.mediumLargeArrow),e},Wx=x.forwardRef((e,t)=>{const r=yT(e,t);return DR(r),De("usePopoverSurfaceStyles_unstable")(r),NR(r)});Wx.displayName="PopoverSurface";const IR=4,AR=e=>{const[t,r]=Lw(),n={size:"medium",contextTarget:t,setContextTarget:r,...e},o=x.Children.toArray(e.children);let i,a;o.length===2?(i=o[0],a=o[1]):o.length===1&&(a=o[0]);const[l,s]=MR(n),c=x.useRef(0),u=se((b,k)=>{if(clearTimeout(c.current),!(b instanceof Event)&&b.persist&&b.persist(),b.type==="mouseleave"){var _;c.current=setTimeout(()=>{s(b,k)},(_=e.mouseLeaveDelay)!==null&&_!==void 0?_:500)}else s(b,k)});x.useEffect(()=>()=>{clearTimeout(c.current)},[]);const f=x.useCallback(b=>{u(b,!l)},[u,l]),d=OR(n),{targetDocument:h}=ht();var p;Ry({contains:ul,element:h,callback:b=>u(b,!1),refs:[d.triggerRef,d.contentRef],disabled:!l,disabledFocusOnIframe:!(!((p=e.closeOnIframeFocus)!==null&&p!==void 0)||p)});const m=n.openOnContext||n.closeOnScroll;jy({contains:ul,element:h,callback:b=>u(b,!1),refs:[d.triggerRef,d.contentRef],disabled:!l||!m});const{findFirstFocusable:y}=oi();x.useEffect(()=>{if(!e.unstable_disableAutoFocus&&l&&d.contentRef.current){var b;const k=(b=d.contentRef.current.getAttribute("tabIndex"))!==null&&b!==void 0?b:void 0,_=isNaN(k)?y(d.contentRef.current):d.contentRef.current;_==null||_.focus()}},[y,l,d.contentRef,e.unstable_disableAutoFocus]);var v,g;return{...n,...d,inertTrapFocus:(v=e.inertTrapFocus)!==null&&v!==void 0?v:e.legacyTrapFocus===void 0?!1:!e.legacyTrapFocus,popoverTrigger:i,popoverSurface:a,open:l,setOpen:u,toggleOpen:f,setContextTarget:r,contextTarget:t,inline:(g=e.inline)!==null&&g!==void 0?g:!1}};function MR(e){const t=se((a,l)=>{var s;return(s=e.onOpenChange)===null||s===void 0?void 0:s.call(e,a,l)}),[r,n]=Rn({state:e.open,defaultState:e.defaultOpen,initialState:!1});e.open=r!==void 0?r:e.open;const o=e.setContextTarget,i=x.useCallback((a,l)=>{l&&a.type==="contextmenu"&&o(a),l||o(void 0),n(l),t==null||t(a,{open:l})},[n,t,o]);return[r,i]}function OR(e){const t={position:"above",align:"center",arrowPadding:2*IR,target:e.openOnContext?e.contextTarget:void 0,...Ip(e.positioning)};t.coverTarget&&(e.withArrow=!1),e.withArrow&&(t.offset=Gz(t.offset,jR[e.size]));const{targetRef:r,containerRef:n,arrowRef:o}=Ow(t);return{triggerRef:r,contentRef:n,arrowRef:o}}const LR=e=>{const{appearance:t,arrowRef:r,contentRef:n,inline:o,mountNode:i,open:a,openOnContext:l,openOnHover:s,setOpen:c,size:u,toggleOpen:f,trapFocus:d,triggerRef:h,withArrow:p,inertTrapFocus:m}=e;return x.createElement(Ap.Provider,{value:{appearance:t,arrowRef:r,contentRef:n,inline:o,mountNode:i,open:a,openOnContext:l,openOnHover:s,setOpen:c,toggleOpen:f,triggerRef:h,size:u,trapFocus:d,inertTrapFocus:m,withArrow:p}},e.popoverTrigger,e.open&&e.popoverSurface)},Ux=e=>{const t=AR(e);return LR(t)};Ux.displayName="Popover";const qR=e=>{const{children:t,disableButtonEnhancement:r=!1}=e,n=wp(t),o=Pt(b=>b.open),i=Pt(b=>b.setOpen),a=Pt(b=>b.toggleOpen),l=Pt(b=>b.triggerRef),s=Pt(b=>b.openOnHover),c=Pt(b=>b.openOnContext),{triggerAttributes:u}=Ep(),f=b=>{c&&(b.preventDefault(),i(b,!0))},d=b=>{c||a(b)},h=b=>{b.key===fu&&o&&!b.isDefaultPrevented()&&(i(b,!1),b.preventDefault())},p=b=>{s&&i(b,!0)},m=b=>{s&&i(b,!1)},y={...u,"aria-expanded":`${o}`,...n==null?void 0:n.props,onMouseEnter:se(Et(n==null?void 0:n.props.onMouseEnter,p)),onMouseLeave:se(Et(n==null?void 0:n.props.onMouseLeave,m)),onContextMenu:se(Et(n==null?void 0:n.props.onContextMenu,f)),ref:nr(l,n==null?void 0:n.ref)},v={...y,onClick:se(Et(n==null?void 0:n.props.onClick,d)),onKeyDown:se(Et(n==null?void 0:n.props.onKeyDown,h))},g=Vi((n==null?void 0:n.type)==="button"||(n==null?void 0:n.type)==="a"?n.type:"div",v);return{children:Dy(e.children,Vi((n==null?void 0:n.type)==="button"||(n==null?void 0:n.type)==="a"?n.type:"div",c?y:r?v:g))}},HR=e=>e.children,zg=e=>{const t=qR(e);return HR(t)};zg.displayName="PopoverTrigger";zg.isFluentTriggerComponent=!0;const WR=e=>{const{iconOnly:t,iconPosition:r}=e;return At(e.root,{children:[r!=="after"&&e.icon&&U(e.icon,{}),!t&&e.root.children,r==="after"&&e.icon&&U(e.icon,{})]})},$x=x.createContext(void 0),UR={};$x.Provider;const $R=()=>{var e;return(e=x.useContext($x))!==null&&e!==void 0?e:UR},Vx=(e,t)=>{const{size:r}=$R(),{appearance:n="secondary",as:o="button",disabled:i=!1,disabledFocusable:a=!1,icon:l,iconPosition:s="before",shape:c="rounded",size:u=r??"medium"}=e,f=Te(l,{elementType:"span"});return{appearance:n,disabled:i,disabledFocusable:a,iconPosition:s,shape:c,size:u,iconOnly:!!(f!=null&&f.children&&!e.children),components:{root:"button",icon:"span"},root:be(Re(o,Vi(e.as,e)),{elementType:"button",defaultProps:{ref:t,type:"button"}}),icon:f}},H1={root:"fui-Button",icon:"fui-Button__icon"},VR=Qe("r1alrhcs",null,{r:[".r1alrhcs{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration-line:none;vertical-align:middle;margin:0;overflow:hidden;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);font-family:var(--fontFamilyBase);outline-style:none;padding:5px var(--spacingHorizontalM);min-width:96px;border-radius:var(--borderRadiusMedium);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);transition-duration:var(--durationFaster);transition-property:background,border,color;transition-timing-function:var(--curveEasyEase);}",".r1alrhcs:hover{background-color:var(--colorNeutralBackground1Hover);border-color:var(--colorNeutralStroke1Hover);color:var(--colorNeutralForeground1Hover);cursor:pointer;}",".r1alrhcs:hover:active{background-color:var(--colorNeutralBackground1Pressed);border-color:var(--colorNeutralStroke1Pressed);color:var(--colorNeutralForeground1Pressed);outline-style:none;}",".r1alrhcs[data-fui-focus-visible]{border-color:var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);border-width:1px;outline:var(--strokeWidthThick) solid var(--colorTransparentStroke);box-shadow:0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;z-index:1;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1alrhcs{transition-duration:0.01ms;}}","@media (forced-colors: active){.r1alrhcs:focus{border-color:ButtonText;}.r1alrhcs:hover{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}.r1alrhcs:hover:active{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}}","@supports (-moz-appearance:button){.r1alrhcs[data-fui-focus-visible]{box-shadow:0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),GR=Qe("rywnvv2",null,[".rywnvv2{align-items:center;display:inline-flex;justify-content:center;font-size:20px;height:20px;width:20px;--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}"]),KR=K({outline:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",iro3zm:"fwiml72"},primary:{De3pzq:"ffp7eso",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"f1phragk",Jwef8y:"f15wkkf3",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f1rq72xc",iro3zm:"fnp9lpt",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1d6v5y2",Bsw6fvg:"f1rirnrt",Bjwas2f:"f1uu00uk",Bn1d65q:["fkvaka8","f9a0qzu"],Bxeuatn:"f1ux7til",n51gp8:["f9a0qzu","fkvaka8"],Bbusuzp:"f1lkg8j3",ycbfsm:"fkc42ay",Bqrx1nm:"fq7113v",pgvf35:"ff1wgvm",Bh7lczh:["fiob0tu","f1x4h75k"],dpv3f4:"f1j6scgf",Bpnjhaq:["f1x4h75k","fiob0tu"],ze5xyy:"f4xjyn1",g2kj27:"fbgcvur",Bf756sw:"f1ks1yx8",Bow2dr7:["f1o6qegi","fmxjhhp"],Bvhedfk:"fcnxywj",Gye4lf:["fmxjhhp","f1o6qegi"],pc6evw:"f9ddjv3"},secondary:{},subtle:{De3pzq:"fhovq9v",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"f1t94bn6",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"fnwyq0v",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",Bbdnnc7:"fy5bs14",iro3zm:"fsv2rcd",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1omzyqd",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",x3br3k:"fj8yq94",ze5xyy:"f4xjyn1",Bx3q9su:"f1et0tmh",pc6evw:"f9ddjv3",xd2cci:"f1wi8ngl"},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"fjxutwb",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f139oj5f",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",iro3zm:"fwiml72",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"],B2d53fq:"f1fg1p5m",em6i61:"f1dfjoow",vm6p8p:"f1j98vj9",Bqrx1nm:"f1tme0vf",ze5xyy:"f4xjyn1",g2kj27:"f18onu3q",pc6evw:"f9ddjv3"},circular:{Bbmb7ep:["f8fbkgy","f1nfllo7"],Beyfa6y:["f1nfllo7","f8fbkgy"],B7oj6ja:["f1djnp8u","f1s8kh49"],Btl43ni:["f1s8kh49","f1djnp8u"]},rounded:{},square:{Bbmb7ep:["fzi6hpg","fyowgf4"],Beyfa6y:["fyowgf4","fzi6hpg"],B7oj6ja:["f3fg2lr","f13av6d4"],Btl43ni:["f13av6d4","f3fg2lr"]},small:{Bf4jedk:"fh7ncta",z8tnut:"f1khb0e9",z189sj:["f1vdfbxk","f1f5gg8d"],Byoj8tv:"f1jnq6q7",uwmqm3:["f1f5gg8d","f1vdfbxk"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},smallWithIcon:{Byoj8tv:"f1brlhvm",z8tnut:"f1sl3k7w"},medium:{},large:{Bf4jedk:"f14es27b",z8tnut:"fp9bwmr",z189sj:["fjodcmx","fhx4nu"],Byoj8tv:"f150uoa4",uwmqm3:["fhx4nu","fjodcmx"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},largeWithIcon:{Byoj8tv:"fy7v416",z8tnut:"f1a1bwwz"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f8fbkgy{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1nfllo7{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1djnp8u{border-top-right-radius:var(--borderRadiusCircular);}",".f1s8kh49{border-top-left-radius:var(--borderRadiusCircular);}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".fh7ncta{min-width:64px;}",".f1khb0e9{padding-top:3px;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1jnq6q7{padding-bottom:3px;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1brlhvm{padding-bottom:1px;}",".f1sl3k7w{padding-top:1px;}",".f14es27b{min-width:96px;}",".fp9bwmr{padding-top:8px;}",".fjodcmx{padding-right:var(--spacingHorizontalL);}",".fhx4nu{padding-left:var(--spacingHorizontalL);}",".f150uoa4{padding-bottom:8px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fy7v416{padding-bottom:7px;}",".f1a1bwwz{padding-top:7px;}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".fwiml72:hover:active{background-color:var(--colorTransparentBackgroundPressed);}",".f15wkkf3:hover{background-color:var(--colorBrandBackgroundHover);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1rq72xc:hover{color:var(--colorNeutralForegroundOnBrand);}",".fnp9lpt:hover:active{background-color:var(--colorBrandBackgroundPressed);}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}",".f1d6v5y2:hover:active{color:var(--colorNeutralForegroundOnBrand);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".ft1hn21:hover .fui-Icon-filled{display:inline;}",".fuxngvv:hover .fui-Icon-regular{display:none;}",".fy5bs14:hover .fui-Button__icon{color:var(--colorNeutralForeground2BrandHover);}",".fsv2rcd:hover:active{background-color:var(--colorSubtleBackgroundPressed);}",".f1omzyqd:hover:active{color:var(--colorNeutralForeground2Pressed);}",".f1dfjoow:hover:active .fui-Icon-filled{display:inline;}",".f1j98vj9:hover:active .fui-Icon-regular{display:none;}",".fj8yq94:hover:active .fui-Button__icon{color:var(--colorNeutralForeground2BrandPressed);}",".f139oj5f:hover{color:var(--colorNeutralForeground2BrandHover);}",".f1fg1p5m:hover:active{color:var(--colorNeutralForeground2BrandPressed);}"],m:[["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1uu00uk{border-top-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9a0qzu{border-left-color:HighlightText;}.fkvaka8{border-right-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ux7til{border-bottom-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fq7113v:hover{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ff1wgvm:hover{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1x4h75k:hover{border-left-color:Highlight;}.fiob0tu:hover{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1j6scgf:hover{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f4xjyn1:hover{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbgcvur:hover:active{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ks1yx8:hover:active{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1o6qegi:hover:active{border-right-color:Highlight;}.fmxjhhp:hover:active{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fcnxywj:hover:active{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9ddjv3:hover:active{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1et0tmh:hover .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1wi8ngl:hover:active .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1tme0vf:hover{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18onu3q:hover:active{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}]]}),XR=K({base:{De3pzq:"f1bg9a2p",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bfinmwp:"f15x8b5r",Jwef8y:"f1falr9n",Bgoe8wy:"f12mpcsy",Bwzppfd:["f1gwvigk","f18rmfxp"],oetu4i:"f1jnshp0",gg5e9n:["f18rmfxp","f1gwvigk"],Bi91k9c:"fvgxktp",eoavqd:"fphbwmw",Bk3fhr4:"f19vpps7",Bmfj8id:"fv5swzo",Bbdnnc7:"f1al02dq",iro3zm:"f1t6o4dc",b661bw:"f10ztigi",Bk6r4ia:["f1ft5sdu","f1gzf82w"],B9zn80p:"f12zbtn2",Bpld233:["f1gzf82w","f1ft5sdu"],B2d53fq:"fcvwxyo",c3iz72:"f8w4c43",em6i61:"f1ol4fw6",vm6p8p:"f1q1lw4e",x3br3k:"f1dwjv2g"},highContrast:{Bsw6fvg:"f4lkoma",Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"],Bbusuzp:"f1dcs8yz",G867l3:"fjwq6ea",gdbnj:["f1lr3nhc","f1mbxvi6"],mxns5l:"fn5gmvv",o3nasb:["f1mbxvi6","f1lr3nhc"],Bqrx1nm:"f1vmkb5g",pgvf35:"f53ppgq",Bh7lczh:["f1663y11","f80fkiy"],dpv3f4:"f18v5270",Bpnjhaq:["f80fkiy","f1663y11"],ze5xyy:"f1kc2mi9",g2kj27:"f1y0svfh",Bf756sw:"fihuait",Bow2dr7:["fnxhupq","fyd6l6x"],Bvhedfk:"fx507ft",Gye4lf:["fyd6l6x","fnxhupq"],pc6evw:"fb3rf2x"},outline:{De3pzq:"f1c21dwh",Jwef8y:"f9ql6rf",iro3zm:"f3h1zc4"},primary:{g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},secondary:{},subtle:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],iro3zm:"f3h1zc4",b661bw:"f1h0usnq",Bk6r4ia:["fs4ktlq","fx2bmrt"],B9zn80p:"f16h9ulv",Bpld233:["fx2bmrt","fs4ktlq"]}},{d:[".f1bg9a2p{background-color:var(--colorNeutralBackgroundDisabled);}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f15x8b5r .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}"],h:[".f1falr9n:hover{background-color:var(--colorNeutralBackgroundDisabled);}",".f12mpcsy:hover{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1gwvigk:hover{border-right-color:var(--colorNeutralStrokeDisabled);}",".f18rmfxp:hover{border-left-color:var(--colorNeutralStrokeDisabled);}",".f1jnshp0:hover{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".fphbwmw:hover{cursor:not-allowed;}",".f19vpps7:hover .fui-Icon-filled{display:none;}",".fv5swzo:hover .fui-Icon-regular{display:inline;}",".f1al02dq:hover .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1t6o4dc:hover:active{background-color:var(--colorNeutralBackgroundDisabled);}",".f10ztigi:hover:active{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1ft5sdu:hover:active{border-right-color:var(--colorNeutralStrokeDisabled);}",".f1gzf82w:hover:active{border-left-color:var(--colorNeutralStrokeDisabled);}",".f12zbtn2:hover:active{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fcvwxyo:hover:active{color:var(--colorNeutralForegroundDisabled);}",".f8w4c43:hover:active{cursor:not-allowed;}",".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}",".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}",".f1dwjv2g:hover:active .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1h0usnq:hover:active{border-top-color:transparent;}",".fs4ktlq:hover:active{border-right-color:transparent;}",".fx2bmrt:hover:active{border-left-color:transparent;}",".f16h9ulv:hover:active{border-bottom-color:transparent;}"],m:[["@media (forced-colors: active){.f4lkoma{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fjwq6ea:focus{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lr3nhc:focus{border-right-color:GrayText;}.f1mbxvi6:focus{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fn5gmvv:focus{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1vmkb5g:hover{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f53ppgq:hover{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1663y11:hover{border-right-color:GrayText;}.f80fkiy:hover{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f18v5270:hover{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1kc2mi9:hover{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1y0svfh:hover:active{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fihuait:hover:active{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnxhupq:hover:active{border-right-color:GrayText;}.fyd6l6x:hover:active{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fx507ft:hover:active{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fb3rf2x:hover:active{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),ZR=K({circular:{kdpuga:["fanj13w","f1gou5sz"],Bw81rd7:["f1gou5sz","fanj13w"],B6xbmo0:["fulf6x3","foeb2x"],dm238s:["foeb2x","fulf6x3"]},rounded:{},square:{kdpuga:["f1ndz5i7","f1co4qro"],Bw81rd7:["f1co4qro","f1ndz5i7"],B6xbmo0:["f146y5a9","f1k2ftg"],dm238s:["f1k2ftg","f146y5a9"]},primary:{B8q5s1w:"f17t0x8g",Bci5o5g:["f194v5ow","fk7jm04"],n8qw10:"f1qgg65p",Bdrgwmp:["fk7jm04","f194v5ow"],j6ew2k:["fhgccpy","fjo7pq6"],he4mth:"f32wu9k",Byr4aka:"fu5nqqq",lks7q5:["f13prjl2","f1nl83rv"],Bnan3qt:"f1czftr5",k1dn9:["f1nl83rv","f13prjl2"],Boium3a:["f12k37oa","fdnykm2"],tm8e47:"fr96u23"},small:{kdpuga:["fg3gtdo","fwii5mg"],Bw81rd7:["fwii5mg","fg3gtdo"],B6xbmo0:["f1palphq","f12nxie7"],dm238s:["f12nxie7","f1palphq"]},medium:{},large:{kdpuga:["ft3lys4","f1la4x2g"],Bw81rd7:["f1la4x2g","ft3lys4"],B6xbmo0:["f156y0zm","fakimq4"],dm238s:["fakimq4","f156y0zm"]}},{d:[".fanj13w[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1gou5sz[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusCircular);}",".fulf6x3[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusCircular);}",".foeb2x[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusCircular);}",".f1ndz5i7[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusNone);}",".f1co4qro[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusNone);}",".f146y5a9[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusNone);}",".f1k2ftg[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusNone);}",".f17t0x8g[data-fui-focus-visible]{border-top-color:var(--colorStrokeFocus2);}",".f194v5ow[data-fui-focus-visible]{border-right-color:var(--colorStrokeFocus2);}",".fk7jm04[data-fui-focus-visible]{border-left-color:var(--colorStrokeFocus2);}",".f1qgg65p[data-fui-focus-visible]{border-bottom-color:var(--colorStrokeFocus2);}",".fhgccpy[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".fjo7pq6[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".f32wu9k[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;}",".fu5nqqq[data-fui-focus-visible]:hover{border-top-color:var(--colorStrokeFocus2);}",".f13prjl2[data-fui-focus-visible]:hover{border-right-color:var(--colorStrokeFocus2);}",".f1nl83rv[data-fui-focus-visible]:hover{border-left-color:var(--colorStrokeFocus2);}",".f1czftr5[data-fui-focus-visible]:hover{border-bottom-color:var(--colorStrokeFocus2);}",".fg3gtdo[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusSmall);}",".fwii5mg[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusSmall);}",".f1palphq[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusSmall);}",".f12nxie7[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusSmall);}",".ft3lys4[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusLarge);}",".f1la4x2g[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusLarge);}",".f156y0zm[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusLarge);}",".fakimq4[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusLarge);}"],t:["@supports (-moz-appearance:button){.f12k37oa[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}.fdnykm2[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}}","@supports (-moz-appearance:button){.fr96u23[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),QR=K({small:{z8tnut:"f1sl3k7w",z189sj:["f136y8j8","f10xn8zz"],Byoj8tv:"f1brlhvm",uwmqm3:["f10xn8zz","f136y8j8"],Bf4jedk:"f17fgpbq",B2u0y6b:"f1jt17bm"},medium:{z8tnut:"f1sbtcvk",z189sj:["fwiuce9","f15vdbe4"],Byoj8tv:"fdghr9",uwmqm3:["f15vdbe4","fwiuce9"],Bf4jedk:"fwbmr0d",B2u0y6b:"f44c6la"},large:{z8tnut:"f1a1bwwz",z189sj:["f18k1jr3","f1rtp3s9"],Byoj8tv:"fy7v416",uwmqm3:["f1rtp3s9","f18k1jr3"],Bf4jedk:"f12clzc2",B2u0y6b:"fjy1crr"}},{d:[".f1sl3k7w{padding-top:1px;}",".f136y8j8{padding-right:1px;}",".f10xn8zz{padding-left:1px;}",".f1brlhvm{padding-bottom:1px;}",".f17fgpbq{min-width:24px;}",".f1jt17bm{max-width:24px;}",".f1sbtcvk{padding-top:5px;}",".fwiuce9{padding-right:5px;}",".f15vdbe4{padding-left:5px;}",".fdghr9{padding-bottom:5px;}",".fwbmr0d{min-width:32px;}",".f44c6la{max-width:32px;}",".f1a1bwwz{padding-top:7px;}",".f18k1jr3{padding-right:7px;}",".f1rtp3s9{padding-left:7px;}",".fy7v416{padding-bottom:7px;}",".f12clzc2{min-width:40px;}",".fjy1crr{max-width:40px;}"]}),JR=K({small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3",Bqrlyyl:"fbaiahx"},medium:{},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun",Bqrlyyl:"f1exjqw5"},before:{t21cq0:["f1nizpg2","f1a695kz"]},after:{Frg6f3:["f1a695kz","f1nizpg2"]}},{d:[".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".fbaiahx{--fui-Button__icon--spacing:var(--spacingHorizontalXS);}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".f1exjqw5{--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}",".f1nizpg2{margin-right:var(--fui-Button__icon--spacing);}",".f1a695kz{margin-left:var(--fui-Button__icon--spacing);}"]}),Gx=e=>{const t=VR(),r=GR(),n=KR(),o=XR(),i=ZR(),a=QR(),l=JR(),{appearance:s,disabled:c,disabledFocusable:u,icon:f,iconOnly:d,iconPosition:h,shape:p,size:m}=e;return e.root.className=G(H1.root,t,s&&n[s],n[m],f&&m==="small"&&n.smallWithIcon,f&&m==="large"&&n.largeWithIcon,n[p],(c||u)&&o.base,(c||u)&&o.highContrast,s&&(c||u)&&o[s],s==="primary"&&i.primary,i[m],i[p],d&&a[m],e.root.className),e.icon&&(e.icon.className=G(H1.icon,r,!!e.root.children&&l[h],l[m],e.icon.className)),e},po=x.forwardRef((e,t)=>{const r=Vx(e,t);return Gx(r),De("useButtonStyles_unstable")(r),WR(r)});po.displayName="Button";const YR=e=>{const{icon:t,iconOnly:r}=e;return At(e.root,{children:[e.icon&&U(e.icon,{}),!r&&e.root.children,(!r||!(t!=null&&t.children))&&e.menuIcon&&U(e.menuIcon,{})]})},ej=({menuIcon:e,...t},r)=>{const n=Vx(t,r);var o;return n.root["aria-expanded"]=(o=t["aria-expanded"])!==null&&o!==void 0?o:!1,{...n,iconOnly:!t.children,components:{root:"button",icon:"span",menuIcon:"span"},menuIcon:Te(e,{defaultProps:{children:x.createElement(l3,null)},renderByDefault:!0,elementType:"span"})}},Uf={root:"fui-MenuButton",icon:"fui-MenuButton__icon",menuIcon:"fui-MenuButton__menuIcon"},tj=K({base:{D0sxk3:"fxoiby5",t6yez3:"f15q0o9g"},outline:{g2u3we:"f1ly1fcm",h3c5rm:["fi8bssc","fj6btzu"],B9xav0g:"f1s9tnsa",zhjwy3:["fj6btzu","fi8bssc"],B4j52fo:"fgx37oo",Bekrc4i:["f130t4y6","f1efpmoh"],Bn0qgzm:"fv51ejd",ibv6hh:["f1efpmoh","f130t4y6"],sj55zd:"f14nttnl"},primary:{De3pzq:"f8w4g0q"},secondary:{De3pzq:"f1nfm20t",g2u3we:"f1ly1fcm",h3c5rm:["fi8bssc","fj6btzu"],B9xav0g:"f1s9tnsa",zhjwy3:["fj6btzu","fi8bssc"],sj55zd:"f14nttnl"},subtle:{De3pzq:"fq5gl1p",sj55zd:"f1eryozh"},transparent:{De3pzq:"f1q9pm1r",sj55zd:"f1qj7y59"}},{d:[".fxoiby5 .fui-Icon-filled{display:inline;}",".f15q0o9g .fui-Icon-regular{display:none;}",".f1ly1fcm{border-top-color:var(--colorNeutralStroke1Selected);}",".fi8bssc{border-right-color:var(--colorNeutralStroke1Selected);}",".fj6btzu{border-left-color:var(--colorNeutralStroke1Selected);}",".f1s9tnsa{border-bottom-color:var(--colorNeutralStroke1Selected);}",".fgx37oo{border-top-width:var(--strokeWidthThicker);}",".f130t4y6{border-right-width:var(--strokeWidthThicker);}",".f1efpmoh{border-left-width:var(--strokeWidthThicker);}",".fv51ejd{border-bottom-width:var(--strokeWidthThicker);}",".f14nttnl{color:var(--colorNeutralForeground1Selected);}",".f8w4g0q{background-color:var(--colorBrandBackgroundSelected);}",".f1nfm20t{background-color:var(--colorNeutralBackground1Selected);}",".fq5gl1p{background-color:var(--colorSubtleBackgroundSelected);}",".f1eryozh{color:var(--colorNeutralForeground2Selected);}",".f1q9pm1r{background-color:var(--colorTransparentBackgroundSelected);}",".f1qj7y59{color:var(--colorNeutralForeground2BrandSelected);}"]}),rj=K({outline:{sj55zd:"f14nttnl"},primary:{},secondary:{sj55zd:"f14nttnl"},subtle:{sj55zd:"f1qj7y59"},transparent:{sj55zd:"f1qj7y59"},highContrast:{ze5xyy:"fqyhrn0"}},{d:[".f14nttnl{color:var(--colorNeutralForeground1Selected);}",".f1qj7y59{color:var(--colorNeutralForeground2BrandSelected);}"],m:[["@media (forced-colors: active){.fqyhrn0:hover{color:Canvas;}}",{m:"(forced-colors: active)"}]]}),nj=K({base:{Bg96gwp:"fez10in"},small:{Be2twd7:"f1ugzwwg",Bqenvij:"fvblgha",Bg96gwp:"fwrc4pm",a9b677:"frx94fk"},medium:{Be2twd7:"f1ugzwwg",Bqenvij:"fvblgha",Bg96gwp:"fwrc4pm",a9b677:"frx94fk"},large:{Be2twd7:"f4ybsrx",Bqenvij:"fd461yt",Bg96gwp:"faaz57k",a9b677:"fjw5fx7"},notIconOnly:{Frg6f3:["fbyavb5","fm0x6gh"]}},{d:[".fez10in{line-height:0;}",".f1ugzwwg{font-size:12px;}",".fvblgha{height:12px;}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".frx94fk{width:12px;}",".f4ybsrx{font-size:16px;}",".fd461yt{height:16px;}",".faaz57k{line-height:var(--lineHeightBase400);}",".fjw5fx7{width:16px;}",".fbyavb5{margin-left:var(--spacingHorizontalXS);}",".fm0x6gh{margin-right:var(--spacingHorizontalXS);}"]}),oj=e=>{const t=tj(),r=rj(),n=nj();return e.root.className=G(Uf.root,e.root["aria-expanded"]&&t.base,e.root["aria-expanded"]&&t[e.appearance],e.root.className),e.icon&&(e.icon.className=G(Uf.icon,e.root["aria-expanded"]&&r[e.appearance]&&r.highContrast,e.icon.className)),e.menuIcon&&(e.menuIcon.className=G(Uf.menuIcon,n.base,n[e.size],!e.iconOnly&&n.notIconOnly,e.menuIcon.className)),Gx({...e,iconPosition:"before"}),e},Kx=x.forwardRef((e,t)=>{const r=ej(e,t);return oj(r),De("useMenuButtonStyles_unstable")(r),YR(r)});Kx.displayName="MenuButton";const Xx=x.createContext(void 0);Xx.Provider;const ij=()=>x.useContext(Xx);function aj(e,t){return lj(ij(),e,t)}function lj(e,t,r){if(!e)return t;t={...t};const{generatedControlId:n,hintId:o,labelFor:i,labelId:a,required:l,validationMessageId:s,validationState:c}=e;if(n){var u,f;(f=(u=t).id)!==null&&f!==void 0||(u.id=n)}if(a&&(!(r!=null&&r.supportsLabelFor)||i!==t.id)){var d,h,p;(p=(d=t)[h="aria-labelledby"])!==null&&p!==void 0||(d[h]=a)}if((s||o)&&(t["aria-describedby"]=[s,o,t==null?void 0:t["aria-describedby"]].filter(Boolean).join(" ")),c==="error"){var m,y,v;(v=(m=t)[y="aria-invalid"])!==null&&v!==void 0||(m[y]=!0)}if(l)if(r!=null&&r.supportsRequired){var g,b;(b=(g=t).required)!==null&&b!==void 0||(g.required=!0)}else{var k,_,w;(w=(k=t)[_="aria-required"])!==null&&w!==void 0||(k[_]=!0)}if(r!=null&&r.supportsSize){var S,E;(E=(S=t).size)!==null&&E!==void 0||(S.size=e.size)}return t}const sj=e=>U(e.root,{children:e.root.children!==void 0&&U(e.wrapper,{children:e.root.children})}),cj=(e,t)=>{const{alignContent:r="center",appearance:n="default",inset:o=!1,vertical:i=!1,wrapper:a}=e,l=_n("divider-");return{alignContent:r,appearance:n,inset:o,vertical:i,components:{root:"div",wrapper:"div"},root:be(Re("div",{role:"separator","aria-orientation":i?"vertical":"horizontal","aria-labelledby":e.children?l:void 0,...e,ref:t}),{elementType:"div"}),wrapper:be(a,{defaultProps:{id:l,children:e.children},elementType:"div"})}},W1={root:"fui-Divider",wrapper:"fui-Divider__wrapper"},uj=K({base:{Bt984gj:"f122n59",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bh6795r:"fqerorx",qhf8xq:"f10pi13n",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",fsow6f:"f17mccla",Bcvre1j:"fyl8oag",Br0sdwz:"f16vkdww",Bn78ew0:"fhsnbul",li1rpt:"f1gw3sf2",ap17g6:"f1ly5f7u",B771hl4:"f1s3tz6t"},childless:{susq4k:"f1kyqvp9",Bicfajf:["fzynn9s","f1z0ukd1"],jwcpgy:["fekrn8e","ftdg338"],B4rk6o:"fesgyo"},start:{Bsft5z2:"f13zj6fq"},center:{Ftih45:"f1wl9k8s",Bsft5z2:"f13zj6fq"},end:{Ftih45:"f1wl9k8s"},brand:{sj55zd:"f16muhyy",Bq4z7u6:"fcbuu2a",Bk5zm6e:["f1wdw2dr","f1ttio3w"],Bqjgrrk:"f1582fpk",Bm6vgfq:["f1ttio3w","f1wdw2dr"],B0n5ga8:"f1ahrvm8",s924m2:["f1cd3wbc","f17hbk9y"],B1q35kw:"fvrapl0",Gp14am:["f17hbk9y","f1cd3wbc"]},default:{sj55zd:"fkfq4zb",Bq4z7u6:"f1vccso1",Bk5zm6e:["f1geml7w","fjml6kk"],Bqjgrrk:"f1r7kh1m",Bm6vgfq:["fjml6kk","f1geml7w"],B0n5ga8:"f16j7guv",s924m2:["fx01ahm","fj1a37q"],B1q35kw:"fl8d8yv",Gp14am:["fj1a37q","fx01ahm"]},subtle:{sj55zd:"f11d4kpn",Bq4z7u6:"f5g06un",Bk5zm6e:["f13sxdku","f1n015lb"],Bqjgrrk:"f1x6bl8t",Bm6vgfq:["f1n015lb","f13sxdku"],B0n5ga8:"fvod1wy",s924m2:["fwslg65","flk0e17"],B1q35kw:"f103fvts",Gp14am:["flk0e17","fwslg65"]},strong:{sj55zd:"f19n0e5",Bq4z7u6:"f10tv6oz",Bk5zm6e:["f16xp3sf","f1seuxxq"],Bqjgrrk:"fwrmqbx",Bm6vgfq:["f1seuxxq","f16xp3sf"],B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]}},{d:[".f122n59{align-items:center;}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fqerorx{flex-grow:1;}",".f10pi13n{position:relative;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f17mccla{text-align:center;}",".fyl8oag::before{box-sizing:border-box;}",".f16vkdww::before{display:flex;}",".fhsnbul::before{flex-grow:1;}",".f1gw3sf2::after{box-sizing:border-box;}",".f1ly5f7u::after{display:flex;}",".f1s3tz6t::after{flex-grow:1;}",".f1kyqvp9::before{margin-bottom:0;}",".fzynn9s::before{margin-right:0;}",".f1z0ukd1::before{margin-left:0;}",".fekrn8e::after{margin-left:0;}",".ftdg338::after{margin-right:0;}",".fesgyo::after{margin-top:0;}",'.f13zj6fq::after{content:"";}','.f1wl9k8s::before{content:"";}',".f16muhyy{color:var(--colorBrandForeground1);}",".fcbuu2a::before{border-top-color:var(--colorBrandStroke1);}",".f1wdw2dr::before{border-right-color:var(--colorBrandStroke1);}",".f1ttio3w::before{border-left-color:var(--colorBrandStroke1);}",".f1582fpk::before{border-bottom-color:var(--colorBrandStroke1);}",".f1ahrvm8::after{border-top-color:var(--colorBrandStroke1);}",".f1cd3wbc::after{border-right-color:var(--colorBrandStroke1);}",".f17hbk9y::after{border-left-color:var(--colorBrandStroke1);}",".fvrapl0::after{border-bottom-color:var(--colorBrandStroke1);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".f1vccso1::before{border-top-color:var(--colorNeutralStroke2);}",".f1geml7w::before{border-right-color:var(--colorNeutralStroke2);}",".fjml6kk::before{border-left-color:var(--colorNeutralStroke2);}",".f1r7kh1m::before{border-bottom-color:var(--colorNeutralStroke2);}",".f16j7guv::after{border-top-color:var(--colorNeutralStroke2);}",".fx01ahm::after{border-right-color:var(--colorNeutralStroke2);}",".fj1a37q::after{border-left-color:var(--colorNeutralStroke2);}",".fl8d8yv::after{border-bottom-color:var(--colorNeutralStroke2);}",".f11d4kpn{color:var(--colorNeutralForeground3);}",".f5g06un::before{border-top-color:var(--colorNeutralStroke3);}",".f13sxdku::before{border-right-color:var(--colorNeutralStroke3);}",".f1n015lb::before{border-left-color:var(--colorNeutralStroke3);}",".f1x6bl8t::before{border-bottom-color:var(--colorNeutralStroke3);}",".fvod1wy::after{border-top-color:var(--colorNeutralStroke3);}",".fwslg65::after{border-right-color:var(--colorNeutralStroke3);}",".flk0e17::after{border-left-color:var(--colorNeutralStroke3);}",".f103fvts::after{border-bottom-color:var(--colorNeutralStroke3);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f10tv6oz::before{border-top-color:var(--colorNeutralStroke1);}",".f16xp3sf::before{border-right-color:var(--colorNeutralStroke1);}",".f1seuxxq::before{border-left-color:var(--colorNeutralStroke1);}",".fwrmqbx::before{border-bottom-color:var(--colorNeutralStroke1);}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}"]}),fj=K({base:{a9b677:"fly5x3f",Bdkvgpv:"f163fonl",B0qfbqy:"f51yk4v",pbipgd:"f13rof3u",Bm2nyyq:"f8rth92",xrcqlc:"f6czdpx",i5u598:"f1iyka9k"},inset:{uwmqm3:["fjlbh76","f11qrl6u"],z189sj:["f11qrl6u","fjlbh76"]},start:{Ftih45:"f1wl9k8s",Bicfajf:["f1ojjlep","fk1kexq"],Bxwl2t9:"f1he2m4d",jwcpgy:["f12w1bnb","f1558wlj"]},center:{Bicfajf:["f1ojjlep","fk1kexq"],jwcpgy:["f12w1bnb","f1558wlj"]},end:{Bicfajf:["f1ojjlep","fk1kexq"],Bsft5z2:"f13zj6fq",jwcpgy:["f12w1bnb","f1558wlj"],Iy66sp:"f1ayce8x"}},{d:[".fly5x3f{width:100%;}",".f163fonl::before{border-top-style:solid;}",".f51yk4v::before{border-top-width:var(--strokeWidthThin);}",".f13rof3u::before{min-width:8px;}",".f8rth92::after{border-top-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f1iyka9k::after{min-width:8px;}",".fjlbh76{padding-left:12px;}",".f11qrl6u{padding-right:12px;}",'.f1wl9k8s::before{content:"";}',".f1ojjlep::before{margin-right:12px;}",".fk1kexq::before{margin-left:12px;}",".f1he2m4d::before{max-width:8px;}",".f12w1bnb::after{margin-left:12px;}",".f1558wlj::after{margin-right:12px;}",'.f13zj6fq::after{content:"";}',".f1ayce8x::after{max-width:8px;}"]}),dj=K({base:{Beiy3e4:"f1vx9l62",sshi5w:"f16gbxbe",m598lv:["f1yq6w5o","f1jpmc5p"],B4f6apu:["f9sc749","f1x8pvcy"],zkzzav:"fhkwbjy",Barhvk9:["flthirb","ftkbnf5"],Ihftqj:["f13hvwk3","f1en4csx"],Bde111x:"f19onpk6"},inset:{B6of3ja:"f1xdg43u",jrapky:"f1jlhsmd"},withChildren:{sshi5w:"f1tjaq3g"},start:{Ftih45:"f1wl9k8s",susq4k:"fg2pwug",Bbdr6tz:"fkjtzyi",B4rk6o:"f8vk40g"},center:{susq4k:"fg2pwug",B4rk6o:"f8vk40g"},end:{susq4k:"fg2pwug",Bsft5z2:"f13zj6fq",B4rk6o:"f8vk40g",gn64ia:"fqg5mu5"}},{d:[".f1vx9l62{flex-direction:column;}",".f16gbxbe{min-height:20px;}",".f1yq6w5o::before{border-right-style:solid;}",".f1jpmc5p::before{border-left-style:solid;}",".f9sc749::before{border-right-width:var(--strokeWidthThin);}",".f1x8pvcy::before{border-left-width:var(--strokeWidthThin);}",".fhkwbjy::before{min-height:8px;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f19onpk6::after{min-height:8px;}",".f1xdg43u{margin-top:12px;}",".f1jlhsmd{margin-bottom:12px;}",".f1tjaq3g{min-height:84px;}",'.f1wl9k8s::before{content:"";}',".fg2pwug::before{margin-bottom:12px;}",".fkjtzyi::before{max-height:8px;}",".f8vk40g::after{margin-top:12px;}",'.f13zj6fq::after{content:"";}',".fqg5mu5::after{max-height:8px;}"]}),hj=e=>{const t=uj(),r=fj(),n=dj(),{alignContent:o,appearance:i,inset:a,vertical:l}=e;return e.root.className=G(W1.root,t.base,t[o],i&&t[i],!l&&r.base,!l&&a&&r.inset,!l&&r[o],l&&n.base,l&&a&&n.inset,l&&n[o],l&&e.root.children!==void 0&&n.withChildren,e.root.children===void 0&&t.childless,e.root.className),e.wrapper&&(e.wrapper.className=G(W1.wrapper,e.wrapper.className)),e},jh=x.forwardRef((e,t)=>{const r=cj(e,t);return hj(r),De("useDividerStyles_unstable")(r),sj(r)});jh.displayName="Divider";const Tg=ua(void 0),pj={open:!1,setOpen:()=>!1,checkedValues:{},onCheckedValueChange:()=>null,isSubmenu:!1,triggerRef:{current:null},menuPopoverRef:{current:null},mountNode:null,triggerId:"",openOnContext:!1,openOnHover:!1,hasIcons:!1,hasCheckmarks:!1,inline:!1,persistOnItemClick:!1},gj=Tg.Provider,Ve=e=>fa(Tg,(t=pj)=>e(t)),Zx=x.createContext(void 0),mj=!1,vj=Zx.Provider,bj=()=>{var e;return(e=x.useContext(Zx))!==null&&e!==void 0?e:mj},Ng=ua(void 0),yj={checkedValues:{},setFocusByFirstCharacter:()=>null,toggleCheckbox:()=>null,selectRadio:()=>null,hasIcons:!1,hasCheckmarks:!1},wj=Ng.Provider,Fh=e=>fa(Ng,(t=yj)=>e(t)),jl="fuimenuenter",kj=e=>{const{refs:t,callback:r,element:n,disabled:o}=e,i=se(a=>{const l=t[0],s=a.target;var c;!ul((c=l.current)!==null&&c!==void 0?c:null,s)&&!o&&r(a)});x.useEffect(()=>{if(n!=null)return o||n.addEventListener(jl,i),()=>{n.removeEventListener(jl,i)}},[i,n,o])},xj=(e,t)=>{e.dispatchEvent(new CustomEvent(jl,{bubbles:!0,detail:{nativeEvent:t}}))};function Rg(){const e=Ve(r=>r.isSubmenu),t=zp(Ng);return e||t}const Sj=["after","after-bottom","before-top","before","before-bottom","above"],_j=e=>{const t=Rg(),{hoverDelay:r=500,inline:n=!1,hasCheckmarks:o=!1,hasIcons:i=!1,closeOnScroll:a=!1,openOnContext:l=!1,persistOnItemClick:s=!1,openOnHover:c=t,defaultCheckedValues:u,mountNode:f=null}=e,d=_n("menu"),[h,p]=Lw(),m={position:t?"after":"below",align:t?"top":"start",target:e.openOnContext?h:void 0,fallbackPositions:t?Sj:void 0,...Ip(e.positioning)},y=x.Children.toArray(e.children);let v,g;y.length===2?(v=y[0],g=y[1]):y.length===1&&(g=y[0]);const{targetRef:b,containerRef:k}=Ow(m),[_,w]=Cj({hoverDelay:r,isSubmenu:t,setContextTarget:p,closeOnScroll:a,menuPopoverRef:k,triggerRef:b,open:e.open,defaultOpen:e.defaultOpen,onOpenChange:e.onOpenChange,openOnContext:l}),[S,E]=Bj({checkedValues:e.checkedValues,defaultCheckedValues:u,onCheckedValueChange:e.onCheckedValueChange});return{inline:n,hoverDelay:r,triggerId:d,isSubmenu:t,openOnHover:c,contextTarget:h,setContextTarget:p,hasCheckmarks:o,hasIcons:i,closeOnScroll:a,menuTrigger:v,menuPopover:g,mountNode:f,triggerRef:b,menuPopoverRef:k,components:{},openOnContext:l,open:_,setOpen:w,checkedValues:S,onCheckedValueChange:E,persistOnItemClick:s}},Bj=e=>{const[t,r]=Rn({state:e.checkedValues,defaultState:e.defaultCheckedValues,initialState:{}}),n=se((o,{name:i,checkedItems:a})=>{var l;(l=e.onCheckedValueChange)===null||l===void 0||l.call(e,o,{name:i,checkedItems:a}),r(s=>({...s,[i]:a}))});return[t,n]},Cj=e=>{const{targetDocument:t}=ht(),r=Ve(h=>h.setOpen),n=se((h,p)=>{var m;return(m=e.onOpenChange)===null||m===void 0?void 0:m.call(e,h,p)}),o=x.useRef(0),i=x.useRef(!1),[a,l]=Rn({state:e.open,defaultState:e.defaultOpen,initialState:!1}),s=se((h,p)=>{const m=h instanceof CustomEvent&&h.type===jl?h.detail.nativeEvent:h;n==null||n(m,{...p}),p.open&&h.type==="contextmenu"&&e.setContextTarget(h),p.open||e.setContextTarget(void 0),p.bubble&&r(h,{...p}),l(p.open)}),c=se((h,p)=>{if(clearTimeout(o.current),!(h instanceof Event)&&h.persist&&h.persist(),h.type==="mouseleave"||h.type==="mouseenter"||h.type==="mousemove"||h.type===jl){var m;!((m=e.triggerRef.current)===null||m===void 0)&&m.contains(h.target)&&(i.current=h.type==="mouseenter"||h.type==="mousemove"),o.current=setTimeout(()=>s(h,p),e.hoverDelay)}else s(h,p)});Ry({contains:ul,disabled:!a,element:t,refs:[e.menuPopoverRef,!e.openOnContext&&e.triggerRef].filter(Boolean),callback:h=>c(h,{open:!1,type:"clickOutside",event:h})});const u=e.openOnContext||e.closeOnScroll;jy({contains:ul,element:t,callback:h=>c(h,{open:!1,type:"scrollOutside",event:h}),refs:[e.menuPopoverRef,!e.openOnContext&&e.triggerRef].filter(Boolean),disabled:!a||!u}),kj({element:t,callback:h=>{i.current||c(h,{open:!1,type:"menuMouseEnter",event:h})},disabled:!a,refs:[e.menuPopoverRef]}),x.useEffect(()=>()=>{clearTimeout(o.current)},[]);const{findFirstFocusable:f}=oi(),d=x.useCallback(()=>{const h=f(e.menuPopoverRef.current);h==null||h.focus()},[f,e.menuPopoverRef]);return x.useEffect(()=>{a&&d()},[a,d]),[a,c]};function Pj(e){const{checkedValues:t,hasCheckmarks:r,hasIcons:n,inline:o,isSubmenu:i,menuPopoverRef:a,mountNode:l,onCheckedValueChange:s,open:c,openOnContext:u,openOnHover:f,persistOnItemClick:d,setOpen:h,triggerId:p,triggerRef:m}=e;return{menu:{checkedValues:t,hasCheckmarks:r,hasIcons:n,inline:o,isSubmenu:i,menuPopoverRef:a,mountNode:l,onCheckedValueChange:s,open:c,openOnContext:u,openOnHover:f,persistOnItemClick:d,setOpen:h,triggerId:p,triggerRef:m}}}const Ej=(e,t)=>x.createElement(gj,{value:t.menu},e.menuTrigger,e.open&&e.menuPopover),Qx=e=>{const t=_j(e),r=Pj(t);return Ej(t,r)};Qx.displayName="Menu";const zj=(e,t)=>{const r=Fh(o=>o.setFocusByFirstCharacter),{onKeyDown:n}=e.root;return e.root.onKeyDown=o=>{var i;n==null||n(o),!(((i=o.key)===null||i===void 0?void 0:i.length)>1)&&t.current&&(r==null||r(o,t.current))},e},Tj=qy(u3,Ly),Nj=qy(s3,c3),Rj=(e,t)=>{const r=bj(),n=Ve(m=>m.persistOnItemClick),{as:o="div",disabled:i=!1,hasSubmenu:a=r,persistOnClick:l=n}=e,s=Fh(m=>m.hasIcons),c=Fh(m=>m.hasCheckmarks),u=Ve(m=>m.setOpen),{dir:f}=ht(),d=x.useRef(null),h=x.useRef(!1),p={hasSubmenu:a,disabled:i,persistOnClick:l,components:{root:"div",icon:"span",checkmark:"span",submenuIndicator:"span",content:"span",secondaryContent:"span"},root:be(Re(o,Vi(o,{role:"menuitem",...e,disabled:!1,disabledFocusable:i,ref:nr(t,d),onKeyDown:se(m=>{var y;(y=e.onKeyDown)===null||y===void 0||y.call(e,m),!m.isDefaultPrevented()&&(m.key===La||m.key===Ka)&&(h.current=!0)}),onMouseEnter:se(m=>{var y,v;(y=d.current)===null||y===void 0||y.focus(),(v=e.onMouseEnter)===null||v===void 0||v.call(e,m)}),onClick:se(m=>{var y;!a&&!l&&(u(m,{open:!1,keyboard:h.current,bubble:!0,type:"menuItemClick",event:m}),h.current=!1),(y=e.onClick)===null||y===void 0||y.call(e,m)})})),{elementType:"div"}),icon:Te(e.icon,{renderByDefault:s,elementType:"span"}),checkmark:Te(e.checkmark,{renderByDefault:c,elementType:"span"}),submenuIndicator:Te(e.submenuIndicator,{renderByDefault:a,defaultProps:{children:f==="ltr"?x.createElement(Tj,null):x.createElement(Nj,null)},elementType:"span"}),content:Te(e.content,{renderByDefault:!!e.children,defaultProps:{children:e.children},elementType:"span"}),secondaryContent:Te(e.secondaryContent,{elementType:"span"})};return zj(p,d),p},jj=e=>At(e.root,{children:[e.checkmark&&U(e.checkmark,{}),e.icon&&U(e.icon,{}),e.content&&U(e.content,{}),e.secondaryContent&&U(e.secondaryContent,{}),e.submenuIndicator&&U(e.submenuIndicator,{})]}),Fj=K({root:{a9b677:"fjw5fx7",Bqenvij:"fd461yt",Bcdw1i0:"fd7fpy0"},rootChecked:{Bcdw1i0:"f1022m68"}},{d:[".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".fd7fpy0{visibility:hidden;}",".f1022m68{visibility:visible;}"]}),Dj=e=>{const t=Fj();e.checkmark&&(e.checkmark.className=G(t.root,e.checked&&t.rootChecked,e.checkmark.className))},di={root:"fui-MenuItem",icon:"fui-MenuItem__icon",checkmark:"fui-MenuItem__checkmark",submenuIndicator:"fui-MenuItem__submenuIndicator",content:"fui-MenuItem__content",secondaryContent:"fui-MenuItem__secondaryContent"},Ij=Qe("rf4m57v","rsbw0a0",{r:[".rf4m57v{border-radius:var(--borderRadiusMedium);position:relative;color:var(--colorNeutralForeground2);background-color:var(--colorNeutralBackground1);padding-right:var(--spacingVerticalSNudge);padding-left:var(--spacingVerticalSNudge);padding-top:var(--spacingVerticalSNudge);padding-bottom:var(--spacingVerticalSNudge);box-sizing:border-box;max-width:290px;min-height:32px;flex-shrink:0;display:flex;align-items:start;font-size:var(--fontSizeBase300);cursor:pointer;gap:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}",".rf4m57v:hover{background-color:var(--colorNeutralBackground1Hover);color:var(--colorNeutralForeground2Hover);}",".rf4m57v:hover .fui-Icon-filled{display:inline;}",".rf4m57v:hover .fui-Icon-regular{display:none;}",".rf4m57v:hover .fui-MenuItem__icon{color:var(--colorNeutralForeground2BrandSelected);}",".rf4m57v:hover:active{background-color:var(--colorNeutralBackground1Pressed);color:var(--colorNeutralForeground2Pressed);}",".rf4m57v:focus{outline-style:none;}",".rf4m57v:focus-visible{outline-style:none;}",".rf4m57v[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.rf4m57v[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".rsbw0a0{border-radius:var(--borderRadiusMedium);position:relative;color:var(--colorNeutralForeground2);background-color:var(--colorNeutralBackground1);padding-left:var(--spacingVerticalSNudge);padding-right:var(--spacingVerticalSNudge);padding-top:var(--spacingVerticalSNudge);padding-bottom:var(--spacingVerticalSNudge);box-sizing:border-box;max-width:290px;min-height:32px;flex-shrink:0;display:flex;align-items:start;font-size:var(--fontSizeBase300);cursor:pointer;gap:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}",".rsbw0a0:hover{background-color:var(--colorNeutralBackground1Hover);color:var(--colorNeutralForeground2Hover);}",".rsbw0a0:hover .fui-Icon-filled{display:inline;}",".rsbw0a0:hover .fui-Icon-regular{display:none;}",".rsbw0a0:hover .fui-MenuItem__icon{color:var(--colorNeutralForeground2BrandSelected);}",".rsbw0a0:hover:active{background-color:var(--colorNeutralBackground1Pressed);color:var(--colorNeutralForeground2Pressed);}",".rsbw0a0:focus{outline-style:none;}",".rsbw0a0:focus-visible{outline-style:none;}",".rsbw0a0[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.rsbw0a0[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.rf4m57v[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.rsbw0a0[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),Aj=Qe("r1ls86vo","rpbc5dr",[".r1ls86vo{padding-left:2px;padding-right:2px;background-color:transparent;flex-grow:1;}",".rpbc5dr{padding-right:2px;padding-left:2px;background-color:transparent;flex-grow:1;}"]),Mj=Qe("r12mwwux","r1ewgu5j",[".r12mwwux{padding-left:2px;padding-right:2px;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);color:var(--colorNeutralForeground3);}",".r12mwwux:hover{color:var(--colorNeutralForeground3Hover);}",".r12mwwux:focus{color:var(--colorNeutralForeground3Hover);}",".r1ewgu5j{padding-right:2px;padding-left:2px;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);color:var(--colorNeutralForeground3);}",".r1ewgu5j:hover{color:var(--colorNeutralForeground3Hover);}",".r1ewgu5j:focus{color:var(--colorNeutralForeground3Hover);}"]),Oj=Qe("r9c34qo",null,[".r9c34qo{width:20px;height:20px;font-size:20px;line-height:0;align-items:center;display:inline-flex;justify-content:center;}"]),Lj=Qe("r9c34qo",null,[".r9c34qo{width:20px;height:20px;font-size:20px;line-height:0;align-items:center;display:inline-flex;justify-content:center;}"]),qj=K({checkmark:{B6of3ja:"fmnzpld"},splitItemMain:{Bh6795r:"fqerorx"},splitItemTrigger:{Btl43ni:["f1ozlkrg","f10ostut"],Beyfa6y:["f1deotkl","f1krrbdw"],uwmqm3:["f1cnd47f","fhxju0i"],Ftih45:"f1wl9k8s",Ccq8qp:"f1yn80uh",Baz25je:"f68mna0",cmx5o7:"f1p5zmk"},disabled:{sj55zd:"f1s2aq7o",Bi91k9c:"fvgxktp",Jwef8y:"f1ijtazh",eoavqd:"fphbwmw",Bk3fhr4:"f19vpps7",Bmfj8id:"fv5swzo",Bg7n49j:"f1q1x1ba",B2d53fq:"fcvwxyo",iro3zm:"f1to34ca",t0hwav:"ft33916",Bbusuzp:"f1dcs8yz",ze5xyy:"f1kc2mi9",Bctn1xl:"fk56vqo",Bh6z0a4:"f1ikwg0d"}},{d:[".fmnzpld{margin-top:2px;}",".fqerorx{flex-grow:1;}",".f1ozlkrg{border-top-left-radius:0;}",".f10ostut{border-top-right-radius:0;}",".f1deotkl{border-bottom-left-radius:0;}",".f1krrbdw{border-bottom-right-radius:0;}",".f1cnd47f{padding-left:0;}",".fhxju0i{padding-right:0;}",'.f1wl9k8s::before{content:"";}',".f1yn80uh::before{width:var(--strokeWidthThin);}",".f68mna0::before{height:24px;}",".f1p5zmk::before{background-color:var(--colorNeutralStroke1);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}"],h:[".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".f1ijtazh:hover{background-color:var(--colorNeutralBackground1);}",".fphbwmw:hover{cursor:not-allowed;}",".f19vpps7:hover .fui-Icon-filled{display:none;}",".fv5swzo:hover .fui-Icon-regular{display:inline;}",".f1q1x1ba:hover .fui-MenuItem__icon{color:var(--colorNeutralForegroundDisabled);}",".fcvwxyo:hover:active{color:var(--colorNeutralForegroundDisabled);}",".f1to34ca:hover:active{background-color:var(--colorNeutralBackground1);}"],f:[".ft33916:focus{color:var(--colorNeutralForegroundDisabled);}"],m:[["@media (forced-colors: active){.f1dcs8yz{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1kc2mi9:hover{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fk56vqo:hover .fui-MenuItem__icon{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ikwg0d:focus{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),Hj=e=>{const t=qj(),r=Ij(),n=Aj(),o=Mj(),i=Oj(),a=Lj();return e.root.className=G(di.root,r,e.disabled&&t.disabled,e.root.className),e.content&&(e.content.className=G(di.content,n,e.content.className)),e.checkmark&&(e.checkmark.className=G(di.checkmark,t.checkmark,e.checkmark.className)),e.secondaryContent&&(e.secondaryContent.className=G(di.secondaryContent,!e.disabled&&o,e.secondaryContent.className)),e.icon&&(e.icon.className=G(di.icon,i,e.icon.className)),e.submenuIndicator&&(e.submenuIndicator.className=G(di.submenuIndicator,a,e.submenuIndicator.className)),Dj(e),e},Jx=x.forwardRef((e,t)=>{const r=Rj(e,t);return Hj(r),De("useMenuItemStyles_unstable")(r),jj(r)});Jx.displayName="MenuItem";const Wj=(e,t)=>{const{findAllFocusable:r}=oi(),n=Uj(),o=zp(Tg),i=uu({circular:!0,ignoreDefaultKeydown:{Tab:o}});$j(e,n,o)&&console.warn("You are using both MenuList and Menu props, we recommend you to use Menu props when available");const a=x.useRef(null),l=x.useCallback((m,y)=>{const v=["menuitem","menuitemcheckbox","menuitemradio"];if(!a.current)return;const g=r(a.current,E=>E.hasAttribute("role")&&v.indexOf(E.getAttribute("role"))!==-1);let b=g.indexOf(y)+1;b===g.length&&(b=0);const k=g.map(E=>{var N;return(N=E.textContent)===null||N===void 0?void 0:N.charAt(0).toLowerCase()}),_=m.key.toLowerCase(),w=(E,N)=>{for(let C=E;C-1&&g[S].focus()},[r]);var s;const[c,u]=Rn({state:(s=e.checkedValues)!==null&&s!==void 0?s:o?n.checkedValues:void 0,defaultState:e.defaultCheckedValues,initialState:{}});var f;const d=(f=e.onCheckedValueChange)!==null&&f!==void 0?f:o?n.onCheckedValueChange:void 0,h=se((m,y,v,g)=>{const k=[...(c==null?void 0:c[y])||[]];g?k.splice(k.indexOf(v),1):k.push(v),d==null||d(m,{name:y,checkedItems:k}),u(_=>({..._,[y]:k}))}),p=se((m,y,v)=>{const g=[v];u(b=>({...b,[y]:g})),d==null||d(m,{name:y,checkedItems:g})});return{components:{root:"div"},root:be(Re("div",{ref:nr(t,a),role:"menu","aria-labelledby":n.triggerId,...i,...e}),{elementType:"div"}),hasIcons:n.hasIcons||!1,hasCheckmarks:n.hasCheckmarks||!1,checkedValues:c,hasMenuContext:o,setFocusByFirstCharacter:l,selectRadio:p,toggleCheckbox:h}},Uj=()=>{const e=Ve(i=>i.checkedValues),t=Ve(i=>i.onCheckedValueChange),r=Ve(i=>i.triggerId),n=Ve(i=>i.hasIcons),o=Ve(i=>i.hasCheckmarks);return{checkedValues:e,onCheckedValueChange:t,triggerId:r,hasIcons:n,hasCheckmarks:o}},$j=(e,t,r)=>{let n=!1;for(const o in t)e[o]&&(n=!0);return r&&n},Vj=(e,t)=>U(wj,{value:t.menuList,children:U(e.root,{})});function Gj(e){const{checkedValues:t,hasCheckmarks:r,hasIcons:n,selectRadio:o,setFocusByFirstCharacter:i,toggleCheckbox:a}=e;return{menuList:{checkedValues:t,hasCheckmarks:r,hasIcons:n,selectRadio:o,setFocusByFirstCharacter:i,toggleCheckbox:a}}}const Kj={root:"fui-MenuList"},Xj=K({root:{mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",i8kkvl:"f16mnhsx",Belr9w4:"fbi42co"},hasMenuContext:{Bqenvij:"f1l02sjl"}},{d:[".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".f16mnhsx{column-gap:2px;}",".fbi42co{row-gap:2px;}",".f1l02sjl{height:100%;}"]}),Zj=e=>{const t=Xj();return e.root.className=G(Kj.root,t.root,e.hasMenuContext&&t.hasMenuContext,e.root.className),e},Yx=x.forwardRef((e,t)=>{const r=Wj(e,t),n=Gj(r);return Zj(r),De("useMenuListStyles_unstable")(r),Vj(r,n)});Yx.displayName="MenuList";const Qj=(e,t)=>{const r=Ve(k=>k.menuPopoverRef),n=Ve(k=>k.setOpen),o=Ve(k=>k.open),i=Ve(k=>k.openOnHover),a=Ve(k=>k.triggerRef),l=Rg(),s=x.useRef(!0),c=x.useRef(0),u=BP(),{dir:f}=ht(),d=f==="ltr"?xw:Sw,h=x.useCallback(k=>{k&&k.addEventListener("mouseover",_=>{s.current&&(s.current=!1,xj(r.current,_),c.current=setTimeout(()=>s.current=!0,250))})},[r,c]);x.useEffect(()=>{},[]);var p;const m=(p=Ve(k=>k.inline))!==null&&p!==void 0?p:!1,y=Ve(k=>k.mountNode),v=be(Re("div",{role:"presentation",...u,...e,ref:nr(t,r,h)}),{elementType:"div"}),{onMouseEnter:g,onKeyDown:b}=v;return v.onMouseEnter=se(k=>{(i||l)&&n(k,{open:!0,keyboard:!1,type:"menuPopoverMouseEnter",event:k}),g==null||g(k)}),v.onKeyDown=se(k=>{const _=k.key;if(_===fu||l&&_===d){var w;o&&(!((w=r.current)===null||w===void 0)&&w.contains(k.target))&&!k.isDefaultPrevented()&&(n(k,{open:!1,keyboard:!0,type:"menuPopoverKeyDown",event:k}),k.preventDefault())}if(_===tE&&(n(k,{open:!1,keyboard:!0,type:"menuPopoverKeyDown",event:k}),!l)){var S;(S=a.current)===null||S===void 0||S.focus()}b==null||b(k)}),{inline:m,mountNode:y,components:{root:"div"},root:v}},Jj={root:"fui-MenuPopover"},Yj=K({root:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],De3pzq:"fxugw4r",sj55zd:"f19n0e5",B7ck84d:"f1ewtqcl",Bf4jedk:"fl8fusi",B2u0y6b:"f1kaai3v",B68tc82:"f1p9o1ba",a9b677:"f1ahpp82",E5pizo:"f1hg901r",z8tnut:"f10ra9hq",z189sj:["f8wuabp","fycuoez"],Byoj8tv:"f1y2xyjm",uwmqm3:["fycuoez","f8wuabp"],B4j52fo:"f5ogflp",Bekrc4i:["f1hqa2wf","finvdd3"],Bn0qgzm:"f1f09k3d",ibv6hh:["finvdd3","f1hqa2wf"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B93otf3:"f18k4bn6",vin17d:"fo1kyvf",Ezkn3b:"fetxo7e",nyiy2g:"f8x1vz1",swvrvq:"f8g0anz",Bkovbt3:"fezwn9i",hgjdhn:"fz5efge",fsy9dk:"f1ydixl4",B3ogreh:"f8dgqj5",jv49x5:"fnyfnr8",Bk7o48c:"fgw77r4",Bv12yb3:"ftje0s4",z0t1cu:"fi19xcv",Bks05zx:"f1mzajhk",Bvtglag:"fjp4h9y"}},{d:[".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ewtqcl{box-sizing:border-box;}",".fl8fusi{min-width:138px;}",".f1kaai3v{max-width:300px;}",".f1p9o1ba{overflow-x:hidden;}",".f1ahpp82{width:max-content;}",".f1hg901r{box-shadow:var(--shadow16);}",".f10ra9hq{padding-top:4px;}",".f8wuabp{padding-right:4px;}",".fycuoez{padding-left:4px;}",".f1y2xyjm{padding-bottom:4px;}",".f5ogflp{border-top-width:1px;}",".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".f1f09k3d{border-bottom-width:1px;}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f18k4bn6{animation-composition:accumulate;}",".fo1kyvf{animation-duration:var(--durationSlower);}",".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",".f8x1vz1{--fui-positioning-slide-distance-x:0px;}",".f8g0anz{--fui-positioning-slide-distance-y:10px;}",".fezwn9i[data-popper-placement^=right]{--fui-positioning-slide-distance-x:-10px;}",".fz5efge[data-popper-placement^=right]{--fui-positioning-slide-distance-y:0px;}",".f1ydixl4[data-popper-placement^=bottom]{--fui-positioning-slide-distance-x:0px;}",".f8dgqj5[data-popper-placement^=bottom]{--fui-positioning-slide-distance-y:-10px;}",".fnyfnr8[data-popper-placement^=left]{--fui-positioning-slide-distance-x:10px;}",".fgw77r4[data-popper-placement^=left]{--fui-positioning-slide-distance-y:0px;}",".ftje0s4{animation-name:f5j8bii,f79suad;}"],k:["@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}","@keyframes f79suad{from{transform:translate(var(--fui-positioning-slide-distance-x), var(--fui-positioning-slide-distance-y));}}"],m:[["@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",{m:"(prefers-reduced-motion)"}],["@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",{m:"(prefers-reduced-motion)"}]],t:["@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"]}),e8=e=>{const t=Yj();return e.root.className=G(Jj.root,t.root,e.root.className),e},t8=e=>e.inline?U(e.root,{}):U(Tu,{mountNode:e.mountNode,children:U(e.root,{})}),e2=x.forwardRef((e,t)=>{const r=Qj(e,t);return e8(r),De("useMenuPopoverStyles_unstable")(r),t8(r)});e2.displayName="MenuPopover";const r8=e=>{const{children:t,disableButtonEnhancement:r=!1}=e,n=Ve(R=>R.triggerRef),o=Ve(R=>R.menuPopoverRef),i=Ve(R=>R.setOpen),a=Ve(R=>R.open),l=Ve(R=>R.triggerId),s=Ve(R=>R.openOnHover),c=Ve(R=>R.openOnContext),u=_P(),f=Rg(),{findFirstFocusable:d}=oi(),h=x.useCallback(()=>{const R=d(o.current);R==null||R.focus()},[d,o]),p=x.useRef(!1),m=x.useRef(!1),{dir:y}=ht(),v=y==="ltr"?Sw:xw,g=wp(t),b=R=>{hi(R)||R.isDefaultPrevented()||c&&(R.preventDefault(),i(R,{open:!0,keyboard:!1,type:"menuTriggerContextMenu",event:R}))},k=R=>{hi(R)||c||(i(R,{open:!a,keyboard:p.current,type:"menuTriggerClick",event:R}),p.current=!1)},_=R=>{if(hi(R))return;const re=R.key;!c&&(f&&re===v||!f&&re===rE)&&i(R,{open:!0,keyboard:!0,type:"menuTriggerKeyDown",event:R}),re===fu&&!f&&i(R,{open:!1,keyboard:!0,type:"menuTriggerKeyDown",event:R}),a&&re===v&&f&&h()},w=R=>{hi(R)||s&&m.current&&i(R,{open:!0,keyboard:!1,type:"menuTriggerMouseEnter",event:R})},S=R=>{hi(R)||s&&!m.current&&(i(R,{open:!0,keyboard:!1,type:"menuTriggerMouseMove",event:R}),m.current=!0)},E=R=>{hi(R)||s&&i(R,{open:!1,keyboard:!1,type:"menuTriggerMouseLeave",event:R})},N={id:l,...u,...g==null?void 0:g.props,ref:nr(n,g==null?void 0:g.ref),onMouseEnter:se(Et(g==null?void 0:g.props.onMouseEnter,w)),onMouseLeave:se(Et(g==null?void 0:g.props.onMouseLeave,E)),onContextMenu:se(Et(g==null?void 0:g.props.onContextMenu,b)),onMouseMove:se(Et(g==null?void 0:g.props.onMouseMove,S))},C={"aria-haspopup":"menu","aria-expanded":!a&&!f?void 0:a,...N,onClick:se(Et(g==null?void 0:g.props.onClick,k)),onKeyDown:se(Et(g==null?void 0:g.props.onKeyDown,_))},L=Vi((g==null?void 0:g.type)==="button"||(g==null?void 0:g.type)==="a"?g.type:"div",C);return{isSubmenu:f,children:Dy(t,c?N:r?C:L)}},hi=e=>{const t=r=>r.hasAttribute("disabled")||r.hasAttribute("aria-disabled")&&r.getAttribute("aria-disabled")==="true";return Ko(e.target)&&t(e.target)?!0:Ko(e.currentTarget)&&t(e.currentTarget)},n8=e=>x.createElement(vj,{value:e.isSubmenu},e.children),jg=e=>{const t=r8(e);return n8(t)};jg.displayName="MenuTrigger";jg.isFluentTriggerComponent=!0;const t2=x.createContext(void 0),o8={},i8=t2.Provider,r2=()=>{var e;return(e=x.useContext(t2))!==null&&e!==void 0?e:o8},a8=(e,t)=>{const{animation:r,appearance:n}=r2(),{animation:o=r??"wave",appearance:i=n??"opaque"}=e,a=be(Re("div",{ref:t,role:"progressbar","aria-busy":!0,"aria-label":"Loading Content",...e}),{elementType:"div"});return{animation:o,appearance:i,components:{root:"div"},root:a}},l8=(e,t)=>U(i8,{value:t.skeletonGroup,children:U(e.root,{})}),s8={root:"fui-Skeleton"},c8=e=>(e.root.className=G(s8.root,e.root.className),e),u8=e=>{const{animation:t,appearance:r}=e;return{skeletonGroup:x.useMemo(()=>({animation:t,appearance:r}),[t,r])}},n2=x.forwardRef((e,t)=>{const r=a8(e,t),n=u8(r);return c8(r),l8(r,n)});n2.displayName="Skeleton";const f8=(e,t)=>{const{animation:r,appearance:n}=r2(),{animation:o=r??"wave",appearance:i=n??"opaque",size:a=16,shape:l="rectangle"}=e,s=be(Re("div",{ref:t,...e}),{elementType:"div"});return{appearance:i,animation:o,size:a,shape:l,components:{root:"div"},root:s}},d8=e=>U(e.root,{}),h8={root:"fui-SkeletonItem"},p8=K({root:{qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bkjc3bi:"f1qx3921",B8a6bjv:"fj9j8l8",Bpptf2m:"f1b6djjb",Bgh53k4:"f1dsdmen",w3vfg9:"f1cpbl36",vin17d:"f1a27w2r",Ezkn3b:"f452v7t",Gqtpxc:"f4akx1t",B3vm3ge:"f18p5put"},wave:{Bv12yb3:"fj20wtk",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},waveRtl:{Bv12yb3:"f105t0nc",Bcmaq0h:["f101ziu5","f152emvt"],Bpep1pd:"f9jxvrw"},pulse:{Bv12yb3:"fnm2mpv",vin17d:"f1iuewzk",De3pzq:"f1gjxg63"},translucent:{Bcmaq0h:["fss7axp","f4160cw"]},translucentPulse:{De3pzq:"f162mh4z"}},{d:[".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1qx3921{background-size:300% 100%;}",".fj9j8l8{background-position-x:center;}",".f1b6djjb{background-position-y:center;}",".f1dsdmen{background-attachment:fixed;}",".f1cpbl36{animation-iteration-count:infinite;}",".f1a27w2r{animation-duration:3s;}",".f452v7t{animation-timing-function:linear;}",".fj20wtk{animation-name:fma800j;}",`.f101ziu5{background-image:linear-gradient( + to right, + var(--colorNeutralStencil1) 0%, + var(--colorNeutralStencil2) 50%, + var(--colorNeutralStencil1) 100%);}`,`.f152emvt{background-image:linear-gradient( + to left, + var(--colorNeutralStencil1) 0%, + var(--colorNeutralStencil2) 50%, + var(--colorNeutralStencil1) 100%);}`,".f105t0nc{animation-name:fj9wi3p;}",".fnm2mpv{animation-name:f12o7gg6;}",".f1iuewzk{animation-duration:1s;}",".f1gjxg63{background-color:var(--colorNeutralStencil1);}",`.fss7axp{background-image:linear-gradient( + to right, + var(--colorNeutralStencil1Alpha) 0%, + var(--colorNeutralStencil2Alpha) 50%, + var(--colorNeutralStencil1Alpha) 100%);}`,`.f4160cw{background-image:linear-gradient( + to left, + var(--colorNeutralStencil1Alpha) 0%, + var(--colorNeutralStencil2Alpha) 50%, + var(--colorNeutralStencil1Alpha) 100%);}`,".f162mh4z{background-color:var(--colorNeutralStencil1Alpha);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f4akx1t{animation-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f18p5put{animation-iteration-count:1;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (forced-colors: active){.f9jxvrw{background-color:WindowText;}}",{m:"screen and (forced-colors: active)"}]],k:["@keyframes fma800j{from{background-position-x:300%;}to{background-position-x:0%;}}","@keyframes fj9wi3p{from{background-position-x:0%;}to{background-position-x:300%;}}","@keyframes f12o7gg6{0%{opacity:1;}50%{opacity:0.4;}100%{opacity:1;}}"]}),g8=K({8:{Bqenvij:"f1x82gua"},12:{Bqenvij:"fvblgha"},16:{Bqenvij:"fd461yt"},20:{Bqenvij:"fjamq6b"},24:{Bqenvij:"frvgh55"},28:{Bqenvij:"fxldao9"},32:{Bqenvij:"f1d2rq10"},36:{Bqenvij:"f8ljn23"},40:{Bqenvij:"fbhnoac"},48:{Bqenvij:"ff2sm71"},56:{Bqenvij:"fzki0ko"},64:{Bqenvij:"f16k9i2m"},72:{Bqenvij:"f1shusfg"},96:{Bqenvij:"fypu0ge"},120:{Bqenvij:"fjr5b71"},128:{Bqenvij:"fele2au"},root:{a9b677:"fly5x3f",Bbmb7ep:["fff7au0","f1bjk9e1"],Beyfa6y:["f1bjk9e1","fff7au0"],B7oj6ja:["fwsfkhu","f8wkphi"],Btl43ni:["f8wkphi","fwsfkhu"]}},{d:[".f1x82gua{height:8px;}",".fvblgha{height:12px;}",".fd461yt{height:16px;}",".fjamq6b{height:20px;}",".frvgh55{height:24px;}",".fxldao9{height:28px;}",".f1d2rq10{height:32px;}",".f8ljn23{height:36px;}",".fbhnoac{height:40px;}",".ff2sm71{height:48px;}",".fzki0ko{height:56px;}",".f16k9i2m{height:64px;}",".f1shusfg{height:72px;}",".fypu0ge{height:96px;}",".fjr5b71{height:120px;}",".fele2au{height:128px;}",".fly5x3f{width:100%;}",".fff7au0{border-bottom-right-radius:4px;}",".f1bjk9e1{border-bottom-left-radius:4px;}",".fwsfkhu{border-top-right-radius:4px;}",".f8wkphi{border-top-left-radius:4px;}"]}),m8=K({8:{a9b677:"f1o3cbw4",Bqenvij:"f1x82gua"},12:{a9b677:"frx94fk",Bqenvij:"fvblgha"},16:{a9b677:"fjw5fx7",Bqenvij:"fd461yt"},20:{a9b677:"f64fuq3",Bqenvij:"fjamq6b"},24:{a9b677:"fq4mcun",Bqenvij:"frvgh55"},28:{a9b677:"f1w9dchk",Bqenvij:"fxldao9"},32:{a9b677:"f1szoe96",Bqenvij:"f1d2rq10"},36:{a9b677:"fpdz1er",Bqenvij:"f8ljn23"},40:{a9b677:"feqmc2u",Bqenvij:"fbhnoac"},48:{a9b677:"f124akge",Bqenvij:"ff2sm71"},56:{a9b677:"f1u66zr1",Bqenvij:"fzki0ko"},64:{a9b677:"fa9ln6p",Bqenvij:"f16k9i2m"},72:{a9b677:"fhcae8x",Bqenvij:"f1shusfg"},96:{a9b677:"f1kyr2gn",Bqenvij:"fypu0ge"},120:{a9b677:"fwfqyga",Bqenvij:"fjr5b71"},128:{a9b677:"f1iksgmy",Bqenvij:"fele2au"}},{d:[".f1o3cbw4{width:8px;}",".f1x82gua{height:8px;}",".frx94fk{width:12px;}",".fvblgha{height:12px;}",".fjw5fx7{width:16px;}",".fd461yt{height:16px;}",".f64fuq3{width:20px;}",".fjamq6b{height:20px;}",".fq4mcun{width:24px;}",".frvgh55{height:24px;}",".f1w9dchk{width:28px;}",".fxldao9{height:28px;}",".f1szoe96{width:32px;}",".f1d2rq10{height:32px;}",".fpdz1er{width:36px;}",".f8ljn23{height:36px;}",".feqmc2u{width:40px;}",".fbhnoac{height:40px;}",".f124akge{width:48px;}",".ff2sm71{height:48px;}",".f1u66zr1{width:56px;}",".fzki0ko{height:56px;}",".fa9ln6p{width:64px;}",".f16k9i2m{height:64px;}",".fhcae8x{width:72px;}",".f1shusfg{height:72px;}",".f1kyr2gn{width:96px;}",".fypu0ge{height:96px;}",".fwfqyga{width:120px;}",".fjr5b71{height:120px;}",".f1iksgmy{width:128px;}",".fele2au{height:128px;}"]}),v8=K({root:{Bbmb7ep:["fqgqgel","fchfifz"],Beyfa6y:["fchfifz","fqgqgel"],B7oj6ja:["fc7b1hi","f1dpx5h9"],Btl43ni:["f1dpx5h9","fc7b1hi"]}},{d:[".fqgqgel{border-bottom-right-radius:50%;}",".fchfifz{border-bottom-left-radius:50%;}",".fc7b1hi{border-top-right-radius:50%;}",".f1dpx5h9{border-top-left-radius:50%;}"]}),b8=e=>{const{animation:t,appearance:r,size:n,shape:o}=e,{dir:i}=ht(),a=p8(),l=g8(),s=m8(),c=v8();return e.root.className=G(h8.root,a.root,t==="wave"&&a.wave,t==="wave"&&i==="rtl"&&a.waveRtl,t==="pulse"&&a.pulse,r==="translucent"&&a.translucent,t==="pulse"&&r==="translucent"&&a.translucentPulse,o==="rectangle"&&l.root,o==="rectangle"&&l[n],o==="square"&&s[n],o==="circle"&&c.root,o==="circle"&&s[n],e.root.className),e},$a=x.forwardRef((e,t)=>{const r=f8(e,t);return b8(r),d8(r)});$a.displayName="SkeletonItem";const y8={appearance:"transparent",reserveSelectedTabSpace:!0,selectTabOnFocus:!1,disabled:!1,selectedValue:void 0,onRegister:()=>{},onUnregister:()=>{},onSelect:()=>{},getRegisteredTabs:()=>({registeredTabs:{}}),size:"medium",vertical:!1},o2=ua(void 0),w8=o2.Provider,Ar=e=>fa(o2,(t=y8)=>e(t)),k8=(e,t)=>{const{content:r,disabled:n=!1,icon:o,onClick:i,onFocus:a,value:l}=e,s=Ar(C=>C.appearance),c=Ar(C=>C.reserveSelectedTabSpace),u=Ar(C=>C.selectTabOnFocus),f=Ar(C=>C.disabled),d=Ar(C=>C.selectedValue===l),h=Ar(C=>C.onRegister),p=Ar(C=>C.onUnregister),m=Ar(C=>C.onSelect),y=Ar(C=>C.size),v=Ar(C=>!!C.vertical),g=f||n,b=x.useRef(null),k=C=>m(C,{value:l}),_=se(Et(i,k)),w=se(Et(a,k));x.useEffect(()=>(h({value:l,ref:b}),()=>{p({value:l,ref:b})}),[h,p,b,l]);const S=Te(o,{elementType:"span"}),E=be(r,{defaultProps:{children:e.children},elementType:"span"}),N=!!(S!=null&&S.children&&!E.children);return{components:{root:"button",icon:"span",content:"span",contentReservedSpace:"span"},root:be(Re("button",{ref:nr(t,b),role:"tab",type:"button","aria-selected":g?void 0:`${d}`,...e,disabled:g,onClick:_,onFocus:u?w:a}),{elementType:"button"}),icon:S,iconOnly:N,content:E,contentReservedSpace:Te(r,{renderByDefault:!d&&!N&&c,defaultProps:{children:e.children},elementType:"span"}),appearance:s,disabled:g,selected:d,size:y,value:l,vertical:v}},x8=e=>At(e.root,{children:[e.icon&&U(e.icon,{}),!e.iconOnly&&U(e.content,{}),e.contentReservedSpace&&U(e.contentReservedSpace,{})]}),U1={offsetVar:"--fui-Tab__indicator--offset",scaleVar:"--fui-Tab__indicator--scale"},S8=K({base:{B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9"},animated:{Ba2ppi3:"fhwpy7i",F2fol1:"f6zz20j",B1dyfl9:"f1ai4sc1",B0vmy72:"f9qxlq5",u9bimw:"f1aql376"},horizontal:{sjv3b2:["fug4aj8","f1i5xzg7"],b1kco5:"f1q7ujh"},vertical:{sjv3b2:"f1hqboyk",b1kco5:"f1dxupa6"}},{d:[".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".fhwpy7i::after{transition-property:transform;}",".f6zz20j::after{transition-duration:var(--durationSlow);}",".f1ai4sc1::after{transition-timing-function:var(--curveDecelerateMax);}",".fug4aj8::after{transform-origin:left;}",".f1i5xzg7::after{transform-origin:right;}",".f1q7ujh::after{transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));}",".f1hqboyk::after{transform-origin:top;}",".f1dxupa6::after{transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));}"],m:[["@media (prefers-reduced-motion: reduce){.f9qxlq5::after{transition-property:none;}}",{m:"(prefers-reduced-motion: reduce)"}],["@media (prefers-reduced-motion: reduce){.f1aql376::after{transition-duration:0.01ms;}}",{m:"(prefers-reduced-motion: reduce)"}]]}),_8=e=>{if(e){var t;const r=((t=e.parentElement)===null||t===void 0?void 0:t.getBoundingClientRect())||{x:0,y:0,width:0,height:0},n=e.getBoundingClientRect();return{x:n.x-r.x,y:n.y-r.y,width:n.width,height:n.height}}},$1=(e,t)=>{var r;const n=t!=null?(r=e[JSON.stringify(t)])===null||r===void 0?void 0:r.ref.current:void 0;return n?_8(n):void 0},B8=e=>{const{disabled:t,selected:r,vertical:n}=e,o=S8(),[i,a]=x.useState(),[l,s]=x.useState({offset:0,scale:1}),c=Ar(d=>d.getRegisteredTabs);if(x.useEffect(()=>{i&&s({offset:0,scale:1})},[i]),r){const{previousSelectedValue:d,selectedValue:h,registeredTabs:p}=c();if(d&&i!==d){const m=$1(p,d),y=$1(p,h);if(y&&m){const v=n?m.y-y.y:m.x-y.x,g=n?m.height/y.height:m.width/y.width;s({offset:v,scale:g}),a(d)}}}else i&&a(void 0);if(t)return e;const u=l.offset===0&&l.scale===1;e.root.className=G(e.root.className,r&&o.base,r&&u&&o.animated,r&&(n?o.vertical:o.horizontal));const f={[U1.offsetVar]:`${l.offset}px`,[U1.scaleVar]:`${l.scale}`};return e.root.style={...f,...e.root.style},e},$f={root:"fui-Tab",icon:"fui-Tab__icon",content:"fui-Tab__content"},C8={content:"fui-Tab__content--reserved-space"},P8=K({base:{Bt984gj:"f122n59",g2u3we:"fwhevhj",h3c5rm:["f61n433","f1q8l70w"],B9xav0g:"fv1dfc8",zhjwy3:["f1q8l70w","f61n433"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"],B4j52fo:"fre7gi1",Bekrc4i:["f1358rze","f1rvrf73"],Bn0qgzm:"fqdk4by",ibv6hh:["f1rvrf73","f1358rze"],Bceei9c:"f1k6fduh",mc9l5x:"f13qh94s",Bnnss6s:"fi64zpg",Bxotwcr:"f1u07yai",Budl1dq:"frn2hmy",wkccdc:"f1olsevy",Bahqtrf:"fk6fouc",Bg96gwp:"f1i3iumi",oeaueh:"f1s6fcnf",qhf8xq:"f10pi13n",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",B9bfxx9:"f1cxpek8"},horizontal:{Brf1p80:"f4d9j23"},vertical:{Brf1p80:"f1s9ku6b"},smallHorizontal:{i8kkvl:"f14mj54c",z8tnut:"fp2oml8",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"f1tdddsa",uwmqm3:["fk8j09s","fdw0yi8"]},smallVertical:{i8kkvl:"f14mj54c",z8tnut:"fclwglc",z189sj:["fdw0yi8","fk8j09s"],Byoj8tv:"fywfov9",uwmqm3:["fk8j09s","fdw0yi8"]},mediumHorizontal:{i8kkvl:"f1rjii52",z8tnut:"f5yzyt",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fx3omr",uwmqm3:["f1ng84yb","f11gcy0p"]},mediumVertical:{i8kkvl:"f1rjii52",z8tnut:"fp2oml8",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f1tdddsa",uwmqm3:["f1ng84yb","f11gcy0p"]},largeHorizontal:{i8kkvl:"f1rjii52",z8tnut:"fikn0iw",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"fdxej3c",uwmqm3:["f1ng84yb","f11gcy0p"]},largeVertical:{i8kkvl:"f1rjii52",z8tnut:"f1kwiid1",z189sj:["f11gcy0p","f1ng84yb"],Byoj8tv:"f5b47ha",uwmqm3:["f1ng84yb","f11gcy0p"]},transparent:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",ecr2s2:"fophhak",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},subtle:{De3pzq:"fhovq9v",Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd",Bptxc3x:"fmmjozx",B076xvk:"f1mfqf41",q9r9w5:"f10aiid4",cl4aha:"fpkze5g",Bk452zc:"f149wc3x",a4hkcw:"fjioou7"},disabled:{De3pzq:"f1c21dwh",Bptxc3x:"fato7r6",cl4aha:"fao1bnu",Bceei9c:"fdrzuqr"},selected:{Bptxc3x:"f1cadz5z",B076xvk:"f1ck17l",q9r9w5:"f42ak0g",cl4aha:"ffplhdr",Bk452zc:"ffth601",a4hkcw:"fhklyu5"}},{d:[".f122n59{align-items:center;}",".fwhevhj{border-top-color:none;}",".f61n433{border-right-color:none;}",".f1q8l70w{border-left-color:none;}",".fv1dfc8{border-bottom-color:none;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".fre7gi1{border-top-width:0;}",".f1358rze{border-right-width:0;}",".f1rvrf73{border-left-width:0;}",".fqdk4by{border-bottom-width:0;}",".f1k6fduh{cursor:pointer;}",".f13qh94s{display:grid;}",".fi64zpg{flex-shrink:0;}",".f1u07yai{grid-auto-flow:column;}",".frn2hmy{grid-template-columns:auto;}",".f1olsevy{grid-template-rows:auto;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1s6fcnf{outline-style:none;}",".f10pi13n{position:relative;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cxpek8{text-transform:none;}",".f4d9j23{justify-content:center;}",".f1s9ku6b{justify-content:start;}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".fclwglc{padding-top:var(--spacingVerticalXXS);}",".fywfov9{padding-bottom:var(--spacingVerticalXXS);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f5yzyt{padding-top:var(--spacingVerticalM);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".fx3omr{padding-bottom:var(--spacingVerticalM);}",".fikn0iw{padding-top:var(--spacingVerticalL);}",".fdxej3c{padding-bottom:var(--spacingVerticalL);}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fmmjozx .fui-Tab__icon{color:var(--colorNeutralForeground2);}",".fpkze5g .fui-Tab__content{color:var(--colorNeutralForeground2);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fato7r6 .fui-Tab__icon{color:var(--colorNeutralForegroundDisabled);}",".fao1bnu .fui-Tab__content{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f1cadz5z .fui-Tab__icon{color:var(--colorCompoundBrandForeground1);}",".ffplhdr .fui-Tab__content{color:var(--colorNeutralForeground1);}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1mfqf41:hover .fui-Tab__icon{color:var(--colorNeutralForeground2Hover);}",".f149wc3x:hover .fui-Tab__content{color:var(--colorNeutralForeground2Hover);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1ck17l:hover .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Hover);}",".ffth601:hover .fui-Tab__content{color:var(--colorNeutralForeground1Hover);}"],a:[".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f10aiid4:active .fui-Tab__icon{color:var(--colorNeutralForeground2Pressed);}",".fjioou7:active .fui-Tab__content{color:var(--colorNeutralForeground2Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}",".f42ak0g:active .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Pressed);}",".fhklyu5:active .fui-Tab__content{color:var(--colorNeutralForeground1Pressed);}"]}),E8=K({base:{B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bn4voq9:"f1p7hgxw",Bfpq7zp:"f1way5bb",g9k6zt:"f9znhxp",j6ew2k:["fqa318h","fqa318h"],Bhxq17a:"f1vjpng2"}},{d:[".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",".f1p7hgxw[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);}",".f1way5bb[data-fui-focus-visible]{outline-color:transparent;}",".f9znhxp[data-fui-focus-visible]{outline-style:solid;}",".fqa318h[data-fui-focus-visible]{box-shadow:var(--shadow4),0 0 0 var(--strokeWidthThick) var(--colorStrokeFocus2);}",".f1vjpng2[data-fui-focus-visible]{z-index:1;}"]}),z8=K({base:{az7l2e:"fhw179n",Bv4n3vi:["f10y1uxy","f6aiuy0"],vqofr:["f6aiuy0","f10y1uxy"],B0uxbk8:["f1kfpfnu","f1dx5wco"],Bgqb9hq:["f1dx5wco","f1kfpfnu"],amg5m6:"f1kmhr4c",zkfqfm:"fl1ydde",Bkydozb:"f1y7maxz",vzq8l0:["f105swax","fscdmel"],Bka2azo:["fscdmel","f105swax"],Br4ovkg:["f1tkcw1w","f1u11x8o"],csmgbd:["f1u11x8o","f1tkcw1w"],y36c18:"f16cxu0",B1ctymy:"f1nwgacf",Bgvrrv0:"f15ovonk",ddr6p5:"fvje46l"},disabled:{az7l2e:"f1ut20fw",Bkydozb:"fhrzcfn"},smallHorizontal:{lawp4y:"fchca7p",Baz25je:"f1r53b5e",Fbdkly:["f1s6rxz5","fo35v8s"],mdwyqc:["fo35v8s","f1s6rxz5"]},smallVertical:{lawp4y:"fze4zud",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"fdp32p8",Ccq8qp:"f1aij3q"},mediumHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},mediumVertical:{lawp4y:"f17jracn",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f117lcb2",Ccq8qp:"f1aij3q"},largeHorizontal:{lawp4y:"fchca7p",Baz25je:"f1s2r9ax",Fbdkly:["f1o0nnkk","fxb7rol"],mdwyqc:["fxb7rol","f1o0nnkk"]},largeVertical:{lawp4y:"fel9d3z",Fbdkly:["f1fzr1x6","f1f351id"],Bciustq:"f6vqlre",Ccq8qp:"f1aij3q"}},{h:[".fhw179n:hover::before{background-color:var(--colorNeutralStroke1Hover);}",".f10y1uxy:hover::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".f6aiuy0:hover::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1kfpfnu:hover::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1dx5wco:hover::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f1kmhr4c:hover::before{content:"";}',".fl1ydde:hover::before{position:absolute;}",".f1ut20fw:hover::before{background-color:var(--colorTransparentStroke);}"],a:[".f1y7maxz:active::before{background-color:var(--colorNeutralStroke1Pressed);}",".f105swax:active::before{border-bottom-right-radius:var(--borderRadiusCircular);}",".fscdmel:active::before{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1tkcw1w:active::before{border-top-right-radius:var(--borderRadiusCircular);}",".f1u11x8o:active::before{border-top-left-radius:var(--borderRadiusCircular);}",'.f16cxu0:active::before{content:"";}',".f1nwgacf:active::before{position:absolute;}",".fhrzcfn:active::before{background-color:var(--colorTransparentStroke);}"],m:[["@media (forced-colors: active){.f15ovonk:hover::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fvje46l:active::before{background-color:Highlight;}}",{m:"(forced-colors: active)"}]],d:[".fchca7p::before{bottom:0;}",".f1r53b5e::before{height:var(--strokeWidthThick);}",".f1s6rxz5::before{left:var(--spacingHorizontalSNudge);}",".fo35v8s::before{right:var(--spacingHorizontalSNudge);}",".fze4zud::before{bottom:var(--spacingVerticalXS);}",".f1fzr1x6::before{left:0;}",".f1f351id::before{right:0;}",".fdp32p8::before{top:var(--spacingVerticalXS);}",".f1aij3q::before{width:var(--strokeWidthThicker);}",".f1s2r9ax::before{height:var(--strokeWidthThicker);}",".f1o0nnkk::before{left:var(--spacingHorizontalM);}",".fxb7rol::before{right:var(--spacingHorizontalM);}",".f17jracn::before{bottom:var(--spacingVerticalS);}",".f117lcb2::before{top:var(--spacingVerticalS);}",".fel9d3z::before{bottom:var(--spacingVerticalMNudge);}",".f6vqlre::before{top:var(--spacingVerticalMNudge);}"]}),T8=K({base:{Bjyk6c5:"f1rp0jgh",B3778ie:["fprarqb","f14vs0nd"],d9w3h3:["f14vs0nd","fprarqb"],Bl18szs:["f1gtfqs9","f18zvfd9"],B4j8arr:["f18zvfd9","f1gtfqs9"],Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9"},selected:{Bjyk6c5:"f1ksivud",Glksuk:"f1eytvvh",Blzl0y7:"fuaa9s",f7digc:"fy7ktjt",Biqphg1:"f16tp0gf",Bntoloa:"fj0yp7j"},disabled:{Bjyk6c5:"f13lkzet"},smallHorizontal:{By385i5:"fo72kxq",Dlnsje:"f9bb2ob",Eqx8gd:["f1q70ajw","f18rbzdx"],B1piin3:["f18rbzdx","f1q70ajw"]},smallVertical:{By385i5:"fqbue9b",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fk1klkt",a2br6o:"f1o25lip"},mediumHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},mediumVertical:{By385i5:"fipylg0",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"fqchiol",a2br6o:"f1o25lip"},largeHorizontal:{By385i5:"fo72kxq",Dlnsje:"f1vx7lu8",Eqx8gd:["fna7m5n","f1oxpfwv"],B1piin3:["f1oxpfwv","fna7m5n"]},largeVertical:{By385i5:"f1w7dm5g",Eqx8gd:["f1n6gb5g","f15yvnhg"],bn5sak:"f1p6em4m",a2br6o:"f1o25lip"}},{d:[".f1rp0jgh::after{background-color:var(--colorTransparentStroke);}",".fprarqb::after{border-bottom-right-radius:var(--borderRadiusCircular);}",".f14vs0nd::after{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1gtfqs9::after{border-top-right-radius:var(--borderRadiusCircular);}",".f18zvfd9::after{border-top-left-radius:var(--borderRadiusCircular);}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1ksivud::after{background-color:var(--colorCompoundBrandStroke);}",".f13lkzet::after{background-color:var(--colorNeutralForegroundDisabled);}",".fo72kxq::after{bottom:0;}",".f9bb2ob::after{height:var(--strokeWidthThick);}",".f1q70ajw::after{left:var(--spacingHorizontalSNudge);}",".f18rbzdx::after{right:var(--spacingHorizontalSNudge);}",".fqbue9b::after{bottom:var(--spacingVerticalXS);}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fk1klkt::after{top:var(--spacingVerticalXS);}",".f1o25lip::after{width:var(--strokeWidthThicker);}",".f1vx7lu8::after{height:var(--strokeWidthThicker);}",".fna7m5n::after{left:var(--spacingHorizontalM);}",".f1oxpfwv::after{right:var(--spacingHorizontalM);}",".fipylg0::after{bottom:var(--spacingVerticalS);}",".fqchiol::after{top:var(--spacingVerticalS);}",".f1w7dm5g::after{bottom:var(--spacingVerticalMNudge);}",".f1p6em4m::after{top:var(--spacingVerticalMNudge);}"],h:[".f1eytvvh:hover::after{background-color:var(--colorCompoundBrandStrokeHover);}"],a:[".fuaa9s:active::after{background-color:var(--colorCompoundBrandStrokePressed);}"],m:[["@media (forced-colors: active){.fy7ktjt::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16tp0gf:hover::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fj0yp7j:active::after{background-color:ButtonText;}}",{m:"(forced-colors: active)"}]]}),N8=K({base:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94",Bt984gj:"f122n59",mc9l5x:"ftuwxu6",Brf1p80:"f4d9j23",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",D0sxk3:"f16u1re",t6yez3:"f8bsbmo"},small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},medium:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3"},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun"},selected:{D0sxk3:"fxoiby5",t6yez3:"f15q0o9g"}},{d:[".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".f4d9j23{justify-content:center;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f16u1re .fui-Icon-filled{display:none;}",".f8bsbmo .fui-Icon-regular{display:inline;}",".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".fxoiby5 .fui-Icon-filled{display:inline;}",".f15q0o9g .fui-Icon-regular{display:none;}"]}),R8=K({base:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",z8tnut:"fztplxc",z189sj:["ffczdla","fgiv446"],Byoj8tv:"f9g1xly",uwmqm3:["fgiv446","ffczdla"]},selected:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"fl43uef",Bg96gwp:"f1i3iumi"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k"},largeSelected:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},noIconBefore:{Br312pm:"fwpfdsa",Ijaq50:"f16hsg94"},iconBefore:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94"},placeholder:{Bcdw1i0:"fd7fpy0"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fztplxc{padding-top:var(--spacingVerticalNone);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".f9g1xly{padding-bottom:var(--spacingVerticalNone);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fwpfdsa{grid-column-start:1;}",".f16hsg94{grid-row-start:1;}",".fd46tj4{grid-column-start:2;}",".fd7fpy0{visibility:hidden;}"]}),j8=e=>{const t=P8(),r=E8(),n=z8(),o=T8(),i=N8(),a=R8(),{appearance:l,disabled:s,selected:c,size:u,vertical:f}=e;return e.root.className=G($f.root,t.base,f?t.vertical:t.horizontal,u==="small"&&(f?t.smallVertical:t.smallHorizontal),u==="medium"&&(f?t.mediumVertical:t.mediumHorizontal),u==="large"&&(f?t.largeVertical:t.largeHorizontal),r.base,!s&&l==="subtle"&&t.subtle,!s&&l==="transparent"&&t.transparent,!s&&c&&t.selected,s&&t.disabled,n.base,u==="small"&&(f?n.smallVertical:n.smallHorizontal),u==="medium"&&(f?n.mediumVertical:n.mediumHorizontal),u==="large"&&(f?n.largeVertical:n.largeHorizontal),s&&n.disabled,c&&o.base,c&&!s&&o.selected,c&&u==="small"&&(f?o.smallVertical:o.smallHorizontal),c&&u==="medium"&&(f?o.mediumVertical:o.mediumHorizontal),c&&u==="large"&&(f?o.largeVertical:o.largeHorizontal),c&&s&&o.disabled,e.root.className),e.icon&&(e.icon.className=G($f.icon,i.base,i[u],c&&i.selected,e.icon.className)),e.contentReservedSpace&&(e.contentReservedSpace.className=G(C8.content,a.base,u==="large"?a.largeSelected:a.selected,e.icon?a.iconBefore:a.noIconBefore,a.placeholder,e.content.className),e.contentReservedSpaceClassName=e.contentReservedSpace.className),e.content.className=G($f.content,a.base,u==="large"&&a.large,c&&(u==="large"?a.largeSelected:a.selected),e.icon?a.iconBefore:a.noIconBefore,e.content.className),B8(e),e},i2=x.forwardRef((e,t)=>{const r=k8(e,t);return j8(r),De("useTabStyles_unstable")(r),x8(r)});i2.displayName="Tab";const F8=(e,t)=>{const{appearance:r="transparent",reserveSelectedTabSpace:n=!0,disabled:o=!1,onTabSelect:i,selectTabOnFocus:a=!1,size:l="medium",vertical:s=!1}=e,c=x.useRef(null),u=uu({circular:!0,axis:s?"vertical":"horizontal",memorizeCurrent:!0}),[f,d]=Rn({state:e.selectedValue,defaultState:e.defaultSelectedValue,initialState:void 0}),h=x.useRef(void 0),p=x.useRef(void 0);x.useEffect(()=>{p.current=h.current,h.current=f},[f]);const m=se((k,_)=>{d(_.value),i==null||i(k,_)}),y=x.useRef({}),v=se(k=>{y.current[JSON.stringify(k.value)]=k}),g=se(k=>{delete y.current[JSON.stringify(k.value)]}),b=x.useCallback(()=>({selectedValue:h.current,previousSelectedValue:p.current,registeredTabs:y.current}),[]);return{components:{root:"div"},root:be(Re("div",{ref:nr(t,c),role:"tablist","aria-orientation":s?"vertical":"horizontal",...u,...e}),{elementType:"div"}),appearance:r,reserveSelectedTabSpace:n,disabled:o,selectTabOnFocus:a,selectedValue:f,size:l,vertical:s,onRegister:v,onUnregister:g,onSelect:m,getRegisteredTabs:b}},D8=(e,t)=>U(e.root,{children:U(w8,{value:t.tabList,children:e.root.children})}),I8={root:"fui-TabList"},A8=K({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",Bnnss6s:"fi64zpg",Eh141a:"flvyvdh",qhf8xq:"f10pi13n"},horizontal:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1063pyq"},vertical:{Bt984gj:"f1q9h2pe",Beiy3e4:"f1vx9l62"}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".fi64zpg{flex-shrink:0;}",".flvyvdh{flex-wrap:nowrap;}",".f10pi13n{position:relative;}",".f1q9h2pe{align-items:stretch;}",".f1vx9l62{flex-direction:column;}"]}),M8=e=>{const{vertical:t}=e,r=A8();return e.root.className=G(I8.root,r.root,t?r.vertical:r.horizontal,e.root.className),e};function O8(e){const{appearance:t,reserveSelectedTabSpace:r,disabled:n,selectTabOnFocus:o,selectedValue:i,onRegister:a,onUnregister:l,onSelect:s,getRegisteredTabs:c,size:u,vertical:f}=e;return{tabList:{appearance:t,reserveSelectedTabSpace:r,disabled:n,selectTabOnFocus:o,selectedValue:i,onSelect:s,onRegister:a,onUnregister:l,getRegisteredTabs:c,size:u,vertical:f}}}const a2=x.forwardRef((e,t)=>{const r=F8(e,t),n=O8(r);return M8(r),De("useTabListStyles_unstable")(r),D8(r,n)});a2.displayName="TabList";const L8=(e,t)=>{const{wrap:r,truncate:n,block:o,italic:i,underline:a,strikethrough:l,size:s,font:c,weight:u,align:f}=e;return{align:f??"start",block:o??!1,font:c??"base",italic:i??!1,size:s??300,strikethrough:l??!1,truncate:n??!1,underline:a??!1,weight:u??"regular",wrap:r??!0,components:{root:"span"},root:be(Re("span",{ref:t,...e}),{elementType:"span"})}},q8=e=>U(e.root,{}),H8={root:"fui-Text"},W8=K({root:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",Bhrd7zp:"figsok6",fsow6f:"fpgzoln",mc9l5x:"f1w7gpdv",Huce71:"f6juhto",B68tc82:"f1mtd64y",Bmxbyg5:"f1y7q3j9",ygn44y:"f2jf649"},nowrap:{Huce71:"fz5stix",B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw"},truncate:{ygn44y:"f1cmbuwj"},block:{mc9l5x:"ftgm304"},italic:{B80ckks:"f1j4dglz"},underline:{w71qe1:"f13mvf36"},strikethrough:{w71qe1:"fv5q2k7"},strikethroughUnderline:{w71qe1:"f1drk4o6"},base100:{Be2twd7:"f13mqy1h",Bg96gwp:"fcpl73t"},base200:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},base400:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k"},base500:{Be2twd7:"f1pp30po",Bg96gwp:"f106mvju"},base600:{Be2twd7:"f1x0m3f5",Bg96gwp:"fb86gi6"},hero700:{Be2twd7:"fojgt09",Bg96gwp:"fcen8rp"},hero800:{Be2twd7:"fccw675",Bg96gwp:"f1ebx5kk"},hero900:{Be2twd7:"f15afnhw",Bg96gwp:"fr3w3wp"},hero1000:{Be2twd7:"fpyltcb",Bg96gwp:"f1ivgwrt"},monospace:{Bahqtrf:"f1fedwem"},numeric:{Bahqtrf:"f1uq0ln5"},weightMedium:{Bhrd7zp:"fdj6btp"},weightSemibold:{Bhrd7zp:"fl43uef"},weightBold:{Bhrd7zp:"flh3ekv"},alignCenter:{fsow6f:"f17mccla"},alignEnd:{fsow6f:"f12ymhq5"},alignJustify:{fsow6f:"f1j59e10"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fpgzoln{text-align:start;}",".f1w7gpdv{display:inline;}",".f6juhto{white-space:normal;}",".f1mtd64y{overflow-x:visible;}",".f1y7q3j9{overflow-y:visible;}",".f2jf649{text-overflow:clip;}",".fz5stix{white-space:nowrap;}",".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".f1cmbuwj{text-overflow:ellipsis;}",".ftgm304{display:block;}",".f1j4dglz{font-style:italic;}",".f13mvf36{text-decoration-line:underline;}",".fv5q2k7{text-decoration-line:line-through;}",".f1drk4o6{text-decoration-line:line-through underline;}",".f13mqy1h{font-size:var(--fontSizeBase100);}",".fcpl73t{line-height:var(--lineHeightBase100);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",".fb86gi6{line-height:var(--lineHeightBase600);}",".fojgt09{font-size:var(--fontSizeHero700);}",".fcen8rp{line-height:var(--lineHeightHero700);}",".fccw675{font-size:var(--fontSizeHero800);}",".f1ebx5kk{line-height:var(--lineHeightHero800);}",".f15afnhw{font-size:var(--fontSizeHero900);}",".fr3w3wp{line-height:var(--lineHeightHero900);}",".fpyltcb{font-size:var(--fontSizeHero1000);}",".f1ivgwrt{line-height:var(--lineHeightHero1000);}",".f1fedwem{font-family:var(--fontFamilyMonospace);}",".f1uq0ln5{font-family:var(--fontFamilyNumeric);}",".fdj6btp{font-weight:var(--fontWeightMedium);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".flh3ekv{font-weight:var(--fontWeightBold);}",".f17mccla{text-align:center;}",".f12ymhq5{text-align:end;}",".f1j59e10{text-align:justify;}"]}),U8=e=>{const t=W8();return e.root.className=G(H8.root,t.root,e.wrap===!1&&t.nowrap,e.truncate&&t.truncate,e.block&&t.block,e.italic&&t.italic,e.underline&&t.underline,e.strikethrough&&t.strikethrough,e.underline&&e.strikethrough&&t.strikethroughUnderline,e.size===100&&t.base100,e.size===200&&t.base200,e.size===400&&t.base400,e.size===500&&t.base500,e.size===600&&t.base600,e.size===700&&t.hero700,e.size===800&&t.hero800,e.size===900&&t.hero900,e.size===1e3&&t.hero1000,e.font==="monospace"&&t.monospace,e.font==="numeric"&&t.numeric,e.weight==="medium"&&t.weightMedium,e.weight==="semibold"&&t.weightSemibold,e.weight==="bold"&&t.weightBold,e.align==="center"&&t.alignCenter,e.align==="end"&&t.alignEnd,e.align==="justify"&&t.alignJustify,e.root.className),e};function Jl(e){const{useStyles:t,className:r,displayName:n}=e,o=x.forwardRef((i,a)=>{const l=t(),s=L8(i,a);return U8(s),s.root.className=G(r,s.root.className,l.root,i.className),q8(s)});return o.displayName=n,o}const $8={root:"fui-Body1"},V8=K({root:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}"]}),V1=Jl({useStyles:V8,className:$8.root,displayName:"Body1"}),G8={root:"fui-Caption1"},K8=K({root:{Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}"]}),G1=Jl({useStyles:K8,className:G8.root,displayName:"Caption1"}),X8={root:"fui-Subtitle1"},Z8=K({root:{Bahqtrf:"fk6fouc",Be2twd7:"f1pp30po",Bhrd7zp:"fl43uef",Bg96gwp:"f106mvju"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".f106mvju{line-height:var(--lineHeightBase500);}"]}),Q8=Jl({useStyles:Z8,className:X8.root,displayName:"Subtitle1"}),J8={root:"fui-Title1"},Y8=K({root:{Bahqtrf:"fk6fouc",Be2twd7:"fccw675",Bhrd7zp:"fl43uef",Bg96gwp:"f1ebx5kk"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".fccw675{font-size:var(--fontSizeHero800);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".f1ebx5kk{line-height:var(--lineHeightHero800);}"]}),e7=Jl({useStyles:Y8,className:J8.root,displayName:"Title1"}),t7={root:"fui-Title3"},r7=K({root:{Bahqtrf:"fk6fouc",Be2twd7:"f1x0m3f5",Bhrd7zp:"fl43uef",Bg96gwp:"fb86gi6"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f1x0m3f5{font-size:var(--fontSizeBase600);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".fb86gi6{line-height:var(--lineHeightBase600);}"]}),n7=Jl({useStyles:r7,className:t7.root,displayName:"Title3"}),o7=e=>U(e.root,{children:U(e.textarea,{})}),i7=(e,t)=>{e=aj(e,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const r=zy();var n;const{size:o="medium",appearance:i=(n=r.inputDefaultAppearance)!==null&&n!==void 0?n:"outline",resize:a="none",onChange:l}=e,[s,c]=Rn({state:e.value,defaultState:e.defaultValue,initialState:void 0}),u=_C({props:e,primarySlotTagName:"textarea",excludedPropNames:["onChange","value","defaultValue"]}),f={size:o,appearance:i,resize:a,components:{root:"span",textarea:"textarea"},textarea:be(e.textarea,{defaultProps:{ref:t,...u.primary},elementType:"textarea"}),root:be(e.root,{defaultProps:u.root,elementType:"span"})};return f.textarea.value=s,f.textarea.onChange=se(d=>{const h=d.target.value;l==null||l(d,{value:h}),c(h)}),f},K1={root:"fui-Textarea",textarea:"fui-Textarea__textarea"},a7=K({base:{mc9l5x:"ftuwxu6",B7ck84d:"f1ewtqcl",qhf8xq:"f10pi13n",z8tnut:"f1g0x7ka",z189sj:["fhxju0i","f1cnd47f"],Byoj8tv:"f1ean75l",uwmqm3:["f1cnd47f","fhxju0i"],B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},disabled:{De3pzq:"f1c21dwh",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bjwas2f:"fg455y9",Bn1d65q:["f1rvyvqg","f14g86mu"],Bxeuatn:"f1cwzwz",n51gp8:["f14g86mu","f1rvyvqg"]},interactive:{li1rpt:"f1gw3sf2",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",Eqx8gd:["f1a7op3","f1cjjd47"],By385i5:"f1gboi2j",B1piin3:["f1cjjd47","f1a7op3"],Dlnsje:"ffyw7fx",d9w3h3:["f1kp91vd","f1ibwz09"],B3778ie:["f1ibwz09","f1kp91vd"],Bcgy8vk:"f14pi962",Bw17bha:"f1lh990p",B1q35kw:"f1jc6hxc",Gjdm7m:"fj2g8qd",b1kco5:"f1yk9hq",Ba2ppi3:"fhwpy7i",F2fol1:"f14ee0xe",lck23g:"f1xhbsuh",df92cz:"fv8e3ye",I188md:"ftb5wc6",umuwi5:"fjw5xc1",Blcqepd:"f1xdyd5c",nplu4u:"fatpbeo",Bioka5o:"fb7uyps",H713fs:"f1cmft4k",B9ooomg:"f1x58t8o",Bercvud:"f1ibeo51",Bbr2w1p:"f1vnc8sk",Bduesf4:"f3e99gv",Bpq79vn:"fhljsf7"},filled:{B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"],q7v0qe:"ftmjh5b",kmh5ft:["f17blpuu","fsrcdbj"],nagaa4:"f1tpwn32",B1yhkcb:["fsrcdbj","f17blpuu"]},"filled-darker":{De3pzq:"f16xq7d1"},"filled-lighter":{De3pzq:"fxugw4r"},"filled-darker-shadow":{De3pzq:"f16xq7d1",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"f1bh3yvw",h3c5rm:["fmi79ni","f11fozsx"],B9xav0g:"fnzw4c6",zhjwy3:["f11fozsx","fmi79ni"],E5pizo:"fyed02w"},"filled-lighter-shadow":{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"f1bh3yvw",h3c5rm:["fmi79ni","f11fozsx"],B9xav0g:"fnzw4c6",zhjwy3:["f11fozsx","fmi79ni"],E5pizo:"fyed02w"},outline:{De3pzq:"fxugw4r",B4j52fo:"f192inf7",Bekrc4i:["f5tn483","f1ojsxk5"],Bn0qgzm:"f1vxd6vx",ibv6hh:["f1ojsxk5","f5tn483"],icvyot:"fzkkow9",vrafjx:["fcdblym","fjik90z"],oivjwe:"fg706s2",wvpqe5:["fjik90z","fcdblym"],g2u3we:"fj3muxo",h3c5rm:["f1akhkt","f1lxtadh"],B9xav0g:"f1c1zstj",zhjwy3:["f1lxtadh","f1akhkt"]},outlineInteractive:{ckks6v:"f7ic3uo",B2zwrfe:["f1omjgsz","f1snvl17"],xv9156:"fn6xmsl",dt87k2:["f1snvl17","f1omjgsz"],Bf40cpq:"f1sn8sm0",Bop6t4b:["f1wovo5e","f716mnf"],gvrnp0:"fm0h710",Beu9t3s:["f716mnf","f1wovo5e"],Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"f1l4zc64",gg5e9n:["f1m52nbi","f1ub3y4t"],uqwnxt:"fk7lb2a",Bvecx4l:["f1knhbbd","f17itt0b"],Bs0cc2w:"f15pjvi3",e1hlit:["f17itt0b","f1knhbbd"],e2sjt0:"f6ginmj",Bbcopvn:["f1grcyuh","fgzu20w"],Bj33j0h:"fk1xjsr",f7epvg:["fgzu20w","f1grcyuh"],B6oc9vd:"fvs00aa",ak43y8:["f1assf6x","f4ruux4"],wmxk5l:"f1z0osm6",B50zh58:["f4ruux4","f1assf6x"],Bbs6y8j:"fu7v4fk",rexu52:["f1fnaxjy","fwory1w"],B7pmvfx:"f7hodha",Belqbek:["fwory1w","f1fnaxjy"],Bawrxx6:"f8jkv7v",r7b1zc:["f1f3jaeo","fh8au0q"],Bt3ojkv:"f19usxel",t1ykpo:["fh8au0q","f1f3jaeo"],Bvq3b66:"f12oevn0",Brahy3i:["fvdgz8d","f1cq0lt5"],zoxjo1:"f1so894s",an54nd:["f1cq0lt5","fvdgz8d"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]}},{d:[".ftuwxu6{display:inline-flex;}",".f1ewtqcl{box-sizing:border-box;}",".f10pi13n{position:relative;}",".f1g0x7ka{padding-top:0;}",".fhxju0i{padding-right:0;}",".f1cnd47f{padding-left:0;}",".f1ean75l{padding-bottom:var(--strokeWidthThick);}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f192inf7{border-top-width:var(--strokeWidthThin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}",".fzkkow9{border-top-style:solid;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fg706s2{border-bottom-style:solid;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1gw3sf2::after{box-sizing:border-box;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1a7op3::after{left:-1px;}",".f1cjjd47::after{right:-1px;}",".f1gboi2j::after{bottom:-1px;}",".ffyw7fx::after{height:max(var(--strokeWidthThick), var(--borderRadiusMedium));}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",".f14pi962::after{border-bottom-width:var(--strokeWidthThick);}",".f1lh990p::after{border-bottom-style:solid;}",".f1jc6hxc::after{border-bottom-color:var(--colorCompoundBrandStroke);}",".fj2g8qd::after{clip-path:inset(calc(100% - var(--strokeWidthThick)) 0 0 0);}",".f1yk9hq::after{transform:scaleX(0);}",".fhwpy7i::after{transition-property:transform;}",".f14ee0xe::after{transition-duration:var(--durationUltraFast);}",".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}",".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1bh3yvw{border-top-color:var(--colorTransparentStrokeInteractive);}",".fmi79ni{border-right-color:var(--colorTransparentStrokeInteractive);}",".f11fozsx{border-left-color:var(--colorTransparentStrokeInteractive);}",".fnzw4c6{border-bottom-color:var(--colorTransparentStrokeInteractive);}",".fyed02w{box-shadow:var(--shadow2);}",".fj3muxo{border-top-color:var(--colorNeutralStroke1);}",".f1akhkt{border-right-color:var(--colorNeutralStroke1);}",".f1lxtadh{border-left-color:var(--colorNeutralStroke1);}",".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}"],m:[["@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]],w:[".fjw5xc1:focus-within::after{transform:scaleX(1);}",".f1xdyd5c:focus-within::after{transition-property:transform;}",".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}",".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}",".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".f1vnc8sk:focus-within{outline-width:var(--strokeWidthThick);}",".f3e99gv:focus-within{outline-style:solid;}",".fhljsf7:focus-within{outline-color:transparent;}",".fu7v4fk:focus-within{border-top-width:var(--strokeWidthThin);}",".f1fnaxjy:focus-within{border-right-width:var(--strokeWidthThin);}",".fwory1w:focus-within{border-left-width:var(--strokeWidthThin);}",".f7hodha:focus-within{border-bottom-width:var(--strokeWidthThin);}",".f8jkv7v:focus-within{border-top-style:solid;}",".f1f3jaeo:focus-within{border-right-style:solid;}",".fh8au0q:focus-within{border-left-style:solid;}",".f19usxel:focus-within{border-bottom-style:solid;}",".f12oevn0:focus-within{border-top-color:var(--colorNeutralStroke1);}",".fvdgz8d:focus-within{border-right-color:var(--colorNeutralStroke1);}",".f1cq0lt5:focus-within{border-left-color:var(--colorNeutralStroke1);}",".f1so894s:focus-within{border-bottom-color:var(--colorCompoundBrandStroke);}"],h:[".ftmjh5b:hover,.ftmjh5b:focus-within{border-top-color:var(--colorTransparentStrokeInteractive);}",".f17blpuu:hover,.f17blpuu:focus-within{border-right-color:var(--colorTransparentStrokeInteractive);}",".fsrcdbj:hover,.fsrcdbj:focus-within{border-left-color:var(--colorTransparentStrokeInteractive);}",".f1tpwn32:hover,.f1tpwn32:focus-within{border-bottom-color:var(--colorTransparentStrokeInteractive);}",".f7ic3uo:hover{border-top-width:var(--strokeWidthThin);}",".f1omjgsz:hover{border-right-width:var(--strokeWidthThin);}",".f1snvl17:hover{border-left-width:var(--strokeWidthThin);}",".fn6xmsl:hover{border-bottom-width:var(--strokeWidthThin);}",".f1sn8sm0:hover{border-top-style:solid;}",".f1wovo5e:hover{border-right-style:solid;}",".f716mnf:hover{border-left-style:solid;}",".fm0h710:hover{border-bottom-style:solid;}",".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}"],a:[".fk7lb2a:active{border-top-width:var(--strokeWidthThin);}",".f1knhbbd:active{border-right-width:var(--strokeWidthThin);}",".f17itt0b:active{border-left-width:var(--strokeWidthThin);}",".f15pjvi3:active{border-bottom-width:var(--strokeWidthThin);}",".f6ginmj:active{border-top-style:solid;}",".f1grcyuh:active{border-right-style:solid;}",".fgzu20w:active{border-left-style:solid;}",".fk1xjsr:active{border-bottom-style:solid;}",".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}",".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1z0osm6:active{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"]}),l7=K({base:{icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],oivjwe:"f1h8hb77",wvpqe5:["f1deefiw","f1n71otn"],B6of3ja:"f1hu3pq6",t21cq0:["f11qmguv","f1tyq0we"],jrapky:"f19f4twv",Frg6f3:["f1tyq0we","f11qmguv"],De3pzq:"f3rmtva",B7ck84d:"f1ewtqcl",sj55zd:"f19n0e5",Bh6795r:"fqerorx",Bahqtrf:"fk6fouc",Bqenvij:"f1l02sjl",yvdlaj:"fwyc1cq",B3o7kgh:"f13ta7ih",B4brmom:"f1vw9udw",Brrnbx2:"fbb3kq8",oeaueh:"f1s6fcnf"},disabled:{sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"},small:{sshi5w:"f1w5jphr",z8tnut:"f1ywm7hm",z189sj:["fqznh8f","f1xile11"],Byoj8tv:"f14wxoun",uwmqm3:["f1xile11","fqznh8f"],Bxyxcbc:"f192z54u",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},medium:{sshi5w:"fvmd9f",z8tnut:"fp2oml8",z189sj:["f135dnwl","f1e60jzv"],Byoj8tv:"f1tdddsa",uwmqm3:["f1e60jzv","f135dnwl"],Bxyxcbc:"f1if7ixc",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},large:{sshi5w:"f1kfson",z8tnut:"f1kwiid1",z189sj:["fcgl2c4","f1anj20m"],Byoj8tv:"f5b47ha",uwmqm3:["f1anj20m","fcgl2c4"],Bxyxcbc:"f3kip1f",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k"}},{d:[".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1h8hb77{border-bottom-style:none;}",".f1hu3pq6{margin-top:0;}",".f11qmguv{margin-right:0;}",".f1tyq0we{margin-left:0;}",".f19f4twv{margin-bottom:0;}",".f3rmtva{background-color:transparent;}",".f1ewtqcl{box-sizing:border-box;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fqerorx{flex-grow:1;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f1l02sjl{height:100%;}",".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}",".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}",".f13ta7ih::-webkit-input-placeholder{opacity:1;}",".f13ta7ih::-moz-placeholder{opacity:1;}",".f1vw9udw::selection{color:var(--colorNeutralForegroundInverted);}",".fbb3kq8::selection{background-color:var(--colorNeutralBackgroundInverted);}",".f1s6fcnf{outline-style:none;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}",".f1w5jphr{min-height:40px;}",".f1ywm7hm{padding-top:var(--spacingVerticalXS);}",".fqznh8f{padding-right:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f1xile11{padding-left:calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",".f14wxoun{padding-bottom:var(--spacingVerticalXS);}",".f192z54u{max-height:200px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fvmd9f{min-height:52px;}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".f135dnwl{padding-right:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f1e60jzv{padding-left:calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".f1if7ixc{max-height:260px;}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1kfson{min-height:64px;}",".f1kwiid1{padding-top:var(--spacingVerticalS);}",".fcgl2c4{padding-right:calc(var(--spacingHorizontalM) + var(--spacingHorizontalXXS));}",".f1anj20m{padding-left:calc(var(--spacingHorizontalM) + var(--spacingHorizontalXXS));}",".f5b47ha{padding-bottom:var(--spacingVerticalS);}",".f3kip1f{max-height:320px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}"]}),s7=K({none:{B3rzk8w:"f1o1s39h"},both:{B3rzk8w:"f1pxm0xe"},horizontal:{B3rzk8w:"fq6nmtn"},vertical:{B3rzk8w:"f1f5ktr4"}},{d:[".f1o1s39h{resize:none;}",".f1pxm0xe{resize:both;}",".fq6nmtn{resize:horizontal;}",".f1f5ktr4{resize:vertical;}"]}),c7=e=>{const{size:t,appearance:r,resize:n}=e,o=e.textarea.disabled,i=`${e.textarea["aria-invalid"]}`=="true",a=r.startsWith("filled"),l=a7();e.root.className=G(K1.root,l.base,o&&l.disabled,!o&&a&&l.filled,!o&&l[r],!o&&l.interactive,!o&&r==="outline"&&l.outlineInteractive,!o&&i&&l.invalid,e.root.className);const s=l7(),c=s7();return e.textarea.className=G(K1.textarea,s.base,s[t],c[n],o&&s.disabled,e.textarea.className),e},l2=x.forwardRef((e,t)=>{const r=i7(e,t);return c7(r),De("useTextareaStyles_unstable")(r),o7(r)});l2.displayName="Textarea";const zo="__fluentDisableScrollElement";function u7(){const{targetDocument:e}=ht();return x.useCallback(()=>{if(e)return f7(e.body)},[e])}function f7(e){var t;const{clientWidth:r}=e.ownerDocument.documentElement;var n;const o=(n=(t=e.ownerDocument.defaultView)===null||t===void 0?void 0:t.innerWidth)!==null&&n!==void 0?n:0;return d7(e),e[zo].count===0&&(e.style.overflow="hidden",e.style.paddingRight=`${o-r}px`),e[zo].count++,()=>{e[zo].count--,e[zo].count===0&&(e.style.overflow=e[zo].previousOverflowStyle,e.style.paddingRight=e[zo].previousPaddingRightStyle)}}function d7(e){var t,r,n;(n=(t=e)[r=zo])!==null&&n!==void 0||(t[r]={count:0,previousOverflowStyle:e.style.overflow,previousPaddingRightStyle:e.style.paddingRight})}function h7(e,t){const{findFirstFocusable:r}=oi(),{targetDocument:n}=ht(),o=x.useRef(null);return x.useEffect(()=>{if(!e)return;const i=o.current&&r(o.current);if(i)i.focus();else{var a;(a=o.current)===null||a===void 0||a.focus()}},[r,e,t,n]),o}const p7={open:!1,inertTrapFocus:!1,modalType:"modal",isNestedDialog:!1,dialogRef:{current:null},requestOpenChange(){}},Fg=ua(void 0),g7=Fg.Provider,To=e=>fa(Fg,(t=p7)=>e(t)),m7=x.createContext(void 0),s2=m7.Provider,v7=e=>{const{children:t,modalType:r="modal",onOpenChange:n,inertTrapFocus:o=!1}=e,[i,a]=b7(t),[l,s]=Rn({state:e.open,defaultState:e.defaultOpen,initialState:!1}),c=se(m=>{n==null||n(m.event,m),m.event.isDefaultPrevented()||s(m.open)}),u=h7(l,r),f=u7(),d=!!(l&&r!=="non-modal");sn(()=>{if(d)return f()},[f,d]);const{modalAttributes:h,triggerAttributes:p}=Ep({trapFocus:r!=="non-modal",legacyTrapFocus:!o});return{components:{backdrop:"div"},inertTrapFocus:o,open:l,modalType:r,content:a,trigger:i,requestOpenChange:c,dialogTitleId:_n("dialog-title-"),isNestedDialog:zp(Fg),dialogRef:u,modalAttributes:r!=="non-modal"?h:void 0,triggerAttributes:p}};function b7(e){const t=x.Children.toArray(e);switch(t.length){case 2:return t;case 1:return[void 0,t[0]];default:return[void 0,void 0]}}function y7(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,i;for(i=0;i=0)&&(r[o]=e[o]);return r}function Dh(e,t){return Dh=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Dh(e,t)}function w7(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Dh(e,t)}const X1={disabled:!1},c2=Fo.createContext(null);var k7=function(t){return t.scrollTop},Va="unmounted",No="exited",Ro="entering",mi="entered",Ih="exiting",Dn=function(e){w7(t,e);function t(n,o){var i;i=e.call(this,n,o)||this;var a=o,l=a&&!a.isMounting?n.enter:n.appear,s;return i.appearStatus=null,n.in?l?(s=No,i.appearStatus=Ro):s=mi:n.unmountOnExit||n.mountOnEnter?s=Va:s=No,i.state={status:s},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var a=o.in;return a&&i.status===Va?{status:No}:null};var r=t.prototype;return r.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},r.componentDidUpdate=function(o){var i=null;if(o!==this.props){var a=this.state.status;this.props.in?a!==Ro&&a!==mi&&(i=Ro):(a===Ro||a===mi)&&(i=Ih)}this.updateStatus(!1,i)},r.componentWillUnmount=function(){this.cancelNextCallback()},r.getTimeouts=function(){var o=this.props.timeout,i,a,l;return i=a=l=o,o!=null&&typeof o!="number"&&(i=o.exit,a=o.enter,l=o.appear!==void 0?o.appear:a),{exit:i,enter:a,appear:l}},r.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===Ro){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:Is.findDOMNode(this);a&&k7(a)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===No&&this.setState({status:Va})},r.performEnter=function(o){var i=this,a=this.props.enter,l=this.context?this.context.isMounting:o,s=this.props.nodeRef?[l]:[Is.findDOMNode(this),l],c=s[0],u=s[1],f=this.getTimeouts(),d=l?f.appear:f.enter;if(!o&&!a||X1.disabled){this.safeSetState({status:mi},function(){i.props.onEntered(c)});return}this.props.onEnter(c,u),this.safeSetState({status:Ro},function(){i.props.onEntering(c,u),i.onTransitionEnd(d,function(){i.safeSetState({status:mi},function(){i.props.onEntered(c,u)})})})},r.performExit=function(){var o=this,i=this.props.exit,a=this.getTimeouts(),l=this.props.nodeRef?void 0:Is.findDOMNode(this);if(!i||X1.disabled){this.safeSetState({status:No},function(){o.props.onExited(l)});return}this.props.onExit(l),this.safeSetState({status:Ih},function(){o.props.onExiting(l),o.onTransitionEnd(a.exit,function(){o.safeSetState({status:No},function(){o.props.onExited(l)})})})},r.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},r.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},r.setNextCallback=function(o){var i=this,a=!0;return this.nextCallback=function(l){a&&(a=!1,i.nextCallback=null,o(l))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},r.onTransitionEnd=function(o,i){this.setNextCallback(i);var a=this.props.nodeRef?this.props.nodeRef.current:Is.findDOMNode(this),l=o==null&&!this.props.addEndListener;if(!a||l){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var s=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],c=s[0],u=s[1];this.props.addEndListener(c,u)}o!=null&&setTimeout(this.nextCallback,o)},r.render=function(){var o=this.state.status;if(o===Va)return null;var i=this.props,a=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var l=y7(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return Fo.createElement(c2.Provider,{value:null},typeof a=="function"?a(o,l):Fo.cloneElement(Fo.Children.only(a),l))},t}(Fo.Component);Dn.contextType=c2;Dn.propTypes={};function pi(){}Dn.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:pi,onEntering:pi,onEntered:pi,onExit:pi,onExiting:pi,onExited:pi};Dn.UNMOUNTED=Va;Dn.EXITED=No;Dn.ENTERING=Ro;Dn.ENTERED=mi;Dn.EXITING=Ih;const x7=Dn,S7=void 0,u2=x.createContext(void 0),_7=u2.Provider,B7=()=>{var e;return(e=x.useContext(u2))!==null&&e!==void 0?e:S7},C7=(e,t)=>{const{content:r,trigger:n}=e;return U(g7,{value:t.dialog,children:At(s2,{value:t.dialogSurface,children:[n,U(x7,{mountOnEnter:!0,unmountOnExit:!0,in:e.open,nodeRef:e.dialogRef,appear:!0,timeout:250,children:o=>U(_7,{value:o,children:r})})]})})};function P7(e){const{modalType:t,open:r,dialogRef:n,dialogTitleId:o,isNestedDialog:i,inertTrapFocus:a,requestOpenChange:l,modalAttributes:s,triggerAttributes:c}=e;return{dialog:{open:r,modalType:t,dialogRef:n,dialogTitleId:o,isNestedDialog:i,inertTrapFocus:a,modalAttributes:s,triggerAttributes:c,requestOpenChange:l},dialogSurface:!1}}const Ah=x.memo(e=>{const t=v7(e),r=P7(t);return C7(t,r)});Ah.displayName="Dialog";const Z1={root:"fui-DialogTitle",action:"fui-DialogTitle__action"},E7=Qe("rztv7rx","rt0yqbx",[".rztv7rx{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase500);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase500);margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;grid-row-start:1;grid-row-end:1;grid-column-start:1;grid-column-end:3;}",".rt0yqbx{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase500);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase500);margin-top:0;margin-left:0;margin-bottom:0;margin-right:0;grid-row-start:1;grid-row-end:1;grid-column-start:1;grid-column-end:3;}"]),z7=K({rootWithoutAction:{Bw0ie65:"fsyjsko"}},{d:[".fsyjsko{grid-column-end:4;}"]}),T7=Qe("r13kcrze",null,[".r13kcrze{grid-row-start:1;grid-row-end:1;grid-column-start:3;justify-self:end;align-self:start;}"]),N7=e=>{const t=E7(),r=T7(),n=z7();return e.root.className=G(Z1.root,t,!e.action&&n.rootWithoutAction,e.root.className),e.action&&(e.action.className=G(Z1.action,r,e.action.className)),e},R7=(e,t)=>{const r=To(d=>d.modalType),n=To(d=>d.isNestedDialog),o=B7(),i=To(d=>d.modalAttributes),a=To(d=>d.dialogRef),l=To(d=>d.requestOpenChange),s=To(d=>d.dialogTitleId),c=se(d=>{if(wy(e.backdrop)){var h,p;(h=(p=e.backdrop).onClick)===null||h===void 0||h.call(p,d)}r==="modal"&&!d.isDefaultPrevented()&&l({event:d,open:!1,type:"backdropClick"})}),u=se(d=>{var h;(h=e.onKeyDown)===null||h===void 0||h.call(e,d),d.key===fu&&!d.isDefaultPrevented()&&(l({event:d,open:!1,type:"escapeKeyDown"}),d.preventDefault())}),f=Te(e.backdrop,{renderByDefault:r!=="non-modal",defaultProps:{"aria-hidden":"true"},elementType:"div"});return f&&(f.onClick=c),{components:{backdrop:"div",root:"div"},backdrop:f,isNestedDialog:n,transitionStatus:o,mountNode:e.mountNode,root:be(Re("div",{tabIndex:-1,"aria-modal":r!=="non-modal",role:r==="alert"?"alertdialog":"dialog","aria-labelledby":e["aria-label"]?void 0:s,...e,...i,onKeyDown:u,ref:nr(t,a)}),{elementType:"div"})}},j7=(e,t)=>At(Tu,{mountNode:e.mountNode,children:[e.backdrop&&U(e.backdrop,{}),U(s2,{value:t.dialogSurface,children:U(e.root,{})})]});function F7(e){return{dialogSurface:!0}}const D7=(e,{referenceLabel:t,referenceId:r},n)=>{const{checkbox:o={},onSelectionChange:i,floatingAction:a,onClick:l,onKeyDown:s}=e,{findAllFocusable:c}=oi(),u=x.useRef(null),[f,d]=Rn({state:e.selected,defaultState:e.defaultSelected,initialState:!1}),h=[e.selected,e.defaultSelected,i].some(w=>typeof w<"u"),[p,m]=x.useState(!1),y=x.useCallback(w=>{if(!n.current)return!1;const S=c(n.current),E=w.target,N=S.some(L=>L.contains(E)),C=(u==null?void 0:u.current)===E;return N&&!C},[n,c]),v=x.useCallback(w=>{if(y(w))return;const S=!f;d(S),i&&i(w,{selected:S})},[i,f,d,y]),g=x.useCallback(w=>{[Ka].includes(w.key)&&(w.preventDefault(),v(w))},[v]),b=x.useMemo(()=>{if(!h||a)return;const w={};return r?w["aria-labelledby"]=r:t&&(w["aria-label"]=t),Te(o,{defaultProps:{ref:u,type:"checkbox",checked:f,onChange:S=>v(S),onFocus:()=>m(!0),onBlur:()=>m(!1),...w},elementType:"input"})},[o,a,f,h,v,r,t]),k=x.useMemo(()=>{if(a)return Te(a,{defaultProps:{ref:u},elementType:"div"})},[a]),_=x.useMemo(()=>h?{onClick:Et(l,v),onKeyDown:Et(s,g)}:null,[h,v,l,s,g]);return{selected:f,selectable:h,selectFocused:p,selectableCardProps:_,checkboxSlot:b,floatingActionSlot:k}},f2=x.createContext(void 0),Mh={selectableA11yProps:{referenceId:void 0,setReferenceId(){},referenceLabel:void 0,setReferenceLabel(){}}},I7=f2.Provider,A7=()=>{var e;return(e=x.useContext(f2))!==null&&e!==void 0?e:Mh},M7={off:void 0,"no-tab":"limited-trap-focus","tab-exit":"limited","tab-only":"unlimited"},O7=({focusMode:e="off",...t})=>{const r=["onClick","onDoubleClick","onMouseUp","onMouseDown","onPointerUp","onPointerDown","onTouchStart","onTouchEnd","onDragStart","onDragEnd"].some(i=>t[i]),o={...bP({tabBehavior:M7[r?"no-tab":e]}),tabIndex:0};return{interactive:r,focusAttributes:!r&&e==="off"?null:o}},L7=(e,t)=>{const{appearance:r="filled",orientation:n="vertical",size:o="medium"}=e,[i,a]=x.useState(Mh.selectableA11yProps.referenceId),[l,s]=x.useState(Mh.selectableA11yProps.referenceId),c=SP(),{selectable:u,selected:f,selectableCardProps:d,selectFocused:h,checkboxSlot:p,floatingActionSlot:m}=D7(e,{referenceId:i,referenceLabel:l},c),y=nr(c,t),{interactive:v,focusAttributes:g}=O7(e);return{appearance:r,orientation:n,size:o,interactive:v,selectable:u,selectFocused:h,selected:f,selectableA11yProps:{setReferenceId:a,referenceId:i,referenceLabel:l,setReferenceLabel:s},components:{root:"div",floatingAction:"div",checkbox:"input"},root:be(Re("div",{ref:y,role:"group",...u?null:g,...e,...d}),{elementType:"div"}),floatingAction:m,checkbox:p}},q7=(e,t)=>U(e.root,{children:At(I7,{value:t,children:[e.checkbox?U(e.checkbox,{}):null,e.floatingAction?U(e.floatingAction,{}):null,e.root.children]})}),vi={root:"fui-CardHeader",image:"fui-CardHeader__image",header:"fui-CardHeader__header",description:"fui-CardHeader__description",action:"fui-CardHeader__action"},H7=K({root:{Bkc6ea2:"fkufhic",mc9l5x:"f13qh94s",t4k1zu:"f8a668j",Bt984gj:"f122n59"},image:{mc9l5x:"ftuwxu6",t21cq0:["fql5097","f6yss9k"],Br312pm:"fwpfdsa",Ijaq50:"fldnz9j"},header:{Br312pm:"fd46tj4",Ijaq50:"f16hsg94",mc9l5x:"f22iagw"},description:{Br312pm:"fd46tj4",Ijaq50:"faunodf",mc9l5x:"f22iagw"},action:{Frg6f3:["f6yss9k","fql5097"],Br312pm:"fis13di",Ijaq50:"fldnz9j"}},{d:[".fkufhic{--fui-CardHeader--gap:12px;}",".f13qh94s{display:grid;}",".f8a668j{grid-auto-columns:min-content 1fr min-content;}",".f122n59{align-items:center;}",".ftuwxu6{display:inline-flex;}",".fql5097{margin-right:var(--fui-CardHeader--gap);}",".f6yss9k{margin-left:var(--fui-CardHeader--gap);}",".fwpfdsa{grid-column-start:1;}",".fldnz9j{grid-row-start:span 2;}",".fd46tj4{grid-column-start:2;}",".f16hsg94{grid-row-start:1;}",".f22iagw{display:flex;}",".faunodf{grid-row-start:2;}",".fis13di{grid-column-start:3;}"]}),W7=e=>{const t=H7();return e.root.className=G(vi.root,t.root,e.root.className),e.image&&(e.image.className=G(vi.image,t.image,e.image.className)),e.header&&(e.header.className=G(vi.header,t.header,e.header.className)),e.description&&(e.description.className=G(vi.description,t.description,e.description.className)),e.action&&(e.action.className=G(vi.action,t.action,e.action.className)),e},Q1={root:"fui-CardFooter",action:"fui-CardFooter__action"},U7=K({root:{mc9l5x:"f22iagw",Beiy3e4:"f1063pyq",i8kkvl:"f4akndk",Belr9w4:"fe5j3v"},action:{Frg6f3:["fcgxt0o","f1ujusj6"]}},{d:[".f22iagw{display:flex;}",".f1063pyq{flex-direction:row;}",".f4akndk{column-gap:12px;}",".fe5j3v{row-gap:12px;}",".fcgxt0o{margin-left:auto;}",".f1ujusj6{margin-right:auto;}"]}),$7=e=>{const t=U7();return e.root.className=G(Q1.root,t.root,e.root.className),e.action&&(e.action.className=G(Q1.action,t.action,e.action.className)),e},Vf={root:"fui-Card",floatingAction:"fui-Card__floatingAction",checkbox:"fui-Card__checkbox"},V7=K({root:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",Bbmb7ep:["fifeqxg","f899z7z"],Beyfa6y:["f899z7z","fifeqxg"],B7oj6ja:["f4h3tyx","f18ur2pz"],Btl43ni:["f18ur2pz","f4h3tyx"],z8tnut:"f1lplnzb",z189sj:["f10m5gbb","f1k04kkk"],Byoj8tv:"fhftqfp",uwmqm3:["f1k04kkk","f10m5gbb"],i8kkvl:"fxsr4vj",Belr9w4:"fcvsdzp",mc9l5x:"f22iagw",qhf8xq:"f10pi13n",B7ck84d:"f1ewtqcl",sj55zd:"f19n0e5",E3zdtr:"f1mdlcz9",bn5sak:"frwkxtg",Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"],By385i5:"fo72kxq",Bsft5z2:"f13zj6fq",B80jsxd:"f1nwj1ja",Bm2nyyq:"f8rth92",Barhvk9:["flthirb","ftkbnf5"],Bw17bha:"f1lh990p",vfts7:["ftkbnf5","flthirb"],xrcqlc:"f6czdpx",Ihftqj:["f13hvwk3","f1en4csx"],Bcgy8vk:"f1i1u9k0",Bhxzhr1:["f1en4csx","f13hvwk3"],B3778ie:["f1qnomq5","f2fl922"],d9w3h3:["f2fl922","f1qnomq5"],Bl18szs:["f1anhtl","f1n2zcl3"],B4j8arr:["f1n2zcl3","f1anhtl"],B2jhnfs:"f16v3d5c"},focused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",B8q5s1w:"f8hki3x",Bci5o5g:["f1d2448m","ffh67wi"],n8qw10:"f1bjia2o",Bdrgwmp:["ffh67wi","f1d2448m"],Bb7d1vk:"f226i61",zhwhgb:["f13kzufm","fsx75g8"],dhy2o1:"flujwa2",Gfyso:["fsx75g8","f13kzufm"],Bm4h7ae:"f15bsgw9",B7ys5i9:"f14e48fq",Busjfv9:"f18yb2kv",Bhk32uz:"fd6o370",Bf4ptjt:"fh1cnn4",kclons:["fy7oxxb","f184ne2d"],Bhdgwq3:"fpukqih",Blkhhs4:["f184ne2d","fy7oxxb"],Bqtpl0w:"f99gebs",clg4pj:["f13b0oaq","f8t2bz6"],hgwjuy:"f1jvq617",Bonggc9:["f8t2bz6","f13b0oaq"],B1tsrr9:["f11unbnk","fbd201q"],Dah5zi:["fbd201q","f11unbnk"],Bkh64rk:["f12nqxso","f1uguk4w"],qqdqy8:["f1uguk4w","f12nqxso"],B6dhp37:"f1dvezut",i03rao:["fd0oaoj","f1cwg4i8"],Boxcth7:"fjvm52t",Bsom6fd:["f1cwg4i8","fd0oaoj"],J0r882:"f15fr7a0",Bule8hv:["fwsq40z","fy0y4wt"],Bjwuhne:"f34ld9f",Ghsupd:["fy0y4wt","fwsq40z"]},selectableFocused:{Brovlpu:"ftqa4ok",B486eqv:"f2hkw1w",Bssx7fj:"f1b1k54r",uh7if5:["f4ne723","fqqcjud"],clntm0:"fh7aioi",Dlk2r6:["fqqcjud","f4ne723"],Bm3wd5j:"f1k55ka9",Bbrhkcr:["fgclinu","f16pcs8n"],f1oku:"fycbxed",aywvf2:["f16pcs8n","fgclinu"],B2j2mmj:"ffht0p2",wigs8:"f1p0ul1q",pbfy6t:"f1c901ms",B0v4ure:"f1alokd7",ghq09:"f78i1la",B24cy0v:["f1kvsw7t","f1bw8brt"],Bwckmig:"f8k7e5g",Bvwlmkc:["f1bw8brt","f1kvsw7t"],Bbgo44z:"f125hn41",Bil7v7r:["fgxkx34","f1v56tyl"],skfxo0:"fdxas6f",jo1ztg:["f1v56tyl","fgxkx34"],Ba3ybja:["fxwickw","f1ia5cve"],az1dzo:["f1ia5cve","fxwickw"],vppk2z:["f194aguw","fqicc6c"],B6352mv:["fqicc6c","f194aguw"],nr063g:"fq4eyks",Blmvk6g:["f1ya6x16","ftuszwa"],Bsiemmq:"f1e2iu44",B98u21t:["ftuszwa","f1ya6x16"],B2pnrqr:"f1amxum7",B29w5g4:["f1cec8w7","f554mv0"],Bhhzhcn:"f1sj6kbr",Bec0n69:["f554mv0","f1cec8w7"]},orientationHorizontal:{Beiy3e4:"f1063pyq",Bt984gj:"f122n59",Bnoktp0:"fpfyeui",Idhjb2:"fwi74qw",ihgzqh:["ffcmwrh","f6ppoih"],Bgp6ld0:["f1dc9p14","fd933vt"],Bbucpmy:"f18esqgw"},orientationVertical:{Beiy3e4:"f1vx9l62",Bt4kzjz:["fobhde4","fx5r7kn"],B1ou843:["fx5r7kn","fobhde4"],y1433z:"f19chtn8",B7egwnw:"fuvs6re",B49b4xf:"fy4glsf"},sizeSmall:{B7balbw:"f1pi9uxy",B1h88n7:"f1h1zgly"},sizeMedium:{B7balbw:"frsmuga",B1h88n7:"fuldkky"},sizeLarge:{B7balbw:"f1qua4xo",B1h88n7:"fimkt6v"},filled:{De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fxugw4r",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1knas48",Bvxd0ez:"f1m145df",ecr2s2:"fb40n2d"},filledInteractiveSelected:{De3pzq:"f1nfm20t",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1kz6goq"},filledAlternative:{De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},filledAlternativeInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1dmdbja",E5pizo:"f1whvlc6",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1uvynv3",Bvxd0ez:"f1m145df",ecr2s2:"f1yhgkbh"},filledAlternativeInteractiveSelected:{De3pzq:"fjxa0vh",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fehi0vp"},outline:{De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"]},outlineInteractive:{Bceei9c:"f1k6fduh",De3pzq:"f1c21dwh",E5pizo:"f1couhl3",B0n5ga8:"ft83z1f",s924m2:["f1g4150c","f192dr6e"],B1q35kw:"f1qnawh6",Gp14am:["f192dr6e","f1g4150c"],Jwef8y:"fjxutwb",Be0v6ae:"f1llr77y",B5kxglz:["fzk0khw","fjj8tog"],B3pwyw6:"fb1u8ub",Bymgtzf:["fjj8tog","fzk0khw"],ecr2s2:"fophhak",dmfk:"f1uohb70",B4ofi8:["f1jm7v1n","f1bus3rq"],jgq6uv:"f1fbu7rr",Baxewws:["f1bus3rq","f1jm7v1n"]},outlineInteractiveSelected:{De3pzq:"f1q9pm1r",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"fg59vm4"},subtle:{De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"]},subtleInteractive:{Bceei9c:"f1k6fduh",De3pzq:"fhovq9v",E5pizo:"f1couhl3",B0n5ga8:"f16gxe2i",s924m2:["fpgykix","fzybk4o"],B1q35kw:"f1osi826",Gp14am:["fzybk4o","fpgykix"],Jwef8y:"f1t94bn6",ecr2s2:"f1wfn5kd"},subtleInteractiveSelected:{De3pzq:"fq5gl1p",B0n5ga8:"f16eln5f",s924m2:["fa2okxs","fg4zq3l"],B1q35kw:"ff6932p",Gp14am:["fg4zq3l","fa2okxs"],Jwef8y:"f1uqaxdt"},highContrastSelected:{ycbfsm:"fkc42ay",Bsw6fvg:"f1rirnrt",Bbusuzp:"f1lkg8j3",xgfqdd:"f1nkj0oa",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},highContrastInteractive:{h1vhog:"fpfvv3l",kslmdy:"f1oamsm6",Baaf6ca:"f1il21bs",x9zz3d:"fnn5dk0",Bmmdzwq:"fey3rwa",zkpvhj:["f5jhx11","fff9uym"],B20bydw:"fm7n0jy",Bwwwggl:["fff9uym","f5jhx11"]},select:{qhf8xq:"f1euv43f",Bhzewxz:"fqclxi7",j35jbq:["fiv86kb","f36uhnt"],Bj3rh1h:"f19g0ac"},hiddenCheckbox:{B68tc82:"f1p9o1ba",Bmxbyg5:"f1sil6mw",a9b677:"frkrog8",Bqenvij:"f1mpe4l3",qhf8xq:"f1euv43f",Bh84pgu:"fmf1zke",Bgl5zvf:"f1wch0ki",Huce71:"fz5stix"}},{d:[".f1p9o1ba{overflow-x:hidden;}",".f1sil6mw{overflow-y:hidden;}",".fifeqxg{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f899z7z{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f4h3tyx{border-top-right-radius:var(--fui-Card--border-radius);}",".f18ur2pz{border-top-left-radius:var(--fui-Card--border-radius);}",".f1lplnzb{padding-top:var(--fui-Card--size);}",".f10m5gbb{padding-right:var(--fui-Card--size);}",".f1k04kkk{padding-left:var(--fui-Card--size);}",".fhftqfp{padding-bottom:var(--fui-Card--size);}",".fxsr4vj{column-gap:var(--fui-Card--size);}",".fcvsdzp{row-gap:var(--fui-Card--size);}",".f22iagw{display:flex;}",".f10pi13n{position:relative;}",".f1ewtqcl{box-sizing:border-box;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1mdlcz9::after{position:absolute;}",".frwkxtg::after{top:0;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",".fo72kxq::after{bottom:0;}",'.f13zj6fq::after{content:"";}',".f1nwj1ja::after{pointer-events:none;}",".f8rth92::after{border-top-style:solid;}",".flthirb::after{border-right-style:solid;}",".ftkbnf5::after{border-left-style:solid;}",".f1lh990p::after{border-bottom-style:solid;}",".f6czdpx::after{border-top-width:var(--strokeWidthThin);}",".f13hvwk3::after{border-right-width:var(--strokeWidthThin);}",".f1en4csx::after{border-left-width:var(--strokeWidthThin);}",".f1i1u9k0::after{border-bottom-width:var(--strokeWidthThin);}",".f1qnomq5::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f2fl922::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f1anhtl::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1n2zcl3::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f16v3d5c>.fui-CardHeader,.f16v3d5c>.fui-CardFooter{flex-shrink:0;}",".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}",".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}",".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}",".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}",'.f15bsgw9[data-fui-focus-visible]::after{content:"";}',".f14e48fq[data-fui-focus-visible]::after{position:absolute;}",".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}",".fd6o370[data-fui-focus-visible]::after{z-index:1;}",".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}",".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}",".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}",".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}",".f99gebs[data-fui-focus-visible]::after{border-top-width:var(--strokeWidthThick);}",".f13b0oaq[data-fui-focus-visible]::after{border-right-width:var(--strokeWidthThick);}",".f8t2bz6[data-fui-focus-visible]::after{border-left-width:var(--strokeWidthThick);}",".f1jvq617[data-fui-focus-visible]::after{border-bottom-width:var(--strokeWidthThick);}",".f11unbnk[data-fui-focus-visible]::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".fbd201q[data-fui-focus-visible]::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f12nqxso[data-fui-focus-visible]::after{border-top-right-radius:var(--fui-Card--border-radius);}",".f1uguk4w[data-fui-focus-visible]::after{border-top-left-radius:var(--fui-Card--border-radius);}",".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}",".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}",".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}",".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}",".f15fr7a0[data-fui-focus-visible]::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".fwsq40z[data-fui-focus-visible]::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".fy0y4wt[data-fui-focus-visible]::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f34ld9f[data-fui-focus-visible]::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1b1k54r[data-fui-focus-within]:focus-within{border-top-color:transparent;}",".f4ne723[data-fui-focus-within]:focus-within{border-right-color:transparent;}",".fqqcjud[data-fui-focus-within]:focus-within{border-left-color:transparent;}",".fh7aioi[data-fui-focus-within]:focus-within{border-bottom-color:transparent;}",'.ffht0p2[data-fui-focus-within]:focus-within::after{content:"";}',".f1p0ul1q[data-fui-focus-within]:focus-within::after{position:absolute;}",".f1c901ms[data-fui-focus-within]:focus-within::after{pointer-events:none;}",".f1alokd7[data-fui-focus-within]:focus-within::after{z-index:1;}",".f78i1la[data-fui-focus-within]:focus-within::after{border-top-style:solid;}",".f1kvsw7t[data-fui-focus-within]:focus-within::after{border-right-style:solid;}",".f1bw8brt[data-fui-focus-within]:focus-within::after{border-left-style:solid;}",".f8k7e5g[data-fui-focus-within]:focus-within::after{border-bottom-style:solid;}",".f125hn41[data-fui-focus-within]:focus-within::after{border-top-width:var(--strokeWidthThick);}",".fgxkx34[data-fui-focus-within]:focus-within::after{border-right-width:var(--strokeWidthThick);}",".f1v56tyl[data-fui-focus-within]:focus-within::after{border-left-width:var(--strokeWidthThick);}",".fdxas6f[data-fui-focus-within]:focus-within::after{border-bottom-width:var(--strokeWidthThick);}",".fxwickw[data-fui-focus-within]:focus-within::after{border-bottom-right-radius:var(--fui-Card--border-radius);}",".f1ia5cve[data-fui-focus-within]:focus-within::after{border-bottom-left-radius:var(--fui-Card--border-radius);}",".f194aguw[data-fui-focus-within]:focus-within::after{border-top-right-radius:var(--fui-Card--border-radius);}",".fqicc6c[data-fui-focus-within]:focus-within::after{border-top-left-radius:var(--fui-Card--border-radius);}",".fq4eyks[data-fui-focus-within]:focus-within::after{border-top-color:var(--colorStrokeFocus2);}",".f1ya6x16[data-fui-focus-within]:focus-within::after{border-right-color:var(--colorStrokeFocus2);}",".ftuszwa[data-fui-focus-within]:focus-within::after{border-left-color:var(--colorStrokeFocus2);}",".f1e2iu44[data-fui-focus-within]:focus-within::after{border-bottom-color:var(--colorStrokeFocus2);}",".f1amxum7[data-fui-focus-within]:focus-within::after{top:calc(0px - var(--strokeWidthThick) - -2px);}",".f1cec8w7[data-fui-focus-within]:focus-within::after{right:calc(0px - var(--strokeWidthThick) - -2px);}",".f554mv0[data-fui-focus-within]:focus-within::after{left:calc(0px - var(--strokeWidthThick) - -2px);}",".f1sj6kbr[data-fui-focus-within]:focus-within::after{bottom:calc(0px - var(--strokeWidthThick) - -2px);}",".f1063pyq{flex-direction:row;}",".f122n59{align-items:center;}",".fpfyeui>.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",".fwi74qw>.fui-CardPreview{margin-bottom:calc(var(--fui-Card--size) * -1);}",'.ffcmwrh>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-left:calc(var(--fui-Card--size) * -1);}','.f6ppoih>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.f1dc9p14>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-right:calc(var(--fui-Card--size) * -1);}','.fd933vt>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-left:calc(var(--fui-Card--size) * -1);}',".f18esqgw>.fui-CardHeader:last-of-type,.f18esqgw>.fui-CardFooter:last-of-type{flex-grow:1;}",".f1vx9l62{flex-direction:column;}",".fobhde4>.fui-CardPreview{margin-left:calc(var(--fui-Card--size) * -1);}",".fx5r7kn>.fui-CardPreview{margin-right:calc(var(--fui-Card--size) * -1);}",'.f19chtn8>:not([aria-hidden="true"]).fui-CardPreview:first-of-type{margin-top:calc(var(--fui-Card--size) * -1);}',".fuvs6re>.fui-Card__floatingAction+.fui-CardPreview{margin-top:calc(var(--fui-Card--size) * -1);}",'.fy4glsf>:not([aria-hidden="true"]).fui-CardPreview:last-of-type{margin-bottom:calc(var(--fui-Card--size) * -1);}',".f1pi9uxy{--fui-Card--size:8px;}",".f1h1zgly{--fui-Card--border-radius:var(--borderRadiusSmall);}",".frsmuga{--fui-Card--size:12px;}",".fuldkky{--fui-Card--border-radius:var(--borderRadiusMedium);}",".f1qua4xo{--fui-Card--size:16px;}",".fimkt6v{--fui-Card--border-radius:var(--borderRadiusLarge);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1whvlc6{box-shadow:var(--shadow4);}",".f16gxe2i::after{border-top-color:var(--colorTransparentStroke);}",".fpgykix::after{border-right-color:var(--colorTransparentStroke);}",".fzybk4o::after{border-left-color:var(--colorTransparentStroke);}",".f1osi826::after{border-bottom-color:var(--colorTransparentStroke);}",".f1k6fduh{cursor:pointer;}",".f1nfm20t{background-color:var(--colorNeutralBackground1Selected);}",".f16eln5f::after{border-top-color:var(--colorNeutralStroke1Selected);}",".fa2okxs::after{border-right-color:var(--colorNeutralStroke1Selected);}",".fg4zq3l::after{border-left-color:var(--colorNeutralStroke1Selected);}",".ff6932p::after{border-bottom-color:var(--colorNeutralStroke1Selected);}",".f1dmdbja{background-color:var(--colorNeutralBackground2);}",".fjxa0vh{background-color:var(--colorNeutralBackground2Selected);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1couhl3{box-shadow:none;}",".ft83z1f::after{border-top-color:var(--colorNeutralStroke1);}",".f1g4150c::after{border-right-color:var(--colorNeutralStroke1);}",".f192dr6e::after{border-left-color:var(--colorNeutralStroke1);}",".f1qnawh6::after{border-bottom-color:var(--colorNeutralStroke1);}",".f1q9pm1r{background-color:var(--colorTransparentBackgroundSelected);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fq5gl1p{background-color:var(--colorSubtleBackgroundSelected);}",".f1euv43f{position:absolute;}",".fqclxi7{top:4px;}",".fiv86kb{right:4px;}",".f36uhnt{left:4px;}",".f19g0ac{z-index:1;}",".frkrog8{width:1px;}",".f1mpe4l3{height:1px;}",".fmf1zke{clip:rect(0 0 0 0);}",".f1wch0ki{clip-path:inset(50%);}",".fz5stix{white-space:nowrap;}"],f:[".ftqa4ok:focus{outline-style:none;}"],i:[".f2hkw1w:focus-visible{outline-style:none;}"],m:[["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1k55ka9[data-fui-focus-within]:focus-within::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f16pcs8n[data-fui-focus-within]:focus-within::after{border-left-color:Highlight;}.fgclinu[data-fui-focus-within]:focus-within::after{border-right-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fycbxed[data-fui-focus-within]:focus-within::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkc42ay{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1lkg8j3{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1nkj0oa .fui-CardPreview,.f1nkj0oa .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fey3rwa::after{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f5jhx11::after{border-right-color:Highlight;}.fff9uym::after{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fm7n0jy::after{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fpfvv3l:hover,.fpfvv3l :active{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1oamsm6:hover,.f1oamsm6 :active{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1il21bs:hover,.f1il21bs :active{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fnn5dk0:hover .fui-CardPreview,.fnn5dk0 :active .fui-CardPreview,.fnn5dk0:hover .fui-CardFooter,.fnn5dk0 :active .fui-CardFooter{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}]],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".f1m145df:hover{box-shadow:var(--shadow8);}",".f1kz6goq:hover{background-color:var(--colorNeutralBackground1Selected);}",".f1uvynv3:hover{background-color:var(--colorNeutralBackground2Hover);}",".fehi0vp:hover{background-color:var(--colorNeutralBackground2Selected);}",".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".f1llr77y:hover::after{border-top-color:var(--colorNeutralStroke1Hover);}",".fzk0khw:hover::after{border-right-color:var(--colorNeutralStroke1Hover);}",".fjj8tog:hover::after{border-left-color:var(--colorNeutralStroke1Hover);}",".fb1u8ub:hover::after{border-bottom-color:var(--colorNeutralStroke1Hover);}",".fg59vm4:hover{background-color:var(--colorTransparentBackgroundSelected);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".f1uqaxdt:hover{background-color:var(--colorSubtleBackgroundSelected);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".f1yhgkbh:active{background-color:var(--colorNeutralBackground2Pressed);}",".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}",".f1uohb70:active::after{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1jm7v1n:active::after{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1bus3rq:active::after{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1fbu7rr:active::after{border-bottom-color:var(--colorNeutralStroke1Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}"]}),G7=e=>{const t=V7(),r={horizontal:t.orientationHorizontal,vertical:t.orientationVertical},n={small:t.sizeSmall,medium:t.sizeMedium,large:t.sizeLarge},o={filled:t.filled,"filled-alternative":t.filledAlternative,outline:t.outline,subtle:t.subtle},i={filled:t.filledInteractiveSelected,"filled-alternative":t.filledAlternativeInteractiveSelected,outline:t.outlineInteractiveSelected,subtle:t.subtleInteractiveSelected},a={filled:t.filledInteractive,"filled-alternative":t.filledAlternativeInteractive,outline:t.outlineInteractive,subtle:t.subtleInteractive},l=e.interactive||e.selectable,s=x.useMemo(()=>e.selectable?e.selectFocused?t.selectableFocused:"":t.focused,[e.selectFocused,e.selectable,t.focused,t.selectableFocused]);return e.root.className=G(Vf.root,t.root,r[e.orientation],n[e.size],o[e.appearance],l&&a[e.appearance],e.selected&&i[e.appearance],s,l&&t.highContrastInteractive,e.selected&&t.highContrastSelected,e.root.className),e.floatingAction&&(e.floatingAction.className=G(Vf.floatingAction,t.select,e.floatingAction.className)),e.checkbox&&(e.checkbox.className=G(Vf.checkbox,t.hiddenCheckbox,e.checkbox.className)),e};function K7({selectableA11yProps:e}){return{selectableA11yProps:e}}const Oo=x.forwardRef((e,t)=>{const r=L7(e,t),n=K7(r);return G7(r),q7(r,n)});Oo.displayName="Card";const X7=(e,t)=>{const{action:r}=e;return{components:{root:"div",action:"div"},root:be(Re("div",{ref:t,...e}),{elementType:"div"}),action:Te(r,{elementType:"div"})}},Z7=e=>At(e.root,{children:[e.root.children,e.action&&U(e.action,{})]}),d2=x.forwardRef((e,t)=>{const r=X7(e,t);return $7(r),Z7(r)});d2.displayName="CardFooter";function Q7(e){function t(r){return x.isValidElement(r)&&!!r.props.id}return x.Children.toArray(e).find(t)}function J7(e,t,r){return e||(t!=null&&t.props.id?t.props.id:r)}const Y7=(e,t)=>{const{image:r,header:n,description:o,action:i}=e,{selectableA11yProps:{referenceId:a,setReferenceId:l}}=A7(),s=x.useRef(null),c=x.useRef(!1),u=_n(vi.header,a),f=Te(n,{renderByDefault:!0,defaultProps:{ref:s,id:c.current?void 0:a},elementType:"div"});return x.useEffect(()=>{var d;const h=c.current||(d=s.current)===null||d===void 0?void 0:d.id,p=Q7(f==null?void 0:f.children);c.current=!!p,l(J7(h,p,u))},[u,n,f,l]),{components:{root:"div",image:"div",header:"div",description:"div",action:"div"},root:be(Re("div",{ref:t,...e}),{elementType:"div"}),image:Te(r,{elementType:"div"}),header:f,description:Te(o,{elementType:"div"}),action:Te(i,{elementType:"div"})}},eF=e=>At(e.root,{children:[e.image&&U(e.image,{}),U(e.header,{}),e.description&&U(e.description,{}),e.action&&U(e.action,{})]}),h2=x.forwardRef((e,t)=>{const r=Y7(e,t);return W7(r),eF(r)});h2.displayName="CardHeader";const p2=x.createContext(void 0),tF={handleTagDismiss:()=>({}),size:"medium"},rF=p2.Provider,nF=()=>{var e;return(e=x.useContext(p2))!==null&&e!==void 0?e:tF},oF=K({base:{Ijaq50:"f11uok23",Br312pm:"f1qdfnnj",nk6f5a:"f1s27gz",Bw0ie65:"f86d0yl",mc9l5x:"f22iagw"},medium:{uwmqm3:["f1rtp3s9","f18k1jr3"],z189sj:["f7x41pl","fruq291"],a9b677:"f64fuq3",Be2twd7:"fe5j1ua"},small:{uwmqm3:["f15vdbe4","fwiuce9"],z189sj:["ffczdla","fgiv446"],a9b677:"fjw5fx7",Be2twd7:"f4ybsrx"},"extra-small":{uwmqm3:["f15vdbe4","fwiuce9"],z189sj:["ffczdla","fgiv446"],a9b677:"frx94fk",Be2twd7:"f1ugzwwg"}},{d:[".f11uok23{grid-row-start:media;}",".f1qdfnnj{grid-column-start:media;}",".f1s27gz{grid-row-end:media;}",".f86d0yl{grid-column-end:media;}",".f22iagw{display:flex;}",".f1rtp3s9{padding-left:7px;}",".f18k1jr3{padding-right:7px;}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".f64fuq3{width:20px;}",".fe5j1ua{font-size:20px;}",".f15vdbe4{padding-left:5px;}",".fwiuce9{padding-right:5px;}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".fjw5fx7{width:16px;}",".f4ybsrx{font-size:16px;}",".frx94fk{width:12px;}",".f1ugzwwg{font-size:12px;}"]}),iF=K({base:{Ijaq50:"f11uok23",Br312pm:"f1qdfnnj",nk6f5a:"f1s27gz",Bw0ie65:"f86d0yl",mc9l5x:"f22iagw",uwmqm3:["f10xn8zz","f136y8j8"]},medium:{z189sj:["f1vdfbxk","f1f5gg8d"]},small:{z189sj:["fdw0yi8","fk8j09s"]},"extra-small":{z189sj:["fdw0yi8","fk8j09s"]}},{d:[".f11uok23{grid-row-start:media;}",".f1qdfnnj{grid-column-start:media;}",".f1s27gz{grid-row-end:media;}",".f86d0yl{grid-column-end:media;}",".f22iagw{display:flex;}",".f10xn8zz{padding-left:1px;}",".f136y8j8{padding-right:1px;}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}"]}),aF=K({base:{Huce71:"fz5stix",uwmqm3:["fgiv446","ffczdla"],z189sj:["ffczdla","fgiv446"]},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},"extra-small":{Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},withoutSecondaryText:{Br312pm:"faqcfhe",Ijaq50:"f1q3ipgb",nk6f5a:"fc0ab3q",Byoj8tv:"f1g03r3y"},withSecondaryText:{Ijaq50:"f1q3ipgb",Br312pm:"faqcfhe",nk6f5a:"fs32cm1",Bw0ie65:"f1bo7viq",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",B6of3ja:"f1ryq6si"}},{d:[".fz5stix{white-space:nowrap;}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".faqcfhe{grid-column-start:primary;}",".f1q3ipgb{grid-row-start:primary;}",".fc0ab3q{grid-row-end:secondary;}",".f1g03r3y{padding-bottom:var(--spacingHorizontalXXS);}",".fs32cm1{grid-row-end:primary;}",".f1bo7viq{grid-column-end:primary;}",".f1ryq6si{margin-top:-2px;}"]}),lF=Qe("r7hv1ps","rnrslm9",[".r7hv1ps{grid-area:secondary;padding-left:var(--spacingHorizontalXXS);padding-right:var(--spacingHorizontalXXS);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase100);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase100);white-space:nowrap;}",".rnrslm9{grid-area:secondary;padding-right:var(--spacingHorizontalXXS);padding-left:var(--spacingHorizontalXXS);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase100);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase100);white-space:nowrap;}"]);function sF(e){const{avatarSize:t,avatarShape:r}=e;return{avatar:x.useMemo(()=>({size:t,shape:r}),[r,t])}}const cF=(e,t)=>{const{handleTagDismiss:r,size:n}=nF(),o=_n("fui-InteractionTag-",e.id),i=_n("fui-InteractionTagPrimary-"),{appearance:a="filled",disabled:l=!1,shape:s="rounded",size:c=n,value:u=o}=e;return{appearance:a,disabled:l,handleTagDismiss:r,interactionTagPrimaryId:i,shape:s,size:c,value:u,components:{root:"div"},root:be(Re("div",{ref:t,...e,id:o}),{elementType:"div"})}},g2=x.createContext(void 0),uF={appearance:"filled",disabled:!1,handleTagDismiss:()=>({}),interactionTagPrimaryId:"",shape:"rounded",size:"medium",value:""},fF=g2.Provider,dF=()=>{var e;return(e=x.useContext(g2))!==null&&e!==void 0?e:uF},hF=(e,t)=>U(fF,{value:t.interactionTag,children:U(e.root,{})}),pF={root:"fui-InteractionTag"},gF=Qe("r1y684pp",null,[".r1y684pp{display:inline-flex;align-items:center;box-sizing:border-box;width:fit-content;}"]),mF=K({rounded:{Bbmb7ep:["f1aa9q02","f16jpd5f"],Beyfa6y:["f16jpd5f","f1aa9q02"],B7oj6ja:["f1jar5jt","fyu767a"],Btl43ni:["fyu767a","f1jar5jt"]},circular:{Bbmb7ep:["f8fbkgy","f1nfllo7"],Beyfa6y:["f1nfllo7","f8fbkgy"],B7oj6ja:["f1djnp8u","f1s8kh49"],Btl43ni:["f1s8kh49","f1djnp8u"]},medium:{Bqenvij:"f1d2rq10"},small:{Bqenvij:"frvgh55"},"extra-small":{Bqenvij:"fjamq6b"}},{d:[".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}",".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}",".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}",".f8fbkgy{border-bottom-right-radius:var(--borderRadiusCircular);}",".f1nfllo7{border-bottom-left-radius:var(--borderRadiusCircular);}",".f1djnp8u{border-top-right-radius:var(--borderRadiusCircular);}",".f1s8kh49{border-top-left-radius:var(--borderRadiusCircular);}",".f1d2rq10{height:32px;}",".frvgh55{height:24px;}",".fjamq6b{height:20px;}"]}),vF=e=>{const t=gF(),r=mF(),{shape:n,size:o}=e;return e.root.className=G(pF.root,t,r[n],r[o],e.root.className),e};function bF(e){const{appearance:t,disabled:r,handleTagDismiss:n,interactionTagPrimaryId:o,shape:i,size:a,value:l}=e;return{interactionTag:x.useMemo(()=>({appearance:t,disabled:r,handleTagDismiss:n,interactionTagPrimaryId:o,shape:i,size:a,value:l}),[t,r,n,o,i,a,l])}}const m2=x.forwardRef((e,t)=>{const r=cF(e,t);return vF(r),De("useInteractionTagStyles_unstable")(r),hF(r,bF(r))});m2.displayName="InteractionTag";const yF={medium:28,small:20,"extra-small":16},wF={rounded:"square",circular:"circular"},kF=(e,t)=>{const{appearance:r,disabled:n,interactionTagPrimaryId:o,shape:i,size:a}=dF(),{hasSecondaryAction:l=!1}=e;return{appearance:r,avatarShape:wF[i],avatarSize:yF[a],disabled:n,hasSecondaryAction:l,shape:i,size:a,components:{root:"button",media:"span",icon:"span",primaryText:"span",secondaryText:"span"},root:be(Re("button",{ref:t,disabled:n,id:o,...e}),{elementType:"button"}),media:Te(e.media,{elementType:"span"}),icon:Te(e.icon,{elementType:"span"}),primaryText:Te(e.primaryText,{renderByDefault:!0,defaultProps:{children:e.children},elementType:"span"}),secondaryText:Te(e.secondaryText,{elementType:"span"})}},xF=(e,t)=>At(e.root,{children:[e.media&&U(HE,{value:t.avatar,children:U(e.media,{})}),e.icon&&U(e.icon,{}),e.primaryText&&U(e.primaryText,{}),e.secondaryText&&U(e.secondaryText,{})]}),Na={root:"fui-InteractionTagPrimary",media:"fui-InteractionTagPrimary__media",icon:"fui-InteractionTagPrimary__icon",primaryText:"fui-InteractionTagPrimary__primaryText",secondaryText:"fui-InteractionTagPrimary__secondaryText"},SF=Qe("r11r5xvj","rjnnu2a",{r:['.r11r5xvj{color:inherit;font-family:inherit;padding:0px;border-style:none;-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button;text-align:unset;background-color:transparent;display:inline-grid;height:100%;align-items:center;grid-template-areas:"media primary " "media secondary";border:var(--strokeWidthThin) solid var(--colorTransparentStroke);border-radius:var(--borderRadiusMedium);}',".r11r5xvj[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);outline-style:solid;outline-color:var(--colorStrokeFocus2);z-index:1;}",'.rjnnu2a{color:inherit;font-family:inherit;padding:0px;border-style:none;-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button;text-align:unset;background-color:transparent;display:inline-grid;height:100%;align-items:center;grid-template-areas:"media primary " "media secondary";border:var(--strokeWidthThin) solid var(--colorTransparentStroke);border-radius:var(--borderRadiusMedium);}',".rjnnu2a[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);outline-style:solid;outline-color:var(--colorStrokeFocus2);z-index:1;}"],s:['@media (forced-colors: active){.r11r5xvj{position:relative;}.r11r5xvj::before{content:"";border-top-width:var(--strokeWidthThin);border-top-style:solid;position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);}}','@media (forced-colors: active){.rjnnu2a{position:relative;}.rjnnu2a::before{content:"";border-top-width:var(--strokeWidthThin);border-top-style:solid;position:absolute;top:-1px;right:-1px;left:-1px;bottom:-1px;border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);}}']}),_F=Qe("r1k6bywq","r46rai9",{r:['.r1k6bywq{color:inherit;font-family:inherit;padding:0px;border-style:none;-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button;text-align:unset;background-color:transparent;display:inline-grid;height:100%;align-items:center;grid-template-areas:"media primary " "media secondary";border:var(--strokeWidthThin) solid var(--colorTransparentStroke);border-radius:var(--borderRadiusCircular);}',".r1k6bywq[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);outline-style:solid;outline-color:var(--colorStrokeFocus2);z-index:1;}",'.r46rai9{color:inherit;font-family:inherit;padding:0px;border-style:none;-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button;text-align:unset;background-color:transparent;display:inline-grid;height:100%;align-items:center;grid-template-areas:"media primary " "media secondary";border:var(--strokeWidthThin) solid var(--colorTransparentStroke);border-radius:var(--borderRadiusCircular);}',".r46rai9[data-fui-focus-visible]{outline-width:var(--strokeWidthThick);outline-style:solid;outline-color:var(--colorStrokeFocus2);z-index:1;}"],s:['@media (forced-colors: active){.r1k6bywq{position:relative;}.r1k6bywq::before{content:"";border-top-width:var(--strokeWidthThin);border-top-style:solid;border-left-width:var(--strokeWidthThin);border-left-style:solid;position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border-top-left-radius:var(--borderRadiusCircular);border-bottom-left-radius:var(--borderRadiusCircular);}}','@media (forced-colors: active){.r46rai9{position:relative;}.r46rai9::before{content:"";border-top-width:var(--strokeWidthThin);border-top-style:solid;border-right-width:var(--strokeWidthThin);border-right-style:solid;position:absolute;top:-1px;right:-1px;left:-1px;bottom:-1px;border-top-right-radius:var(--borderRadiusCircular);border-bottom-right-radius:var(--borderRadiusCircular);}}']}),BF=K({withoutSecondaryAction:{Bglfifq:"ff3fe07",G4pote:["f1b2qn5y","fw1c3ou"],B33s42s:["f9bjnkc","f17ca6ku"],w20ur:["f6k8nl2","f1ik0cvg"],Byczuf6:["f10f1qdh","fmb7qm7"]}},{m:[["@media (forced-colors: active){.ff3fe07{position:relative;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1b2qn5y::before{border-right-width:var(--strokeWidthThin);}.fw1c3ou::before{border-left-width:var(--strokeWidthThin);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f17ca6ku::before{border-left-style:solid;}.f9bjnkc::before{border-right-style:solid;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ik0cvg::before{border-top-left-radius:var(--borderRadiusCircular);}.f6k8nl2::before{border-top-right-radius:var(--borderRadiusCircular);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f10f1qdh::before{border-bottom-right-radius:var(--borderRadiusCircular);}.fmb7qm7::before{border-bottom-left-radius:var(--borderRadiusCircular);}}",{m:"(forced-colors: active)"}]]}),CF=K({filled:{De3pzq:"f16xq7d1",sj55zd:"fkfq4zb",eoavqd:"f8491dx",Jwef8y:"f1h648pw",Bi91k9c:"fnwyq0v",ecr2s2:"fwdzr64",lj723h:"flvvhsy",Bqrx1nm:"fq7113v",kx9iu6:"fp3oj7s"},outline:{De3pzq:"fhovq9v",sj55zd:"fkfq4zb",g2u3we:"fj3muxo",h3c5rm:["f1akhkt","f1lxtadh"],B9xav0g:"f1aperda",zhjwy3:["f1lxtadh","f1akhkt"],eoavqd:"f8491dx",Jwef8y:"f1t94bn6",Bi91k9c:"fnwyq0v",Bk3fhr4:"ft1hn21",I6i3kg:"fqbfmpb",Bmfj8id:"fuxngvv",ecr2s2:"f1wfn5kd",lj723h:"flvvhsy",Bnrwwps:"fvpl5sy",weioyw:"f1xblose",Bpre390:"f8upcvr",Bqrx1nm:"fq7113v",kx9iu6:"fp3oj7s"},brand:{De3pzq:"f16xkysk",sj55zd:"f16muhyy",eoavqd:"f8491dx",Jwef8y:"f1yj72w4",Bi91k9c:"f3ymbdj",ecr2s2:"fy3sl2y",lj723h:"fryz5bw",Bqrx1nm:"fq7113v",kx9iu6:"fp3oj7s"},medium:{z189sj:["f18k1jr3","f1rtp3s9"]},small:{z189sj:["fwiuce9","f15vdbe4"]},"extra-small":{z189sj:["fwiuce9","f15vdbe4"]}},{d:[".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fj3muxo{border-top-color:var(--colorNeutralStroke1);}",".f1akhkt{border-right-color:var(--colorNeutralStroke1);}",".f1lxtadh{border-left-color:var(--colorNeutralStroke1);}",".f1aperda{border-bottom-color:var(--colorNeutralStroke1);}",".f16xkysk{background-color:var(--colorBrandBackground2);}",".f16muhyy{color:var(--colorBrandForeground1);}",".f18k1jr3{padding-right:7px;}",".f1rtp3s9{padding-left:7px;}",".fwiuce9{padding-right:5px;}",".f15vdbe4{padding-left:5px;}"],h:[".f8491dx:hover{cursor:pointer;}",".f1h648pw:hover{background-color:var(--colorNeutralBackground3Hover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".ft1hn21:hover .fui-Icon-filled{display:inline;}",".fqbfmpb:hover .fui-Icon-filled{color:var(--colorNeutralForeground2BrandHover);}",".fuxngvv:hover .fui-Icon-regular{display:none;}",".f1yj72w4:hover{background-color:var(--colorBrandBackground2Hover);}",".f3ymbdj:hover{color:var(--colorCompoundBrandForeground1Hover);}"],a:[".fwdzr64:active{background-color:var(--colorNeutralBackground3Pressed);}",".flvvhsy:active{color:var(--colorNeutralForeground2Pressed);}",".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}",".fvpl5sy:active .fui-Icon-filled{display:inline;}",".f1xblose:active .fui-Icon-filled{color:var(--colorNeutralForeground2BrandPressed);}",".f8upcvr:active .fui-Icon-regular{display:none;}",".fy3sl2y:active{background-color:var(--colorBrandBackground2Pressed);}",".fryz5bw:active{color:var(--colorCompoundBrandForeground1Pressed);}"],m:[["@media (forced-colors: active){.fq7113v:hover{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fp3oj7s:active{background-color:HighlightText;}}",{m:"(forced-colors: active)"}]]}),PF=K({filled:{Bceei9c:"fdrzuqr",De3pzq:"f1bg9a2p",sj55zd:"f1s2aq7o",g2u3we:"fgig46g",h3c5rm:["f1mxt3zg","fziff3p"],B9xav0g:"f250w3l",zhjwy3:["fziff3p","f1mxt3zg"]},outline:{Bceei9c:"fdrzuqr",De3pzq:"fhovq9v",sj55zd:"f1s2aq7o",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"]},brand:{Bceei9c:"fdrzuqr",De3pzq:"f1bg9a2p",sj55zd:"f1s2aq7o",g2u3we:"fgig46g",h3c5rm:["f1mxt3zg","fziff3p"],B9xav0g:"f250w3l",zhjwy3:["fziff3p","f1mxt3zg"]}},{d:[".fdrzuqr{cursor:not-allowed;}",".f1bg9a2p{background-color:var(--colorNeutralBackgroundDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fgig46g{border-top-color:var(--colorTransparentStrokeDisabled);}",".f1mxt3zg{border-right-color:var(--colorTransparentStrokeDisabled);}",".fziff3p{border-left-color:var(--colorTransparentStrokeDisabled);}",".f250w3l{border-bottom-color:var(--colorTransparentStrokeDisabled);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}"]}),EF=K({medium:{uwmqm3:["f1rtp3s9","f18k1jr3"]},small:{uwmqm3:["f15vdbe4","fwiuce9"]},"extra-small":{uwmqm3:["f15vdbe4","fwiuce9"]}},{d:[".f1rtp3s9{padding-left:7px;}",".f18k1jr3{padding-right:7px;}",".f15vdbe4{padding-left:5px;}",".fwiuce9{padding-right:5px;}"]}),zF=K({base:{B7oj6ja:["f3fg2lr","f13av6d4"],Bbmb7ep:["fzi6hpg","fyowgf4"],vrafjx:["f1n71otn","f1deefiw"],B6xbmo0:["f146y5a9","f1k2ftg"],kdpuga:["f1ndz5i7","f1co4qro"]},medium:{z189sj:["f1vdfbxk","f1f5gg8d"]},small:{z189sj:["fdw0yi8","fk8j09s"]},"extra-small":{z189sj:["fdw0yi8","fk8j09s"]}},{d:[".f3fg2lr{border-top-right-radius:var(--borderRadiusNone);}",".f13av6d4{border-top-left-radius:var(--borderRadiusNone);}",".fzi6hpg{border-bottom-right-radius:var(--borderRadiusNone);}",".fyowgf4{border-bottom-left-radius:var(--borderRadiusNone);}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f146y5a9[data-fui-focus-visible]{border-top-right-radius:var(--borderRadiusNone);}",".f1k2ftg[data-fui-focus-visible]{border-top-left-radius:var(--borderRadiusNone);}",".f1ndz5i7[data-fui-focus-visible]{border-bottom-right-radius:var(--borderRadiusNone);}",".f1co4qro[data-fui-focus-visible]{border-bottom-left-radius:var(--borderRadiusNone);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}"]}),TF=e=>{const t=SF(),r=_F(),n=CF(),o=PF(),i=EF(),a=zF(),l=oF(),s=iF(),c=aF(),u=lF(),f=BF(),{shape:d,size:h,appearance:p}=e;return e.root.className=G(Na.root,d==="rounded"?t:r,d==="circular"&&!e.hasSecondaryAction&&f.withoutSecondaryAction,e.disabled?o[p]:n[p],n[h],!e.media&&!e.icon&&i[h],e.hasSecondaryAction&&a.base,e.hasSecondaryAction&&a[h],e.root.className),e.media&&(e.media.className=G(Na.media,s.base,s[h],e.media.className)),e.icon&&(e.icon.className=G(Na.icon,l.base,l[h],e.icon.className)),e.primaryText&&(e.primaryText.className=G(Na.primaryText,c.base,c[h],e.secondaryText?c.withSecondaryText:c.withoutSecondaryText,e.primaryText.className)),e.secondaryText&&(e.secondaryText.className=G(Na.secondaryText,u,e.secondaryText.className)),e},v2=x.forwardRef((e,t)=>{const r=kF(e,t);return TF(r),De("useInteractionTagPrimaryStyles_unstable")(r),xF(r,sF(r))});v2.displayName="InteractionTagPrimary";const NF={root:"fui-InteractionTagSecondary"},RF=(e,t)=>{const{onDismiss:r,size:n="medium"}=e,o=x.useRef(),{targetDocument:i}=ht(),{findNextFocusable:a,findPrevFocusable:l}=oi(),s=se((u,f)=>{var d;r==null||r(u,f);const h=i==null?void 0:i.activeElement;if(!((d=o.current)===null||d===void 0)&&d.contains(h)){const p=a(h,{container:o.current});if(p){p.focus();return}if(h!=null&&h.className.includes(NF.root)){const m=l(h.parentElement,{container:o.current});m==null||m.focus()}else{const m=l(h,{container:o.current});m==null||m.focus()}}}),c=uu({circular:!0,axis:"both",memorizeCurrent:!0});return{handleTagDismiss:s,size:n,components:{root:"div"},root:be(Re("div",{ref:nr(t,o),role:"toolbar",...c,...e}),{elementType:"div"})}},jF=(e,t)=>U(rF,{value:t.tagGroup,children:U(e.root,{})}),FF={root:"fui-TagGroup"},DF=K({base:{mc9l5x:"ftuwxu6"},medium:{i8kkvl:"fsnqrgy"},small:{i8kkvl:"f1rjii52"},"extra-small":{i8kkvl:"f1ufnopg"}},{d:[".ftuwxu6{display:inline-flex;}",".fsnqrgy{column-gap:var(--spacingHorizontalS);}",".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".f1ufnopg{column-gap:var(--spacingHorizontalXS);}"]}),IF=e=>{const t=DF(),{size:r}=e;return e.root.className=G(FF.root,t.base,t[r],e.root.className),e};function AF(e){const{handleTagDismiss:t,size:r}=e;return{tagGroup:x.useMemo(()=>({handleTagDismiss:t,size:r}),[t,r])}}const b2=x.forwardRef((e,t)=>{const r=RF(e,t);return IF(r),De("useTagGroupStyles_unstable")(r),jF(r,AF(r))});b2.displayName="TagGroup";const MF=()=>{var e;const t=ht(),r=x.useRef(!1),n=la()&&((e=t.targetDocument)===null||e===void 0?void 0:e.defaultView),o=x.useCallback(i=>{r.current=i.matches},[]);return sn(()=>{if(!n||!n.matchMedia)return;const i=n.matchMedia("screen and (prefers-reduced-motion: reduce)");return i.matches&&(r.current=!0),i.addEventListener("change",o),()=>i.removeEventListener("change",o)},[o,n]),r.current},OF=e=>y2(e)?e.computedStyleMap():LF(e),y2=e=>!!(typeof CSS<"u"&&CSS.number&&e.computedStyleMap),LF=e=>{var t,r;const n=la()&&((r=(t=e.ownerDocument)===null||t===void 0?void 0:t.defaultView)!==null&&r!==void 0?r:window);return n?n.getComputedStyle(e,null):{getPropertyValue:o=>""}};function J1(e){const t=e.trim();if(t.includes("auto"))return 0;if(t.endsWith("ms")){const r=Number(t.replace("ms",""));return isNaN(r)?0:r}return Number(t.slice(0,-1).replace(",","."))*1e3}const qF=(e,t)=>{const r=e.getAll(t);return r.length>0?r.map(({value:n,unit:o})=>`${n}${o}`):["0"]},HF=(e,t)=>{const r=e.getPropertyValue(t);return r?r.split(","):["0"]},Y1=(e,t)=>{const r=Math.max(e.length,t.length),n=[];if(r===0)return 0;for(let o=0;o{const t=y2(e),r=OF(e),n=a=>t?qF(r,a):HF(r,a),o=Y1(n("transition-duration"),n("transition-delay")),i=Y1(n("animation-duration"),n("animation-delay"));return Math.max(o,i)},UF=e=>{const t=x.useRef(!0);return t.current&&e?(t.current=!1,!0):t.current};function $F(e,t={}){const{animateOnFirstMount:r,duration:n}={animateOnFirstMount:!1,...t},[o,i]=x.useState(e&&r?"entering":e?"idle":"unmounted"),[a,l]=x.useState(!r&&e),[s,c]=Om(),[u,f]=Om(),[d,h]=PC(),[p,m]=x.useState(null),y=MF(),v=FC(),g=UF(!!p),b=x.useRef(e).current,k=y||g&&b&&!r,_=x.useCallback(E=>{E&&m(E)},[]),w=x.useCallback(E=>(u(()=>d(E),0),()=>{f(),h()}),[h,f,d,u]),S=x.useCallback(()=>{i(e?"entered":"exited"),w(()=>i(e?"idle":"unmounted"))},[w,e]);return x.useEffect(()=>{if(!v){if(k){i(e?"idle":"unmounted"),l(e);return}if(i(e?"entering":"exiting"),!!p)return w(()=>{l(e),w(()=>{const E=n||WF(p);if(E===0){S();return}s(()=>S(),E)})}),()=>c()}},[p,k,S,e]),x.useMemo(()=>({ref:_,type:o,active:a,canRender:e||o!=="unmounted"}),[a,o,e])}function w2(e,t){const r=typeof e=="object",n=$F(r?!1:e,t);return r?e:n}const VF=K({reduced:{Hwfdqs:"f1bggi9a"}},{m:[["@media screen and (prefers-reduced-motion: reduce){.f1bggi9a{transition-duration:0.01ms!important;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]});const Oh=(e,t)=>{const{reduced:r}=VF(),n=x.useMemo(()=>!t.enter&&!t.exit?"":e.active||e.type==="idle"?t.enter:e.active?"":t.exit,[e.active,e.type,t.enter,t.exit]);return x.useEffect(()=>void 0,[t]),G(t.default,n,t[e.type],r)};function k2(e){const{open:t=!1,size:r="small",position:n="start"}=e;return{size:r,position:n,open:t}}const GF=Qe("rivxbo","r1trjn1z",[".rivxbo{top:0px;right:0px;bottom:0px;left:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}",".r1trjn1z{top:0px;left:0px;bottom:0px;right:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}"]),KF=K({nested:{De3pzq:"f1c21dwh"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}"]}),XF=e=>{const t=GF(),r=KF();return e.backdrop&&(e.backdrop.className=G(t,e.isNestedDialog&&r.nested,e.backdrop.className)),e},Lh=x.forwardRef((e,t)=>{const r=R7(e,t),n=F7();return XF(r),j7(r,n)});Lh.displayName="OverlayDrawerSurface";const ZF=(e,t)=>{const{open:r,size:n,position:o}=k2(e),{modalType:i="modal",inertTrapFocus:a,defaultOpen:l=!1,onOpenChange:s}=e,c=w2(r),u=bp(e.backdrop),d=be({...e,backdrop:i!=="non-modal"&&u!==null?{...u}:null},{elementType:Lh,defaultProps:{ref:nr(t,c.ref)}}),h=be({open:!0,defaultOpen:l,onOpenChange:s,inertTrapFocus:a,modalType:i,children:null},{elementType:Ah});return{components:{root:Lh,dialog:Ah},root:d,dialog:h,size:n,position:o,motion:c}},QF=e=>e.motion.canRender?U(e.dialog,{children:U(e.root,{})}):null,JF=K({entering:{Bkqvd7p:"f18ad807"},exiting:{Bkqvd7p:"f1mfizis"},reducedMotion:{Hwfdqs:"f5e8c63"},start:{Bekrc4i:["f5tn483","f1ojsxk5"],vrafjx:["fcdblym","fjik90z"],h3c5rm:["f1gn591s","fjscplz"],oyh7mz:["f1vgc2s3","f1e31b4d"],j35jbq:["fvfyk4","frppm18"]},end:{ibv6hh:["f1ojsxk5","f5tn483"],wvpqe5:["fjik90z","fcdblym"],zhjwy3:["fjscplz","f1gn591s"],j35jbq:["f1e31b4d","f1vgc2s3"],oyh7mz:["frppm18","fvfyk4"]},bottom:{B5kzvoi:"f1yab3r1",Bhzewxz:"f198g47y"},small:{Bjr0ffy:"f1exhnwo"},medium:{Bjr0ffy:"fqofjzu"},large:{Bjr0ffy:"fce6y3m"},full:{Bjr0ffy:"fsdmzs6"}},{d:[".f18ad807{transition-timing-function:var(--curveDecelerateMid);}",".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}",".f5tn483{border-right-width:var(--strokeWidthThin);}",".f1ojsxk5{border-left-width:var(--strokeWidthThin);}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".f1vgc2s3{left:0;}",".f1e31b4d{right:0;}",".fvfyk4{right:auto;}",".frppm18{left:auto;}",".f1yab3r1{bottom:0;}",".f198g47y{top:auto;}",".f1exhnwo{--fui-Drawer--size:320px;}",".fqofjzu{--fui-Drawer--size:592px;}",".fce6y3m{--fui-Drawer--size:940px;}",".fsdmzs6{--fui-Drawer--size:100vw;}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f5e8c63{transition-duration:0.001ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),YF=K({small:{Bjr0ffy:"f1exhnwo"},medium:{Bjr0ffy:"fqofjzu"},large:{Bjr0ffy:"fce6y3m"},full:{Bjr0ffy:"fno8cgj"}},{d:[".f1exhnwo{--fui-Drawer--size:320px;}",".fqofjzu{--fui-Drawer--size:592px;}",".fce6y3m{--fui-Drawer--size:940px;}",".fno8cgj{--fui-Drawer--size:100vh;}"]}),x2=K({small:{B3o57yi:"fc397y7"},medium:{B3o57yi:"f78771"},large:{B3o57yi:"f9ymmep"},full:{B3o57yi:"f1loko9l"}},{d:[".fc397y7{transition-duration:var(--durationGentle);}",".f78771{transition-duration:var(--durationSlow);}",".f9ymmep{transition-duration:var(--durationSlower);}",".f1loko9l{transition-duration:var(--durationUltraSlow);}"]}),S2=({position:e,size:t,motion:r})=>{const n=JF(),o=YF(),i=x2();return G(n[e],e==="bottom"&&o[t],i[t],e!=="bottom"&&n[t],n.reducedMotion,r.type==="entering"&&n.entering,r.type==="exiting"&&n.exiting)},e0={root:"fui-OverlayDrawer",backdrop:"fui-OverlayDrawer__backdrop"},e9=Qe("r1vxc6jp","r1uky7bi",{r:[".r1vxc6jp{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1vxc6jp:focus{outline-style:none;}",".r1vxc6jp:focus-visible{outline-style:none;}",".r1vxc6jp[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.r1vxc6jp[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1uky7bi{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}",".r1uky7bi:focus{outline-style:none;}",".r1uky7bi:focus-visible{outline-style:none;}",".r1uky7bi[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1uky7bi[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.r1vxc6jp[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.r1uky7bi[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),t9=K({start:{Bz10aip:"f1d8gkik"},end:{Bz10aip:"f1g0pcr8"},bottom:{Bz10aip:"fip488n",Bhzewxz:"f198g47y",Bqenvij:"fub80nq",a9b677:"fr97h3j"}},{d:[".f1d8gkik{transform:translate3D(calc(var(--fui-Drawer--size) * -1), 0, 0);}",".f1g0pcr8{transform:translate3D(calc(var(--fui-Drawer--size) * 1), 0, 0);}",".fip488n{transform:translate3D(0, calc(var(--fui-Drawer--size) * 1), 0);}",".f198g47y{top:auto;}",".fub80nq{height:var(--fui-Drawer--size);}",".fr97h3j{width:100vw;}"]}),r9=K({default:{abs64n:"fk73vx1",E5pizo:"ff88big",Bmy1vo4:"f1neo61",Es3by:"f1ytgekk"},enter:{abs64n:"f5p0z4x",Bz10aip:"f87uvqx",E5pizo:"f10nrhrw"}},{d:[".fk73vx1{opacity:0;}",".ff88big{box-shadow:0px var(--colorTransparentBackground);}",".f1neo61{transition-property:transform,box-shadow,opacity;}",".f1ytgekk{will-change:transform,box-shadow,opacity;}",".f5p0z4x{opacity:1;}",".f87uvqx{transform:translate3D(0, 0, 0);}",".f10nrhrw{box-shadow:var(--shadow64);}"]}),n9=K({default:{abs64n:"fk73vx1",Bmy1vo4:"f13u1uyl",Bkqvd7p:"f17wnm97",Es3by:"f1gqqdtu"},enter:{abs64n:"f5p0z4x"}},{d:[".fk73vx1{opacity:0;}",".f13u1uyl{transition-property:opacity;}",".f17wnm97{transition-timing-function:var(--curveEasyEase);}",".f1gqqdtu{will-change:opacity;}",".f5p0z4x{opacity:1;}"]}),o9=e=>{const t=S2(e),r=e9(),n=t9(),o=x2(),i=Oh(e.motion,r9()),a=Oh(e.motion,n9()),l=e.root.backdrop;return e.root.className=G(e0.root,t,r,n[e.position],i,e.root.className),l&&(l.className=G(e0.backdrop,a,o[e.size],l.className)),e},_2=x.forwardRef((e,t)=>{const r=ZF(e,t);return o9(r),De("useDrawerOverlayStyles_unstable")(r),De("useOverlayDrawerStyles_unstable")(r),QF(r)});_2.displayName="OverlayDrawer";const i9=(e,t)=>{const{size:r,position:n,open:o}=k2(e),{separator:i=!1}=e,a=w2(o);return{components:{root:"div"},root:be(Re("div",{...e,ref:nr(t,a.ref)}),{elementType:"div"}),size:r,position:n,separator:i,motion:a}},a9=e=>e.motion.canRender?U(e.root,{}):null,l9={root:"fui-InlineDrawer"},s9=Qe("r46ju4x",null,[".r46ju4x{overflow-x:hidden;overflow-y:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:relative;}"]),c9=K({separatorStart:{Bekrc4i:["f1hqa2wf","finvdd3"],vrafjx:["fcdblym","fjik90z"],h3c5rm:["fa8zu9y","f17e9lqh"]},separatorEnd:{ibv6hh:["finvdd3","f1hqa2wf"],wvpqe5:["fjik90z","fcdblym"],zhjwy3:["f17e9lqh","fa8zu9y"]},separatorBottom:{B4j52fo:"f5ogflp",icvyot:"fzkkow9",g2u3we:"fo8z57v"},start:{Bz10aip:"f1d8gkik"},end:{Bz10aip:"f1h1g6jt"},bottom:{Bz10aip:"f1rdfgt8",a9b677:"fly5x3f",Bqenvij:"fub80nq"}},{d:[".f1hqa2wf{border-right-width:1px;}",".finvdd3{border-left-width:1px;}",".fcdblym{border-right-style:solid;}",".fjik90z{border-left-style:solid;}",".fa8zu9y{border-right-color:var(--colorNeutralBackground3);}",".f17e9lqh{border-left-color:var(--colorNeutralBackground3);}",".f5ogflp{border-top-width:1px;}",".fzkkow9{border-top-style:solid;}",".fo8z57v{border-top-color:var(--colorNeutralBackground3);}",".f1d8gkik{transform:translate3D(calc(var(--fui-Drawer--size) * -1), 0, 0);}",".f1h1g6jt{transform:translate3D(var(--fui-Drawer--size), 0, 0);}",".f1rdfgt8{transform:translate3D(0, var(--fui-Drawer--size), 0);}",".fly5x3f{width:100%;}",".fub80nq{height:var(--fui-Drawer--size);}"]}),u9=K({default:{abs64n:"fk73vx1",Bmy1vo4:"f15rjlgw",Es3by:"f1blt7p"},enter:{abs64n:"f5p0z4x",Bz10aip:"f87uvqx"}},{d:[".fk73vx1{opacity:0;}",".f15rjlgw{transition-property:opacity,transform;}",".f1blt7p{will-change:opacity,transform;}",".f5p0z4x{opacity:1;}",".f87uvqx{transform:translate3D(0, 0, 0);}"]});function f9(e,t){if(e.separator)switch(e.position){case"start":return t.separatorStart;case"end":return t.separatorEnd;case"bottom":return t.separatorBottom;default:return}}const d9=e=>{const t=s9(),r=S2(e),n=c9(),o=Oh(e.motion,u9());return e.root.className=G(l9.root,t,r,f9(e,n),n[e.position],o,e.root.className),e},B2=x.forwardRef((e,t)=>{const r=i9(e,t);return d9(r),De("useDrawerInlineStyles_unstable")(r),De("useInlineDrawerStyles_unstable")(r),a9(r)});B2.displayName="InlineDrawer";const h9=(e,t)=>{const r=e.type==="inline"?B2:_2;return{components:{root:r},root:be(bp({ref:t,...e}),{elementType:r})}},p9=e=>U(e.root,{}),g9={root:"fui-Drawer"},m9=e=>(e.root.className=G(g9.root,e.root.className),e),C2=x.forwardRef((e,t)=>{const r=h9(e,t);return m9(r),De("useDrawerStyles_unstable")(r),p9(r)});C2.displayName="Drawer";const v9=(e,t)=>({components:{root:"div"},root:be(Re("div",{ref:t,...e}),{elementType:"div"})}),b9=e=>U(e.root,{}),y9={root:"fui-DrawerBody"},w9=Qe("r10z3gsy","r1ppc5ap",[".r10z3gsy{margin-top:-1px;margin-right:0;margin-bottom:-1px;margin-left:0;padding-top:1px;padding-right:var(--spacingHorizontalXXL);padding-bottom:1px;padding-left:var(--spacingHorizontalXXL);overflow-x:auto;overflow-y:auto;flex-grow:1;flex-shrink:1;flex-basis:0;align-self:stretch;background-image:linear-gradient(to top, var(--colorNeutralBackground1), var(--colorNeutralBackground1)),linear-gradient(to top, var(--colorNeutralBackground1), var(--colorNeutralBackground1)),linear-gradient(to top, var(--colorNeutralStroke1), var(--colorNeutralBackground1)),linear-gradient(to bottom, var(--colorNeutralStroke1), var(--colorNeutralBackground1));-webkit-background-position:bottom center,top center,bottom center,top center;background-position:bottom center,top center,bottom center,top center;background-repeat:no-repeat;background-color:var(--colorNeutralBackground1);background-size:100% 2px,100% 2px,100% 1px,100% 1px;background-attachment:local,local,scroll,scroll;}",".r10z3gsy:last-child{padding-bottom:calc(var(--spacingHorizontalXXL) + 1px);}",".r10z3gsy:first-child{padding-top:calc(var(--spacingHorizontalXXL) + 1px);}",".r1ppc5ap{margin-top:-1px;margin-left:0;margin-bottom:-1px;margin-right:0;padding-top:1px;padding-left:var(--spacingHorizontalXXL);padding-bottom:1px;padding-right:var(--spacingHorizontalXXL);overflow-x:auto;overflow-y:auto;flex-grow:1;flex-shrink:1;flex-basis:0;align-self:stretch;background-image:linear-gradient(to top, var(--colorNeutralBackground1), var(--colorNeutralBackground1)),linear-gradient(to top, var(--colorNeutralBackground1), var(--colorNeutralBackground1)),linear-gradient(to top, var(--colorNeutralStroke1), var(--colorNeutralBackground1)),linear-gradient(to bottom, var(--colorNeutralStroke1), var(--colorNeutralBackground1));-webkit-background-position:bottom center,top center,bottom center,top center;background-position:bottom center,top center,bottom center,top center;background-repeat:no-repeat;background-color:var(--colorNeutralBackground1);background-size:100% 2px,100% 2px,100% 1px,100% 1px;background-attachment:local,local,scroll,scroll;}",".r1ppc5ap:last-child{padding-bottom:calc(var(--spacingHorizontalXXL) + 1px);}",".r1ppc5ap:first-child{padding-top:calc(var(--spacingHorizontalXXL) + 1px);}"]),k9=e=>{const t=w9();return e.root.className=G(y9.root,t,e.root.className),e},P2=x.forwardRef((e,t)=>{const r=v9(e,t);return k9(r),De("useDrawerBodyStyles_unstable")(r),b9(r)});P2.displayName="DrawerBody";const x9=(e,t)=>({components:{root:"header"},root:be(Re("header",{ref:t,...e}),{elementType:"header"})}),S9=e=>U(e.root,{}),_9={root:"fui-DrawerHeader"},B9=Qe("rh4hr5f","r116c7xc",[".rh4hr5f{padding-top:var(--spacingVerticalXXL);padding-right:var(--spacingHorizontalXXL);padding-bottom:var(--spacingVerticalS);padding-left:var(--spacingHorizontalXXL);column-gap:var(--spacingHorizontalS);row-gap:var(--spacingHorizontalS);width:100%;max-width:100%;align-self:stretch;display:flex;flex-direction:column;box-sizing:border-box;}",".r116c7xc{padding-top:var(--spacingVerticalXXL);padding-left:var(--spacingHorizontalXXL);padding-bottom:var(--spacingVerticalS);padding-right:var(--spacingHorizontalXXL);column-gap:var(--spacingHorizontalS);row-gap:var(--spacingHorizontalS);width:100%;max-width:100%;align-self:stretch;display:flex;flex-direction:column;box-sizing:border-box;}"]),C9=e=>{const t=B9();return e.root.className=G(_9.root,t,e.root.className),e},E2=x.forwardRef((e,t)=>{const r=x9(e,t);return C9(r),De("useDrawerHeaderStyles_unstable")(r),S9(r)});E2.displayName="DrawerHeader";const P9=(e,t)=>{const{children:r,heading:n}=e,o=To(i=>i.dialogTitleId);return{components:{root:"div",heading:"h2",action:"div"},root:be(Re("div",{ref:t,...e}),{elementType:"div"}),heading:Te(n,{defaultProps:{id:o,children:r},renderByDefault:!0,elementType:"h2"}),action:Te(e.action,{elementType:"div"})}},E9=e=>At(e.root,{children:[e.heading&&U(e.heading,{}),e.action&&U(e.action,{})]}),Gf={root:"fui-DrawerHeaderTitle",heading:"fui-DrawerHeaderTitle__heading",action:"fui-DrawerHeaderTitle__action"},z9=K({root:{mc9l5x:"f22iagw",Brf1p80:"f1869bpl",Bt984gj:"f122n59",i8kkvl:"fsnqrgy"},action:{t21cq0:["faqnl2i","fd75udd"]}},{d:[".f22iagw{display:flex;}",".f1869bpl{justify-content:space-between;}",".f122n59{align-items:center;}",".fsnqrgy{column-gap:var(--spacingHorizontalS);}",".faqnl2i{margin-right:calc(var(--spacingHorizontalS) * -1);}",".fd75udd{margin-left:calc(var(--spacingHorizontalS) * -1);}"]}),T9=e=>{const t=z9(),{heading:r={},action:n,components:o}=e;return N7({components:{root:o.heading,action:o.action},root:r,action:n}),e.root.className=G(Gf.root,t.root,e.root.className),e.heading&&(e.heading.className=G(Gf.heading,e.heading.className)),e.action&&(e.action.className=G(Gf.action,t.action,e.action.className)),e},z2=x.forwardRef((e,t)=>{const r=P9(e,t);return T9(r),De("useDrawerHeaderTitleStyles_unstable")(r),E9(r)});z2.displayName="DrawerHeaderTitle";var qh={},t0=Eg;qh.createRoot=t0.createRoot,qh.hydrateRoot=t0.hydrateRoot;/** + * @remix-run/router v1.15.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ot(){return ot=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function ra(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function N9(){return Math.random().toString(36).substr(2,8)}function n0(e,t){return{usr:e.state,key:e.key,idx:t}}function Fl(e,t,r,n){return r===void 0&&(r=null),ot({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?In(t):t,{state:r,key:t&&t.key||n||N9()})}function Yl(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function In(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function R9(e,t,r,n){n===void 0&&(n={});let{window:o=document.defaultView,v5Compat:i=!1}=n,a=o.history,l=at.Pop,s=null,c=u();c==null&&(c=0,a.replaceState(ot({},a.state,{idx:c}),""));function u(){return(a.state||{idx:null}).idx}function f(){l=at.Pop;let y=u(),v=y==null?null:y-c;c=y,s&&s({action:l,location:m.location,delta:v})}function d(y,v){l=at.Push;let g=Fl(m.location,y,v);r&&r(g,y),c=u()+1;let b=n0(g,c),k=m.createHref(g);try{a.pushState(b,"",k)}catch(_){if(_ instanceof DOMException&&_.name==="DataCloneError")throw _;o.location.assign(k)}i&&s&&s({action:l,location:m.location,delta:1})}function h(y,v){l=at.Replace;let g=Fl(m.location,y,v);r&&r(g,y),c=u();let b=n0(g,c),k=m.createHref(g);a.replaceState(b,"",k),i&&s&&s({action:l,location:m.location,delta:0})}function p(y){let v=o.location.origin!=="null"?o.location.origin:o.location.href,g=typeof y=="string"?y:Yl(y);return g=g.replace(/ $/,"%20"),me(v,"No window.location.(origin|href) available to create URL for href: "+g),new URL(g,v)}let m={get action(){return l},get location(){return e(o,a)},listen(y){if(s)throw new Error("A history only accepts one active listener");return o.addEventListener(r0,f),s=y,()=>{o.removeEventListener(r0,f),s=null}},createHref(y){return t(o,y)},createURL:p,encodeLocation(y){let v=p(y);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:d,replace:h,go(y){return a.go(y)}};return m}var tt;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(tt||(tt={}));const j9=new Set(["lazy","caseSensitive","path","id","index","children"]);function F9(e){return e.index===!0}function Hh(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((o,i)=>{let a=[...r,i],l=typeof o.id=="string"?o.id:a.join("-");if(me(o.index!==!0||!o.children,"Cannot specify children on an index route"),me(!n[l],'Found a route id collision on id "'+l+`". Route id's must be globally unique within Data Router usages`),F9(o)){let s=ot({},o,t(o),{id:l});return n[l]=s,s}else{let s=ot({},o,t(o),{id:l,children:void 0});return n[l]=s,o.children&&(s.children=Hh(o.children,t,a,n)),s}})}function Ri(e,t,r){r===void 0&&(r="/");let n=typeof t=="string"?In(t):t,o=es(n.pathname||"/",r);if(o==null)return null;let i=N2(e);I9(i);let a=null;for(let l=0;a==null&&l{let s={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};s.relativePath.startsWith("/")&&(me(s.relativePath.startsWith(n),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(n.length));let c=so([n,s.relativePath]),u=r.concat(s);i.children&&i.children.length>0&&(me(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),N2(i.children,t,u,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:W9(c,i.index),routesMeta:u})};return e.forEach((i,a)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))o(i,a);else for(let s of R2(i.path))o(i,a,s)}),t}function R2(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,o=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return o?[i,""]:[i];let a=R2(n.join("/")),l=[];return l.push(...a.map(s=>s===""?i:[i,s].join("/"))),o&&l.push(...a),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function I9(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:U9(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const A9=/^:[\w-]+$/,M9=3,O9=2,L9=1,q9=10,H9=-2,o0=e=>e==="*";function W9(e,t){let r=e.split("/"),n=r.length;return r.some(o0)&&(n+=H9),t&&(n+=O9),r.filter(o=>!o0(o)).reduce((o,i)=>o+(A9.test(i)?M9:i===""?L9:q9),n)}function U9(e,t){return e.length===t.length&&e.slice(0,-1).every((n,o)=>n===t[o])?e[e.length-1]-t[t.length-1]:0}function $9(e,t){let{routesMeta:r}=e,n={},o="/",i=[];for(let a=0;a{let{paramName:d,isOptional:h}=u;if(d==="*"){let m=l[f]||"";a=i.slice(0,i.length-m.length).replace(/(.)\/+$/,"$1")}const p=l[f];return h&&!p?c[d]=void 0:c[d]=(p||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:a,pattern:e}}function G9(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),ra(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,s)=>(n.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),n]}function K9(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ra(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function es(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function X9(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:o=""}=typeof e=="string"?In(e):e;return{pathname:r?r.startsWith("/")?r:Z9(r,t):t,search:J9(n),hash:Y9(o)}}function Z9(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?r.length>1&&r.pop():o!=="."&&r.push(o)}),r.length>1?r.join("/"):"/"}function Kf(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function j2(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function F2(e,t){let r=j2(e);return t?r.map((n,o)=>o===e.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function D2(e,t,r,n){n===void 0&&(n=!1);let o;typeof e=="string"?o=In(e):(o=ot({},e),me(!o.pathname||!o.pathname.includes("?"),Kf("?","pathname","search",o)),me(!o.pathname||!o.pathname.includes("#"),Kf("#","pathname","hash",o)),me(!o.search||!o.search.includes("#"),Kf("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,l;if(a==null)l=r;else{let f=t.length-1;if(!n&&a.startsWith("..")){let d=a.split("/");for(;d[0]==="..";)d.shift(),f-=1;o.pathname=d.join("/")}l=f>=0?t[f]:"/"}let s=X9(o,l),c=a&&a!=="/"&&a.endsWith("/"),u=(i||a===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(c||u)&&(s.pathname+="/"),s}const so=e=>e.join("/").replace(/\/\/+/g,"/"),Q9=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),J9=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Y9=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class Dg{constructor(t,r,n,o){o===void 0&&(o=!1),this.status=t,this.statusText=r||"",this.internal=o,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function I2(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const A2=["post","put","patch","delete"],eD=new Set(A2),tD=["get",...A2],rD=new Set(tD),nD=new Set([301,302,303,307,308]),oD=new Set([307,308]),Xf={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},iD={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ra={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},M2=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,aD=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),O2="remix-router-transitions";function lD(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;me(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let o;if(e.mapRouteProperties)o=e.mapRouteProperties;else if(e.detectErrorBoundary){let z=e.detectErrorBoundary;o=T=>({hasErrorBoundary:z(T)})}else o=aD;let i={},a=Hh(e.routes,o,void 0,i),l,s=e.basename||"/",c=ot({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},e.future),u=null,f=new Set,d=null,h=null,p=null,m=e.hydrationData!=null,y=Ri(a,e.history.location,s),v=null;if(y==null){let z=xr(404,{pathname:e.history.location.pathname}),{matches:T,route:I}=d0(a);y=T,v={[I.id]:z}}let g,b=y.some(z=>z.route.lazy),k=y.some(z=>z.route.loader);if(b)g=!1;else if(!k)g=!0;else if(c.v7_partialHydration){let z=e.hydrationData?e.hydrationData.loaderData:null,T=e.hydrationData?e.hydrationData.errors:null,I=$=>$.route.loader?$.route.loader.hydrate===!0?!1:z&&z[$.route.id]!==void 0||T&&T[$.route.id]!==void 0:!0;if(T){let $=y.findIndex(Z=>T[Z.route.id]!==void 0);g=y.slice(0,$+1).every(I)}else g=y.every(I)}else g=e.hydrationData!=null;let _,w={historyAction:e.history.action,location:e.history.location,matches:y,initialized:g,navigation:Xf,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||v,fetchers:new Map,blockers:new Map},S=at.Pop,E=!1,N,C=!1,L=new Map,R=null,re=!1,oe=!1,te=[],he=[],ee=new Map,W=0,J=-1,B=new Map,ce=new Set,ge=new Map,P=new Map,Se=new Set,pt=new Map,Pe=new Map,Gt=!1;function Kr(){if(u=e.history.listen(z=>{let{action:T,location:I,delta:$}=z;if(Gt){Gt=!1;return}ra(Pe.size===0||$!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let Z=gn({currentLocation:w.location,nextLocation:I,historyAction:T});if(Z&&$!=null){Gt=!0,e.history.go($*-1),bt(Z,{state:"blocked",location:I,proceed(){bt(Z,{state:"proceeding",proceed:void 0,reset:void 0,location:I}),e.history.go($)},reset(){let ve=new Map(w.blockers);ve.set(Z,Ra),St({blockers:ve})}});return}return Xr(T,I)}),r){bD(t,L);let z=()=>yD(t,L);t.addEventListener("pagehide",z),R=()=>t.removeEventListener("pagehide",z)}return w.initialized||Xr(at.Pop,w.location,{initialHydration:!0}),_}function Mn(){u&&u(),R&&R(),f.clear(),N&&N.abort(),w.fetchers.forEach((z,T)=>le(T)),w.blockers.forEach((z,T)=>On(T))}function pn(z){return f.add(z),()=>f.delete(z)}function St(z,T){T===void 0&&(T={}),w=ot({},w,z);let I=[],$=[];c.v7_fetcherPersist&&w.fetchers.forEach((Z,ve)=>{Z.state==="idle"&&(Se.has(ve)?$.push(ve):I.push(ve))}),[...f].forEach(Z=>Z(w,{deletedFetchers:$,unstable_viewTransitionOpts:T.viewTransitionOpts,unstable_flushSync:T.flushSync===!0})),c.v7_fetcherPersist&&(I.forEach(Z=>w.fetchers.delete(Z)),$.forEach(Z=>le(Z)))}function wo(z,T,I){var $,Z;let{flushSync:ve}=I===void 0?{}:I,ue=w.actionData!=null&&w.navigation.formMethod!=null&&Lr(w.navigation.formMethod)&&w.navigation.state==="loading"&&(($=z.state)==null?void 0:$._isRedirect)!==!0,ae;T.actionData?Object.keys(T.actionData).length>0?ae=T.actionData:ae=null:ue?ae=w.actionData:ae=null;let ne=T.loaderData?f0(w.loaderData,T.loaderData,T.matches||[],T.errors):w.loaderData,_e=w.blockers;_e.size>0&&(_e=new Map(_e),_e.forEach((Ie,_t)=>_e.set(_t,Ra)));let yt=E===!0||w.navigation.formMethod!=null&&Lr(w.navigation.formMethod)&&((Z=z.state)==null?void 0:Z._isRedirect)!==!0;l&&(a=l,l=void 0),re||S===at.Pop||(S===at.Push?e.history.push(z,z.state):S===at.Replace&&e.history.replace(z,z.state));let pe;if(S===at.Pop){let Ie=L.get(w.location.pathname);Ie&&Ie.has(z.pathname)?pe={currentLocation:w.location,nextLocation:z}:L.has(z.pathname)&&(pe={currentLocation:z,nextLocation:w.location})}else if(C){let Ie=L.get(w.location.pathname);Ie?Ie.add(z.pathname):(Ie=new Set([z.pathname]),L.set(w.location.pathname,Ie)),pe={currentLocation:w.location,nextLocation:z}}St(ot({},T,{actionData:ae,loaderData:ne,historyAction:S,location:z,initialized:!0,navigation:Xf,revalidation:"idle",restoreScrollPosition:hm(z,T.matches||w.matches),preventScrollReset:yt,blockers:_e}),{viewTransitionOpts:pe,flushSync:ve===!0}),S=at.Pop,E=!1,C=!1,re=!1,oe=!1,te=[],he=[]}async function as(z,T){if(typeof z=="number"){e.history.go(z);return}let I=Wh(w.location,w.matches,s,c.v7_prependBasename,z,c.v7_relativeSplatPath,T==null?void 0:T.fromRouteId,T==null?void 0:T.relative),{path:$,submission:Z,error:ve}=i0(c.v7_normalizeFormMethod,!1,I,T),ue=w.location,ae=Fl(w.location,$,T&&T.state);ae=ot({},ae,e.history.encodeLocation(ae));let ne=T&&T.replace!=null?T.replace:void 0,_e=at.Push;ne===!0?_e=at.Replace:ne===!1||Z!=null&&Lr(Z.formMethod)&&Z.formAction===w.location.pathname+w.location.search&&(_e=at.Replace);let yt=T&&"preventScrollReset"in T?T.preventScrollReset===!0:void 0,pe=(T&&T.unstable_flushSync)===!0,Ie=gn({currentLocation:ue,nextLocation:ae,historyAction:_e});if(Ie){bt(Ie,{state:"blocked",location:ae,proceed(){bt(Ie,{state:"proceeding",proceed:void 0,reset:void 0,location:ae}),as(z,T)},reset(){let _t=new Map(w.blockers);_t.set(Ie,Ra),St({blockers:_t})}});return}return await Xr(_e,ae,{submission:Z,pendingError:ve,preventScrollReset:yt,replace:T&&T.replace,enableViewTransition:T&&T.unstable_viewTransition,flushSync:pe})}function ls(){if(wa(),St({revalidation:"loading"}),w.navigation.state!=="submitting"){if(w.navigation.state==="idle"){Xr(w.historyAction,w.location,{startUninterruptedRevalidation:!0});return}Xr(S||w.historyAction,w.navigation.location,{overrideNavigation:w.navigation})}}async function Xr(z,T,I){N&&N.abort(),N=null,S=z,re=(I&&I.startUninterruptedRevalidation)===!0,T_(w.location,w.matches),E=(I&&I.preventScrollReset)===!0,C=(I&&I.enableViewTransition)===!0;let $=l||a,Z=I&&I.overrideNavigation,ve=Ri($,T,s),ue=(I&&I.flushSync)===!0;if(!ve){let _t=xr(404,{pathname:T.pathname}),{matches:ir,route:wt}=d0($);or(),wo(T,{matches:ir,loaderData:{},errors:{[wt.id]:_t}},{flushSync:ue});return}if(w.initialized&&!oe&&dD(w.location,T)&&!(I&&I.submission&&Lr(I.submission.formMethod))){wo(T,{matches:ve},{flushSync:ue});return}N=new AbortController;let ae=Fa(e.history,T,N.signal,I&&I.submission),ne,_e;if(I&&I.pendingError)_e={[ol(ve).route.id]:I.pendingError};else if(I&&I.submission&&Lr(I.submission.formMethod)){let _t=await ss(ae,T,I.submission,ve,{replace:I.replace,flushSync:ue});if(_t.shortCircuited)return;ne=_t.pendingActionData,_e=_t.pendingActionError,Z=Zf(T,I.submission),ue=!1,ae=new Request(ae.url,{signal:ae.signal})}let{shortCircuited:yt,loaderData:pe,errors:Ie}=await Gu(ae,T,ve,Z,I&&I.submission,I&&I.fetcherSubmission,I&&I.replace,I&&I.initialHydration===!0,ue,ne,_e);yt||(N=null,wo(T,ot({matches:ve},ne?{actionData:ne}:{},{loaderData:pe,errors:Ie})))}async function ss(z,T,I,$,Z){Z===void 0&&(Z={}),wa();let ve=mD(T,I);St({navigation:ve},{flushSync:Z.flushSync===!0});let ue,ae=$h($,T);if(!ae.route.action&&!ae.route.lazy)ue={type:tt.error,error:xr(405,{method:z.method,pathname:T.pathname,routeId:ae.route.id})};else if(ue=await ja("action",z,ae,$,i,o,s,c.v7_relativeSplatPath),z.signal.aborted)return{shortCircuited:!0};if(qo(ue)){let ne;return Z&&Z.replace!=null?ne=Z.replace:ne=ue.location===w.location.pathname+w.location.search,await ko(w,ue,{submission:I,replace:ne}),{shortCircuited:!0}}if(ji(ue)){let ne=ol($,ae.route.id);return(Z&&Z.replace)!==!0&&(S=at.Push),{pendingActionData:{},pendingActionError:{[ne.route.id]:ue.error}}}if(Lo(ue))throw xr(400,{type:"defer-action"});return{pendingActionData:{[ae.route.id]:ue.data}}}async function Gu(z,T,I,$,Z,ve,ue,ae,ne,_e,yt){let pe=$||Zf(T,Z),Ie=Z||ve||g0(pe),_t=l||a,[ir,wt]=a0(e.history,w,I,Ie,T,c.v7_partialHydration&&ae===!0,oe,te,he,Se,ge,ce,_t,s,_e,yt);if(or(ze=>!(I&&I.some(je=>je.route.id===ze))||ir&&ir.some(je=>je.route.id===ze)),J=++W,ir.length===0&&wt.length===0){let ze=Qr();return wo(T,ot({matches:I,loaderData:{},errors:yt||null},_e?{actionData:_e}:{},ze?{fetchers:new Map(w.fetchers)}:{}),{flushSync:ne}),{shortCircuited:!0}}if(!re&&(!c.v7_partialHydration||!ae)){wt.forEach(je=>{let Xt=w.fetchers.get(je.key),hs=Da(void 0,Xt?Xt.data:void 0);w.fetchers.set(je.key,hs)});let ze=_e||w.actionData;St(ot({navigation:pe},ze?Object.keys(ze).length===0?{actionData:null}:{actionData:ze}:{},wt.length>0?{fetchers:new Map(w.fetchers)}:{}),{flushSync:ne})}wt.forEach(ze=>{ee.has(ze.key)&&we(ze.key),ze.controller&&ee.set(ze.key,ze.controller)});let si=()=>wt.forEach(ze=>we(ze.key));N&&N.signal.addEventListener("abort",si);let{results:Xu,loaderResults:ci,fetcherResults:Ln}=await fs(w.matches,I,ir,wt,z);if(z.signal.aborted)return{shortCircuited:!0};N&&N.signal.removeEventListener("abort",si),wt.forEach(ze=>ee.delete(ze.key));let So=h0(Xu);if(So){if(So.idx>=ir.length){let ze=wt[So.idx-ir.length].key;ce.add(ze)}return await ko(w,So.result,{replace:ue}),{shortCircuited:!0}}let{loaderData:Zu,errors:ka}=u0(w,I,ir,ci,yt,wt,Ln,pt);pt.forEach((ze,je)=>{ze.subscribe(Xt=>{(Xt||ze.done)&&pt.delete(je)})}),c.v7_partialHydration&&ae&&w.errors&&Object.entries(w.errors).filter(ze=>{let[je]=ze;return!ir.some(Xt=>Xt.route.id===je)}).forEach(ze=>{let[je,Xt]=ze;ka=Object.assign(ka||{},{[je]:Xt})});let Qu=Qr(),ui=wr(J),ds=Qu||ui||wt.length>0;return ot({loaderData:Zu,errors:ka},ds?{fetchers:new Map(w.fetchers)}:{})}function cs(z,T,I,$){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");ee.has(z)&&we(z);let Z=($&&$.unstable_flushSync)===!0,ve=l||a,ue=Wh(w.location,w.matches,s,c.v7_prependBasename,I,c.v7_relativeSplatPath,T,$==null?void 0:$.relative),ae=Ri(ve,ue,s);if(!ae){F(z,T,xr(404,{pathname:ue}),{flushSync:Z});return}let{path:ne,submission:_e,error:yt}=i0(c.v7_normalizeFormMethod,!0,ue,$);if(yt){F(z,T,yt,{flushSync:Z});return}let pe=$h(ae,ne);if(E=($&&$.preventScrollReset)===!0,_e&&Lr(_e.formMethod)){us(z,T,ne,pe,ae,Z,_e);return}ge.set(z,{routeId:T,path:ne}),Ku(z,T,ne,pe,ae,Z,_e)}async function us(z,T,I,$,Z,ve,ue){if(wa(),ge.delete(z),!$.route.action&&!$.route.lazy){let je=xr(405,{method:ue.formMethod,pathname:I,routeId:T});F(z,T,je,{flushSync:ve});return}let ae=w.fetchers.get(z);Zr(z,vD(ue,ae),{flushSync:ve});let ne=new AbortController,_e=Fa(e.history,I,ne.signal,ue);ee.set(z,ne);let yt=W,pe=await ja("action",_e,$,Z,i,o,s,c.v7_relativeSplatPath);if(_e.signal.aborted){ee.get(z)===ne&&ee.delete(z);return}if(c.v7_fetcherPersist&&Se.has(z)){if(qo(pe)||ji(pe)){Zr(z,Vn(void 0));return}}else{if(qo(pe))if(ee.delete(z),J>yt){Zr(z,Vn(void 0));return}else return ce.add(z),Zr(z,Da(ue)),ko(w,pe,{fetcherSubmission:ue});if(ji(pe)){F(z,T,pe.error);return}}if(Lo(pe))throw xr(400,{type:"defer-action"});let Ie=w.navigation.location||w.location,_t=Fa(e.history,Ie,ne.signal),ir=l||a,wt=w.navigation.state!=="idle"?Ri(ir,w.navigation.location,s):w.matches;me(wt,"Didn't find any matches after fetcher action");let si=++W;B.set(z,si);let Xu=Da(ue,pe.data);w.fetchers.set(z,Xu);let[ci,Ln]=a0(e.history,w,wt,ue,Ie,!1,oe,te,he,Se,ge,ce,ir,s,{[$.route.id]:pe.data},void 0);Ln.filter(je=>je.key!==z).forEach(je=>{let Xt=je.key,hs=w.fetchers.get(Xt),R_=Da(void 0,hs?hs.data:void 0);w.fetchers.set(Xt,R_),ee.has(Xt)&&we(Xt),je.controller&&ee.set(Xt,je.controller)}),St({fetchers:new Map(w.fetchers)});let So=()=>Ln.forEach(je=>we(je.key));ne.signal.addEventListener("abort",So);let{results:Zu,loaderResults:ka,fetcherResults:Qu}=await fs(w.matches,wt,ci,Ln,_t);if(ne.signal.aborted)return;ne.signal.removeEventListener("abort",So),B.delete(z),ee.delete(z),Ln.forEach(je=>ee.delete(je.key));let ui=h0(Zu);if(ui){if(ui.idx>=ci.length){let je=Ln[ui.idx-ci.length].key;ce.add(je)}return ko(w,ui.result)}let{loaderData:ds,errors:ze}=u0(w,w.matches,ci,ka,void 0,Ln,Qu,pt);if(w.fetchers.has(z)){let je=Vn(pe.data);w.fetchers.set(z,je)}wr(si),w.navigation.state==="loading"&&si>J?(me(S,"Expected pending action"),N&&N.abort(),wo(w.navigation.location,{matches:wt,loaderData:ds,errors:ze,fetchers:new Map(w.fetchers)})):(St({errors:ze,loaderData:f0(w.loaderData,ds,wt,ze),fetchers:new Map(w.fetchers)}),oe=!1)}async function Ku(z,T,I,$,Z,ve,ue){let ae=w.fetchers.get(z);Zr(z,Da(ue,ae?ae.data:void 0),{flushSync:ve});let ne=new AbortController,_e=Fa(e.history,I,ne.signal);ee.set(z,ne);let yt=W,pe=await ja("loader",_e,$,Z,i,o,s,c.v7_relativeSplatPath);if(Lo(pe)&&(pe=await H2(pe,_e.signal,!0)||pe),ee.get(z)===ne&&ee.delete(z),!_e.signal.aborted){if(Se.has(z)){Zr(z,Vn(void 0));return}if(qo(pe))if(J>yt){Zr(z,Vn(void 0));return}else{ce.add(z),await ko(w,pe);return}if(ji(pe)){F(z,T,pe.error);return}me(!Lo(pe),"Unhandled fetcher deferred data"),Zr(z,Vn(pe.data))}}async function ko(z,T,I){let{submission:$,fetcherSubmission:Z,replace:ve}=I===void 0?{}:I;T.revalidate&&(oe=!0);let ue=Fl(z.location,T.location,{_isRedirect:!0});if(me(ue,"Expected a location on the redirect navigation"),r){let Ie=!1;if(T.reloadDocument)Ie=!0;else if(M2.test(T.location)){const _t=e.history.createURL(T.location);Ie=_t.origin!==t.location.origin||es(_t.pathname,s)==null}if(Ie){ve?t.location.replace(T.location):t.location.assign(T.location);return}}N=null;let ae=ve===!0?at.Replace:at.Push,{formMethod:ne,formAction:_e,formEncType:yt}=z.navigation;!$&&!Z&&ne&&_e&&yt&&($=g0(z.navigation));let pe=$||Z;if(oD.has(T.status)&&pe&&Lr(pe.formMethod))await Xr(ae,ue,{submission:ot({},pe,{formAction:T.location}),preventScrollReset:E});else{let Ie=Zf(ue,$);await Xr(ae,ue,{overrideNavigation:Ie,fetcherSubmission:Z,preventScrollReset:E})}}async function fs(z,T,I,$,Z){let ve=await Promise.all([...I.map(ne=>ja("loader",Z,ne,T,i,o,s,c.v7_relativeSplatPath)),...$.map(ne=>ne.matches&&ne.match&&ne.controller?ja("loader",Fa(e.history,ne.path,ne.controller.signal),ne.match,ne.matches,i,o,s,c.v7_relativeSplatPath):{type:tt.error,error:xr(404,{pathname:ne.path})})]),ue=ve.slice(0,I.length),ae=ve.slice(I.length);return await Promise.all([p0(z,I,ue,ue.map(()=>Z.signal),!1,w.loaderData),p0(z,$.map(ne=>ne.match),ae,$.map(ne=>ne.controller?ne.controller.signal:null),!0)]),{results:ve,loaderResults:ue,fetcherResults:ae}}function wa(){oe=!0,te.push(...or()),ge.forEach((z,T)=>{ee.has(T)&&(he.push(T),we(T))})}function Zr(z,T,I){I===void 0&&(I={}),w.fetchers.set(z,T),St({fetchers:new Map(w.fetchers)},{flushSync:(I&&I.flushSync)===!0})}function F(z,T,I,$){$===void 0&&($={});let Z=ol(w.matches,T);le(z),St({errors:{[Z.route.id]:I},fetchers:new Map(w.fetchers)},{flushSync:($&&$.flushSync)===!0})}function V(z){return c.v7_fetcherPersist&&(P.set(z,(P.get(z)||0)+1),Se.has(z)&&Se.delete(z)),w.fetchers.get(z)||iD}function le(z){let T=w.fetchers.get(z);ee.has(z)&&!(T&&T.state==="loading"&&B.has(z))&&we(z),ge.delete(z),B.delete(z),ce.delete(z),Se.delete(z),w.fetchers.delete(z)}function ye(z){if(c.v7_fetcherPersist){let T=(P.get(z)||0)-1;T<=0?(P.delete(z),Se.add(z)):P.set(z,T)}else le(z);St({fetchers:new Map(w.fetchers)})}function we(z){let T=ee.get(z);me(T,"Expected fetch controller: "+z),T.abort(),ee.delete(z)}function Kt(z){for(let T of z){let I=V(T),$=Vn(I.data);w.fetchers.set(T,$)}}function Qr(){let z=[],T=!1;for(let I of ce){let $=w.fetchers.get(I);me($,"Expected fetcher: "+I),$.state==="loading"&&(ce.delete(I),z.push(I),T=!0)}return Kt(z),T}function wr(z){let T=[];for(let[I,$]of B)if($0}function xo(z,T){let I=w.blockers.get(z)||Ra;return Pe.get(z)!==T&&Pe.set(z,T),I}function On(z){w.blockers.delete(z),Pe.delete(z)}function bt(z,T){let I=w.blockers.get(z)||Ra;me(I.state==="unblocked"&&T.state==="blocked"||I.state==="blocked"&&T.state==="blocked"||I.state==="blocked"&&T.state==="proceeding"||I.state==="blocked"&&T.state==="unblocked"||I.state==="proceeding"&&T.state==="unblocked","Invalid blocker state transition: "+I.state+" -> "+T.state);let $=new Map(w.blockers);$.set(z,T),St({blockers:$})}function gn(z){let{currentLocation:T,nextLocation:I,historyAction:$}=z;if(Pe.size===0)return;Pe.size>1&&ra(!1,"A router only supports one blocker at a time");let Z=Array.from(Pe.entries()),[ve,ue]=Z[Z.length-1],ae=w.blockers.get(ve);if(!(ae&&ae.state==="proceeding")&&ue({currentLocation:T,nextLocation:I,historyAction:$}))return ve}function or(z){let T=[];return pt.forEach((I,$)=>{(!z||z($))&&(I.cancel(),T.push($),pt.delete($))}),T}function z_(z,T,I){if(d=z,p=T,h=I||null,!m&&w.navigation===Xf){m=!0;let $=hm(w.location,w.matches);$!=null&&St({restoreScrollPosition:$})}return()=>{d=null,p=null,h=null}}function dm(z,T){return h&&h(z,T.map($=>D9($,w.loaderData)))||z.key}function T_(z,T){if(d&&p){let I=dm(z,T);d[I]=p()}}function hm(z,T){if(d){let I=dm(z,T),$=d[I];if(typeof $=="number")return $}return null}function N_(z){i={},l=Hh(z,o,void 0,i)}return _={get basename(){return s},get future(){return c},get state(){return w},get routes(){return a},get window(){return t},initialize:Kr,subscribe:pn,enableScrollRestoration:z_,navigate:as,fetch:cs,revalidate:ls,createHref:z=>e.history.createHref(z),encodeLocation:z=>e.history.encodeLocation(z),getFetcher:V,deleteFetcher:ye,dispose:Mn,getBlocker:xo,deleteBlocker:On,_internalFetchControllers:ee,_internalActiveDeferreds:pt,_internalSetRoutes:N_},_}function sD(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function Wh(e,t,r,n,o,i,a,l){let s,c;if(a){s=[];for(let f of t)if(s.push(f),f.route.id===a){c=f;break}}else s=t,c=t[t.length-1];let u=D2(o||".",F2(s,i),es(e.pathname,r)||e.pathname,l==="path");return o==null&&(u.search=e.search,u.hash=e.hash),(o==null||o===""||o===".")&&c&&c.route.index&&!Ig(u.search)&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(u.pathname=u.pathname==="/"?r:so([r,u.pathname])),Yl(u)}function i0(e,t,r,n){if(!n||!sD(n))return{path:r};if(n.formMethod&&!gD(n.formMethod))return{path:r,error:xr(405,{method:n.formMethod})};let o=()=>({path:r,error:xr(400,{type:"invalid-body"})}),i=n.formMethod||"get",a=e?i.toUpperCase():i.toLowerCase(),l=q2(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!Lr(a))return o();let d=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((h,p)=>{let[m,y]=p;return""+h+m+"="+y+` +`},""):String(n.body);return{path:r,submission:{formMethod:a,formAction:l,formEncType:n.formEncType,formData:void 0,json:void 0,text:d}}}else if(n.formEncType==="application/json"){if(!Lr(a))return o();try{let d=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:a,formAction:l,formEncType:n.formEncType,formData:void 0,json:d,text:void 0}}}catch{return o()}}}me(typeof FormData=="function","FormData is not available in this environment");let s,c;if(n.formData)s=Uh(n.formData),c=n.formData;else if(n.body instanceof FormData)s=Uh(n.body),c=n.body;else if(n.body instanceof URLSearchParams)s=n.body,c=c0(s);else if(n.body==null)s=new URLSearchParams,c=new FormData;else try{s=new URLSearchParams(n.body),c=c0(s)}catch{return o()}let u={formMethod:a,formAction:l,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:c,json:void 0,text:void 0};if(Lr(u.formMethod))return{path:r,submission:u};let f=In(r);return t&&f.search&&Ig(f.search)&&s.append("index",""),f.search="?"+s,{path:Yl(f),submission:u}}function cD(e,t){let r=e;if(t){let n=e.findIndex(o=>o.route.id===t);n>=0&&(r=e.slice(0,n))}return r}function a0(e,t,r,n,o,i,a,l,s,c,u,f,d,h,p,m){let y=m?Object.values(m)[0]:p?Object.values(p)[0]:void 0,v=e.createURL(t.location),g=e.createURL(o),b=m?Object.keys(m)[0]:void 0,_=cD(r,b).filter((S,E)=>{let{route:N}=S;if(N.lazy)return!0;if(N.loader==null)return!1;if(i)return N.loader.hydrate?!0:t.loaderData[N.id]===void 0&&(!t.errors||t.errors[N.id]===void 0);if(uD(t.loaderData,t.matches[E],S)||l.some(R=>R===S.route.id))return!0;let C=t.matches[E],L=S;return l0(S,ot({currentUrl:v,currentParams:C.params,nextUrl:g,nextParams:L.params},n,{actionResult:y,defaultShouldRevalidate:a||v.pathname+v.search===g.pathname+g.search||v.search!==g.search||L2(C,L)}))}),w=[];return u.forEach((S,E)=>{if(i||!r.some(re=>re.route.id===S.routeId)||c.has(E))return;let N=Ri(d,S.path,h);if(!N){w.push({key:E,routeId:S.routeId,path:S.path,matches:null,match:null,controller:null});return}let C=t.fetchers.get(E),L=$h(N,S.path),R=!1;f.has(E)?R=!1:s.includes(E)?R=!0:C&&C.state!=="idle"&&C.data===void 0?R=a:R=l0(L,ot({currentUrl:v,currentParams:t.matches[t.matches.length-1].params,nextUrl:g,nextParams:r[r.length-1].params},n,{actionResult:y,defaultShouldRevalidate:a})),R&&w.push({key:E,routeId:S.routeId,path:S.path,matches:N,match:L,controller:new AbortController})}),[_,w]}function uD(e,t,r){let n=!t||r.route.id!==t.route.id,o=e[r.route.id]===void 0;return n||o}function L2(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function l0(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function s0(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let o=r[e.id];me(o,"No route found in manifest");let i={};for(let a in n){let s=o[a]!==void 0&&a!=="hasErrorBoundary";ra(!s,'Route "'+o.id+'" has a static property "'+a+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+a+'" will be ignored.')),!s&&!j9.has(a)&&(i[a]=n[a])}Object.assign(o,i),Object.assign(o,ot({},t(o),{lazy:void 0}))}async function ja(e,t,r,n,o,i,a,l,s){s===void 0&&(s={});let c,u,f,d=m=>{let y,v=new Promise((g,b)=>y=b);return f=()=>y(),t.signal.addEventListener("abort",f),Promise.race([m({request:t,params:r.params,context:s.requestContext}),v])};try{let m=r.route[e];if(r.route.lazy)if(m){let y,v=await Promise.all([d(m).catch(g=>{y=g}),s0(r.route,i,o)]);if(y)throw y;u=v[0]}else if(await s0(r.route,i,o),m=r.route[e],m)u=await d(m);else if(e==="action"){let y=new URL(t.url),v=y.pathname+y.search;throw xr(405,{method:t.method,pathname:v,routeId:r.route.id})}else return{type:tt.data,data:void 0};else if(m)u=await d(m);else{let y=new URL(t.url),v=y.pathname+y.search;throw xr(404,{pathname:v})}me(u!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(m){c=tt.error,u=m}finally{f&&t.signal.removeEventListener("abort",f)}if(pD(u)){let m=u.status;if(nD.has(m)){let v=u.headers.get("Location");if(me(v,"Redirects returned/thrown from loaders/actions must have a Location header"),!M2.test(v))v=Wh(new URL(t.url),n.slice(0,n.indexOf(r)+1),a,!0,v,l);else if(!s.isStaticRequest){let g=new URL(t.url),b=v.startsWith("//")?new URL(g.protocol+v):new URL(v),k=es(b.pathname,a)!=null;b.origin===g.origin&&k&&(v=b.pathname+b.search+b.hash)}if(s.isStaticRequest)throw u.headers.set("Location",v),u;return{type:tt.redirect,status:m,location:v,revalidate:u.headers.get("X-Remix-Revalidate")!==null,reloadDocument:u.headers.get("X-Remix-Reload-Document")!==null}}if(s.isRouteRequest)throw{type:c===tt.error?tt.error:tt.data,response:u};let y;try{let v=u.headers.get("Content-Type");v&&/\bapplication\/json\b/.test(v)?u.body==null?y=null:y=await u.json():y=await u.text()}catch(v){return{type:tt.error,error:v}}return c===tt.error?{type:c,error:new Dg(m,u.statusText,y),headers:u.headers}:{type:tt.data,data:y,statusCode:u.status,headers:u.headers}}if(c===tt.error)return{type:c,error:u};if(hD(u)){var h,p;return{type:tt.deferred,deferredData:u,statusCode:(h=u.init)==null?void 0:h.status,headers:((p=u.init)==null?void 0:p.headers)&&new Headers(u.init.headers)}}return{type:tt.data,data:u}}function Fa(e,t,r,n){let o=e.createURL(q2(t)).toString(),i={signal:r};if(n&&Lr(n.formMethod)){let{formMethod:a,formEncType:l}=n;i.method=a.toUpperCase(),l==="application/json"?(i.headers=new Headers({"Content-Type":l}),i.body=JSON.stringify(n.json)):l==="text/plain"?i.body=n.text:l==="application/x-www-form-urlencoded"&&n.formData?i.body=Uh(n.formData):i.body=n.formData}return new Request(o,i)}function Uh(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function c0(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function fD(e,t,r,n,o){let i={},a=null,l,s=!1,c={};return r.forEach((u,f)=>{let d=t[f].route.id;if(me(!qo(u),"Cannot handle redirect results in processLoaderData"),ji(u)){let h=ol(e,d),p=u.error;n&&(p=Object.values(n)[0],n=void 0),a=a||{},a[h.route.id]==null&&(a[h.route.id]=p),i[d]=void 0,s||(s=!0,l=I2(u.error)?u.error.status:500),u.headers&&(c[d]=u.headers)}else Lo(u)?(o.set(d,u.deferredData),i[d]=u.deferredData.data):i[d]=u.data,u.statusCode!=null&&u.statusCode!==200&&!s&&(l=u.statusCode),u.headers&&(c[d]=u.headers)}),n&&(a=n,i[Object.keys(n)[0]]=void 0),{loaderData:i,errors:a,statusCode:l||200,loaderHeaders:c}}function u0(e,t,r,n,o,i,a,l){let{loaderData:s,errors:c}=fD(t,r,n,o,l);for(let u=0;un.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function d0(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function xr(e,t){let{pathname:r,routeId:n,method:o,type:i}=t===void 0?{}:t,a="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(a="Bad Request",o&&r&&n?l="You made a "+o+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":i==="defer-action"?l="defer() is not supported in actions":i==="invalid-body"&&(l="Unable to encode submission body")):e===403?(a="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(a="Not Found",l='No route matches URL "'+r+'"'):e===405&&(a="Method Not Allowed",o&&r&&n?l="You made a "+o.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":o&&(l='Invalid request method "'+o.toUpperCase()+'"')),new Dg(e||500,a,new Error(l),!0)}function h0(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(qo(r))return{result:r,idx:t}}}function q2(e){let t=typeof e=="string"?In(e):e;return Yl(ot({},t,{hash:""}))}function dD(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Lo(e){return e.type===tt.deferred}function ji(e){return e.type===tt.error}function qo(e){return(e&&e.type)===tt.redirect}function hD(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function pD(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function gD(e){return rD.has(e.toLowerCase())}function Lr(e){return eD.has(e.toLowerCase())}async function p0(e,t,r,n,o,i){for(let a=0;af.route.id===s.route.id),u=c!=null&&!L2(c,s)&&(i&&i[s.route.id])!==void 0;if(Lo(l)&&(o||u)){let f=n[a];me(f,"Expected an AbortSignal for revalidating fetcher deferred result"),await H2(l,f,o).then(d=>{d&&(r[a]=d||r[a])})}}}async function H2(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:tt.data,data:e.deferredData.unwrappedData}}catch(o){return{type:tt.error,error:o}}return{type:tt.data,data:e.deferredData.data}}}function Ig(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function $h(e,t){let r=typeof t=="string"?In(t).search:t.search;if(e[e.length-1].route.index&&Ig(r||""))return e[e.length-1];let n=j2(e);return n[n.length-1]}function g0(e){let{formMethod:t,formAction:r,formEncType:n,text:o,formData:i,json:a}=e;if(!(!t||!r||!n)){if(o!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:o};if(i!=null)return{formMethod:t,formAction:r,formEncType:n,formData:i,json:void 0,text:void 0};if(a!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:a,text:void 0}}}function Zf(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function mD(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function Da(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function vD(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Vn(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function bD(e,t){try{let r=e.sessionStorage.getItem(O2);if(r){let n=JSON.parse(r);for(let[o,i]of Object.entries(n||{}))i&&Array.isArray(i)&&t.set(o,new Set(i||[]))}}catch{}}function yD(e,t){if(t.size>0){let r={};for(let[n,o]of t)r[n]=[...o];try{e.sessionStorage.setItem(O2,JSON.stringify(r))}catch(n){ra(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/** + * React Router v6.22.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Dl(){return Dl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),x.useCallback(function(c,u){if(u===void 0&&(u={}),!l.current)return;if(typeof c=="number"){n.go(c);return}let f=D2(c,JSON.parse(a),i,u.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:so([t,f.pathname])),(u.replace?n.replace:n.push)(f,u.state,u)},[t,n,a,i,e])}function SD(e,t){return _D(e,t)}function _D(e,t,r,n){ju()||me(!1);let{navigator:o}=x.useContext(Nu),{matches:i}=x.useContext(ma),a=i[i.length-1],l=a?a.params:{};a&&a.pathname;let s=a?a.pathnameBase:"/";a&&a.route;let c=U2(),u;if(t){var f;let y=typeof t=="string"?In(t):t;s==="/"||(f=y.pathname)!=null&&f.startsWith(s)||me(!1),u=y}else u=c;let d=u.pathname||"/",h=d;if(s!=="/"){let y=s.replace(/^\//,"").split("/");h="/"+d.replace(/^\//,"").split("/").slice(y.length).join("/")}let p=Ri(e,{pathname:h}),m=zD(p&&p.map(y=>Object.assign({},y,{params:Object.assign({},l,y.params),pathname:so([s,o.encodeLocation?o.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?s:so([s,o.encodeLocation?o.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),i,r,n);return t&&m?x.createElement(Ru.Provider,{value:{location:Dl({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:at.Pop}},m):m}function BD(){let e=jD(),t=I2(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return x.createElement(x.Fragment,null,x.createElement("h2",null,"Unexpected Application Error!"),x.createElement("h3",{style:{fontStyle:"italic"}},t),r?x.createElement("pre",{style:o},r):null,null)}const CD=x.createElement(BD,null);class PD extends x.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?x.createElement(ma.Provider,{value:this.props.routeContext},x.createElement(W2.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function ED(e){let{routeContext:t,match:r,children:n}=e,o=x.useContext(Ag);return o&&o.static&&o.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=r.route.id),x.createElement(ma.Provider,{value:t},n)}function zD(e,t,r,n){var o;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if((i=r)!=null&&i.errors)e=r.matches;else return null}let a=e,l=(o=r)==null?void 0:o.errors;if(l!=null){let u=a.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id]));u>=0||me(!1),a=a.slice(0,Math.min(a.length,u+1))}let s=!1,c=-1;if(r&&n&&n.v7_partialHydration)for(let u=0;u=0?a=a.slice(0,c+1):a=[a[0]];break}}}return a.reduceRight((u,f,d)=>{let h,p=!1,m=null,y=null;r&&(h=l&&f.route.id?l[f.route.id]:void 0,m=f.route.errorElement||CD,s&&(c<0&&d===0?(DD("route-fallback",!1),p=!0,y=null):c===d&&(p=!0,y=f.route.hydrateFallbackElement||null)));let v=t.concat(a.slice(0,d+1)),g=()=>{let b;return h?b=m:p?b=y:f.route.Component?b=x.createElement(f.route.Component,null):f.route.element?b=f.route.element:b=u,x.createElement(ED,{match:f,routeContext:{outlet:u,matches:v,isDataRoute:r!=null},children:b})};return r&&(f.route.ErrorBoundary||f.route.errorElement||d===0)?x.createElement(PD,{location:r.location,revalidation:r.revalidation,component:m,error:h,children:g(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):g()},null)}var V2=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(V2||{}),Uc=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Uc||{});function TD(e){let t=x.useContext(Ag);return t||me(!1),t}function ND(e){let t=x.useContext(wD);return t||me(!1),t}function RD(e){let t=x.useContext(ma);return t||me(!1),t}function G2(e){let t=RD(),r=t.matches[t.matches.length-1];return r.route.id||me(!1),r.route.id}function jD(){var e;let t=x.useContext(W2),r=ND(Uc.UseRouteError),n=G2(Uc.UseRouteError);return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function FD(){let{router:e}=TD(V2.UseNavigateStable),t=G2(Uc.UseNavigateStable),r=x.useRef(!1);return $2(()=>{r.current=!0}),x.useCallback(function(o,i){i===void 0&&(i={}),r.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,Dl({fromRouteId:t},i)))},[e,t])}const m0={};function DD(e,t,r){!t&&!m0[e]&&(m0[e]=!0)}function Vh(e){me(!1)}function ID(e){let{basename:t="/",children:r=null,location:n,navigationType:o=at.Pop,navigator:i,static:a=!1,future:l}=e;ju()&&me(!1);let s=t.replace(/^\/*/,"/"),c=x.useMemo(()=>({basename:s,navigator:i,static:a,future:Dl({v7_relativeSplatPath:!1},l)}),[s,l,i,a]);typeof n=="string"&&(n=In(n));let{pathname:u="/",search:f="",hash:d="",state:h=null,key:p="default"}=n,m=x.useMemo(()=>{let y=es(u,s);return y==null?null:{location:{pathname:y,search:f,hash:d,state:h,key:p},navigationType:o}},[s,u,f,d,h,p,o]);return m==null?null:x.createElement(Nu.Provider,{value:c},x.createElement(Ru.Provider,{children:r,value:m}))}function AD(e){let{children:t,location:r}=e;return SD(Gh(t),r)}new Promise(()=>{});function Gh(e,t){t===void 0&&(t=[]);let r=[];return x.Children.forEach(e,(n,o)=>{if(!x.isValidElement(n))return;let i=[...t,o];if(n.type===x.Fragment){r.push.apply(r,Gh(n.props.children,i));return}n.type!==Vh&&me(!1),!n.props.index||!n.props.children||me(!1);let a={id:n.props.id||i.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(a.children=Gh(n.props.children,i)),r.push(a)}),r}function MD(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:x.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:x.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:x.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** + * React Router DOM v6.22.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function $c(){return $c=Object.assign?Object.assign.bind():function(e){for(var t=1;t{c&&v0?v0(()=>s(f)):s(f)},[s,c]);return x.useLayoutEffect(()=>a.listen(u),[a,u]),x.createElement(ID,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:a,future:n})}var b0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(b0||(b0={}));var y0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(y0||(y0={}));const $D=Ul({navBar:{backgroundColor:Fi.colorBrandBackground,height:"40px",display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",...on.padding("10px")},title:{color:Fi.colorNeutralBackground1},userMenu:{display:"flex",flexDirection:"row",alignItems:"center"}});function VD(){const e=$D(),t="User";return j.jsxs("div",{className:e.navBar,children:[j.jsx(n7,{className:e.title,children:"Support Center"}),j.jsxs("div",{className:e.userMenu,children:[j.jsxs(Qx,{children:[j.jsx(jg,{disableButtonEnhancement:!0,children:j.jsx(Kx,{appearance:"primary",children:t})}),j.jsx(e2,{children:j.jsx(Yx,{children:j.jsx(Jx,{children:"⚙️ Settings"})})})]}),j.jsx(yi,{color:"colorful",name:t})]})]})}let As;const GD=new Uint8Array(16);function KD(){if(!As&&(As=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!As))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return As(GD)}const Bt=[];for(let e=0;e<256;++e)Bt.push((e+256).toString(16).slice(1));function XD(e,t=0){return Bt[e[t+0]]+Bt[e[t+1]]+Bt[e[t+2]]+Bt[e[t+3]]+"-"+Bt[e[t+4]]+Bt[e[t+5]]+"-"+Bt[e[t+6]]+Bt[e[t+7]]+"-"+Bt[e[t+8]]+Bt[e[t+9]]+"-"+Bt[e[t+10]]+Bt[e[t+11]]+Bt[e[t+12]]+Bt[e[t+13]]+Bt[e[t+14]]+Bt[e[t+15]]}const ZD=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),w0={randomUUID:ZD};function Qf(e,t,r){if(w0.randomUUID&&!t&&!e)return w0.randomUUID();e=e||{};const n=e.random||(e.rng||KD)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let o=0;o<16;++o)t[r+o]=n[o];return t}return XD(n)}const K2={configuration:{}},X2=x.createContext(K2),Z2={conversation:{id:"",metadata:{},messages:[]},citationPreview:void 0,isLoading:!1,isTakingTooLong:!1,waitingMessage:""},Q2=x.createContext(Z2),J2={onRestartConversation:()=>new Error("onRestartConversation is not initialized"),onSendMessage:()=>new Error("onSendMessage is not initialized"),onCitationPreview:()=>new Error("onCitationPreview is not initialized"),onSendFeedback:()=>new Error("onSendFeedback is not initialized")},Fu=x.createContext(J2),QD=Ul({title:{...on.margin("15px","0px","30px","0px")},card:{...on.margin("0px","30px"),minWidth:"300px",maxWidth:"300px"},button:{backgroundColor:Fi.colorBrandBackground},warning:{...on.margin("0px","30px"),minWidth:"0px",maxWidth:"500px",maxHeight:"200px",backgroundColor:"#f2f2f2",fontStyle:"italic"}});function JD(){var n,o,i,a,l,s,c,u,f,d,h;const e=QD(),t=x.useContext(X2),r=x.useContext(Fu);return j.jsxs("div",{className:"welcome-container",children:[j.jsx(e7,{className:e.title,align:"center",children:(o=(n=t.configuration)==null?void 0:n.chatConfiguration)==null?void 0:o.welcomeTitle}),j.jsx(Q8,{className:e.title,align:"center",children:(a=(i=t.configuration)==null?void 0:i.chatConfiguration)==null?void 0:a.welcomeSubtitle}),j.jsx("div",{className:"hints-container",children:(c=(s=(l=t.configuration)==null?void 0:l.chatConfiguration)==null?void 0:s.welcomeHints)==null?void 0:c.map(p=>j.jsxs(Oo,{className:e.card,children:[j.jsx(h2,{description:j.jsx(m3,{})}),j.jsx(V1,{children:p}),j.jsx(d2,{children:j.jsx(po,{icon:j.jsx(g3,{}),className:e.button,appearance:"primary",onClick:()=>r.onSendMessage(p),children:"Ask"})})]},p))}),(f=(u=t.configuration)==null?void 0:u.chatConfiguration)!=null&&f.welcomeWarning?j.jsx("div",{className:"warning-container",children:j.jsx(Oo,{className:e.warning,children:j.jsx(V1,{children:(h=(d=t.configuration)==null?void 0:d.chatConfiguration)==null?void 0:h.welcomeWarning})})}):j.jsx(j.Fragment,{})]})}var kr=(e=>(e.User="User",e.Agent="Agent",e.Dispatcher="Dispatcher",e.CustomerInfo="CustomerInfo",e.Notification="Notification",e.ErrorNotification="ErrorNotification",e.DispatcherNotification="DispatcherNotification",e.CustomerInfoNotification="CustomerInfoNotification",e.AgentInfoNotification="AgentInfoNotification",e))(kr||{});class Vo extends Error{constructor(t,r){const n=new.target.prototype;super(`${t}: Status code '${r}'`),this.statusCode=r,this.__proto__=n}}class Mg extends Error{constructor(t="A timeout occurred."){const r=new.target.prototype;super(t),this.__proto__=r}}class Hr extends Error{constructor(t="An abort occurred."){const r=new.target.prototype;super(t),this.__proto__=r}}class YD extends Error{constructor(t,r){const n=new.target.prototype;super(t),this.transport=r,this.errorType="UnsupportedTransportError",this.__proto__=n}}class eI extends Error{constructor(t,r){const n=new.target.prototype;super(t),this.transport=r,this.errorType="DisabledTransportError",this.__proto__=n}}class tI extends Error{constructor(t,r){const n=new.target.prototype;super(t),this.transport=r,this.errorType="FailedToStartTransportError",this.__proto__=n}}class k0 extends Error{constructor(t){const r=new.target.prototype;super(t),this.errorType="FailedToNegotiateWithServerError",this.__proto__=r}}class rI extends Error{constructor(t,r){const n=new.target.prototype;super(t),this.innerErrors=r,this.__proto__=n}}class Y2{constructor(t,r,n){this.statusCode=t,this.statusText=r,this.content=n}}class Du{get(t,r){return this.send({...r,method:"GET",url:t})}post(t,r){return this.send({...r,method:"POST",url:t})}delete(t,r){return this.send({...r,method:"DELETE",url:t})}getCookieString(t){return""}}var D;(function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"})(D||(D={}));class Il{constructor(){}log(t,r){}}Il.instance=new Il;const nI="8.0.0";class ct{static isRequired(t,r){if(t==null)throw new Error(`The '${r}' argument is required.`)}static isNotEmpty(t,r){if(!t||t.match(/^\s*$/))throw new Error(`The '${r}' argument should not be empty.`)}static isIn(t,r,n){if(!(t in r))throw new Error(`Unknown ${n} value: ${t}.`)}}class Ke{static get isBrowser(){return!Ke.isNode&&typeof window=="object"&&typeof window.document=="object"}static get isWebWorker(){return!Ke.isNode&&typeof self=="object"&&"importScripts"in self}static get isReactNative(){return!Ke.isNode&&typeof window=="object"&&typeof window.document>"u"}static get isNode(){return typeof process<"u"&&process.release&&process.release.name==="node"}}function Al(e,t){let r="";return ti(e)?(r=`Binary data of length ${e.byteLength}`,t&&(r+=`. Content: '${oI(e)}'`)):typeof e=="string"&&(r=`String data of length ${e.length}`,t&&(r+=`. Content: '${e}'`)),r}function oI(e){const t=new Uint8Array(e);let r="";return t.forEach(n=>{const o=n<16?"0":"";r+=`0x${o}${n.toString(16)} `}),r.substr(0,r.length-1)}function ti(e){return e&&typeof ArrayBuffer<"u"&&(e instanceof ArrayBuffer||e.constructor&&e.constructor.name==="ArrayBuffer")}async function eS(e,t,r,n,o,i){const a={},[l,s]=na();a[l]=s,e.log(D.Trace,`(${t} transport) sending data. ${Al(o,i.logMessageContent)}.`);const c=ti(o)?"arraybuffer":"text",u=await r.post(n,{content:o,headers:{...a,...i.headers},responseType:c,timeout:i.timeout,withCredentials:i.withCredentials});e.log(D.Trace,`(${t} transport) request complete. Response status: ${u.statusCode}.`)}function iI(e){return e===void 0?new Vc(D.Information):e===null?Il.instance:e.log!==void 0?e:new Vc(e)}class aI{constructor(t,r){this._subject=t,this._observer=r}dispose(){const t=this._subject.observers.indexOf(this._observer);t>-1&&this._subject.observers.splice(t,1),this._subject.observers.length===0&&this._subject.cancelCallback&&this._subject.cancelCallback().catch(r=>{})}}class Vc{constructor(t){this._minLevel=t,this.out=console}log(t,r){if(t>=this._minLevel){const n=`[${new Date().toISOString()}] ${D[t]}: ${r}`;switch(t){case D.Critical:case D.Error:this.out.error(n);break;case D.Warning:this.out.warn(n);break;case D.Information:this.out.info(n);break;default:this.out.log(n);break}}}}function na(){let e="X-SignalR-User-Agent";return Ke.isNode&&(e="User-Agent"),[e,lI(nI,sI(),uI(),cI())]}function lI(e,t,r,n){let o="Microsoft SignalR/";const i=e.split(".");return o+=`${i[0]}.${i[1]}`,o+=` (${e}; `,t&&t!==""?o+=`${t}; `:o+="Unknown OS; ",o+=`${r}`,n?o+=`; ${n}`:o+="; Unknown Runtime Version",o+=")",o}function sI(){if(Ke.isNode)switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}else return""}function cI(){if(Ke.isNode)return process.versions.node}function uI(){return Ke.isNode?"NodeJS":"Browser"}function x0(e){return e.stack?e.stack:e.message?e.message:`${e}`}function fI(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("could not find global")}function dI(e){return typeof fetch>"u"||Ke.isNode?(e._jar=new(require("tough-cookie")).CookieJar,typeof fetch>"u"?e._fetchType=require("node-fetch"):e._fetchType=fetch,e._fetchType=require("fetch-cookie")(e._fetchType,e._jar),!0):!1}function hI(e){return typeof AbortController>"u"?(e._abortControllerType=require("abort-controller"),!0):!1}function pI(){return require("ws")}function gI(){return require("eventsource")}class mI extends Du{constructor(t){super(),this._logger=t;const r={_fetchType:void 0,_jar:void 0};dI(r)?(this._fetchType=r._fetchType,this._jar=r._jar):this._fetchType=fetch.bind(fI()),this._abortControllerType=AbortController;const n={_abortControllerType:this._abortControllerType};hI(n)&&(this._abortControllerType=n._abortControllerType)}async send(t){if(t.abortSignal&&t.abortSignal.aborted)throw new Hr;if(!t.method)throw new Error("No method defined.");if(!t.url)throw new Error("No url defined.");const r=new this._abortControllerType;let n;t.abortSignal&&(t.abortSignal.onabort=()=>{r.abort(),n=new Hr});let o=null;if(t.timeout){const s=t.timeout;o=setTimeout(()=>{r.abort(),this._logger.log(D.Warning,"Timeout from HTTP request."),n=new Mg},s)}t.content===""&&(t.content=void 0),t.content&&(t.headers=t.headers||{},ti(t.content)?t.headers["Content-Type"]="application/octet-stream":t.headers["Content-Type"]="text/plain;charset=UTF-8");let i;try{i=await this._fetchType(t.url,{body:t.content,cache:"no-cache",credentials:t.withCredentials===!0?"include":"same-origin",headers:{"X-Requested-With":"XMLHttpRequest",...t.headers},method:t.method,mode:"cors",redirect:"follow",signal:r.signal})}catch(s){throw n||(this._logger.log(D.Warning,`Error from HTTP request. ${s}.`),s)}finally{o&&clearTimeout(o),t.abortSignal&&(t.abortSignal.onabort=null)}if(!i.ok){const s=await S0(i,"text");throw new Vo(s||i.statusText,i.status)}const l=await S0(i,t.responseType);return new Y2(i.status,i.statusText,l)}getCookieString(t){let r="";return Ke.isNode&&this._jar&&this._jar.getCookies(t,(n,o)=>r=o.join("; ")),r}}function S0(e,t){let r;switch(t){case"arraybuffer":r=e.arrayBuffer();break;case"text":r=e.text();break;case"blob":case"document":case"json":throw new Error(`${t} is not supported.`);default:r=e.text();break}return r}class vI extends Du{constructor(t){super(),this._logger=t}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new Hr):t.method?t.url?new Promise((r,n)=>{const o=new XMLHttpRequest;o.open(t.method,t.url,!0),o.withCredentials=t.withCredentials===void 0?!0:t.withCredentials,o.setRequestHeader("X-Requested-With","XMLHttpRequest"),t.content===""&&(t.content=void 0),t.content&&(ti(t.content)?o.setRequestHeader("Content-Type","application/octet-stream"):o.setRequestHeader("Content-Type","text/plain;charset=UTF-8"));const i=t.headers;i&&Object.keys(i).forEach(a=>{o.setRequestHeader(a,i[a])}),t.responseType&&(o.responseType=t.responseType),t.abortSignal&&(t.abortSignal.onabort=()=>{o.abort(),n(new Hr)}),t.timeout&&(o.timeout=t.timeout),o.onload=()=>{t.abortSignal&&(t.abortSignal.onabort=null),o.status>=200&&o.status<300?r(new Y2(o.status,o.statusText,o.response||o.responseText)):n(new Vo(o.response||o.responseText||o.statusText,o.status))},o.onerror=()=>{this._logger.log(D.Warning,`Error from HTTP request. ${o.status}: ${o.statusText}.`),n(new Vo(o.statusText,o.status))},o.ontimeout=()=>{this._logger.log(D.Warning,"Timeout from HTTP request."),n(new Mg)},o.send(t.content)}):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}}class bI extends Du{constructor(t){if(super(),typeof fetch<"u"||Ke.isNode)this._httpClient=new mI(t);else if(typeof XMLHttpRequest<"u")this._httpClient=new vI(t);else throw new Error("No usable HttpClient found.")}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new Hr):t.method?t.url?this._httpClient.send(t):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}getCookieString(t){return this._httpClient.getCookieString(t)}}class fr{static write(t){return`${t}${fr.RecordSeparator}`}static parse(t){if(t[t.length-1]!==fr.RecordSeparator)throw new Error("Message is incomplete.");const r=t.split(fr.RecordSeparator);return r.pop(),r}}fr.RecordSeparatorCode=30;fr.RecordSeparator=String.fromCharCode(fr.RecordSeparatorCode);class yI{writeHandshakeRequest(t){return fr.write(JSON.stringify(t))}parseHandshakeResponse(t){let r,n;if(ti(t)){const l=new Uint8Array(t),s=l.indexOf(fr.RecordSeparatorCode);if(s===-1)throw new Error("Message is incomplete.");const c=s+1;r=String.fromCharCode.apply(null,Array.prototype.slice.call(l.slice(0,c))),n=l.byteLength>c?l.slice(c).buffer:null}else{const l=t,s=l.indexOf(fr.RecordSeparator);if(s===-1)throw new Error("Message is incomplete.");const c=s+1;r=l.substring(0,c),n=l.length>c?l.substring(c):null}const o=fr.parse(r),i=JSON.parse(o[0]);if(i.type)throw new Error("Expected a handshake response from the server.");return[n,i]}}var fe;(function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close",e[e.Ack=8]="Ack",e[e.Sequence=9]="Sequence"})(fe||(fe={}));class wI{constructor(){this.observers=[]}next(t){for(const r of this.observers)r.next(t)}error(t){for(const r of this.observers)r.error&&r.error(t)}complete(){for(const t of this.observers)t.complete&&t.complete()}subscribe(t){return this.observers.push(t),new aI(this,t)}}class kI{constructor(t,r,n){this._bufferSize=1e5,this._messages=[],this._totalMessageCount=0,this._waitForSequenceMessage=!1,this._nextReceivingSequenceId=1,this._latestReceivedSequenceId=0,this._bufferedByteCount=0,this._reconnectInProgress=!1,this._protocol=t,this._connection=r,this._bufferSize=n}async _send(t){const r=this._protocol.writeMessage(t);let n=Promise.resolve();if(this._isInvocationMessage(t)){this._totalMessageCount++;let o=()=>{},i=()=>{};ti(r)?this._bufferedByteCount+=r.byteLength:this._bufferedByteCount+=r.length,this._bufferedByteCount>=this._bufferSize&&(n=new Promise((a,l)=>{o=a,i=l})),this._messages.push(new xI(r,this._totalMessageCount,o,i))}try{this._reconnectInProgress||await this._connection.send(r)}catch{this._disconnected()}await n}_ack(t){let r=-1;for(let n=0;nthis._nextReceivingSequenceId){this._connection.stop(new Error("Sequence ID greater than amount of messages we've received."));return}this._nextReceivingSequenceId=t.sequenceId}_disconnected(){this._reconnectInProgress=!0,this._waitForSequenceMessage=!0}async _resend(){const t=this._messages.length!==0?this._messages[0]._id:this._totalMessageCount+1;await this._connection.send(this._protocol.writeMessage({type:fe.Sequence,sequenceId:t}));const r=this._messages;for(const n of r)await this._connection.send(n._message);this._reconnectInProgress=!1}_dispose(t){t??(t=new Error("Unable to reconnect to server."));for(const r of this._messages)r._rejector(t)}_isInvocationMessage(t){switch(t.type){case fe.Invocation:case fe.StreamItem:case fe.Completion:case fe.StreamInvocation:case fe.CancelInvocation:return!0;case fe.Close:case fe.Sequence:case fe.Ping:case fe.Ack:return!1}}_ackTimer(){this._ackTimerHandle===void 0&&(this._ackTimerHandle=setTimeout(async()=>{try{this._reconnectInProgress||await this._connection.send(this._protocol.writeMessage({type:fe.Ack,sequenceId:this._latestReceivedSequenceId}))}catch{}clearTimeout(this._ackTimerHandle),this._ackTimerHandle=void 0},1e3))}}class xI{constructor(t,r,n,o){this._message=t,this._id=r,this._resolver=n,this._rejector=o}}const SI=30*1e3,_I=15*1e3,BI=1e5;var We;(function(e){e.Disconnected="Disconnected",e.Connecting="Connecting",e.Connected="Connected",e.Disconnecting="Disconnecting",e.Reconnecting="Reconnecting"})(We||(We={}));class Og{static create(t,r,n,o,i,a,l){return new Og(t,r,n,o,i,a,l)}constructor(t,r,n,o,i,a,l){this._nextKeepAlive=0,this._freezeEventListener=()=>{this._logger.log(D.Warning,"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep")},ct.isRequired(t,"connection"),ct.isRequired(r,"logger"),ct.isRequired(n,"protocol"),this.serverTimeoutInMilliseconds=i??SI,this.keepAliveIntervalInMilliseconds=a??_I,this._statefulReconnectBufferSize=l??BI,this._logger=r,this._protocol=n,this.connection=t,this._reconnectPolicy=o,this._handshakeProtocol=new yI,this.connection.onreceive=s=>this._processIncomingData(s),this.connection.onclose=s=>this._connectionClosed(s),this._callbacks={},this._methods={},this._closedCallbacks=[],this._reconnectingCallbacks=[],this._reconnectedCallbacks=[],this._invocationId=0,this._receivedHandshakeResponse=!1,this._connectionState=We.Disconnected,this._connectionStarted=!1,this._cachedPingMessage=this._protocol.writeMessage({type:fe.Ping})}get state(){return this._connectionState}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||""}set baseUrl(t){if(this._connectionState!==We.Disconnected&&this._connectionState!==We.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!t)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=t}start(){return this._startPromise=this._startWithStateTransitions(),this._startPromise}async _startWithStateTransitions(){if(this._connectionState!==We.Disconnected)return Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."));this._connectionState=We.Connecting,this._logger.log(D.Debug,"Starting HubConnection.");try{await this._startInternal(),Ke.isBrowser&&window.document.addEventListener("freeze",this._freezeEventListener),this._connectionState=We.Connected,this._connectionStarted=!0,this._logger.log(D.Debug,"HubConnection connected successfully.")}catch(t){return this._connectionState=We.Disconnected,this._logger.log(D.Debug,`HubConnection failed to start successfully because of error '${t}'.`),Promise.reject(t)}}async _startInternal(){this._stopDuringStartError=void 0,this._receivedHandshakeResponse=!1;const t=new Promise((r,n)=>{this._handshakeResolver=r,this._handshakeRejecter=n});await this.connection.start(this._protocol.transferFormat);try{let r=this._protocol.version;this.connection.features.reconnect||(r=1);const n={protocol:this._protocol.name,version:r};if(this._logger.log(D.Debug,"Sending handshake request."),await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(n)),this._logger.log(D.Information,`Using HubProtocol '${this._protocol.name}'.`),this._cleanupTimeout(),this._resetTimeoutPeriod(),this._resetKeepAliveInterval(),await t,this._stopDuringStartError)throw this._stopDuringStartError;(this.connection.features.reconnect||!1)&&(this._messageBuffer=new kI(this._protocol,this.connection,this._statefulReconnectBufferSize),this.connection.features.disconnected=this._messageBuffer._disconnected.bind(this._messageBuffer),this.connection.features.resend=()=>{if(this._messageBuffer)return this._messageBuffer._resend()}),this.connection.features.inherentKeepAlive||await this._sendMessage(this._cachedPingMessage)}catch(r){throw this._logger.log(D.Debug,`Hub handshake failed with error '${r}' during start(). Stopping HubConnection.`),this._cleanupTimeout(),this._cleanupPingTimer(),await this.connection.stop(r),r}}async stop(){const t=this._startPromise;this.connection.features.reconnect=!1,this._stopPromise=this._stopInternal(),await this._stopPromise;try{await t}catch{}}_stopInternal(t){if(this._connectionState===We.Disconnected)return this._logger.log(D.Debug,`Call to HubConnection.stop(${t}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this._connectionState===We.Disconnecting)return this._logger.log(D.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;const r=this._connectionState;return this._connectionState=We.Disconnecting,this._logger.log(D.Debug,"Stopping HubConnection."),this._reconnectDelayHandle?(this._logger.log(D.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this._reconnectDelayHandle),this._reconnectDelayHandle=void 0,this._completeClose(),Promise.resolve()):(r===We.Connected&&this._sendCloseMessage(),this._cleanupTimeout(),this._cleanupPingTimer(),this._stopDuringStartError=t||new Hr("The connection was stopped before the hub handshake could complete."),this.connection.stop(t))}async _sendCloseMessage(){try{await this._sendWithProtocol(this._createCloseMessage())}catch{}}stream(t,...r){const[n,o]=this._replaceStreamingParams(r),i=this._createStreamInvocation(t,r,o);let a;const l=new wI;return l.cancelCallback=()=>{const s=this._createCancelInvocation(i.invocationId);return delete this._callbacks[i.invocationId],a.then(()=>this._sendWithProtocol(s))},this._callbacks[i.invocationId]=(s,c)=>{if(c){l.error(c);return}else s&&(s.type===fe.Completion?s.error?l.error(new Error(s.error)):l.complete():l.next(s.item))},a=this._sendWithProtocol(i).catch(s=>{l.error(s),delete this._callbacks[i.invocationId]}),this._launchStreams(n,a),l}_sendMessage(t){return this._resetKeepAliveInterval(),this.connection.send(t)}_sendWithProtocol(t){return this._messageBuffer?this._messageBuffer._send(t):this._sendMessage(this._protocol.writeMessage(t))}send(t,...r){const[n,o]=this._replaceStreamingParams(r),i=this._sendWithProtocol(this._createInvocation(t,r,!0,o));return this._launchStreams(n,i),i}invoke(t,...r){const[n,o]=this._replaceStreamingParams(r),i=this._createInvocation(t,r,!1,o);return new Promise((l,s)=>{this._callbacks[i.invocationId]=(u,f)=>{if(f){s(f);return}else u&&(u.type===fe.Completion?u.error?s(new Error(u.error)):l(u.result):s(new Error(`Unexpected message type: ${u.type}`)))};const c=this._sendWithProtocol(i).catch(u=>{s(u),delete this._callbacks[i.invocationId]});this._launchStreams(n,c)})}on(t,r){!t||!r||(t=t.toLowerCase(),this._methods[t]||(this._methods[t]=[]),this._methods[t].indexOf(r)===-1&&this._methods[t].push(r))}off(t,r){if(!t)return;t=t.toLowerCase();const n=this._methods[t];if(n)if(r){const o=n.indexOf(r);o!==-1&&(n.splice(o,1),n.length===0&&delete this._methods[t])}else delete this._methods[t]}onclose(t){t&&this._closedCallbacks.push(t)}onreconnecting(t){t&&this._reconnectingCallbacks.push(t)}onreconnected(t){t&&this._reconnectedCallbacks.push(t)}_processIncomingData(t){if(this._cleanupTimeout(),this._receivedHandshakeResponse||(t=this._processHandshakeResponse(t),this._receivedHandshakeResponse=!0),t){const r=this._protocol.parseMessages(t,this._logger);for(const n of r)if(!(this._messageBuffer&&!this._messageBuffer._shouldProcessMessage(n)))switch(n.type){case fe.Invocation:this._invokeClientMethod(n);break;case fe.StreamItem:case fe.Completion:{const o=this._callbacks[n.invocationId];if(o){n.type===fe.Completion&&delete this._callbacks[n.invocationId];try{o(n)}catch(i){this._logger.log(D.Error,`Stream callback threw error: ${x0(i)}`)}}break}case fe.Ping:break;case fe.Close:{this._logger.log(D.Information,"Close message received from server.");const o=n.error?new Error("Server returned an error on close: "+n.error):void 0;n.allowReconnect===!0?this.connection.stop(o):this._stopPromise=this._stopInternal(o);break}case fe.Ack:this._messageBuffer&&this._messageBuffer._ack(n);break;case fe.Sequence:this._messageBuffer&&this._messageBuffer._resetSequence(n);break;default:this._logger.log(D.Warning,`Invalid message type: ${n.type}.`);break}}this._resetTimeoutPeriod()}_processHandshakeResponse(t){let r,n;try{[n,r]=this._handshakeProtocol.parseHandshakeResponse(t)}catch(o){const i="Error parsing handshake response: "+o;this._logger.log(D.Error,i);const a=new Error(i);throw this._handshakeRejecter(a),a}if(r.error){const o="Server returned handshake error: "+r.error;this._logger.log(D.Error,o);const i=new Error(o);throw this._handshakeRejecter(i),i}else this._logger.log(D.Debug,"Server handshake complete.");return this._handshakeResolver(),n}_resetKeepAliveInterval(){this.connection.features.inherentKeepAlive||(this._nextKeepAlive=new Date().getTime()+this.keepAliveIntervalInMilliseconds,this._cleanupPingTimer())}_resetTimeoutPeriod(){if((!this.connection.features||!this.connection.features.inherentKeepAlive)&&(this._timeoutHandle=setTimeout(()=>this.serverTimeout(),this.serverTimeoutInMilliseconds),this._pingServerHandle===void 0)){let t=this._nextKeepAlive-new Date().getTime();t<0&&(t=0),this._pingServerHandle=setTimeout(async()=>{if(this._connectionState===We.Connected)try{await this._sendMessage(this._cachedPingMessage)}catch{this._cleanupPingTimer()}},t)}}serverTimeout(){this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."))}async _invokeClientMethod(t){const r=t.target.toLowerCase(),n=this._methods[r];if(!n){this._logger.log(D.Warning,`No client method with the name '${r}' found.`),t.invocationId&&(this._logger.log(D.Warning,`No result given for '${r}' method and invocation ID '${t.invocationId}'.`),await this._sendWithProtocol(this._createCompletionMessage(t.invocationId,"Client didn't provide a result.",null)));return}const o=n.slice(),i=!!t.invocationId;let a,l,s;for(const c of o)try{const u=a;a=await c.apply(this,t.arguments),i&&a&&u&&(this._logger.log(D.Error,`Multiple results provided for '${r}'. Sending error to server.`),s=this._createCompletionMessage(t.invocationId,"Client provided multiple results.",null)),l=void 0}catch(u){l=u,this._logger.log(D.Error,`A callback for the method '${r}' threw error '${u}'.`)}s?await this._sendWithProtocol(s):i?(l?s=this._createCompletionMessage(t.invocationId,`${l}`,null):a!==void 0?s=this._createCompletionMessage(t.invocationId,null,a):(this._logger.log(D.Warning,`No result given for '${r}' method and invocation ID '${t.invocationId}'.`),s=this._createCompletionMessage(t.invocationId,"Client didn't provide a result.",null)),await this._sendWithProtocol(s)):a&&this._logger.log(D.Error,`Result given for '${r}' method but server is not expecting a result.`)}_connectionClosed(t){this._logger.log(D.Debug,`HubConnection.connectionClosed(${t}) called while in state ${this._connectionState}.`),this._stopDuringStartError=this._stopDuringStartError||t||new Hr("The underlying connection was closed before the hub handshake could complete."),this._handshakeResolver&&this._handshakeResolver(),this._cancelCallbacksWithError(t||new Error("Invocation canceled due to the underlying connection being closed.")),this._cleanupTimeout(),this._cleanupPingTimer(),this._connectionState===We.Disconnecting?this._completeClose(t):this._connectionState===We.Connected&&this._reconnectPolicy?this._reconnect(t):this._connectionState===We.Connected&&this._completeClose(t)}_completeClose(t){if(this._connectionStarted){this._connectionState=We.Disconnected,this._connectionStarted=!1,this._messageBuffer&&(this._messageBuffer._dispose(t??new Error("Connection closed.")),this._messageBuffer=void 0),Ke.isBrowser&&window.document.removeEventListener("freeze",this._freezeEventListener);try{this._closedCallbacks.forEach(r=>r.apply(this,[t]))}catch(r){this._logger.log(D.Error,`An onclose callback called with error '${t}' threw error '${r}'.`)}}}async _reconnect(t){const r=Date.now();let n=0,o=t!==void 0?t:new Error("Attempting to reconnect due to a unknown error."),i=this._getNextRetryDelay(n++,0,o);if(i===null){this._logger.log(D.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),this._completeClose(t);return}if(this._connectionState=We.Reconnecting,t?this._logger.log(D.Information,`Connection reconnecting because of error '${t}'.`):this._logger.log(D.Information,"Connection reconnecting."),this._reconnectingCallbacks.length!==0){try{this._reconnectingCallbacks.forEach(a=>a.apply(this,[t]))}catch(a){this._logger.log(D.Error,`An onreconnecting callback called with error '${t}' threw error '${a}'.`)}if(this._connectionState!==We.Reconnecting){this._logger.log(D.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.");return}}for(;i!==null;){if(this._logger.log(D.Information,`Reconnect attempt number ${n} will start in ${i} ms.`),await new Promise(a=>{this._reconnectDelayHandle=setTimeout(a,i)}),this._reconnectDelayHandle=void 0,this._connectionState!==We.Reconnecting){this._logger.log(D.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting.");return}try{if(await this._startInternal(),this._connectionState=We.Connected,this._logger.log(D.Information,"HubConnection reconnected successfully."),this._reconnectedCallbacks.length!==0)try{this._reconnectedCallbacks.forEach(a=>a.apply(this,[this.connection.connectionId]))}catch(a){this._logger.log(D.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${a}'.`)}return}catch(a){if(this._logger.log(D.Information,`Reconnect attempt failed because of error '${a}'.`),this._connectionState!==We.Reconnecting){this._logger.log(D.Debug,`Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`),this._connectionState===We.Disconnecting&&this._completeClose();return}o=a instanceof Error?a:new Error(a.toString()),i=this._getNextRetryDelay(n++,Date.now()-r,o)}}this._logger.log(D.Information,`Reconnect retries have been exhausted after ${Date.now()-r} ms and ${n} failed attempts. Connection disconnecting.`),this._completeClose()}_getNextRetryDelay(t,r,n){try{return this._reconnectPolicy.nextRetryDelayInMilliseconds({elapsedMilliseconds:r,previousRetryCount:t,retryReason:n})}catch(o){return this._logger.log(D.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${t}, ${r}) threw error '${o}'.`),null}}_cancelCallbacksWithError(t){const r=this._callbacks;this._callbacks={},Object.keys(r).forEach(n=>{const o=r[n];try{o(null,t)}catch(i){this._logger.log(D.Error,`Stream 'error' callback called with '${t}' threw error: ${x0(i)}`)}})}_cleanupPingTimer(){this._pingServerHandle&&(clearTimeout(this._pingServerHandle),this._pingServerHandle=void 0)}_cleanupTimeout(){this._timeoutHandle&&clearTimeout(this._timeoutHandle)}_createInvocation(t,r,n,o){if(n)return o.length!==0?{arguments:r,streamIds:o,target:t,type:fe.Invocation}:{arguments:r,target:t,type:fe.Invocation};{const i=this._invocationId;return this._invocationId++,o.length!==0?{arguments:r,invocationId:i.toString(),streamIds:o,target:t,type:fe.Invocation}:{arguments:r,invocationId:i.toString(),target:t,type:fe.Invocation}}}_launchStreams(t,r){if(t.length!==0){r||(r=Promise.resolve());for(const n in t)t[n].subscribe({complete:()=>{r=r.then(()=>this._sendWithProtocol(this._createCompletionMessage(n)))},error:o=>{let i;o instanceof Error?i=o.message:o&&o.toString?i=o.toString():i="Unknown error",r=r.then(()=>this._sendWithProtocol(this._createCompletionMessage(n,i)))},next:o=>{r=r.then(()=>this._sendWithProtocol(this._createStreamItemMessage(n,o)))}})}}_replaceStreamingParams(t){const r=[],n=[];for(let o=0;o0)&&(r=!1,this._accessToken=await this._accessTokenFactory()),this._setAuthorizationHeader(t);const n=await this._innerClient.send(t);return r&&n.statusCode===401&&this._accessTokenFactory?(this._accessToken=await this._accessTokenFactory(),this._setAuthorizationHeader(t),await this._innerClient.send(t)):n}_setAuthorizationHeader(t){t.headers||(t.headers={}),this._accessToken?t.headers[Go.Authorization]=`Bearer ${this._accessToken}`:this._accessTokenFactory&&t.headers[Go.Authorization]&&delete t.headers[Go.Authorization]}getCookieString(t){return this._innerClient.getCookieString(t)}}var gt;(function(e){e[e.None=0]="None",e[e.WebSockets=1]="WebSockets",e[e.ServerSentEvents=2]="ServerSentEvents",e[e.LongPolling=4]="LongPolling"})(gt||(gt={}));var Ft;(function(e){e[e.Text=1]="Text",e[e.Binary=2]="Binary"})(Ft||(Ft={}));let EI=class{constructor(){this._isAborted=!1,this.onabort=null}abort(){this._isAborted||(this._isAborted=!0,this.onabort&&this.onabort())}get signal(){return this}get aborted(){return this._isAborted}};class B0{get pollAborted(){return this._pollAbort.aborted}constructor(t,r,n){this._httpClient=t,this._logger=r,this._pollAbort=new EI,this._options=n,this._running=!1,this.onreceive=null,this.onclose=null}async connect(t,r){if(ct.isRequired(t,"url"),ct.isRequired(r,"transferFormat"),ct.isIn(r,Ft,"transferFormat"),this._url=t,this._logger.log(D.Trace,"(LongPolling transport) Connecting."),r===Ft.Binary&&typeof XMLHttpRequest<"u"&&typeof new XMLHttpRequest().responseType!="string")throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");const[n,o]=na(),i={[n]:o,...this._options.headers},a={abortSignal:this._pollAbort.signal,headers:i,timeout:1e5,withCredentials:this._options.withCredentials};r===Ft.Binary&&(a.responseType="arraybuffer");const l=`${t}&_=${Date.now()}`;this._logger.log(D.Trace,`(LongPolling transport) polling: ${l}.`);const s=await this._httpClient.get(l,a);s.statusCode!==200?(this._logger.log(D.Error,`(LongPolling transport) Unexpected response code: ${s.statusCode}.`),this._closeError=new Vo(s.statusText||"",s.statusCode),this._running=!1):this._running=!0,this._receiving=this._poll(this._url,a)}async _poll(t,r){try{for(;this._running;)try{const n=`${t}&_=${Date.now()}`;this._logger.log(D.Trace,`(LongPolling transport) polling: ${n}.`);const o=await this._httpClient.get(n,r);o.statusCode===204?(this._logger.log(D.Information,"(LongPolling transport) Poll terminated by server."),this._running=!1):o.statusCode!==200?(this._logger.log(D.Error,`(LongPolling transport) Unexpected response code: ${o.statusCode}.`),this._closeError=new Vo(o.statusText||"",o.statusCode),this._running=!1):o.content?(this._logger.log(D.Trace,`(LongPolling transport) data received. ${Al(o.content,this._options.logMessageContent)}.`),this.onreceive&&this.onreceive(o.content)):this._logger.log(D.Trace,"(LongPolling transport) Poll timed out, reissuing.")}catch(n){this._running?n instanceof Mg?this._logger.log(D.Trace,"(LongPolling transport) Poll timed out, reissuing."):(this._closeError=n,this._running=!1):this._logger.log(D.Trace,`(LongPolling transport) Poll errored after shutdown: ${n.message}`)}}finally{this._logger.log(D.Trace,"(LongPolling transport) Polling complete."),this.pollAborted||this._raiseOnClose()}}async send(t){return this._running?eS(this._logger,"LongPolling",this._httpClient,this._url,t,this._options):Promise.reject(new Error("Cannot send until the transport is connected"))}async stop(){this._logger.log(D.Trace,"(LongPolling transport) Stopping polling."),this._running=!1,this._pollAbort.abort();try{await this._receiving,this._logger.log(D.Trace,`(LongPolling transport) sending DELETE request to ${this._url}.`);const t={},[r,n]=na();t[r]=n;const o={headers:{...t,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials};let i;try{await this._httpClient.delete(this._url,o)}catch(a){i=a}i?i instanceof Vo&&(i.statusCode===404?this._logger.log(D.Trace,"(LongPolling transport) A 404 response was returned from sending a DELETE request."):this._logger.log(D.Trace,`(LongPolling transport) Error sending a DELETE request: ${i}`)):this._logger.log(D.Trace,"(LongPolling transport) DELETE request accepted.")}finally{this._logger.log(D.Trace,"(LongPolling transport) Stop finished."),this._raiseOnClose()}}_raiseOnClose(){if(this.onclose){let t="(LongPolling transport) Firing onclose event.";this._closeError&&(t+=" Error: "+this._closeError),this._logger.log(D.Trace,t),this.onclose(this._closeError)}}}class zI{constructor(t,r,n,o){this._httpClient=t,this._accessToken=r,this._logger=n,this._options=o,this.onreceive=null,this.onclose=null}async connect(t,r){return ct.isRequired(t,"url"),ct.isRequired(r,"transferFormat"),ct.isIn(r,Ft,"transferFormat"),this._logger.log(D.Trace,"(SSE transport) Connecting."),this._url=t,this._accessToken&&(t+=(t.indexOf("?")<0?"?":"&")+`access_token=${encodeURIComponent(this._accessToken)}`),new Promise((n,o)=>{let i=!1;if(r!==Ft.Text){o(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"));return}let a;if(Ke.isBrowser||Ke.isWebWorker)a=new this._options.EventSource(t,{withCredentials:this._options.withCredentials});else{const l=this._httpClient.getCookieString(t),s={};s.Cookie=l;const[c,u]=na();s[c]=u,a=new this._options.EventSource(t,{withCredentials:this._options.withCredentials,headers:{...s,...this._options.headers}})}try{a.onmessage=l=>{if(this.onreceive)try{this._logger.log(D.Trace,`(SSE transport) data received. ${Al(l.data,this._options.logMessageContent)}.`),this.onreceive(l.data)}catch(s){this._close(s);return}},a.onerror=l=>{i?this._close():o(new Error("EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled."))},a.onopen=()=>{this._logger.log(D.Information,`SSE connected to ${this._url}`),this._eventSource=a,i=!0,n()}}catch(l){o(l);return}})}async send(t){return this._eventSource?eS(this._logger,"SSE",this._httpClient,this._url,t,this._options):Promise.reject(new Error("Cannot send until the transport is connected"))}stop(){return this._close(),Promise.resolve()}_close(t){this._eventSource&&(this._eventSource.close(),this._eventSource=void 0,this.onclose&&this.onclose(t))}}class TI{constructor(t,r,n,o,i,a){this._logger=n,this._accessTokenFactory=r,this._logMessageContent=o,this._webSocketConstructor=i,this._httpClient=t,this.onreceive=null,this.onclose=null,this._headers=a}async connect(t,r){ct.isRequired(t,"url"),ct.isRequired(r,"transferFormat"),ct.isIn(r,Ft,"transferFormat"),this._logger.log(D.Trace,"(WebSockets transport) Connecting.");let n;return this._accessTokenFactory&&(n=await this._accessTokenFactory()),new Promise((o,i)=>{t=t.replace(/^http/,"ws");let a;const l=this._httpClient.getCookieString(t);let s=!1;if(Ke.isNode||Ke.isReactNative){const c={},[u,f]=na();c[u]=f,n&&(c[Go.Authorization]=`Bearer ${n}`),l&&(c[Go.Cookie]=l),a=new this._webSocketConstructor(t,void 0,{headers:{...c,...this._headers}})}else n&&(t+=(t.indexOf("?")<0?"?":"&")+`access_token=${encodeURIComponent(n)}`);a||(a=new this._webSocketConstructor(t)),r===Ft.Binary&&(a.binaryType="arraybuffer"),a.onopen=c=>{this._logger.log(D.Information,`WebSocket connected to ${t}.`),this._webSocket=a,s=!0,o()},a.onerror=c=>{let u=null;typeof ErrorEvent<"u"&&c instanceof ErrorEvent?u=c.error:u="There was an error with the transport",this._logger.log(D.Information,`(WebSockets transport) ${u}.`)},a.onmessage=c=>{if(this._logger.log(D.Trace,`(WebSockets transport) data received. ${Al(c.data,this._logMessageContent)}.`),this.onreceive)try{this.onreceive(c.data)}catch(u){this._close(u);return}},a.onclose=c=>{if(s)this._close(c);else{let u=null;typeof ErrorEvent<"u"&&c instanceof ErrorEvent?u=c.error:u="WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.",i(new Error(u))}}})}send(t){return this._webSocket&&this._webSocket.readyState===this._webSocketConstructor.OPEN?(this._logger.log(D.Trace,`(WebSockets transport) sending data. ${Al(t,this._logMessageContent)}.`),this._webSocket.send(t),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")}stop(){return this._webSocket&&this._close(void 0),Promise.resolve()}_close(t){this._webSocket&&(this._webSocket.onclose=()=>{},this._webSocket.onmessage=()=>{},this._webSocket.onerror=()=>{},this._webSocket.close(),this._webSocket=void 0),this._logger.log(D.Trace,"(WebSockets transport) socket closed."),this.onclose&&(this._isCloseEvent(t)&&(t.wasClean===!1||t.code!==1e3)?this.onclose(new Error(`WebSocket closed with status code: ${t.code} (${t.reason||"no reason given"}).`)):t instanceof Error?this.onclose(t):this.onclose())}_isCloseEvent(t){return t&&typeof t.wasClean=="boolean"&&typeof t.code=="number"}}const C0=100;class NI{constructor(t,r={}){if(this._stopPromiseResolver=()=>{},this.features={},this._negotiateVersion=1,ct.isRequired(t,"url"),this._logger=iI(r.logger),this.baseUrl=this._resolveUrl(t),r=r||{},r.logMessageContent=r.logMessageContent===void 0?!1:r.logMessageContent,typeof r.withCredentials=="boolean"||r.withCredentials===void 0)r.withCredentials=r.withCredentials===void 0?!0:r.withCredentials;else throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");r.timeout=r.timeout===void 0?100*1e3:r.timeout;let n=null,o=null;Ke.isNode&&typeof require<"u"&&(n=pI(),o=gI()),!Ke.isNode&&typeof WebSocket<"u"&&!r.WebSocket?r.WebSocket=WebSocket:Ke.isNode&&!r.WebSocket&&n&&(r.WebSocket=n),!Ke.isNode&&typeof EventSource<"u"&&!r.EventSource?r.EventSource=EventSource:Ke.isNode&&!r.EventSource&&typeof o<"u"&&(r.EventSource=o),this._httpClient=new PI(r.httpClient||new bI(this._logger),r.accessTokenFactory),this._connectionState="Disconnected",this._connectionStarted=!1,this._options=r,this.onreceive=null,this.onclose=null}async start(t){if(t=t||Ft.Binary,ct.isIn(t,Ft,"transferFormat"),this._logger.log(D.Debug,`Starting connection with transfer format '${Ft[t]}'.`),this._connectionState!=="Disconnected")return Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."));if(this._connectionState="Connecting",this._startInternalPromise=this._startInternal(t),await this._startInternalPromise,this._connectionState==="Disconnecting"){const r="Failed to start the HttpConnection before stop() was called.";return this._logger.log(D.Error,r),await this._stopPromise,Promise.reject(new Hr(r))}else if(this._connectionState!=="Connected"){const r="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!";return this._logger.log(D.Error,r),Promise.reject(new Hr(r))}this._connectionStarted=!0}send(t){return this._connectionState!=="Connected"?Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")):(this._sendQueue||(this._sendQueue=new Lg(this.transport)),this._sendQueue.send(t))}async stop(t){if(this._connectionState==="Disconnected")return this._logger.log(D.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnected state.`),Promise.resolve();if(this._connectionState==="Disconnecting")return this._logger.log(D.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;this._connectionState="Disconnecting",this._stopPromise=new Promise(r=>{this._stopPromiseResolver=r}),await this._stopInternal(t),await this._stopPromise}async _stopInternal(t){this._stopError=t;try{await this._startInternalPromise}catch{}if(this.transport){try{await this.transport.stop()}catch(r){this._logger.log(D.Error,`HttpConnection.transport.stop() threw error '${r}'.`),this._stopConnection()}this.transport=void 0}else this._logger.log(D.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.")}async _startInternal(t){let r=this.baseUrl;this._accessTokenFactory=this._options.accessTokenFactory,this._httpClient._accessTokenFactory=this._accessTokenFactory;try{if(this._options.skipNegotiation)if(this._options.transport===gt.WebSockets)this.transport=this._constructTransport(gt.WebSockets),await this._startTransport(r,t);else throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");else{let n=null,o=0;do{if(n=await this._getNegotiationResponse(r),this._connectionState==="Disconnecting"||this._connectionState==="Disconnected")throw new Hr("The connection was stopped during negotiation.");if(n.error)throw new Error(n.error);if(n.ProtocolVersion)throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");if(n.url&&(r=n.url),n.accessToken){const i=n.accessToken;this._accessTokenFactory=()=>i,this._httpClient._accessToken=i,this._httpClient._accessTokenFactory=void 0}o++}while(n.url&&o0?Promise.reject(new rI(`Unable to connect to the server with any of the available transports. ${a.join(" ")}`,a)):Promise.reject(new Error("None of the transports supported by the client are supported by the server."))}_constructTransport(t){switch(t){case gt.WebSockets:if(!this._options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new TI(this._httpClient,this._accessTokenFactory,this._logger,this._options.logMessageContent,this._options.WebSocket,this._options.headers||{});case gt.ServerSentEvents:if(!this._options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new zI(this._httpClient,this._httpClient._accessToken,this._logger,this._options);case gt.LongPolling:return new B0(this._httpClient,this._logger,this._options);default:throw new Error(`Unknown transport: ${t}.`)}}_startTransport(t,r){return this.transport.onreceive=this.onreceive,this.features.reconnect?this.transport.onclose=async n=>{let o=!1;if(this.features.reconnect)try{this.features.disconnected(),await this.transport.connect(t,r),await this.features.resend()}catch{o=!0}else{this._stopConnection(n);return}o&&this._stopConnection(n)}:this.transport.onclose=n=>this._stopConnection(n),this.transport.connect(t,r)}_resolveTransportOrError(t,r,n,o){const i=gt[t.transport];if(i==null)return this._logger.log(D.Debug,`Skipping transport '${t.transport}' because it is not supported by this client.`),new Error(`Skipping transport '${t.transport}' because it is not supported by this client.`);if(RI(r,i))if(t.transferFormats.map(l=>Ft[l]).indexOf(n)>=0){if(i===gt.WebSockets&&!this._options.WebSocket||i===gt.ServerSentEvents&&!this._options.EventSource)return this._logger.log(D.Debug,`Skipping transport '${gt[i]}' because it is not supported in your environment.'`),new YD(`'${gt[i]}' is not supported in your environment.`,i);this._logger.log(D.Debug,`Selecting transport '${gt[i]}'.`);try{return this.features.reconnect=i===gt.WebSockets?o:void 0,this._constructTransport(i)}catch(l){return l}}else return this._logger.log(D.Debug,`Skipping transport '${gt[i]}' because it does not support the requested transfer format '${Ft[n]}'.`),new Error(`'${gt[i]}' does not support ${Ft[n]}.`);else return this._logger.log(D.Debug,`Skipping transport '${gt[i]}' because it was disabled by the client.`),new eI(`'${gt[i]}' is disabled by the client.`,i)}_isITransport(t){return t&&typeof t=="object"&&"connect"in t}_stopConnection(t){if(this._logger.log(D.Debug,`HttpConnection.stopConnection(${t}) called while in state ${this._connectionState}.`),this.transport=void 0,t=this._stopError||t,this._stopError=void 0,this._connectionState==="Disconnected"){this._logger.log(D.Debug,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is already in the disconnected state.`);return}if(this._connectionState==="Connecting")throw this._logger.log(D.Warning,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is still in the connecting state.`),new Error(`HttpConnection.stopConnection(${t}) was called while the connection is still in the connecting state.`);if(this._connectionState==="Disconnecting"&&this._stopPromiseResolver(),t?this._logger.log(D.Error,`Connection disconnected with error '${t}'.`):this._logger.log(D.Information,"Connection disconnected."),this._sendQueue&&(this._sendQueue.stop().catch(r=>{this._logger.log(D.Error,`TransportSendQueue.stop() threw error '${r}'.`)}),this._sendQueue=void 0),this.connectionId=void 0,this._connectionState="Disconnected",this._connectionStarted){this._connectionStarted=!1;try{this.onclose&&this.onclose(t)}catch(r){this._logger.log(D.Error,`HttpConnection.onclose(${t}) threw error '${r}'.`)}}}_resolveUrl(t){if(t.lastIndexOf("https://",0)===0||t.lastIndexOf("http://",0)===0)return t;if(!Ke.isBrowser)throw new Error(`Cannot resolve '${t}'.`);const r=window.document.createElement("a");return r.href=t,this._logger.log(D.Information,`Normalizing '${t}' to '${r.href}'.`),r.href}_resolveNegotiateUrl(t){const r=new URL(t);r.pathname.endsWith("/")?r.pathname+="negotiate":r.pathname+="/negotiate";const n=new URLSearchParams(r.searchParams);return n.has("negotiateVersion")||n.append("negotiateVersion",this._negotiateVersion.toString()),n.has("useStatefulReconnect")?n.get("useStatefulReconnect")==="true"&&(this._options._useStatefulReconnect=!0):this._options._useStatefulReconnect===!0&&n.append("useStatefulReconnect","true"),r.search=n.toString(),r.toString()}}function RI(e,t){return!e||(t&e)!==0}class Lg{constructor(t){this._transport=t,this._buffer=[],this._executing=!0,this._sendBufferedData=new Ms,this._transportResult=new Ms,this._sendLoopPromise=this._sendLoop()}send(t){return this._bufferData(t),this._transportResult||(this._transportResult=new Ms),this._transportResult.promise}stop(){return this._executing=!1,this._sendBufferedData.resolve(),this._sendLoopPromise}_bufferData(t){if(this._buffer.length&&typeof this._buffer[0]!=typeof t)throw new Error(`Expected data to be of type ${typeof this._buffer} but was of type ${typeof t}`);this._buffer.push(t),this._sendBufferedData.resolve()}async _sendLoop(){for(;;){if(await this._sendBufferedData.promise,!this._executing){this._transportResult&&this._transportResult.reject("Connection stopped.");break}this._sendBufferedData=new Ms;const t=this._transportResult;this._transportResult=void 0;const r=typeof this._buffer[0]=="string"?this._buffer.join(""):Lg._concatBuffers(this._buffer);this._buffer.length=0;try{await this._transport.send(r),t.resolve()}catch(n){t.reject(n)}}}static _concatBuffers(t){const r=t.map(i=>i.byteLength).reduce((i,a)=>i+a),n=new Uint8Array(r);let o=0;for(const i of t)n.set(new Uint8Array(i),o),o+=i.byteLength;return n.buffer}}class Ms{constructor(){this.promise=new Promise((t,r)=>[this._resolver,this._rejecter]=[t,r])}resolve(){this._resolver()}reject(t){this._rejecter(t)}}const jI="json";class FI{constructor(){this.name=jI,this.version=2,this.transferFormat=Ft.Text}parseMessages(t,r){if(typeof t!="string")throw new Error("Invalid input for JSON hub protocol. Expected a string.");if(!t)return[];r===null&&(r=Il.instance);const n=fr.parse(t),o=[];for(const i of n){const a=JSON.parse(i);if(typeof a.type!="number")throw new Error("Invalid payload.");switch(a.type){case fe.Invocation:this._isInvocationMessage(a);break;case fe.StreamItem:this._isStreamItemMessage(a);break;case fe.Completion:this._isCompletionMessage(a);break;case fe.Ping:break;case fe.Close:break;case fe.Ack:this._isAckMessage(a);break;case fe.Sequence:this._isSequenceMessage(a);break;default:r.log(D.Information,"Unknown message type '"+a.type+"' ignored.");continue}o.push(a)}return o}writeMessage(t){return fr.write(JSON.stringify(t))}_isInvocationMessage(t){this._assertNotEmptyString(t.target,"Invalid payload for Invocation message."),t.invocationId!==void 0&&this._assertNotEmptyString(t.invocationId,"Invalid payload for Invocation message.")}_isStreamItemMessage(t){if(this._assertNotEmptyString(t.invocationId,"Invalid payload for StreamItem message."),t.item===void 0)throw new Error("Invalid payload for StreamItem message.")}_isCompletionMessage(t){if(t.result&&t.error)throw new Error("Invalid payload for Completion message.");!t.result&&t.error&&this._assertNotEmptyString(t.error,"Invalid payload for Completion message."),this._assertNotEmptyString(t.invocationId,"Invalid payload for Completion message.")}_isAckMessage(t){if(typeof t.sequenceId!="number")throw new Error("Invalid SequenceId for Ack message.")}_isSequenceMessage(t){if(typeof t.sequenceId!="number")throw new Error("Invalid SequenceId for Sequence message.")}_assertNotEmptyString(t,r){if(typeof t!="string"||t==="")throw new Error(r)}}const DI={trace:D.Trace,debug:D.Debug,info:D.Information,information:D.Information,warn:D.Warning,warning:D.Warning,error:D.Error,critical:D.Critical,none:D.None};function II(e){const t=DI[e.toLowerCase()];if(typeof t<"u")return t;throw new Error(`Unknown log level: ${e}`)}class AI{configureLogging(t){if(ct.isRequired(t,"logging"),MI(t))this.logger=t;else if(typeof t=="string"){const r=II(t);this.logger=new Vc(r)}else this.logger=new Vc(t);return this}withUrl(t,r){return ct.isRequired(t,"url"),ct.isNotEmpty(t,"url"),this.url=t,typeof r=="object"?this.httpConnectionOptions={...this.httpConnectionOptions,...r}:this.httpConnectionOptions={...this.httpConnectionOptions,transport:r},this}withHubProtocol(t){return ct.isRequired(t,"protocol"),this.protocol=t,this}withAutomaticReconnect(t){if(this.reconnectPolicy)throw new Error("A reconnectPolicy has already been set.");return t?Array.isArray(t)?this.reconnectPolicy=new _0(t):this.reconnectPolicy=t:this.reconnectPolicy=new _0,this}withServerTimeout(t){return ct.isRequired(t,"milliseconds"),this._serverTimeoutInMilliseconds=t,this}withKeepAliveInterval(t){return ct.isRequired(t,"milliseconds"),this._keepAliveIntervalInMilliseconds=t,this}withStatefulReconnect(t){return this.httpConnectionOptions===void 0&&(this.httpConnectionOptions={}),this.httpConnectionOptions._useStatefulReconnect=!0,this._statefulReconnectBufferSize=t==null?void 0:t.bufferSize,this}build(){const t=this.httpConnectionOptions||{};if(t.logger===void 0&&(t.logger=this.logger),!this.url)throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");const r=new NI(this.url,t);return Og.create(r,this.logger||Il.instance,this.protocol||new FI,this.reconnectPolicy,this._serverTimeoutInMilliseconds,this._keepAliveIntervalInMilliseconds,this._statefulReconnectBufferSize)}}function MI(e){return e.log!==void 0}function tS(e,t){return function(){return e.apply(t,arguments)}}const{toString:OI}=Object.prototype,{getPrototypeOf:qg}=Object,Iu=(e=>t=>{const r=OI.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),dn=e=>(e=e.toLowerCase(),t=>Iu(t)===e),Au=e=>t=>typeof t===e,{isArray:va}=Array,Ml=Au("undefined");function LI(e){return e!==null&&!Ml(e)&&e.constructor!==null&&!Ml(e.constructor)&&Tr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const rS=dn("ArrayBuffer");function qI(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&rS(e.buffer),t}const HI=Au("string"),Tr=Au("function"),nS=Au("number"),Mu=e=>e!==null&&typeof e=="object",WI=e=>e===!0||e===!1,sc=e=>{if(Iu(e)!=="object")return!1;const t=qg(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},UI=dn("Date"),$I=dn("File"),VI=dn("Blob"),GI=dn("FileList"),KI=e=>Mu(e)&&Tr(e.pipe),XI=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Tr(e.append)&&((t=Iu(e))==="formdata"||t==="object"&&Tr(e.toString)&&e.toString()==="[object FormData]"))},ZI=dn("URLSearchParams"),QI=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ts(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,o;if(typeof e!="object"&&(e=[e]),va(e))for(n=0,o=e.length;n0;)if(o=r[n],t===o.toLowerCase())return o;return null}const iS=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,aS=e=>!Ml(e)&&e!==iS;function Kh(){const{caseless:e}=aS(this)&&this||{},t={},r=(n,o)=>{const i=e&&oS(t,o)||o;sc(t[i])&&sc(n)?t[i]=Kh(t[i],n):sc(n)?t[i]=Kh({},n):va(n)?t[i]=n.slice():t[i]=n};for(let n=0,o=arguments.length;n(ts(t,(o,i)=>{r&&Tr(o)?e[i]=tS(o,r):e[i]=o},{allOwnKeys:n}),e),YI=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),eA=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},tA=(e,t,r,n)=>{let o,i,a;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],(!n||n(a,e,t))&&!l[a]&&(t[a]=e[a],l[a]=!0);e=r!==!1&&qg(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},rA=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},nA=e=>{if(!e)return null;if(va(e))return e;let t=e.length;if(!nS(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},oA=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&qg(Uint8Array)),iA=(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=n.next())&&!o.done;){const i=o.value;t.call(e,i[0],i[1])}},aA=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},lA=dn("HTMLFormElement"),sA=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,o){return n.toUpperCase()+o}),P0=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),cA=dn("RegExp"),lS=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};ts(r,(o,i)=>{let a;(a=t(o,i,e))!==!1&&(n[i]=a||o)}),Object.defineProperties(e,n)},uA=e=>{lS(e,(t,r)=>{if(Tr(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=e[r];if(Tr(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},fA=(e,t)=>{const r={},n=o=>{o.forEach(i=>{r[i]=!0})};return va(e)?n(e):n(String(e).split(t)),r},dA=()=>{},hA=(e,t)=>(e=+e,Number.isFinite(e)?e:t),Jf="abcdefghijklmnopqrstuvwxyz",E0="0123456789",sS={DIGIT:E0,ALPHA:Jf,ALPHA_DIGIT:Jf+Jf.toUpperCase()+E0},pA=(e=16,t=sS.ALPHA_DIGIT)=>{let r="";const{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function gA(e){return!!(e&&Tr(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const mA=e=>{const t=new Array(10),r=(n,o)=>{if(Mu(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[o]=n;const i=va(n)?[]:{};return ts(n,(a,l)=>{const s=r(a,o+1);!Ml(s)&&(i[l]=s)}),t[o]=void 0,i}}return n};return r(e,0)},vA=dn("AsyncFunction"),bA=e=>e&&(Mu(e)||Tr(e))&&Tr(e.then)&&Tr(e.catch),A={isArray:va,isArrayBuffer:rS,isBuffer:LI,isFormData:XI,isArrayBufferView:qI,isString:HI,isNumber:nS,isBoolean:WI,isObject:Mu,isPlainObject:sc,isUndefined:Ml,isDate:UI,isFile:$I,isBlob:VI,isRegExp:cA,isFunction:Tr,isStream:KI,isURLSearchParams:ZI,isTypedArray:oA,isFileList:GI,forEach:ts,merge:Kh,extend:JI,trim:QI,stripBOM:YI,inherits:eA,toFlatObject:tA,kindOf:Iu,kindOfTest:dn,endsWith:rA,toArray:nA,forEachEntry:iA,matchAll:aA,isHTMLForm:lA,hasOwnProperty:P0,hasOwnProp:P0,reduceDescriptors:lS,freezeMethods:uA,toObjectSet:fA,toCamelCase:sA,noop:dA,toFiniteNumber:hA,findKey:oS,global:iS,isContextDefined:aS,ALPHABET:sS,generateString:pA,isSpecCompliantForm:gA,toJSONObject:mA,isAsyncFn:vA,isThenable:bA};function Be(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}A.inherits(Be,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:A.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const cS=Be.prototype,uS={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{uS[e]={value:e}});Object.defineProperties(Be,uS);Object.defineProperty(cS,"isAxiosError",{value:!0});Be.from=(e,t,r,n,o,i)=>{const a=Object.create(cS);return A.toFlatObject(e,a,function(s){return s!==Error.prototype},l=>l!=="isAxiosError"),Be.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const yA=null;function Xh(e){return A.isPlainObject(e)||A.isArray(e)}function fS(e){return A.endsWith(e,"[]")?e.slice(0,-2):e}function z0(e,t,r){return e?e.concat(t).map(function(o,i){return o=fS(o),!r&&i?"["+o+"]":o}).join(r?".":""):t}function wA(e){return A.isArray(e)&&!e.some(Xh)}const kA=A.toFlatObject(A,{},null,function(t){return/^is[A-Z]/.test(t)});function Ou(e,t,r){if(!A.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=A.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,y){return!A.isUndefined(y[m])});const n=r.metaTokens,o=r.visitor||u,i=r.dots,a=r.indexes,s=(r.Blob||typeof Blob<"u"&&Blob)&&A.isSpecCompliantForm(t);if(!A.isFunction(o))throw new TypeError("visitor must be a function");function c(p){if(p===null)return"";if(A.isDate(p))return p.toISOString();if(!s&&A.isBlob(p))throw new Be("Blob is not supported. Use a Buffer instead.");return A.isArrayBuffer(p)||A.isTypedArray(p)?s&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function u(p,m,y){let v=p;if(p&&!y&&typeof p=="object"){if(A.endsWith(m,"{}"))m=n?m:m.slice(0,-2),p=JSON.stringify(p);else if(A.isArray(p)&&wA(p)||(A.isFileList(p)||A.endsWith(m,"[]"))&&(v=A.toArray(p)))return m=fS(m),v.forEach(function(b,k){!(A.isUndefined(b)||b===null)&&t.append(a===!0?z0([m],k,i):a===null?m:m+"[]",c(b))}),!1}return Xh(p)?!0:(t.append(z0(y,m,i),c(p)),!1)}const f=[],d=Object.assign(kA,{defaultVisitor:u,convertValue:c,isVisitable:Xh});function h(p,m){if(!A.isUndefined(p)){if(f.indexOf(p)!==-1)throw Error("Circular reference detected in "+m.join("."));f.push(p),A.forEach(p,function(v,g){(!(A.isUndefined(v)||v===null)&&o.call(t,v,A.isString(g)?g.trim():g,m,d))===!0&&h(v,m?m.concat(g):[g])}),f.pop()}}if(!A.isObject(e))throw new TypeError("data must be an object");return h(e),t}function T0(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function Hg(e,t){this._pairs=[],e&&Ou(e,this,t)}const dS=Hg.prototype;dS.append=function(t,r){this._pairs.push([t,r])};dS.toString=function(t){const r=t?function(n){return t.call(this,n,T0)}:T0;return this._pairs.map(function(o){return r(o[0])+"="+r(o[1])},"").join("&")};function xA(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function hS(e,t,r){if(!t)return e;const n=r&&r.encode||xA,o=r&&r.serialize;let i;if(o?i=o(t,r):i=A.isURLSearchParams(t)?t.toString():new Hg(t,r).toString(n),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class N0{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){A.forEach(this.handlers,function(n){n!==null&&t(n)})}}const pS={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},SA=typeof URLSearchParams<"u"?URLSearchParams:Hg,_A=typeof FormData<"u"?FormData:null,BA=typeof Blob<"u"?Blob:null,CA={isBrowser:!0,classes:{URLSearchParams:SA,FormData:_A,Blob:BA},protocols:["http","https","file","blob","url","data"]},gS=typeof window<"u"&&typeof document<"u",PA=(e=>gS&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),EA=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",zA=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:gS,hasStandardBrowserEnv:PA,hasStandardBrowserWebWorkerEnv:EA},Symbol.toStringTag,{value:"Module"})),nn={...zA,...CA};function TA(e,t){return Ou(e,new nn.classes.URLSearchParams,Object.assign({visitor:function(r,n,o,i){return nn.isNode&&A.isBuffer(r)?(this.append(n,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function NA(e){return A.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function RA(e){const t={},r=Object.keys(e);let n;const o=r.length;let i;for(n=0;n=r.length;return a=!a&&A.isArray(o)?o.length:a,s?(A.hasOwnProp(o,a)?o[a]=[o[a],n]:o[a]=n,!l):((!o[a]||!A.isObject(o[a]))&&(o[a]=[]),t(r,n,o[a],i)&&A.isArray(o[a])&&(o[a]=RA(o[a])),!l)}if(A.isFormData(e)&&A.isFunction(e.entries)){const r={};return A.forEachEntry(e,(n,o)=>{t(NA(n),o,r,0)}),r}return null}function jA(e,t,r){if(A.isString(e))try{return(t||JSON.parse)(e),A.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const Wg={transitional:pS,adapter:["xhr","http"],transformRequest:[function(t,r){const n=r.getContentType()||"",o=n.indexOf("application/json")>-1,i=A.isObject(t);if(i&&A.isHTMLForm(t)&&(t=new FormData(t)),A.isFormData(t))return o?JSON.stringify(mS(t)):t;if(A.isArrayBuffer(t)||A.isBuffer(t)||A.isStream(t)||A.isFile(t)||A.isBlob(t))return t;if(A.isArrayBufferView(t))return t.buffer;if(A.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return TA(t,this.formSerializer).toString();if((l=A.isFileList(t))||n.indexOf("multipart/form-data")>-1){const s=this.env&&this.env.FormData;return Ou(l?{"files[]":t}:t,s&&new s,this.formSerializer)}}return i||o?(r.setContentType("application/json",!1),jA(t)):t}],transformResponse:[function(t){const r=this.transitional||Wg.transitional,n=r&&r.forcedJSONParsing,o=this.responseType==="json";if(t&&A.isString(t)&&(n&&!this.responseType||o)){const a=!(r&&r.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(l){if(a)throw l.name==="SyntaxError"?Be.from(l,Be.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:nn.classes.FormData,Blob:nn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};A.forEach(["delete","get","head","post","put","patch"],e=>{Wg.headers[e]={}});const Ug=Wg,FA=A.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),DA=e=>{const t={};let r,n,o;return e&&e.split(` +`).forEach(function(a){o=a.indexOf(":"),r=a.substring(0,o).trim().toLowerCase(),n=a.substring(o+1).trim(),!(!r||t[r]&&FA[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t},R0=Symbol("internals");function Ia(e){return e&&String(e).trim().toLowerCase()}function cc(e){return e===!1||e==null?e:A.isArray(e)?e.map(cc):String(e)}function IA(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const AA=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Yf(e,t,r,n,o){if(A.isFunction(n))return n.call(this,t,r);if(o&&(t=r),!!A.isString(t)){if(A.isString(n))return t.indexOf(n)!==-1;if(A.isRegExp(n))return n.test(t)}}function MA(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function OA(e,t){const r=A.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(o,i,a){return this[n].call(this,t,o,i,a)},configurable:!0})})}class Lu{constructor(t){t&&this.set(t)}set(t,r,n){const o=this;function i(l,s,c){const u=Ia(s);if(!u)throw new Error("header name must be a non-empty string");const f=A.findKey(o,u);(!f||o[f]===void 0||c===!0||c===void 0&&o[f]!==!1)&&(o[f||s]=cc(l))}const a=(l,s)=>A.forEach(l,(c,u)=>i(c,u,s));return A.isPlainObject(t)||t instanceof this.constructor?a(t,r):A.isString(t)&&(t=t.trim())&&!AA(t)?a(DA(t),r):t!=null&&i(r,t,n),this}get(t,r){if(t=Ia(t),t){const n=A.findKey(this,t);if(n){const o=this[n];if(!r)return o;if(r===!0)return IA(o);if(A.isFunction(r))return r.call(this,o,n);if(A.isRegExp(r))return r.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=Ia(t),t){const n=A.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||Yf(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let o=!1;function i(a){if(a=Ia(a),a){const l=A.findKey(n,a);l&&(!r||Yf(n,n[l],l,r))&&(delete n[l],o=!0)}}return A.isArray(t)?t.forEach(i):i(t),o}clear(t){const r=Object.keys(this);let n=r.length,o=!1;for(;n--;){const i=r[n];(!t||Yf(this,this[i],i,t,!0))&&(delete this[i],o=!0)}return o}normalize(t){const r=this,n={};return A.forEach(this,(o,i)=>{const a=A.findKey(n,i);if(a){r[a]=cc(o),delete r[i];return}const l=t?MA(i):String(i).trim();l!==i&&delete r[i],r[l]=cc(o),n[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return A.forEach(this,(n,o)=>{n!=null&&n!==!1&&(r[o]=t&&A.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const n=new this(t);return r.forEach(o=>n.set(o)),n}static accessor(t){const n=(this[R0]=this[R0]={accessors:{}}).accessors,o=this.prototype;function i(a){const l=Ia(a);n[l]||(OA(o,a),n[l]=!0)}return A.isArray(t)?t.forEach(i):i(t),this}}Lu.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);A.reduceDescriptors(Lu.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});A.freezeMethods(Lu);const Sn=Lu;function ed(e,t){const r=this||Ug,n=t||r,o=Sn.from(n.headers);let i=n.data;return A.forEach(e,function(l){i=l.call(r,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function vS(e){return!!(e&&e.__CANCEL__)}function rs(e,t,r){Be.call(this,e??"canceled",Be.ERR_CANCELED,t,r),this.name="CanceledError"}A.inherits(rs,Be,{__CANCEL__:!0});function LA(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new Be("Request failed with status code "+r.status,[Be.ERR_BAD_REQUEST,Be.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}const qA=nn.hasStandardBrowserEnv?{write(e,t,r,n,o,i){const a=[e+"="+encodeURIComponent(t)];A.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),A.isString(n)&&a.push("path="+n),A.isString(o)&&a.push("domain="+o),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function HA(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function WA(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function bS(e,t){return e&&!HA(t)?WA(e,t):t}const UA=nn.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");let n;function o(i){let a=i;return t&&(r.setAttribute("href",a),a=r.href),r.setAttribute("href",a),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=o(window.location.href),function(a){const l=A.isString(a)?o(a):a;return l.protocol===n.protocol&&l.host===n.host}}():function(){return function(){return!0}}();function $A(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function VA(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o=0,i=0,a;return t=t!==void 0?t:1e3,function(s){const c=Date.now(),u=n[i];a||(a=c),r[o]=s,n[o]=c;let f=i,d=0;for(;f!==o;)d+=r[f++],f=f%e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),c-a{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,s=n(l),c=i<=a;r=i;const u={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:s||void 0,estimated:s&&a&&c?(a-i)/s:void 0,event:o};u[t?"download":"upload"]=!0,e(u)}}const GA=typeof XMLHttpRequest<"u",KA=GA&&function(e){return new Promise(function(r,n){let o=e.data;const i=Sn.from(e.headers).normalize();let{responseType:a,withXSRFToken:l}=e,s;function c(){e.cancelToken&&e.cancelToken.unsubscribe(s),e.signal&&e.signal.removeEventListener("abort",s)}let u;if(A.isFormData(o)){if(nn.hasStandardBrowserEnv||nn.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if((u=i.getContentType())!==!1){const[m,...y]=u?u.split(";").map(v=>v.trim()).filter(Boolean):[];i.setContentType([m||"multipart/form-data",...y].join("; "))}}let f=new XMLHttpRequest;if(e.auth){const m=e.auth.username||"",y=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(m+":"+y))}const d=bS(e.baseURL,e.url);f.open(e.method.toUpperCase(),hS(d,e.params,e.paramsSerializer),!0),f.timeout=e.timeout;function h(){if(!f)return;const m=Sn.from("getAllResponseHeaders"in f&&f.getAllResponseHeaders()),v={data:!a||a==="text"||a==="json"?f.responseText:f.response,status:f.status,statusText:f.statusText,headers:m,config:e,request:f};LA(function(b){r(b),c()},function(b){n(b),c()},v),f=null}if("onloadend"in f?f.onloadend=h:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(h)},f.onabort=function(){f&&(n(new Be("Request aborted",Be.ECONNABORTED,e,f)),f=null)},f.onerror=function(){n(new Be("Network Error",Be.ERR_NETWORK,e,f)),f=null},f.ontimeout=function(){let y=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const v=e.transitional||pS;e.timeoutErrorMessage&&(y=e.timeoutErrorMessage),n(new Be(y,v.clarifyTimeoutError?Be.ETIMEDOUT:Be.ECONNABORTED,e,f)),f=null},nn.hasStandardBrowserEnv&&(l&&A.isFunction(l)&&(l=l(e)),l||l!==!1&&UA(d))){const m=e.xsrfHeaderName&&e.xsrfCookieName&&qA.read(e.xsrfCookieName);m&&i.set(e.xsrfHeaderName,m)}o===void 0&&i.setContentType(null),"setRequestHeader"in f&&A.forEach(i.toJSON(),function(y,v){f.setRequestHeader(v,y)}),A.isUndefined(e.withCredentials)||(f.withCredentials=!!e.withCredentials),a&&a!=="json"&&(f.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&f.addEventListener("progress",j0(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",j0(e.onUploadProgress)),(e.cancelToken||e.signal)&&(s=m=>{f&&(n(!m||m.type?new rs(null,e,f):m),f.abort(),f=null)},e.cancelToken&&e.cancelToken.subscribe(s),e.signal&&(e.signal.aborted?s():e.signal.addEventListener("abort",s)));const p=$A(d);if(p&&nn.protocols.indexOf(p)===-1){n(new Be("Unsupported protocol "+p+":",Be.ERR_BAD_REQUEST,e));return}f.send(o||null)})},Zh={http:yA,xhr:KA};A.forEach(Zh,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const F0=e=>`- ${e}`,XA=e=>A.isFunction(e)||e===null||e===!1,yS={getAdapter:e=>{e=A.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let i=0;i`adapter ${l} `+(s===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since : +`+i.map(F0).join(` +`):" "+F0(i[0]):"as no adapter specified";throw new Be("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return n},adapters:Zh};function td(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new rs(null,e)}function D0(e){return td(e),e.headers=Sn.from(e.headers),e.data=ed.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),yS.getAdapter(e.adapter||Ug.adapter)(e).then(function(n){return td(e),n.data=ed.call(e,e.transformResponse,n),n.headers=Sn.from(n.headers),n},function(n){return vS(n)||(td(e),n&&n.response&&(n.response.data=ed.call(e,e.transformResponse,n.response),n.response.headers=Sn.from(n.response.headers))),Promise.reject(n)})}const I0=e=>e instanceof Sn?e.toJSON():e;function oa(e,t){t=t||{};const r={};function n(c,u,f){return A.isPlainObject(c)&&A.isPlainObject(u)?A.merge.call({caseless:f},c,u):A.isPlainObject(u)?A.merge({},u):A.isArray(u)?u.slice():u}function o(c,u,f){if(A.isUndefined(u)){if(!A.isUndefined(c))return n(void 0,c,f)}else return n(c,u,f)}function i(c,u){if(!A.isUndefined(u))return n(void 0,u)}function a(c,u){if(A.isUndefined(u)){if(!A.isUndefined(c))return n(void 0,c)}else return n(void 0,u)}function l(c,u,f){if(f in t)return n(c,u);if(f in e)return n(void 0,c)}const s={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l,headers:(c,u)=>o(I0(c),I0(u),!0)};return A.forEach(Object.keys(Object.assign({},e,t)),function(u){const f=s[u]||o,d=f(e[u],t[u],u);A.isUndefined(d)&&f!==l||(r[u]=d)}),r}const wS="1.6.7",$g={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{$g[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const A0={};$g.transitional=function(t,r,n){function o(i,a){return"[Axios v"+wS+"] Transitional option '"+i+"'"+a+(n?". "+n:"")}return(i,a,l)=>{if(t===!1)throw new Be(o(a," has been removed"+(r?" in "+r:"")),Be.ERR_DEPRECATED);return r&&!A0[a]&&(A0[a]=!0,console.warn(o(a," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(i,a,l):!0}};function ZA(e,t,r){if(typeof e!="object")throw new Be("options must be an object",Be.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const i=n[o],a=t[i];if(a){const l=e[i],s=l===void 0||a(l,i,e);if(s!==!0)throw new Be("option "+i+" must be "+s,Be.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new Be("Unknown option "+i,Be.ERR_BAD_OPTION)}}const Qh={assertOptions:ZA,validators:$g},Un=Qh.validators;class Gc{constructor(t){this.defaults=t,this.interceptors={request:new N0,response:new N0}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let o;Error.captureStackTrace?Error.captureStackTrace(o={}):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";n.stack?i&&!String(n.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(n.stack+=` +`+i):n.stack=i}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=oa(this.defaults,r);const{transitional:n,paramsSerializer:o,headers:i}=r;n!==void 0&&Qh.assertOptions(n,{silentJSONParsing:Un.transitional(Un.boolean),forcedJSONParsing:Un.transitional(Un.boolean),clarifyTimeoutError:Un.transitional(Un.boolean)},!1),o!=null&&(A.isFunction(o)?r.paramsSerializer={serialize:o}:Qh.assertOptions(o,{encode:Un.function,serialize:Un.function},!0)),r.method=(r.method||this.defaults.method||"get").toLowerCase();let a=i&&A.merge(i.common,i[r.method]);i&&A.forEach(["delete","get","head","post","put","patch","common"],p=>{delete i[p]}),r.headers=Sn.concat(a,i);const l=[];let s=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(r)===!1||(s=s&&m.synchronous,l.unshift(m.fulfilled,m.rejected))});const c=[];this.interceptors.response.forEach(function(m){c.push(m.fulfilled,m.rejected)});let u,f=0,d;if(!s){const p=[D0.bind(this),void 0];for(p.unshift.apply(p,l),p.push.apply(p,c),d=p.length,u=Promise.resolve(r);f{if(!n._listeners)return;let i=n._listeners.length;for(;i-- >0;)n._listeners[i](o);n._listeners=null}),this.promise.then=o=>{let i;const a=new Promise(l=>{n.subscribe(l),i=l}).then(o);return a.cancel=function(){n.unsubscribe(i)},a},t(function(i,a,l){n.reason||(n.reason=new rs(i,a,l),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}static source(){let t;return{token:new Vg(function(o){t=o}),cancel:t}}}const QA=Vg;function JA(e){return function(r){return e.apply(null,r)}}function YA(e){return A.isObject(e)&&e.isAxiosError===!0}const Jh={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Jh).forEach(([e,t])=>{Jh[t]=e});const eM=Jh;function kS(e){const t=new uc(e),r=tS(uc.prototype.request,t);return A.extend(r,uc.prototype,t,{allOwnKeys:!0}),A.extend(r,t,null,{allOwnKeys:!0}),r.create=function(o){return kS(oa(e,o))},r}const ft=kS(Ug);ft.Axios=uc;ft.CanceledError=rs;ft.CancelToken=QA;ft.isCancel=vS;ft.VERSION=wS;ft.toFormData=Ou;ft.AxiosError=Be;ft.Cancel=ft.CanceledError;ft.all=function(t){return Promise.all(t)};ft.spread=JA;ft.isAxiosError=YA;ft.mergeConfig=oa;ft.AxiosHeaders=Sn;ft.formToJSON=e=>mS(A.isHTMLForm(e)?new FormData(e):e);ft.getAdapter=yS.getAdapter;ft.HttpStatusCode=eM;ft.default=ft;var tM={VITE_OAGENT_CLIENT_ID:"support-center-clientid",VITE_OAGENT_BASE_URL:"",BASE_URL:"/",MODE:"azureConfig",DEV:!1,PROD:!0,SSR:!1};const Gg="";console.log(`Backend service URL: ${Gg}`);const rM=tM.VITE_IS_MOCK_ENABLED;async function nM(){return{chatConfiguration:{welcomeTitle:"Let's start chatting...",welcomeSubtitle:"",welcomeHints:["I'm moving to another city, so I need to change my address. Can you help me with that?","I'm not sure how to pay my bill. Can you help me with that?"],welcomeWarning:"Warning: Answers are generated by AI and might be innacurate. Please review output carefully before use.",previewContent:"Text"}}}async function oM(e,t,r,n){const o={conversationId:e,messageId:t,rating:r,replyMessage:n};if(rM)return;const i=new URL("api/chat/feedback",Gg).href;await ft.post(i,o)}function iM(){const e=new URL("supportcenterhub",Gg).href;return new AI().withUrl(e).withAutomaticReconnect().build()}const aM=Ul({sectionContainer:{...on.borderRadius(Fi.borderRadiusLarge),...on.margin("10px"),...on.padding("15px"),backgroundColor:Fi.colorNeutralBackground1,boxShadow:Fi.shadow4}});function lM(e,t){const r=t||{};return(e[e.length-1]===""?[...e,""]:e).join((r.padRight?" ":"")+","+(r.padLeft===!1?"":" ")).trim()}const sM=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,cM=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,uM={};function M0(e,t){return((t||uM).jsx?cM:sM).test(e)}const fM=/[ \t\n\f\r]/g;function dM(e){return typeof e=="object"?e.type==="text"?O0(e.value):!1:O0(e)}function O0(e){return e.replace(fM,"")===""}class ns{constructor(t,r,n){this.property=t,this.normal=r,n&&(this.space=n)}}ns.prototype.property={};ns.prototype.normal={};ns.prototype.space=null;function xS(e,t){const r={},n={};let o=-1;for(;++o4&&r.slice(0,4)==="data"&&vM.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(q0,kM);n="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!q0.test(i)){let a=i.replace(bM,wM);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}o=Kg}return new o(n,t)}function wM(e){return"-"+e.toLowerCase()}function kM(e){return e.charAt(1).toUpperCase()}const xM={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},SM=xS([BS,_S,ES,zS,gM],"html"),Xg=xS([BS,_S,ES,zS,mM],"svg");function _M(e){return e.join(" ").trim()}var TS={},H0=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,BM=/\n/g,CM=/^\s*/,PM=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,EM=/^:\s*/,zM=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,TM=/^[;\s]*/,NM=/^\s+|\s+$/g,RM=` +`,W0="/",U0="*",jo="",jM="comment",FM="declaration",DM=function(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var r=1,n=1;function o(p){var m=p.match(BM);m&&(r+=m.length);var y=p.lastIndexOf(RM);n=~y?p.length-y:n+p.length}function i(){var p={line:r,column:n};return function(m){return m.position=new a(p),c(),m}}function a(p){this.start=p,this.end={line:r,column:n},this.source=t.source}a.prototype.content=e;function l(p){var m=new Error(t.source+":"+r+":"+n+": "+p);if(m.reason=p,m.filename=t.source,m.line=r,m.column=n,m.source=e,!t.silent)throw m}function s(p){var m=p.exec(e);if(m){var y=m[0];return o(y),e=e.slice(y.length),m}}function c(){s(CM)}function u(p){var m;for(p=p||[];m=f();)m!==!1&&p.push(m);return p}function f(){var p=i();if(!(W0!=e.charAt(0)||U0!=e.charAt(1))){for(var m=2;jo!=e.charAt(m)&&(U0!=e.charAt(m)||W0!=e.charAt(m+1));)++m;if(m+=2,jo===e.charAt(m-1))return l("End of comment missing");var y=e.slice(2,m-2);return n+=2,o(y),e=e.slice(m),n+=2,p({type:jM,comment:y})}}function d(){var p=i(),m=s(PM);if(m){if(f(),!s(EM))return l("property missing ':'");var y=s(zM),v=p({type:FM,property:$0(m[0].replace(H0,jo)),value:y?$0(y[0].replace(H0,jo)):jo});return s(TM),v}}function h(){var p=[];u(p);for(var m;m=d();)m!==!1&&(p.push(m),u(p));return p}return c(),h()};function $0(e){return e?e.replace(NM,jo):jo}var IM=pm&&pm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TS,"__esModule",{value:!0});var AM=IM(DM);function MM(e,t){var r=null;if(!e||typeof e!="string")return r;var n=(0,AM.default)(e),o=typeof t=="function";return n.forEach(function(i){if(i.type==="declaration"){var a=i.property,l=i.value;o?t(a,l,i):l&&(r=r||{},r[a]=l)}}),r}var V0=TS.default=MM;const OM=V0.default||V0,NS=RS("end"),Zg=RS("start");function RS(e){return t;function t(r){const n=r&&r.position&&r.position[e]||{};if(typeof n.line=="number"&&n.line>0&&typeof n.column=="number"&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset=="number"&&n.offset>-1?n.offset:void 0}}}function LM(e){const t=Zg(e),r=NS(e);if(t&&r)return{start:t,end:r}}function il(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?G0(e.position):"start"in e||"end"in e?G0(e):"line"in e||"column"in e?tp(e):""}function tp(e){return K0(e&&e.line)+":"+K0(e&&e.column)}function G0(e){return tp(e&&e.start)+"-"+tp(e&&e.end)}function K0(e){return e&&typeof e=="number"?e:1}class Mt extends Error{constructor(t,r,n){super(),typeof r=="string"&&(n=r,r=void 0);let o="",i={},a=!1;if(r&&("line"in r&&"column"in r?i={place:r}:"start"in r&&"end"in r?i={place:r}:"type"in r?i={ancestors:[r],place:r.position}:i={...r}),typeof t=="string"?o=t:!i.cause&&t&&(a=!0,o=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof n=="string"){const s=n.indexOf(":");s===-1?i.ruleId=n:(i.source=n.slice(0,s),i.ruleId=n.slice(s+1))}if(!i.place&&i.ancestors&&i.ancestors){const s=i.ancestors[i.ancestors.length-1];s&&(i.place=s.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file,this.message=o,this.line=l?l.line:void 0,this.name=il(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual,this.expected,this.note,this.url}}Mt.prototype.file="";Mt.prototype.name="";Mt.prototype.reason="";Mt.prototype.message="";Mt.prototype.stack="";Mt.prototype.column=void 0;Mt.prototype.line=void 0;Mt.prototype.ancestors=void 0;Mt.prototype.cause=void 0;Mt.prototype.fatal=void 0;Mt.prototype.place=void 0;Mt.prototype.ruleId=void 0;Mt.prototype.source=void 0;const Qg={}.hasOwnProperty,qM=new Map,HM=/[A-Z]/g,WM=/-([a-z])/g,UM=new Set(["table","tbody","thead","tfoot","tr"]),$M=new Set(["td","th"]),jS="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function VM(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const r=t.filePath||void 0;let n;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");n=eO(r,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");n=YM(r,t.jsx,t.jsxs)}const o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:n,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Xg:SM,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=FS(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function FS(e,t,r){if(t.type==="element")return GM(e,t,r);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return KM(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return ZM(e,t,r);if(t.type==="mdxjsEsm")return XM(e,t);if(t.type==="root")return QM(e,t,r);if(t.type==="text")return JM(e,t)}function GM(e,t,r){const n=e.schema;let o=n;t.tagName.toLowerCase()==="svg"&&n.space==="html"&&(o=Xg,e.schema=o),e.ancestors.push(t);const i=IS(e,t.tagName,!1),a=tO(e,t);let l=Yg(e,t);return UM.has(t.tagName)&&(l=l.filter(function(s){return typeof s=="string"?!dM(s):!0})),DS(e,a,i,t),Jg(a,l),e.ancestors.pop(),e.schema=n,e.create(t,i,a,r)}function KM(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Ol(e,t.position)}function XM(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Ol(e,t.position)}function ZM(e,t,r){const n=e.schema;let o=n;t.name==="svg"&&n.space==="html"&&(o=Xg,e.schema=o),e.ancestors.push(t);const i=t.name===null?e.Fragment:IS(e,t.name,!0),a=rO(e,t),l=Yg(e,t);return DS(e,a,i,t),Jg(a,l),e.ancestors.pop(),e.schema=n,e.create(t,i,a,r)}function QM(e,t,r){const n={};return Jg(n,Yg(e,t)),e.create(t,e.Fragment,n,r)}function JM(e,t){return t.value}function DS(e,t,r,n){typeof r!="string"&&r!==e.Fragment&&e.passNode&&(t.node=n)}function Jg(e,t){if(t.length>0){const r=t.length>1?t:t[0];r&&(e.children=r)}}function YM(e,t,r){return n;function n(o,i,a,l){const c=Array.isArray(a.children)?r:t;return l?c(i,a,l):c(i,a)}}function eO(e,t){return r;function r(n,o,i,a){const l=Array.isArray(i.children),s=Zg(n);return t(o,i,a,l,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function tO(e,t){const r={};let n,o;for(o in t.properties)if(o!=="children"&&Qg.call(t.properties,o)){const i=nO(e,o,t.properties[o]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&$M.has(t.tagName)?n=l:r[a]=l}}if(n){const i=r.style||(r.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=n}return r}function rO(e,t){const r={};for(const n of t.attributes)if(n.type==="mdxJsxExpressionAttribute")if(n.data&&n.data.estree&&e.evaluater){const i=n.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(r,e.evaluater.evaluateExpression(l.argument))}else Ol(e,t.position);else{const o=n.name;let i;if(n.value&&typeof n.value=="object")if(n.value.data&&n.value.data.estree&&e.evaluater){const l=n.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else Ol(e,t.position);else i=n.value===null?!0:n.value;r[o]=i}return r}function Yg(e,t){const r=[];let n=-1;const o=e.passKeys?new Map:qM;for(;++no?0:o+t:t=t>o?o:t,r=r>0?r:0,n.length<1e4)a=Array.from(n),a.unshift(t,r),e.splice(...a);else for(r&&e.splice(t,r);i0?(gr(e,e.length,0,t),e):t}const Q0={}.hasOwnProperty;function MS(e){const t={};let r=-1;for(;++r13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)===65535||(r&65535)===65534||r>1114111?"�":String.fromCodePoint(r)}function $r(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ht=yo(/[A-Za-z]/),Dt=yo(/[\dA-Za-z]/),hO=yo(/[#-'*+\--9=?A-Z^-~]/);function Kc(e){return e!==null&&(e<32||e===127)}const rp=yo(/\d/),pO=yo(/[\dA-Fa-f]/),gO=yo(/[!-/:-@[-`{-~]/);function ie(e){return e!==null&&e<-2}function Fe(e){return e!==null&&(e<0||e===32)}function ke(e){return e===-2||e===-1||e===32}const qu=yo(new RegExp("\\p{P}|\\p{S}","u")),ri=yo(/\s/);function yo(e){return t;function t(r){return r!==null&&r>-1&&e.test(String.fromCharCode(r))}}function ya(e){const t=[];let r=-1,n=0,o=0;for(;++r55295&&i<57344){const l=e.charCodeAt(r+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),o=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(n,r),encodeURIComponent(a)),n=r+o+1,a=""),o&&(r+=o,o=0)}return t.join("")+e.slice(n)}function Ce(e,t,r,n){const o=n?n-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(s){return ke(s)?(e.enter(r),l(s)):t(s)}function l(s){return ke(s)&&i++a))return;const S=t.events.length;let E=S,N,C;for(;E--;)if(t.events[E][0]==="exit"&&t.events[E][1].type==="chunkFlow"){if(N){C=t.events[E][1].end;break}N=!0}for(v(n),w=S;wb;){const _=r[k];t.containerState=_[1],_[0].exit.call(t,e)}r.length=b}function g(){o.write([null]),i=void 0,o=void 0,t.containerState._closeFlow=void 0}}function wO(e,t,r){return Ce(e,e.attempt(this.parser.constructs.document,t,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Xc(e){if(e===null||Fe(e)||ri(e))return 1;if(qu(e))return 2}function Hu(e,t,r){const n=[];let o=-1;for(;++o1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;const f=Object.assign({},e[n][1].end),d=Object.assign({},e[r][1].start);Y0(f,-s),Y0(d,s),a={type:s>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},e[n][1].end)},l={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[r][1].start),end:d},i={type:s>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[r][1].start)},o={type:s>1?"strong":"emphasis",start:Object.assign({},a.start),end:Object.assign({},l.end)},e[n][1].end=Object.assign({},a.start),e[r][1].start=Object.assign({},l.end),c=[],e[n][1].end.offset-e[n][1].start.offset&&(c=Cr(c,[["enter",e[n][1],t],["exit",e[n][1],t]])),c=Cr(c,[["enter",o,t],["enter",a,t],["exit",a,t],["enter",i,t]]),c=Cr(c,Hu(t.parser.constructs.insideSpan.null,e.slice(n+1,r),t)),c=Cr(c,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",o,t]]),e[r][1].end.offset-e[r][1].start.offset?(u=2,c=Cr(c,[["enter",e[r][1],t],["exit",e[r][1],t]])):u=0,gr(e,n-1,r-n+3,c),r=n+c.length-u-2;break}}for(r=-1;++r0&&ke(w)?Ce(e,g,"linePrefix",i+1)(w):g(w)}function g(w){return w===null||ie(w)?e.check(eb,m,k)(w):(e.enter("codeFlowValue"),b(w))}function b(w){return w===null||ie(w)?(e.exit("codeFlowValue"),g(w)):(e.consume(w),b)}function k(w){return e.exit("codeFenced"),t(w)}function _(w,S,E){let N=0;return C;function C(te){return w.enter("lineEnding"),w.consume(te),w.exit("lineEnding"),L}function L(te){return w.enter("codeFencedFence"),ke(te)?Ce(w,R,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(te):R(te)}function R(te){return te===l?(w.enter("codeFencedFenceSequence"),re(te)):E(te)}function re(te){return te===l?(N++,w.consume(te),re):N>=a?(w.exit("codeFencedFenceSequence"),ke(te)?Ce(w,oe,"whitespace")(te):oe(te)):E(te)}function oe(te){return te===null||ie(te)?(w.exit("codeFencedFence"),S(te)):E(te)}}}function RO(e,t,r){const n=this;return o;function o(a){return a===null?r(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return n.parser.lazy[n.now().line]?r(a):t(a)}}const od={name:"codeIndented",tokenize:FO},jO={tokenize:DO,partial:!0};function FO(e,t,r){const n=this;return o;function o(c){return e.enter("codeIndented"),Ce(e,i,"linePrefix",5)(c)}function i(c){const u=n.events[n.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?a(c):r(c)}function a(c){return c===null?s(c):ie(c)?e.attempt(jO,a,s)(c):(e.enter("codeFlowValue"),l(c))}function l(c){return c===null||ie(c)?(e.exit("codeFlowValue"),a(c)):(e.consume(c),l)}function s(c){return e.exit("codeIndented"),t(c)}}function DO(e,t,r){const n=this;return o;function o(a){return n.parser.lazy[n.now().line]?r(a):ie(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):Ce(e,i,"linePrefix",5)(a)}function i(a){const l=n.events[n.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):ie(a)?o(a):r(a)}}const IO={name:"codeText",tokenize:OO,resolve:AO,previous:MO};function AO(e){let t=e.length-4,r=3,n,o;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=r;++n=4?t(a):e.interrupt(n.parser.constructs.flow,r,t)(a)}}function US(e,t,r,n,o,i,a,l,s){const c=s||Number.POSITIVE_INFINITY;let u=0;return f;function f(v){return v===60?(e.enter(n),e.enter(o),e.enter(i),e.consume(v),e.exit(i),d):v===null||v===32||v===41||Kc(v)?r(v):(e.enter(n),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),m(v))}function d(v){return v===62?(e.enter(i),e.consume(v),e.exit(i),e.exit(o),e.exit(n),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(v))}function h(v){return v===62?(e.exit("chunkString"),e.exit(l),d(v)):v===null||v===60||ie(v)?r(v):(e.consume(v),v===92?p:h)}function p(v){return v===60||v===62||v===92?(e.consume(v),h):h(v)}function m(v){return!u&&(v===null||v===41||Fe(v))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(n),t(v)):u999||h===null||h===91||h===93&&!s||h===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?r(h):h===93?(e.exit(i),e.enter(o),e.consume(h),e.exit(o),e.exit(n),t):ie(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||ie(h)||l++>999?(e.exit("chunkString"),u(h)):(e.consume(h),s||(s=!ke(h)),h===92?d:f)}function d(h){return h===91||h===92||h===93?(e.consume(h),l++,f):f(h)}}function VS(e,t,r,n,o,i){let a;return l;function l(d){return d===34||d===39||d===40?(e.enter(n),e.enter(o),e.consume(d),e.exit(o),a=d===40?41:d,s):r(d)}function s(d){return d===a?(e.enter(o),e.consume(d),e.exit(o),e.exit(n),t):(e.enter(i),c(d))}function c(d){return d===a?(e.exit(i),s(a)):d===null?r(d):ie(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),Ce(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(d))}function u(d){return d===a||d===null||ie(d)?(e.exit("chunkString"),c(d)):(e.consume(d),d===92?f:u)}function f(d){return d===a||d===92?(e.consume(d),u):u(d)}}function al(e,t){let r;return n;function n(o){return ie(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),r=!0,n):ke(o)?Ce(e,n,r?"linePrefix":"lineSuffix")(o):t(o)}}const VO={name:"definition",tokenize:KO},GO={tokenize:XO,partial:!0};function KO(e,t,r){const n=this;let o;return i;function i(h){return e.enter("definition"),a(h)}function a(h){return $S.call(n,e,l,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return o=$r(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),s):r(h)}function s(h){return Fe(h)?al(e,c)(h):c(h)}function c(h){return US(e,u,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function u(h){return e.attempt(GO,f,f)(h)}function f(h){return ke(h)?Ce(e,d,"whitespace")(h):d(h)}function d(h){return h===null||ie(h)?(e.exit("definition"),n.parser.defined.push(o),t(h)):r(h)}}function XO(e,t,r){return n;function n(l){return Fe(l)?al(e,o)(l):r(l)}function o(l){return VS(e,i,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return ke(l)?Ce(e,a,"whitespace")(l):a(l)}function a(l){return l===null||ie(l)?t(l):r(l)}}const ZO={name:"hardBreakEscape",tokenize:QO};function QO(e,t,r){return n;function n(i){return e.enter("hardBreakEscape"),e.consume(i),o}function o(i){return ie(i)?(e.exit("hardBreakEscape"),t(i)):r(i)}}const JO={name:"headingAtx",tokenize:eL,resolve:YO};function YO(e,t){let r=e.length-2,n=3,o,i;return e[n][1].type==="whitespace"&&(n+=2),r-2>n&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(n===r-1||r-4>n&&e[r-2][1].type==="whitespace")&&(r-=n+1===r?2:4),r>n&&(o={type:"atxHeadingText",start:e[n][1].start,end:e[r][1].end},i={type:"chunkText",start:e[n][1].start,end:e[r][1].end,contentType:"text"},gr(e,n,r-n+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function eL(e,t,r){let n=0;return o;function o(u){return e.enter("atxHeading"),i(u)}function i(u){return e.enter("atxHeadingSequence"),a(u)}function a(u){return u===35&&n++<6?(e.consume(u),a):u===null||Fe(u)?(e.exit("atxHeadingSequence"),l(u)):r(u)}function l(u){return u===35?(e.enter("atxHeadingSequence"),s(u)):u===null||ie(u)?(e.exit("atxHeading"),t(u)):ke(u)?Ce(e,l,"whitespace")(u):(e.enter("atxHeadingText"),c(u))}function s(u){return u===35?(e.consume(u),s):(e.exit("atxHeadingSequence"),l(u))}function c(u){return u===null||u===35||Fe(u)?(e.exit("atxHeadingText"),l(u)):(e.consume(u),c)}}const tL=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],rb=["pre","script","style","textarea"],rL={name:"htmlFlow",tokenize:aL,resolveTo:iL,concrete:!0},nL={tokenize:sL,partial:!0},oL={tokenize:lL,partial:!0};function iL(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function aL(e,t,r){const n=this;let o,i,a,l,s;return c;function c(P){return u(P)}function u(P){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(P),f}function f(P){return P===33?(e.consume(P),d):P===47?(e.consume(P),i=!0,m):P===63?(e.consume(P),o=3,n.interrupt?t:B):Ht(P)?(e.consume(P),a=String.fromCharCode(P),y):r(P)}function d(P){return P===45?(e.consume(P),o=2,h):P===91?(e.consume(P),o=5,l=0,p):Ht(P)?(e.consume(P),o=4,n.interrupt?t:B):r(P)}function h(P){return P===45?(e.consume(P),n.interrupt?t:B):r(P)}function p(P){const Se="CDATA[";return P===Se.charCodeAt(l++)?(e.consume(P),l===Se.length?n.interrupt?t:R:p):r(P)}function m(P){return Ht(P)?(e.consume(P),a=String.fromCharCode(P),y):r(P)}function y(P){if(P===null||P===47||P===62||Fe(P)){const Se=P===47,pt=a.toLowerCase();return!Se&&!i&&rb.includes(pt)?(o=1,n.interrupt?t(P):R(P)):tL.includes(a.toLowerCase())?(o=6,Se?(e.consume(P),v):n.interrupt?t(P):R(P)):(o=7,n.interrupt&&!n.parser.lazy[n.now().line]?r(P):i?g(P):b(P))}return P===45||Dt(P)?(e.consume(P),a+=String.fromCharCode(P),y):r(P)}function v(P){return P===62?(e.consume(P),n.interrupt?t:R):r(P)}function g(P){return ke(P)?(e.consume(P),g):C(P)}function b(P){return P===47?(e.consume(P),C):P===58||P===95||Ht(P)?(e.consume(P),k):ke(P)?(e.consume(P),b):C(P)}function k(P){return P===45||P===46||P===58||P===95||Dt(P)?(e.consume(P),k):_(P)}function _(P){return P===61?(e.consume(P),w):ke(P)?(e.consume(P),_):b(P)}function w(P){return P===null||P===60||P===61||P===62||P===96?r(P):P===34||P===39?(e.consume(P),s=P,S):ke(P)?(e.consume(P),w):E(P)}function S(P){return P===s?(e.consume(P),s=null,N):P===null||ie(P)?r(P):(e.consume(P),S)}function E(P){return P===null||P===34||P===39||P===47||P===60||P===61||P===62||P===96||Fe(P)?_(P):(e.consume(P),E)}function N(P){return P===47||P===62||ke(P)?b(P):r(P)}function C(P){return P===62?(e.consume(P),L):r(P)}function L(P){return P===null||ie(P)?R(P):ke(P)?(e.consume(P),L):r(P)}function R(P){return P===45&&o===2?(e.consume(P),he):P===60&&o===1?(e.consume(P),ee):P===62&&o===4?(e.consume(P),ce):P===63&&o===3?(e.consume(P),B):P===93&&o===5?(e.consume(P),J):ie(P)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(nL,ge,re)(P)):P===null||ie(P)?(e.exit("htmlFlowData"),re(P)):(e.consume(P),R)}function re(P){return e.check(oL,oe,ge)(P)}function oe(P){return e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),te}function te(P){return P===null||ie(P)?re(P):(e.enter("htmlFlowData"),R(P))}function he(P){return P===45?(e.consume(P),B):R(P)}function ee(P){return P===47?(e.consume(P),a="",W):R(P)}function W(P){if(P===62){const Se=a.toLowerCase();return rb.includes(Se)?(e.consume(P),ce):R(P)}return Ht(P)&&a.length<8?(e.consume(P),a+=String.fromCharCode(P),W):R(P)}function J(P){return P===93?(e.consume(P),B):R(P)}function B(P){return P===62?(e.consume(P),ce):P===45&&o===2?(e.consume(P),B):R(P)}function ce(P){return P===null||ie(P)?(e.exit("htmlFlowData"),ge(P)):(e.consume(P),ce)}function ge(P){return e.exit("htmlFlow"),t(P)}}function lL(e,t,r){const n=this;return o;function o(a){return ie(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):r(a)}function i(a){return n.parser.lazy[n.now().line]?r(a):t(a)}}function sL(e,t,r){return n;function n(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(os,t,r)}}const cL={name:"htmlText",tokenize:uL};function uL(e,t,r){const n=this;let o,i,a;return l;function l(B){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(B),s}function s(B){return B===33?(e.consume(B),c):B===47?(e.consume(B),_):B===63?(e.consume(B),b):Ht(B)?(e.consume(B),E):r(B)}function c(B){return B===45?(e.consume(B),u):B===91?(e.consume(B),i=0,p):Ht(B)?(e.consume(B),g):r(B)}function u(B){return B===45?(e.consume(B),h):r(B)}function f(B){return B===null?r(B):B===45?(e.consume(B),d):ie(B)?(a=f,ee(B)):(e.consume(B),f)}function d(B){return B===45?(e.consume(B),h):f(B)}function h(B){return B===62?he(B):B===45?d(B):f(B)}function p(B){const ce="CDATA[";return B===ce.charCodeAt(i++)?(e.consume(B),i===ce.length?m:p):r(B)}function m(B){return B===null?r(B):B===93?(e.consume(B),y):ie(B)?(a=m,ee(B)):(e.consume(B),m)}function y(B){return B===93?(e.consume(B),v):m(B)}function v(B){return B===62?he(B):B===93?(e.consume(B),v):m(B)}function g(B){return B===null||B===62?he(B):ie(B)?(a=g,ee(B)):(e.consume(B),g)}function b(B){return B===null?r(B):B===63?(e.consume(B),k):ie(B)?(a=b,ee(B)):(e.consume(B),b)}function k(B){return B===62?he(B):b(B)}function _(B){return Ht(B)?(e.consume(B),w):r(B)}function w(B){return B===45||Dt(B)?(e.consume(B),w):S(B)}function S(B){return ie(B)?(a=S,ee(B)):ke(B)?(e.consume(B),S):he(B)}function E(B){return B===45||Dt(B)?(e.consume(B),E):B===47||B===62||Fe(B)?N(B):r(B)}function N(B){return B===47?(e.consume(B),he):B===58||B===95||Ht(B)?(e.consume(B),C):ie(B)?(a=N,ee(B)):ke(B)?(e.consume(B),N):he(B)}function C(B){return B===45||B===46||B===58||B===95||Dt(B)?(e.consume(B),C):L(B)}function L(B){return B===61?(e.consume(B),R):ie(B)?(a=L,ee(B)):ke(B)?(e.consume(B),L):N(B)}function R(B){return B===null||B===60||B===61||B===62||B===96?r(B):B===34||B===39?(e.consume(B),o=B,re):ie(B)?(a=R,ee(B)):ke(B)?(e.consume(B),R):(e.consume(B),oe)}function re(B){return B===o?(e.consume(B),o=void 0,te):B===null?r(B):ie(B)?(a=re,ee(B)):(e.consume(B),re)}function oe(B){return B===null||B===34||B===39||B===60||B===61||B===96?r(B):B===47||B===62||Fe(B)?N(B):(e.consume(B),oe)}function te(B){return B===47||B===62||Fe(B)?N(B):r(B)}function he(B){return B===62?(e.consume(B),e.exit("htmlTextData"),e.exit("htmlText"),t):r(B)}function ee(B){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(B),e.exit("lineEnding"),W}function W(B){return ke(B)?Ce(e,J,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(B):J(B)}function J(B){return e.enter("htmlTextData"),a(B)}}const rm={name:"labelEnd",tokenize:mL,resolveTo:gL,resolveAll:pL},fL={tokenize:vL},dL={tokenize:bL},hL={tokenize:yL};function pL(e){let t=-1;for(;++t=3&&(c===null||ie(c))?(e.exit("thematicBreak"),t(c)):r(c)}function s(c){return c===o?(e.consume(c),n++,s):(e.exit("thematicBreakSequence"),ke(c)?Ce(e,l,"whitespace")(c):l(c))}}const Zt={name:"list",tokenize:EL,continuation:{tokenize:zL},exit:NL},CL={tokenize:RL,partial:!0},PL={tokenize:TL,partial:!0};function EL(e,t,r){const n=this,o=n.events[n.events.length-1];let i=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,a=0;return l;function l(h){const p=n.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(p==="listUnordered"?!n.containerState.marker||h===n.containerState.marker:rp(h)){if(n.containerState.type||(n.containerState.type=p,e.enter(p,{_container:!0})),p==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(fc,r,c)(h):c(h);if(!n.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(h)}return r(h)}function s(h){return rp(h)&&++a<10?(e.consume(h),s):(!n.interrupt||a<2)&&(n.containerState.marker?h===n.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),c(h)):r(h)}function c(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||h,e.check(os,n.interrupt?r:u,e.attempt(CL,d,f))}function u(h){return n.containerState.initialBlankLine=!0,i++,d(h)}function f(h){return ke(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),d):r(h)}function d(h){return n.containerState.size=i+n.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function zL(e,t,r){const n=this;return n.containerState._closeFlow=void 0,e.check(os,o,i);function o(l){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,Ce(e,t,"listItemIndent",n.containerState.size+1)(l)}function i(l){return n.containerState.furtherBlankLines||!ke(l)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,a(l)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,e.attempt(PL,t,a)(l))}function a(l){return n.containerState._closeFlow=!0,n.interrupt=void 0,Ce(e,e.attempt(Zt,t,r),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function TL(e,t,r){const n=this;return Ce(e,o,"listItemIndent",n.containerState.size+1);function o(i){const a=n.events[n.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===n.containerState.size?t(i):r(i)}}function NL(e){e.exit(this.containerState.type)}function RL(e,t,r){const n=this;return Ce(e,o,"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(i){const a=n.events[n.events.length-1];return!ke(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):r(i)}}const nb={name:"setextUnderline",tokenize:FL,resolveTo:jL};function jL(e,t){let r=e.length,n,o,i;for(;r--;)if(e[r][0]==="enter"){if(e[r][1].type==="content"){n=r;break}e[r][1].type==="paragraph"&&(o=r)}else e[r][1].type==="content"&&e.splice(r,1),!i&&e[r][1].type==="definition"&&(i=r);const a={type:"setextHeading",start:Object.assign({},e[o][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[o][1].type="setextHeadingText",i?(e.splice(o,0,["enter",a,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end=Object.assign({},e[i][1].end)):e[n][1]=a,e.push(["exit",a,t]),e}function FL(e,t,r){const n=this;let o;return i;function i(c){let u=n.events.length,f;for(;u--;)if(n.events[u][1].type!=="lineEnding"&&n.events[u][1].type!=="linePrefix"&&n.events[u][1].type!=="content"){f=n.events[u][1].type==="paragraph";break}return!n.parser.lazy[n.now().line]&&(n.interrupt||f)?(e.enter("setextHeadingLine"),o=c,a(c)):r(c)}function a(c){return e.enter("setextHeadingLineSequence"),l(c)}function l(c){return c===o?(e.consume(c),l):(e.exit("setextHeadingLineSequence"),ke(c)?Ce(e,s,"lineSuffix")(c):s(c))}function s(c){return c===null||ie(c)?(e.exit("setextHeadingLine"),t(c)):r(c)}}const DL={tokenize:IL};function IL(e){const t=this,r=e.attempt(os,n,e.attempt(this.parser.constructs.flowInitial,o,Ce(e,e.attempt(this.parser.constructs.flow,o,e.attempt(qO,o)),"linePrefix")));return r;function n(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,r}function o(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,r}}const AL={resolveAll:KS()},ML=GS("string"),OL=GS("text");function GS(e){return{tokenize:t,resolveAll:KS(e==="text"?LL:void 0)};function t(r){const n=this,o=this.parser.constructs[e],i=r.attempt(o,a,l);return a;function a(u){return c(u)?i(u):l(u)}function l(u){if(u===null){r.consume(u);return}return r.enter("data"),r.consume(u),s}function s(u){return c(u)?(r.exit("data"),i(u)):(r.consume(u),s)}function c(u){if(u===null)return!0;const f=o[u];let d=-1;if(f)for(;++d-1){const l=a[0];typeof l=="string"?a[0]=l.slice(n):a.shift()}i>0&&a.push(e[o].slice(0,i))}return a}function WL(e,t){let r=-1;const n=[];let o;for(;++r0){const Kt=le.tokenStack[le.tokenStack.length-1];(Kt[1]||ib).call(le,void 0,Kt[0])}for(V.position={start:$n(F.length>0?F[0][1].start:{line:1,column:1,offset:0}),end:$n(F.length>0?F[F.length-2][1].end:{line:1,column:1,offset:0})},we=-1;++we1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,s);const c={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,c),e.applyData(t,c)}function mq(e,t){const r={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function vq(e,t){if(e.options.allowDangerousHtml){const r={type:"raw",value:t.value};return e.patch(t,r),e.applyData(t,r)}}function QS(e,t){const r=t.referenceType;let n="]";if(r==="collapsed"?n+="[]":r==="full"&&(n+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+n}];const o=e.all(t),i=o[0];i&&i.type==="text"?i.value="["+i.value:o.unshift({type:"text",value:"["});const a=o[o.length-1];return a&&a.type==="text"?a.value+=n:o.push({type:"text",value:n}),o}function bq(e,t){const r=String(t.identifier).toUpperCase(),n=e.definitionById.get(r);if(!n)return QS(e,t);const o={src:ya(n.url||""),alt:t.alt};n.title!==null&&n.title!==void 0&&(o.title=n.title);const i={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,i),e.applyData(t,i)}function yq(e,t){const r={src:ya(t.url)};t.alt!==null&&t.alt!==void 0&&(r.alt=t.alt),t.title!==null&&t.title!==void 0&&(r.title=t.title);const n={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,n),e.applyData(t,n)}function wq(e,t){const r={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,r);const n={type:"element",tagName:"code",properties:{},children:[r]};return e.patch(t,n),e.applyData(t,n)}function kq(e,t){const r=String(t.identifier).toUpperCase(),n=e.definitionById.get(r);if(!n)return QS(e,t);const o={href:ya(n.url||"")};n.title!==null&&n.title!==void 0&&(o.title=n.title);const i={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function xq(e,t){const r={href:ya(t.url)};t.title!==null&&t.title!==void 0&&(r.title=t.title);const n={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Sq(e,t,r){const n=e.all(t),o=r?_q(r):JS(t),i={},a=[];if(typeof t.checked=="boolean"){const u=n[0];let f;u&&u.type==="element"&&u.tagName==="p"?f=u:(f={type:"element",tagName:"p",properties:{},children:[]},n.unshift(f)),f.children.length>0&&f.children.unshift({type:"text",value:" "}),f.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function Bq(e,t){const r={},n=e.all(t);let o=-1;for(typeof t.start=="number"&&t.start!==1&&(r.start=t.start);++o0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(r,!0)},l=Zg(t.children[1]),s=NS(t.children[t.children.length-1]);l&&s&&(a.position={start:l,end:s}),o.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,i),e.applyData(t,i)}function Tq(e,t,r){const n=r?r.children:void 0,i=(n?n.indexOf(t):1)===0?"th":"td",a=r&&r.type==="table"?r.align:void 0,l=a?a.length:t.children.length;let s=-1;const c=[];for(;++s0,!0),n[0]),o=n.index+n[0].length,n=r.exec(t);return i.push(sb(t.slice(o),o>0,!1)),i.join("")}function sb(e,t,r){let n=0,o=e.length;if(t){let i=e.codePointAt(n);for(;i===ab||i===lb;)n++,i=e.codePointAt(n)}if(r){let i=e.codePointAt(o-1);for(;i===ab||i===lb;)o--,i=e.codePointAt(o-1)}return o>n?e.slice(n,o):""}function jq(e,t){const r={type:"text",value:Rq(String(t.value))};return e.patch(t,r),e.applyData(t,r)}function Fq(e,t){const r={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,r),e.applyData(t,r)}const Dq={blockquote:uq,break:fq,code:dq,delete:hq,emphasis:pq,footnoteReference:gq,heading:mq,html:vq,imageReference:bq,image:yq,inlineCode:wq,linkReference:kq,link:xq,listItem:Sq,list:Bq,paragraph:Cq,root:Pq,strong:Eq,table:zq,tableCell:Nq,tableRow:Tq,text:jq,thematicBreak:Fq,toml:Os,yaml:Os,definition:Os,footnoteDefinition:Os};function Os(){}const YS=-1,Wu=0,Zc=1,Qc=2,nm=3,om=4,im=5,am=6,e_=7,t_=8,cb=typeof self=="object"?self:globalThis,Iq=(e,t)=>{const r=(o,i)=>(e.set(i,o),o),n=o=>{if(e.has(o))return e.get(o);const[i,a]=t[o];switch(i){case Wu:case YS:return r(a,o);case Zc:{const l=r([],o);for(const s of a)l.push(n(s));return l}case Qc:{const l=r({},o);for(const[s,c]of a)l[n(s)]=n(c);return l}case nm:return r(new Date(a),o);case om:{const{source:l,flags:s}=a;return r(new RegExp(l,s),o)}case im:{const l=r(new Map,o);for(const[s,c]of a)l.set(n(s),n(c));return l}case am:{const l=r(new Set,o);for(const s of a)l.add(n(s));return l}case e_:{const{name:l,message:s}=a;return r(new cb[l](s),o)}case t_:return r(BigInt(a),o);case"BigInt":return r(Object(BigInt(a)),o)}return r(new cb[i](a),o)};return n},ub=e=>Iq(new Map,e)(0),gi="",{toString:Aq}={},{keys:Mq}=Object,Aa=e=>{const t=typeof e;if(t!=="object"||!e)return[Wu,t];const r=Aq.call(e).slice(8,-1);switch(r){case"Array":return[Zc,gi];case"Object":return[Qc,gi];case"Date":return[nm,gi];case"RegExp":return[om,gi];case"Map":return[im,gi];case"Set":return[am,gi]}return r.includes("Array")?[Zc,r]:r.includes("Error")?[e_,r]:[Qc,r]},Ls=([e,t])=>e===Wu&&(t==="function"||t==="symbol"),Oq=(e,t,r,n)=>{const o=(a,l)=>{const s=n.push(a)-1;return r.set(l,s),s},i=a=>{if(r.has(a))return r.get(a);let[l,s]=Aa(a);switch(l){case Wu:{let u=a;switch(s){case"bigint":l=t_,u=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+s);u=null;break;case"undefined":return o([YS],a)}return o([l,u],a)}case Zc:{if(s)return o([s,[...a]],a);const u=[],f=o([l,u],a);for(const d of a)u.push(i(d));return f}case Qc:{if(s)switch(s){case"BigInt":return o([s,a.toString()],a);case"Boolean":case"Number":case"String":return o([s,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const u=[],f=o([l,u],a);for(const d of Mq(a))(e||!Ls(Aa(a[d])))&&u.push([i(d),i(a[d])]);return f}case nm:return o([l,a.toISOString()],a);case om:{const{source:u,flags:f}=a;return o([l,{source:u,flags:f}],a)}case im:{const u=[],f=o([l,u],a);for(const[d,h]of a)(e||!(Ls(Aa(d))||Ls(Aa(h))))&&u.push([i(d),i(h)]);return f}case am:{const u=[],f=o([l,u],a);for(const d of a)(e||!Ls(Aa(d)))&&u.push(i(d));return f}}const{message:c}=a;return o([l,{name:s,message:c}],a)};return i},fb=(e,{json:t,lossy:r}={})=>{const n=[];return Oq(!(t||r),!!t,new Map,n)(e),n},Jc=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?ub(fb(e,t)):structuredClone(e):(e,t)=>ub(fb(e,t));function Lq(e,t){const r=[{type:"text",value:"↩"}];return t>1&&r.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),r}function qq(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function Hq(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=e.options.footnoteBackContent||Lq,n=e.options.footnoteBackLabel||qq,o=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let s=-1;for(;++s0&&p.push({type:"text",value:" "});let g=typeof r=="string"?r:r(s,h);typeof g=="string"&&(g={type:"text",value:g}),p.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+d+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof n=="string"?n:n(s,h),className:["data-footnote-backref"]},children:Array.isArray(g)?g:[g]})}const y=u[u.length-1];if(y&&y.type==="element"&&y.tagName==="p"){const g=y.children[y.children.length-1];g&&g.type==="text"?g.value+=" ":y.children.push({type:"text",value:" "}),y.children.push(...p)}else u.push(...p);const v={type:"element",tagName:"li",properties:{id:t+"fn-"+d},children:e.wrap(u,!0)};e.patch(c,v),l.push(v)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Jc(a),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const Uu=function(e){if(e==null)return Vq;if(typeof e=="function")return $u(e);if(typeof e=="object")return Array.isArray(e)?Wq(e):Uq(e);if(typeof e=="string")return $q(e);throw new Error("Expected function, string, or object as test")};function Wq(e){const t=[];let r=-1;for(;++r":""))+")"})}return d;function d(){let h=r_,p,m,y;if((!t||i(s,c,u[u.length-1]||void 0))&&(h=Zq(r(s,u)),h[0]===op))return h;if("children"in s&&s.children){const v=s;if(v.children&&h[0]!==Xq)for(m=(n?v.children.length:-1)+a,y=u.concat(v);m>-1&&m0&&r.push({type:"text",value:` +`}),r}function db(e){let t=0,r=e.charCodeAt(t);for(;r===9||r===32;)t++,r=e.charCodeAt(t);return e.slice(t)}function hb(e,t){const r=Jq(e,t),n=r.one(e,void 0),o=Hq(r),i=Array.isArray(n)?{type:"root",children:n}:n||{type:"root",children:[]};return o&&i.children.push({type:"text",value:` +`},o),i}function nH(e,t){return e&&"run"in e?async function(r,n){const o=hb(r,{file:n,...t});await e.run(o,n)}:function(r,n){return hb(r,{file:n,...t||e})}}function pb(e){if(e)throw e}var dc=Object.prototype.hasOwnProperty,o_=Object.prototype.toString,gb=Object.defineProperty,mb=Object.getOwnPropertyDescriptor,vb=function(t){return typeof Array.isArray=="function"?Array.isArray(t):o_.call(t)==="[object Array]"},bb=function(t){if(!t||o_.call(t)!=="[object Object]")return!1;var r=dc.call(t,"constructor"),n=t.constructor&&t.constructor.prototype&&dc.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!r&&!n)return!1;var o;for(o in t);return typeof o>"u"||dc.call(t,o)},yb=function(t,r){gb&&r.name==="__proto__"?gb(t,r.name,{enumerable:!0,configurable:!0,value:r.newValue,writable:!0}):t[r.name]=r.newValue},wb=function(t,r){if(r==="__proto__")if(dc.call(t,r)){if(mb)return mb(t,r).value}else return;return t[r]},oH=function e(){var t,r,n,o,i,a,l=arguments[0],s=1,c=arguments.length,u=!1;for(typeof l=="boolean"&&(u=l,l=arguments[1]||{},s=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});sa.length;let s;l&&a.push(o);try{s=e.apply(this,a)}catch(c){const u=c;if(l&&r)throw u;return o(u)}l||(s&&s.then&&typeof s.then=="function"?s.then(i,o):s instanceof Error?o(s):i(s))}function o(a,...l){r||(r=!0,t(a,...l))}function i(a){o(null,a)}}const en={basename:lH,dirname:sH,extname:cH,join:uH,sep:"/"};function lH(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');is(e);let r=0,n=-1,o=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;o--;)if(e.codePointAt(o)===47){if(i){r=o+1;break}}else n<0&&(i=!0,n=o+1);return n<0?"":e.slice(r,n)}if(t===e)return"";let a=-1,l=t.length-1;for(;o--;)if(e.codePointAt(o)===47){if(i){r=o+1;break}}else a<0&&(i=!0,a=o+1),l>-1&&(e.codePointAt(o)===t.codePointAt(l--)?l<0&&(n=o):(l=-1,n=a));return r===n?n=a:n<0&&(n=e.length),e.slice(r,n)}function sH(e){if(is(e),e.length===0)return".";let t=-1,r=e.length,n;for(;--r;)if(e.codePointAt(r)===47){if(n){t=r;break}}else n||(n=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function cH(e){is(e);let t=e.length,r=-1,n=0,o=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){n=t+1;break}continue}r<0&&(a=!0,r=t+1),l===46?o<0?o=t:i!==1&&(i=1):o>-1&&(i=-1)}return o<0||r<0||i===0||i===1&&o===r-1&&o===n+1?"":e.slice(o,r)}function uH(...e){let t=-1,r;for(;++t0&&e.codePointAt(e.length-1)===47&&(r+="/"),t?"/"+r:r}function dH(e,t){let r="",n=0,o=-1,i=0,a=-1,l,s;for(;++a<=e.length;){if(a2){if(s=r.lastIndexOf("/"),s!==r.length-1){s<0?(r="",n=0):(r=r.slice(0,s),n=r.length-1-r.lastIndexOf("/")),o=a,i=0;continue}}else if(r.length>0){r="",n=0,o=a,i=0;continue}}t&&(r=r.length>0?r+"/..":"..",n=2)}else r.length>0?r+="/"+e.slice(o+1,a):r=e.slice(o+1,a),n=a-o-1;o=a,i=0}else l===46&&i>-1?i++:i=-1}return r}function is(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const hH={cwd:pH};function pH(){return"/"}function lp(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function gH(e){if(typeof e=="string")e=new URL(e);else if(!lp(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return mH(e)}function mH(e){if(e.hostname!==""){const n=new TypeError('File URL host must be "localhost" or empty on darwin');throw n.code="ERR_INVALID_FILE_URL_HOST",n}const t=e.pathname;let r=-1;for(;++r0){let[h,...p]=u;const m=n[d][1];ap(m)&&ap(h)&&(h=ad(!0,m,h)),n[d]=[c,h,...p]}}}}const wH=new sm().freeze();function ud(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function fd(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function dd(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function xb(e){if(!ap(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Sb(e,t,r){if(!r)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function qs(e){return kH(e)?e:new i_(e)}function kH(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function xH(e){return typeof e=="string"||SH(e)}function SH(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const _H="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",_b=[],Bb={allowDangerousHtml:!0},BH=/^(https?|ircs?|mailto|xmpp)$/i,CH=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function hd(e){const t=e.allowedElements,r=e.allowElement,n=e.children||"",o=e.className,i=e.components,a=e.disallowedElements,l=e.rehypePlugins||_b,s=e.remarkPlugins||_b,c=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Bb}:Bb,u=e.skipHtml,f=e.unwrapDisallowed,d=e.urlTransform||PH,h=wH().use(cq).use(s).use(nH,c).use(l),p=new i_;typeof n=="string"&&(p.value=n);for(const g of CH)Object.hasOwn(e,g.from)&&(""+g.from+(g.to?"use `"+g.to+"` instead":"remove it")+_H+g.id,void 0);const m=h.parse(p);let y=h.runSync(m,p);return o&&(y={type:"element",tagName:"div",properties:{className:o},children:y.type==="root"?y.children:[y]}),lm(y,v),VM(y,{Fragment:j.Fragment,components:i,ignoreInvalidStyle:!0,jsx:j.jsx,jsxs:j.jsxs,passKeys:!0,passNode:!0});function v(g,b,k){if(g.type==="raw"&&k&&typeof b=="number")return u?k.children.splice(b,1):k.children[b]={type:"text",value:g.value},b;if(g.type==="element"){let _;for(_ in nd)if(Object.hasOwn(nd,_)&&Object.hasOwn(g.properties,_)){const w=g.properties[_],S=nd[_];(S===null||S.includes(g.tagName))&&(g.properties[_]=d(String(w||""),_,g))}}if(g.type==="element"){let _=t?!t.includes(g.tagName):a?a.includes(g.tagName):!1;if(!_&&r&&typeof b=="number"&&(_=!r(g,b,k)),_&&k&&typeof b=="number")return f&&g.children?k.children.splice(b,1,...g.children):k.children.splice(b,1),b}}}function PH(e){const t=e.indexOf(":"),r=e.indexOf("?"),n=e.indexOf("#"),o=e.indexOf("/");return t<0||o>-1&&t>o||r>-1&&t>r||n>-1&&t>n||BH.test(e.slice(0,t))?e:""}function Cb(e,t){const r=String(e);if(typeof t!="string")throw new TypeError("Expected character");let n=0,o=r.indexOf(t);for(;o!==-1;)n++,o=r.indexOf(t,o+t.length);return n}function EH(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function zH(e,t,r){const o=Uu((r||{}).ignore||[]),i=TH(t);let a=-1;for(;++a0?{type:"text",value:w}:void 0),w===!1?d.lastIndex=k+1:(p!==k&&g.push({type:"text",value:c.value.slice(p,k)}),Array.isArray(w)?g.push(...w):w&&g.push(w),p=k+b[0].length,v=!0),!d.global)break;b=d.exec(c.value)}return v?(p?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let r=t[0],n=r.indexOf(")");const o=Cb(e,"(");let i=Cb(e,")");for(;n!==-1&&o>i;)e+=r.slice(0,n+1),r=r.slice(n+1),n=r.indexOf(")"),i++;return[e,r]}function a_(e,t){const r=e.input.charCodeAt(e.index-1);return(e.index===0||ri(r)||qu(r))&&(!t||r!==47)}l_.peek=tW;function $H(){return{enter:{gfmFootnoteDefinition:GH,gfmFootnoteDefinitionLabelString:KH,gfmFootnoteCall:QH,gfmFootnoteCallString:JH},exit:{gfmFootnoteDefinition:ZH,gfmFootnoteDefinitionLabelString:XH,gfmFootnoteCall:eW,gfmFootnoteCallString:YH}}}function VH(){return{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:rW,footnoteReference:l_}}}function GH(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function KH(){this.buffer()}function XH(e){const t=this.resume(),r=this.stack[this.stack.length-1];r.type,r.label=t,r.identifier=$r(this.sliceSerialize(e)).toLowerCase()}function ZH(e){this.exit(e)}function QH(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function JH(){this.buffer()}function YH(e){const t=this.resume(),r=this.stack[this.stack.length-1];r.type,r.label=t,r.identifier=$r(this.sliceSerialize(e)).toLowerCase()}function eW(e){this.exit(e)}function l_(e,t,r,n){const o=r.createTracker(n);let i=o.move("[^");const a=r.enter("footnoteReference"),l=r.enter("reference");return i+=o.move(r.safe(r.associationId(e),{...o.current(),before:i,after:"]"})),l(),a(),i+=o.move("]"),i}function tW(){return"["}function rW(e,t,r,n){const o=r.createTracker(n);let i=o.move("[^");const a=r.enter("footnoteDefinition"),l=r.enter("label");return i+=o.move(r.safe(r.associationId(e),{...o.current(),before:i,after:"]"})),l(),i+=o.move("]:"+(e.children&&e.children.length>0?" ":"")),o.shift(4),i+=o.move(r.indentLines(r.containerFlow(e,o.current()),nW)),a(),i}function nW(e,t,r){return t===0?e:(r?"":" ")+e}const oW=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];s_.peek=cW;function iW(){return{canContainEols:["delete"],enter:{strikethrough:lW},exit:{strikethrough:sW}}}function aW(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:oW}],handlers:{delete:s_}}}function lW(e){this.enter({type:"delete",children:[]},e)}function sW(e){this.exit(e)}function s_(e,t,r,n){const o=r.createTracker(n),i=r.enter("strikethrough");let a=o.move("~~");return a+=r.containerPhrasing(e,{...o.current(),before:a,after:"~"}),a+=o.move("~~"),i(),a}function cW(){return"~"}function uW(e,t={}){const r=(t.align||[]).concat(),n=t.stringLength||dW,o=[],i=[],a=[],l=[];let s=0,c=-1;for(;++cs&&(s=e[c].length);++yl[y])&&(l[y]=g)}p.push(v)}i[c]=p,a[c]=m}let u=-1;if(typeof r=="object"&&"length"in r)for(;++ul[u]&&(l[u]=v),d[u]=v),f[u]=g}i.splice(1,0,f),a.splice(1,0,d),c=-1;const h=[];for(;++c "),i.shift(2);const a=r.indentLines(r.containerFlow(e,i.current()),pW);return o(),a}function pW(e,t,r){return">"+(r?"":" ")+e}function gW(e,t){return Eb(e,t.inConstruct,!0)&&!Eb(e,t.notInConstruct,!1)}function Eb(e,t,r){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return r;let n=-1;for(;++na&&(a=i):i=1,o=n+t.length,n=r.indexOf(t,o);return a}function vW(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function bW(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function yW(e,t,r,n){const o=bW(r),i=e.value||"",a=o==="`"?"GraveAccent":"Tilde";if(vW(e,r)){const f=r.enter("codeIndented"),d=r.indentLines(i,wW);return f(),d}const l=r.createTracker(n),s=o.repeat(Math.max(mW(i,o)+1,3)),c=r.enter("codeFenced");let u=l.move(s);if(e.lang){const f=r.enter(`codeFencedLang${a}`);u+=l.move(r.safe(e.lang,{before:u,after:" ",encode:["`"],...l.current()})),f()}if(e.lang&&e.meta){const f=r.enter(`codeFencedMeta${a}`);u+=l.move(" "),u+=l.move(r.safe(e.meta,{before:u,after:` +`,encode:["`"],...l.current()})),f()}return u+=l.move(` +`),i&&(u+=l.move(i+` +`)),u+=l.move(s),c(),u}function wW(e,t,r){return(r?"":" ")+e}function cm(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function kW(e,t,r,n){const o=cm(r),i=o==='"'?"Quote":"Apostrophe",a=r.enter("definition");let l=r.enter("label");const s=r.createTracker(n);let c=s.move("[");return c+=s.move(r.safe(r.associationId(e),{before:c,after:"]",...s.current()})),c+=s.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=r.enter("destinationLiteral"),c+=s.move("<"),c+=s.move(r.safe(e.url,{before:c,after:">",...s.current()})),c+=s.move(">")):(l=r.enter("destinationRaw"),c+=s.move(r.safe(e.url,{before:c,after:e.title?" ":` +`,...s.current()}))),l(),e.title&&(l=r.enter(`title${i}`),c+=s.move(" "+o),c+=s.move(r.safe(e.title,{before:c,after:o,...s.current()})),c+=s.move(o),l()),a(),c}function xW(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}c_.peek=SW;function c_(e,t,r,n){const o=xW(r),i=r.enter("emphasis"),a=r.createTracker(n);let l=a.move(o);return l+=a.move(r.containerPhrasing(e,{before:l,after:o,...a.current()})),l+=a.move(o),i(),l}function SW(e,t,r){return r.options.emphasis||"*"}function _W(e,t){let r=!1;return lm(e,function(n){if("value"in n&&/\r?\n|\r/.test(n.value)||n.type==="break")return r=!0,op}),!!((!e.depth||e.depth<3)&&em(e)&&(t.options.setext||r))}function BW(e,t,r,n){const o=Math.max(Math.min(6,e.depth||1),1),i=r.createTracker(n);if(_W(e,r)){const u=r.enter("headingSetext"),f=r.enter("phrasing"),d=r.containerPhrasing(e,{...i.current(),before:` +`,after:` +`});return f(),u(),d+` +`+(o===1?"=":"-").repeat(d.length-(Math.max(d.lastIndexOf("\r"),d.lastIndexOf(` +`))+1))}const a="#".repeat(o),l=r.enter("headingAtx"),s=r.enter("phrasing");i.move(a+" ");let c=r.containerPhrasing(e,{before:"# ",after:` +`,...i.current()});return/^[\t ]/.test(c)&&(c="&#x"+c.charCodeAt(0).toString(16).toUpperCase()+";"+c.slice(1)),c=c?a+" "+c:a,r.options.closeAtx&&(c+=" "+a),s(),l(),c}u_.peek=CW;function u_(e){return e.value||""}function CW(){return"<"}f_.peek=PW;function f_(e,t,r,n){const o=cm(r),i=o==='"'?"Quote":"Apostrophe",a=r.enter("image");let l=r.enter("label");const s=r.createTracker(n);let c=s.move("![");return c+=s.move(r.safe(e.alt,{before:c,after:"]",...s.current()})),c+=s.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=r.enter("destinationLiteral"),c+=s.move("<"),c+=s.move(r.safe(e.url,{before:c,after:">",...s.current()})),c+=s.move(">")):(l=r.enter("destinationRaw"),c+=s.move(r.safe(e.url,{before:c,after:e.title?" ":")",...s.current()}))),l(),e.title&&(l=r.enter(`title${i}`),c+=s.move(" "+o),c+=s.move(r.safe(e.title,{before:c,after:o,...s.current()})),c+=s.move(o),l()),c+=s.move(")"),a(),c}function PW(){return"!"}d_.peek=EW;function d_(e,t,r,n){const o=e.referenceType,i=r.enter("imageReference");let a=r.enter("label");const l=r.createTracker(n);let s=l.move("![");const c=r.safe(e.alt,{before:s,after:"]",...l.current()});s+=l.move(c+"]["),a();const u=r.stack;r.stack=[],a=r.enter("reference");const f=r.safe(r.associationId(e),{before:s,after:"]",...l.current()});return a(),r.stack=u,i(),o==="full"||!c||c!==f?s+=l.move(f+"]"):o==="shortcut"?s=s.slice(0,-1):s+=l.move("]"),s}function EW(){return"!"}h_.peek=zW;function h_(e,t,r){let n=e.value||"",o="`",i=-1;for(;new RegExp("(^|[^`])"+o+"([^`]|$)").test(n);)o+="`";for(/[^ \r\n]/.test(n)&&(/^[ \r\n]/.test(n)&&/[ \r\n]$/.test(n)||/^`|`$/.test(n))&&(n=" "+n+" ");++i\u007F]/.test(e.url))}g_.peek=TW;function g_(e,t,r,n){const o=cm(r),i=o==='"'?"Quote":"Apostrophe",a=r.createTracker(n);let l,s;if(p_(e,r)){const u=r.stack;r.stack=[],l=r.enter("autolink");let f=a.move("<");return f+=a.move(r.containerPhrasing(e,{before:f,after:">",...a.current()})),f+=a.move(">"),l(),r.stack=u,f}l=r.enter("link"),s=r.enter("label");let c=a.move("[");return c+=a.move(r.containerPhrasing(e,{before:c,after:"](",...a.current()})),c+=a.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=r.enter("destinationLiteral"),c+=a.move("<"),c+=a.move(r.safe(e.url,{before:c,after:">",...a.current()})),c+=a.move(">")):(s=r.enter("destinationRaw"),c+=a.move(r.safe(e.url,{before:c,after:e.title?" ":")",...a.current()}))),s(),e.title&&(s=r.enter(`title${i}`),c+=a.move(" "+o),c+=a.move(r.safe(e.title,{before:c,after:o,...a.current()})),c+=a.move(o),s()),c+=a.move(")"),l(),c}function TW(e,t,r){return p_(e,r)?"<":"["}m_.peek=NW;function m_(e,t,r,n){const o=e.referenceType,i=r.enter("linkReference");let a=r.enter("label");const l=r.createTracker(n);let s=l.move("[");const c=r.containerPhrasing(e,{before:s,after:"]",...l.current()});s+=l.move(c+"]["),a();const u=r.stack;r.stack=[],a=r.enter("reference");const f=r.safe(r.associationId(e),{before:s,after:"]",...l.current()});return a(),r.stack=u,i(),o==="full"||!c||c!==f?s+=l.move(f+"]"):o==="shortcut"?s=s.slice(0,-1):s+=l.move("]"),s}function NW(){return"["}function um(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function RW(e){const t=um(e),r=e.options.bulletOther;if(!r)return t==="*"?"-":"*";if(r!=="*"&&r!=="+"&&r!=="-")throw new Error("Cannot serialize items with `"+r+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(r===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+r+"`) to be different");return r}function jW(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function v_(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function FW(e,t,r,n){const o=r.enter("list"),i=r.bulletCurrent;let a=e.ordered?jW(r):um(r);const l=e.ordered?a==="."?")":".":RW(r);let s=t&&r.bulletLastUsed?a===r.bulletLastUsed:!1;if(!e.ordered){const u=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&u&&(!u.children||!u.children[0])&&r.stack[r.stack.length-1]==="list"&&r.stack[r.stack.length-2]==="listItem"&&r.stack[r.stack.length-3]==="list"&&r.stack[r.stack.length-4]==="listItem"&&r.indexStack[r.indexStack.length-1]===0&&r.indexStack[r.indexStack.length-2]===0&&r.indexStack[r.indexStack.length-3]===0&&(s=!0),v_(r)===a&&u){let f=-1;for(;++f-1?t.start:1)+(r.options.incrementListMarker===!1?0:t.children.indexOf(e))+i);let a=i.length+1;(o==="tab"||o==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const l=r.createTracker(n);l.move(i+" ".repeat(a-i.length)),l.shift(a);const s=r.enter("listItem"),c=r.indentLines(r.containerFlow(e,l.current()),u);return s(),c;function u(f,d,h){return d?(h?"":" ".repeat(a))+f:(h?i:i+" ".repeat(a-i.length))+f}}function AW(e,t,r,n){const o=r.enter("paragraph"),i=r.enter("phrasing"),a=r.containerPhrasing(e,n);return i(),o(),a}const MW=Uu(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function OW(e,t,r,n){return(e.children.some(function(a){return MW(a)})?r.containerPhrasing:r.containerFlow).call(r,e,n)}function LW(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}b_.peek=qW;function b_(e,t,r,n){const o=LW(r),i=r.enter("strong"),a=r.createTracker(n);let l=a.move(o+o);return l+=a.move(r.containerPhrasing(e,{before:l,after:o,...a.current()})),l+=a.move(o+o),i(),l}function qW(e,t,r){return r.options.strong||"*"}function HW(e,t,r,n){return r.safe(e.value,n)}function WW(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function UW(e,t,r){const n=(v_(r)+(r.options.ruleSpaces?" ":"")).repeat(WW(r));return r.options.ruleSpaces?n.slice(0,-1):n}const y_={blockquote:hW,break:zb,code:yW,definition:kW,emphasis:c_,hardBreak:zb,heading:BW,html:u_,image:f_,imageReference:d_,inlineCode:h_,link:g_,linkReference:m_,list:FW,listItem:IW,paragraph:AW,root:OW,strong:b_,text:HW,thematicBreak:UW};function $W(){return{enter:{table:VW,tableData:Tb,tableHeader:Tb,tableRow:KW},exit:{codeText:XW,table:GW,tableData:vd,tableHeader:vd,tableRow:vd}}}function VW(e){const t=e._align;this.enter({type:"table",align:t.map(function(r){return r==="none"?null:r}),children:[]},e),this.data.inTable=!0}function GW(e){this.exit(e),this.data.inTable=void 0}function KW(e){this.enter({type:"tableRow",children:[]},e)}function vd(e){this.exit(e)}function Tb(e){this.enter({type:"tableCell",children:[]},e)}function XW(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,ZW));const r=this.stack[this.stack.length-1];r.type,r.value=t,this.exit(e)}function ZW(e,t){return t==="|"?t:e}function QW(e){const t=e||{},r=t.tableCellPadding,n=t.tablePipeAlign,o=t.stringLength,i=r?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:d,table:a,tableCell:s,tableRow:l}};function a(h,p,m,y){return c(u(h,m,y),h.align)}function l(h,p,m,y){const v=f(h,m,y),g=c([v]);return g.slice(0,g.indexOf(` +`))}function s(h,p,m,y){const v=m.enter("tableCell"),g=m.enter("phrasing"),b=m.containerPhrasing(h,{...y,before:i,after:i});return g(),v(),b}function c(h,p){return uW(h,{align:p,alignDelimiters:n,padding:r,stringLength:o})}function u(h,p,m){const y=h.children;let v=-1;const g=[],b=p.enter("table");for(;++v0&&!r&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}const gU={tokenize:SU,partial:!0};function mU(){return{document:{91:{tokenize:wU,continuation:{tokenize:kU},exit:xU}},text:{91:{tokenize:yU},93:{add:"after",tokenize:vU,resolveTo:bU}}}}function vU(e,t,r){const n=this;let o=n.events.length;const i=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let a;for(;o--;){const s=n.events[o][1];if(s.type==="labelImage"){a=s;break}if(s.type==="gfmFootnoteCall"||s.type==="labelLink"||s.type==="label"||s.type==="image"||s.type==="link")break}return l;function l(s){if(!a||!a._balanced)return r(s);const c=$r(n.sliceSerialize({start:a.end,end:n.now()}));return c.codePointAt(0)!==94||!i.includes(c.slice(1))?r(s):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(s),e.exit("gfmFootnoteCallLabelMarker"),t(s))}}function bU(e,t){let r=e.length;for(;r--;)if(e[r][1].type==="labelImage"&&e[r][0]==="enter"){e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const n={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[e[r+1],e[r+2],["enter",n,t],e[r+3],e[r+4],["enter",o,t],["exit",o,t],["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t],e[e.length-2],e[e.length-1],["exit",n,t]];return e.splice(r,e.length-r+1,...l),e}function yU(e,t,r){const n=this,o=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let i=0,a;return l;function l(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),s}function s(f){return f!==94?r(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(f){if(i>999||f===93&&!a||f===null||f===91||Fe(f))return r(f);if(f===93){e.exit("chunkString");const d=e.exit("gfmFootnoteCallString");return o.includes($r(n.sliceSerialize(d)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):r(f)}return Fe(f)||(a=!0),i++,e.consume(f),f===92?u:c}function u(f){return f===91||f===92||f===93?(e.consume(f),i++,c):c(f)}}function wU(e,t,r){const n=this,o=n.parser.gfmFootnotes||(n.parser.gfmFootnotes=[]);let i,a=0,l;return s;function s(p){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(p),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(p){return p===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(p),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",u):r(p)}function u(p){if(a>999||p===93&&!l||p===null||p===91||Fe(p))return r(p);if(p===93){e.exit("chunkString");const m=e.exit("gfmFootnoteDefinitionLabelString");return i=$r(n.sliceSerialize(m)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(p),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),d}return Fe(p)||(l=!0),a++,e.consume(p),p===92?f:u}function f(p){return p===91||p===92||p===93?(e.consume(p),a++,u):u(p)}function d(p){return p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),o.includes(i)||o.push(i),Ce(e,h,"gfmFootnoteDefinitionWhitespace")):r(p)}function h(p){return t(p)}}function kU(e,t,r){return e.check(os,t,e.attempt(gU,t,r))}function xU(e){e.exit("gfmFootnoteDefinition")}function SU(e,t,r){const n=this;return Ce(e,o,"gfmFootnoteDefinitionIndent",5);function o(i){const a=n.events[n.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(i):r(i)}}function _U(e){let r=(e||{}).singleTilde;const n={tokenize:i,resolveAll:o};return r==null&&(r=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function o(a,l){let s=-1;for(;++s1?s(p):(a.consume(p),f++,h);if(f<2&&!r)return s(p);const y=a.exit("strikethroughSequenceTemporary"),v=Xc(p);return y._open=!v||v===2&&!!m,y._close=!m||m===2&&!!v,l(p)}}}class BU{constructor(){this.map=[]}add(t,r,n){CU(this,t,r,n)}consume(t){if(this.map.sort(function(i,a){return i[0]-a[0]}),this.map.length===0)return;let r=this.map.length;const n=[];for(;r>0;)r-=1,n.push(t.slice(this.map[r][0]+this.map[r][1]),this.map[r][2]),t.length=this.map[r][0];n.push([...t]),t.length=0;let o=n.pop();for(;o;)t.push(...o),o=n.pop();this.map.length=0}}function CU(e,t,r,n){let o=0;if(!(r===0&&n.length===0)){for(;o-1;){const oe=n.events[L][1].type;if(oe==="lineEnding"||oe==="linePrefix")L--;else break}const R=L>-1?n.events[L][1].type:null,re=R==="tableHead"||R==="tableRow"?w:s;return re===w&&n.parser.lazy[n.now().line]?r(C):re(C)}function s(C){return e.enter("tableHead"),e.enter("tableRow"),c(C)}function c(C){return C===124||(a=!0,i+=1),u(C)}function u(C){return C===null?r(C):ie(C)?i>1?(i=0,n.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),h):r(C):ke(C)?Ce(e,u,"whitespace")(C):(i+=1,a&&(a=!1,o+=1),C===124?(e.enter("tableCellDivider"),e.consume(C),e.exit("tableCellDivider"),a=!0,u):(e.enter("data"),f(C)))}function f(C){return C===null||C===124||Fe(C)?(e.exit("data"),u(C)):(e.consume(C),C===92?d:f)}function d(C){return C===92||C===124?(e.consume(C),f):f(C)}function h(C){return n.interrupt=!1,n.parser.lazy[n.now().line]?r(C):(e.enter("tableDelimiterRow"),a=!1,ke(C)?Ce(e,p,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(C):p(C))}function p(C){return C===45||C===58?y(C):C===124?(a=!0,e.enter("tableCellDivider"),e.consume(C),e.exit("tableCellDivider"),m):_(C)}function m(C){return ke(C)?Ce(e,y,"whitespace")(C):y(C)}function y(C){return C===58?(i+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(C),e.exit("tableDelimiterMarker"),v):C===45?(i+=1,v(C)):C===null||ie(C)?k(C):_(C)}function v(C){return C===45?(e.enter("tableDelimiterFiller"),g(C)):_(C)}function g(C){return C===45?(e.consume(C),g):C===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(C),e.exit("tableDelimiterMarker"),b):(e.exit("tableDelimiterFiller"),b(C))}function b(C){return ke(C)?Ce(e,k,"whitespace")(C):k(C)}function k(C){return C===124?p(C):C===null||ie(C)?!a||o!==i?_(C):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(C)):_(C)}function _(C){return r(C)}function w(C){return e.enter("tableRow"),S(C)}function S(C){return C===124?(e.enter("tableCellDivider"),e.consume(C),e.exit("tableCellDivider"),S):C===null||ie(C)?(e.exit("tableRow"),t(C)):ke(C)?Ce(e,S,"whitespace")(C):(e.enter("data"),E(C))}function E(C){return C===null||C===124||Fe(C)?(e.exit("data"),S(C)):(e.consume(C),C===92?N:E)}function N(C){return C===92||C===124?(e.consume(C),E):E(C)}}function TU(e,t){let r=-1,n=!0,o=0,i=[0,0,0,0],a=[0,0,0,0],l=!1,s=0,c,u,f;const d=new BU;for(;++rr[2]+1){const p=r[2]+1,m=r[3]-r[2]-1;e.add(p,m,[])}}e.add(r[3]+1,0,[["exit",f,t]])}return o!==void 0&&(i.end=Object.assign({},bi(t.events,o)),e.add(o,0,[["exit",i,t]]),i=void 0),i}function Rb(e,t,r,n,o){const i=[],a=bi(t.events,r);o&&(o.end=Object.assign({},a),i.push(["exit",o,t])),n.end=Object.assign({},a),i.push(["exit",n,t]),e.add(r+1,0,i)}function bi(e,t){const r=e[t],n=r[0]==="enter"?"start":"end";return r[1][n]}const NU={tokenize:jU};function RU(){return{text:{91:NU}}}function jU(e,t,r){const n=this;return o;function o(s){return n.previous!==null||!n._gfmTasklistFirstContentOfListItem?r(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),i)}function i(s){return Fe(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),a):s===88||s===120?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),a):r(s)}function a(s){return s===93?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):r(s)}function l(s){return ie(s)?t(s):ke(s)?e.check({tokenize:FU},t,r)(s):r(s)}}function FU(e,t,r){return Ce(e,n,"whitespace");function n(o){return o===null?r(o):t(o)}}function DU(e){return MS([aU(),mU(),_U(e),EU(),RU()])}const IU={};function bd(e){const t=this,r=e||IU,n=t.data(),o=n.micromarkExtensions||(n.micromarkExtensions=[]),i=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),a=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);o.push(DU(r)),i.push(rU()),a.push(nU(r))}const E_=function(e){if(e==null)return LU;if(typeof e=="string")return OU(e);if(typeof e=="object")return Array.isArray(e)?AU(e):MU(e);if(typeof e=="function")return Vu(e);throw new Error("Expected function, string, or object as test")};function AU(e){const t=[];let r=-1;for(;++r":""))+")"})}return f;function f(){let d=[],h,p,m;if((!t||o(l,s,c[c.length-1]||null))&&(d=UU(r(l,c)),d[0]===jb))return d;if(l.children&&d[0]!==HU)for(p=(n?l.children.length:-1)+i,m=c.concat(l);p>-1&&p{Fb(e,["text"],(t,r,n)=>{if(t.type!=="text")return;const{value:o}=t,i=o.split(/\^/);if(i.length===1||i.length%2===0)return;const a=i.map((l,s)=>s%2===0?{type:"text",value:l}:{type:"superscript",data:{hName:"sup"},children:[{type:"text",value:l}]});n.children.splice(r,1,...a)}),Fb(e,["text"],(t,r,n)=>{if(t.type!=="text")return;const{value:o}=t,i=o.split(/\~/);if(i.length===1||i.length%2===0)return;const a=i.map((l,s)=>s%2===0?{type:"text",value:l}:{type:"subscript",data:{hName:"sub"},children:[{type:"text",value:l}]});n.children.splice(r,1,...a)})}}function $U(e){if(!e)return;let t=e.text;const r=t.match(/\[(doc\d\d?\d?)]/g),n=4,o=[];let i=0;return r==null||r.forEach(a=>{const l=a.slice(n,a.length-1);if(!l||!e.citations||e.citations.lengthc.id===l)||(t=t.replaceAll(a,` ^${++i}^ `),s.id=l,s.reindex_id=i.toString(),o.push(s))}),{...e,text:t,citations:o}}const VU=Ul({copilotMessage:{minWidth:"300px",maxWidth:"600px"},errorMessage:{minWidth:"300px",maxWidth:"600px",color:"red"},userMessage:{minWidth:"150px",maxWidth:"600px",backgroundColor:"#EDF5FD"},customerInfoMessage:{minWidth:"300px",maxWidth:"600px",backgroundColor:"#D5F5E3"},dispatcherMessage:{minWidth:"300px",maxWidth:"600px",backgroundColor:"#FAD7A0"},notificationMessage:{minWidth:"300px",maxWidth:"600px",backgroundColor:"#FFF3CD"},avatar:{...on.margin("0px","5px")},skeletonItem:{...on.margin("5px","0px")},feedbackContainer:{display:"flex",...on.padding("4px")}});function Db({message:e,isLoading:t,isTakingTooLong:r,waitingMessage:n}){var d,h;const o="User",i=x.useRef(null),a=x.useRef(null),l=VU(),s=x.useContext(Fu),c=x.useMemo(()=>$U(e),[e]);x.useEffect(()=>{var p;i.current&&((p=a.current)==null||p.setTarget(i.current))},[i,a]);const u=p=>{switch(p){case"CustomerInfo":case"CustomerInfoNotification":return l.customerInfoMessage;case"Dispatcher":case"DispatcherNotification":return l.dispatcherMessage;case"Notification":return l.notificationMessage;default:return l.copilotMessage}},f=p=>{switch(p){case kr.Agent:return"A";case kr.CustomerInfo:case kr.CustomerInfoNotification:return"C I";case kr.Dispatcher:case kr.DispatcherNotification:return"D";case kr.Notification:return"N";default:return"A"}};switch(!0){case t:return j.jsxs("div",{className:"message-container",children:[j.jsx(yi,{color:"colorful",icon:j.jsx(sf,{}),className:l.avatar}),j.jsx(Oo,{className:l.copilotMessage,children:j.jsxs(n2,{children:[r?j.jsx(hd,{remarkPlugins:[bd,yd],children:n}):j.jsx(j.Fragment,{}),j.jsx($a,{className:l.skeletonItem,size:16}),j.jsx($a,{className:l.skeletonItem,size:8}),j.jsx($a,{className:l.skeletonItem,size:16}),j.jsx($a,{className:l.skeletonItem,size:12}),j.jsx(jh,{children:j.jsx(G1,{className:"message-disclaimer",children:"Generating answer"})})]})})]});case(e&&e.sender!==kr.User&&(e.isError==!1||e.isError==null)):return j.jsxs("div",{className:"message-container",children:[j.jsx(yi,{color:"colorful",name:f(e.sender),icon:j.jsx(sf,{}),className:l.avatar}),j.jsxs(Ux,{positioning:{positioningRef:a},openOnHover:!0,unstable_disableAutoFocus:!0,children:[j.jsx(zg,{children:j.jsxs(Oo,{className:u(e.sender),children:[j.jsx("div",{className:"feedback-container-target",children:j.jsx("div",{ref:i})}),j.jsx(hd,{remarkPlugins:[bd,yd],children:c==null?void 0:c.text}),j.jsx(jh,{children:j.jsx(G1,{className:"message-disclaimer",children:"AI-generated content"})}),c!=null&&c.citations&&((d=c.citations)==null?void 0:d.length)>0?j.jsx(bw,{collapsible:!0,children:j.jsxs(kw,{value:"references",children:[j.jsx(_w,{icon:j.jsx(b3,{}),size:"small",children:"References"}),j.jsx(Bw,{children:j.jsx(b2,{className:"citation-container",children:(h=c.citations)==null?void 0:h.map((p,m)=>j.jsx(m2,{size:"extra-small",appearance:"brand",className:"citation-item",onClick:()=>s.onCitationPreview(p),children:j.jsx(v2,{children:m+1+". "+p.title})},p.id))})})]})}):j.jsx(j.Fragment,{})]})}),j.jsxs(Wx,{className:l.feedbackContainer,children:[(e==null?void 0:e.feedback)===1?j.jsx(q3,{color:"#c4dfb8"}):j.jsx(po,{size:"small",appearance:"subtle",icon:j.jsx(p3,{}),onClick:()=>s.onSendFeedback(e,1)}),(e==null?void 0:e.feedback)===-1?j.jsx(L3,{color:"#ffc7cd"}):j.jsx(po,{size:"small",appearance:"subtle",icon:j.jsx(h3,{}),onClick:()=>s.onSendFeedback(e,-1)})]})]})]});case(e&&e.sender!==kr.User&&e.isError==!0):return j.jsxs("div",{className:"message-container",children:[j.jsx(yi,{color:"colorful",name:f(e.sender),icon:j.jsx(sf,{}),className:l.avatar}),j.jsx(Oo,{className:l.errorMessage,children:j.jsx(hd,{remarkPlugins:[bd,yd],children:c==null?void 0:c.text})})]});case(e&&e.sender===kr.User):return j.jsxs("div",{className:"message-container",children:[j.jsx(Oo,{className:l.userMessage,children:e.text}),j.jsx(yi,{color:"colorful",name:o,className:l.avatar})]});default:return j.jsx(j.Fragment,{})}}function GU(){const e=x.useContext(Q2),t=x.useRef(null);return x.useEffect(()=>{var r;return(r=t==null?void 0:t.current)==null?void 0:r.scrollIntoView({behavior:"smooth"})},[e.conversation.messages]),j.jsxs("div",{className:"messages-container",children:[e.conversation.messages.map(r=>j.jsx("div",{className:r.sender===kr.User?"user-message-container":"copilot-message-container",children:j.jsx(Db,{message:r})},r.id)),j.jsx(Db,{isLoading:e.isLoading,isTakingTooLong:e.isTakingTooLong,waitingMessage:e.waitingMessage}),j.jsx("div",{ref:t})]})}const KU=Ul({button:{marginRight:"5px"}});function XU(){const e=KU(),t=x.useContext(Fu),[r,n]=x.useState("");function o(l,s){n((s==null?void 0:s.value)||"")}function i(l){l.key==="Enter"&&!l.shiftKey&&(a(),l.preventDefault())}function a(){r&&(t.onSendMessage(r),n(""))}return j.jsxs(j.Fragment,{children:[j.jsx(l2,{value:r,size:"large",className:"input-message",onChange:o,onKeyDown:i}),j.jsxs("div",{className:"input-toolbar",children:[j.jsx("div",{children:j.jsx(po,{icon:j.jsx(a3,{}),size:"large",className:e.button,onClick:t.onRestartConversation,children:"New topic"})}),j.jsx(po,{icon:j.jsx(d3,{}),appearance:"primary",size:"large",onClick:a,disabled:!r})]})]})}function Ws(){var h,p,m,y,v;const e=aM(),[t,r]=x.useState(K2),[n,o]=x.useState(Z2),[i,a]=x.useState(J2),[l,s]=x.useState(null);x.useEffect(()=>{a(g=>({...g,onSendMessage:u,onSendFeedback:f,onRestartConversation:d}))},[n]),x.useEffect(()=>{console.log("InitApplication"),(async()=>{const b=await nM();r(k=>({...k,configuration:b})),c()})()},[]);const c=async()=>{console.log("initConversation");const g=Qf(),b={userId:"1234"},k=iM();k.start().then(()=>k.invoke("ConnectToAgent",b.userId,g)).catch(_=>console.error("SignalR connection error:",_)),console.log("SignalR connection established"),s(k),k.on("ReceiveMessage",_=>{console.log("Received message:",_),o(w=>({...w,isLoading:!1,isTakingTooLong:!1,conversation:{...w.conversation,messages:[...w.conversation.messages,{..._,sender:_.sender}]}}))}),o(_=>({..._,conversation:{id:g,metadata:b,messages:[]}}))},u=x.useCallback(g=>{console.log("SendMessage:"+n.conversation.id+" "+g),(async()=>{const k={id:Qf().toString(),conversationId:n.conversation.id,userId:n.conversation.metadata.userId,sender:kr.User,text:g,timestamp:new Date,citations:void 0,feedback:void 0,isError:!1};o(S=>({...S,isLoading:!0,conversation:{...S.conversation,messages:[...S.conversation.messages,k]}})),l==null||l.send("ProcessMessage",k);const _=2e4,w="Please wait while the agents are working for you... | Please wait while the agents are looking for a solution...";setTimeout(()=>{const S=w.split("|"),E=`${S[Math.floor(Math.random()*S.length)]}`;o(N=>({...N,isTakingTooLong:!0,waitingMessage:E}))},_)})()},[n,l]);function f(g,b){console.log("onSendFeedback"),(async()=>await oM(n.conversation.id,g.id,b.toString(),g.text))();const _=n.conversation,w={..._,messages:_.messages.map(S=>S.id===g.id?{...S,feedback:b}:S)};o(S=>({...S,conversation:w}))}const d=x.useCallback(async()=>{if(console.log("onRestartConversation"),l)try{const g=Qf();await l.invoke("RestartConversation",n.conversation.metadata.userId,g),o(b=>({...b,conversation:{id:g,metadata:b.conversation.metadata,messages:[]}}))}catch(g){console.error("Error restarting conversation: ",g)}},[l,n]);return j.jsx(j.Fragment,{children:j.jsx(X2.Provider,{value:t,children:(h=t.configuration)!=null&&h.chatConfiguration?j.jsx(Q2.Provider,{value:n,children:j.jsxs(Fu.Provider,{value:i,children:[j.jsx("div",{className:e.sectionContainer,children:!n.conversation.messages||n.conversation.messages.length===0?j.jsx(JD,{}):j.jsx(GU,{})}),j.jsx("div",{className:e.sectionContainer,children:j.jsx(XU,{})}),j.jsxs(C2,{type:"overlay",size:"large",position:"end",separator:!0,open:!!n.citationPreview,children:[j.jsx(E2,{children:j.jsx(z2,{action:j.jsxs(j.Fragment,{children:[j.jsx(po,{appearance:"subtle","aria-label":"Open file",icon:j.jsx(y3,{}),onClick:()=>{var g;return window.open((g=n.citationPreview)==null?void 0:g.url,"_blank")}}),j.jsx(po,{appearance:"subtle","aria-label":"Close",icon:j.jsx(v3,{}),onClick:()=>o(g=>({...g,citationPreview:void 0}))})]}),children:(p=n.citationPreview)==null?void 0:p.title})}),j.jsx(P2,{children:((m=t.configuration)==null?void 0:m.chatConfiguration.previewContent)==="File"?j.jsx("embed",{src:(y=n.citationPreview)==null?void 0:y.url,className:"pdf-content",width:"100%",height:"95%"}):j.jsx("p",{children:(v=n.citationPreview)==null?void 0:v.content})})]})]})}):j.jsx(j.Fragment,{})})})}function ZU(){LD([{path:"/",element:j.jsx(Ws,{})},{path:"/chat",element:j.jsx(Ws,{})}]);const e=kD();return j.jsxs("div",{className:"body",children:[j.jsx(VD,{}),j.jsx("div",{className:"app-header",children:j.jsx(a2,{children:j.jsx(i2,{value:"tab1",onClick:()=>e("chat"),children:"🗨️ Chat"})})}),j.jsxs(AD,{children:[j.jsx(Vh,{path:"/",element:j.jsx(Ws,{})}),j.jsx(Vh,{path:"/chat",element:j.jsx(Ws,{})})]})]})}qh.createRoot(document.getElementById("root")).render(j.jsx(Fo.StrictMode,{children:j.jsx(pw,{theme:_6,children:j.jsx(UD,{children:j.jsx(ZU,{})})})})); diff --git a/samples/support-center/src/frontend/dist/index.html b/samples/support-center/src/frontend/dist/index.html new file mode 100644 index 00000000..c62a3f09 --- /dev/null +++ b/samples/support-center/src/frontend/dist/index.html @@ -0,0 +1,16 @@ + + + + + + + Support Center + + + + + +
+ + + diff --git a/samples/support-center/src/frontend/vite.config.ts b/samples/support-center/src/frontend/vite.config.ts deleted file mode 100644 index a2a06133..00000000 --- a/samples/support-center/src/frontend/vite.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], - server: { - port: 3000, - } -}); \ No newline at end of file diff --git a/src/Oagents.Core/Abstractions/AgentState.cs b/src/Oagents.Core/Abstractions/AgentState.cs index 10bc212f..7a9cb21b 100644 --- a/src/Oagents.Core/Abstractions/AgentState.cs +++ b/src/Oagents.Core/Abstractions/AgentState.cs @@ -1,6 +1,6 @@ namespace Microsoft.AI.Agents.Abstractions; -public class AgentState where T: class, new() +public class AgentState where T : class, new() { public List History { get; set; } public T Data { get; set; } diff --git a/src/Oagents.Core/Abstractions/ChatHistoryItem.cs b/src/Oagents.Core/Abstractions/ChatHistoryItem.cs index 30d91525..5dc0acfc 100644 --- a/src/Oagents.Core/Abstractions/ChatHistoryItem.cs +++ b/src/Oagents.Core/Abstractions/ChatHistoryItem.cs @@ -3,7 +3,7 @@ namespace Microsoft.AI.Agents.Abstractions; [Serializable] public class ChatHistoryItem { - public string Message { get; set; } + public string Message { get; set; } = string.Empty; public ChatUserType UserType { get; set; } public int Order { get; set; } diff --git a/src/Oagents.Core/Abstractions/Event.cs b/src/Oagents.Core/Abstractions/Event.cs index 95b64ba2..a2dfb3fb 100644 --- a/src/Oagents.Core/Abstractions/Event.cs +++ b/src/Oagents.Core/Abstractions/Event.cs @@ -5,8 +5,11 @@ namespace Microsoft.AI.Agents.Abstractions [DataContract] public class Event { + [DataMember] public Dictionary Data { get; set; } + [DataMember] public string Type { get; set; } + [DataMember] public string Subject { get; set; } } } \ No newline at end of file diff --git a/src/Oagents.Core/Abstractions/IAiAgent.cs b/src/Oagents.Core/Abstractions/IAiAgent.cs index 54ea314e..13662118 100644 --- a/src/Oagents.Core/Abstractions/IAiAgent.cs +++ b/src/Oagents.Core/Abstractions/IAiAgent.cs @@ -1,13 +1,7 @@ - -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.OpenAI; - namespace Microsoft.AI.Agents.Abstractions; public interface IAiAgent : IAgent { void AddToHistory(string message, ChatUserType userType); string AppendChatHistory(string ask); - Task CallFunction(string template, KernelArguments arguments, OpenAIPromptExecutionSettings? settings = null); - Task AddKnowledge(string instruction, string index, KernelArguments arguments); } \ No newline at end of file diff --git a/src/Oagents.Core/Oagents.Core.csproj b/src/Oagents.Core/Oagents.Core.csproj index 1ce891cf..67431c70 100644 --- a/src/Oagents.Core/Oagents.Core.csproj +++ b/src/Oagents.Core/Oagents.Core.csproj @@ -15,8 +15,4 @@ - - - -
\ No newline at end of file diff --git a/src/Oagents.Dapr/AiAgent.cs b/src/Oagents.Dapr/AiAgent.cs index 1537defb..f66bf0e6 100644 --- a/src/Oagents.Dapr/AiAgent.cs +++ b/src/Oagents.Dapr/AiAgent.cs @@ -1,25 +1,13 @@ -using System.Text; -using Dapr.Actors; using Dapr.Actors.Runtime; using Dapr.Client; using Microsoft.AI.Agents.Abstractions; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Microsoft.SemanticKernel.Memory; +using Microsoft.Extensions.AI; namespace Microsoft.AI.Agents.Dapr; -public abstract class AiAgent : Agent, IAiAgent where T: class, new() +public abstract class AiAgent(ActorHost host, DaprClient client, IChatClient chatClient) : Agent(host, client), IAiAgent where T: class, new() { public string StateStore = "agents-statestore"; - public AiAgent(ActorHost host, DaprClient client,ISemanticTextMemory memory, Kernel kernel) - : base(host, client) - { - _memory = memory; - _kernel = kernel; - } - private readonly ISemanticTextMemory _memory; - private readonly Kernel _kernel; protected AgentState state; @@ -46,35 +34,24 @@ public string AppendChatHistory(string ask) return string.Join("\n", state.History.Select(message => $"{message.UserType}: {message.Message}")); } - public virtual async Task CallFunction(string template, KernelArguments arguments, OpenAIPromptExecutionSettings? settings = null) + public async ValueTask CallFunction(string prompt, ChatOptions? chatOptions = null) { - var propmptSettings = (settings == null) ? new OpenAIPromptExecutionSettings { MaxTokens = 18000, Temperature = 0.8, TopP = 1 } - : settings; - var function = _kernel.CreateFunctionFromPrompt(template, propmptSettings); - var result = (await _kernel.InvokeAsync(function, arguments)).ToString(); - AddToHistory(result, ChatUserType.Agent); - await StateManager.SetStateAsync( - StateStore, - state); - return result; + if (chatOptions == null) + { + chatOptions = new ChatOptions() + { + Temperature = 0.8f, + TopP = 1, + MaxOutputTokens = 4096 + }; + } + var response = await chatClient.GetResponseAsync(prompt, chatOptions); + return response.Message.Text!; } - /// - /// Adds knowledge to the - /// - /// The instruction string that uses the value of !index! as a placeholder to inject the data. Example:"Consider the following architectural guidelines: {waf}" - /// Knowledge index - /// The sk arguments, "input" is the argument - /// - public async Task AddKnowledge(string instruction, string index, KernelArguments arguments) + //TODO: Implement using VectorData + public async ValueTask AddKnowledge(string instruction, string index) { - var documents = _memory.SearchAsync(index, arguments["input"].ToString(), 5); - var kbStringBuilder = new StringBuilder(); - await foreach (var doc in documents) - { - kbStringBuilder.AppendLine($"{doc.Metadata.Text}"); - } - arguments[index] = instruction.Replace($"!{index}!", $"{kbStringBuilder}"); - return arguments; + return ""; } } diff --git a/src/Oagents.Dapr/Oagents.Dapr.csproj b/src/Oagents.Dapr/Oagents.Dapr.csproj index 9a7d0965..80e7b005 100644 --- a/src/Oagents.Dapr/Oagents.Dapr.csproj +++ b/src/Oagents.Dapr/Oagents.Dapr.csproj @@ -11,14 +11,16 @@ ai-agents;event-driven-agents - - - + + + + + + + + + - - - -
diff --git a/src/Oagents.Orleans/Agent.cs b/src/Oagents.Orleans/Agent.cs index d65ae7c5..174ffd6c 100644 --- a/src/Oagents.Orleans/Agent.cs +++ b/src/Oagents.Orleans/Agent.cs @@ -1,4 +1,5 @@ using Microsoft.AI.Agents.Abstractions; +using Orleans; using Orleans.Runtime; using Orleans.Streams; @@ -7,6 +8,7 @@ namespace Microsoft.AI.Agents.Orleans; public abstract class Agent : Grain, IGrainWithStringKey, IAgent { protected virtual string Namespace { get; set; } + protected virtual string StreamProvider { get; set; } public abstract Task HandleEvent(Event item); private async Task HandleEvent(Event item, StreamSequenceToken? token) @@ -16,7 +18,7 @@ private async Task HandleEvent(Event item, StreamSequenceToken? token) public async Task PublishEvent(string ns, string id, Event item) { - var streamProvider = this.GetStreamProvider("StreamProvider"); + var streamProvider = this.GetStreamProvider(StreamProvider); var streamId = StreamId.Create(ns, id); var stream = streamProvider.GetStream(streamId); await stream.OnNextAsync(item); @@ -24,7 +26,7 @@ public async Task PublishEvent(string ns, string id, Event item) public async override Task OnActivateAsync(CancellationToken cancellationToken) { - var streamProvider = this.GetStreamProvider("StreamProvider"); + var streamProvider = this.GetStreamProvider(StreamProvider); var streamId = StreamId.Create(Namespace, this.GetPrimaryKeyString()); var stream = streamProvider.GetStream(streamId); await stream.SubscribeAsync(HandleEvent); diff --git a/src/Oagents.Orleans/AiAgent.cs b/src/Oagents.Orleans/AiAgent.cs index 96b47e9e..1176114a 100644 --- a/src/Oagents.Orleans/AiAgent.cs +++ b/src/Oagents.Orleans/AiAgent.cs @@ -1,8 +1,4 @@ -using System.Text; using Microsoft.AI.Agents.Abstractions; -using Microsoft.SemanticKernel; -using Microsoft.SemanticKernel.Connectors.OpenAI; -using Microsoft.SemanticKernel.Memory; using Orleans.Runtime; namespace Microsoft.AI.Agents.Orleans; @@ -10,16 +6,10 @@ namespace Microsoft.AI.Agents.Orleans; public abstract class AiAgent : Agent, IAiAgent where T : class, new() { protected IPersistentState> _state; - protected Kernel _kernel; - private readonly ISemanticTextMemory _memory; - - public AiAgent([PersistentState("state", "messages")] IPersistentState> state, ISemanticTextMemory memory, Kernel kernel) + public AiAgent([PersistentState("state", "messages")] IPersistentState> state) { - ArgumentNullException.ThrowIfNull(kernel); - _state = state; - _memory = memory; - _kernel = kernel; + _state = state; } public override Task OnActivateAsync(CancellationToken cancellationToken) @@ -43,35 +33,4 @@ public string AppendChatHistory(string ask) AddToHistory(ask, ChatUserType.User); return string.Join("\n", _state.State.History.Select(message => $"{message.UserType}: {message.Message}")); } - - public virtual async Task CallFunction(string template, KernelArguments arguments, OpenAIPromptExecutionSettings? settings = null) - { - // TODO: extract this to be configurable - - var propmptSettings = settings ?? new OpenAIPromptExecutionSettings { MaxTokens = 4096, Temperature = 0.8, TopP = 1 }; - var function = _kernel.CreateFunctionFromPrompt(template, propmptSettings); - var result = (await _kernel.InvokeAsync(function, arguments)).ToString(); - AddToHistory(result, ChatUserType.Agent); - await _state.WriteStateAsync(); - return result; - } - - /// - /// Adds knowledge to the - /// - /// The instruction string that uses the value of !index! as a placeholder to inject the data. Example:"Consider the following architectural guidelines: {waf}" - /// Knowledge index - /// The sk arguments, "input" is the argument - /// - public async Task AddKnowledge(string instruction, string index, KernelArguments arguments) - { - var documents = _memory.SearchAsync(index, arguments["input"].ToString(), 5); - var kbStringBuilder = new StringBuilder(); - await foreach (var doc in documents) - { - kbStringBuilder.AppendLine($"{doc.Metadata.Text}"); - } - arguments[index] = instruction.Replace($"!{index}!", $"{kbStringBuilder}"); - return arguments; - } } \ No newline at end of file diff --git a/src/Oagents.Orleans/EventSurrogate.cs b/src/Oagents.Orleans/EventSurrogate.cs index 451cd339..2a0a44fd 100644 --- a/src/Oagents.Orleans/EventSurrogate.cs +++ b/src/Oagents.Orleans/EventSurrogate.cs @@ -1,4 +1,5 @@ using Microsoft.AI.Agents.Abstractions; +using Orleans; namespace Microsoft.AI.Agents.Orleans; diff --git a/src/Oagents.Orleans/Oagents.Orleans.csproj b/src/Oagents.Orleans/Oagents.Orleans.csproj index a7fde5e0..32579ff5 100644 --- a/src/Oagents.Orleans/Oagents.Orleans.csproj +++ b/src/Oagents.Orleans/Oagents.Orleans.csproj @@ -12,8 +12,7 @@ - - + diff --git a/src/Oagents.Orleans/Resolvers.cs b/src/Oagents.Orleans/Resolvers.cs deleted file mode 100644 index 1ab7210a..00000000 --- a/src/Oagents.Orleans/Resolvers.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Microsoft.SemanticKernel.Memory; -using Microsoft.SemanticKernel; - -namespace Microsoft.AI.Agents.Orleans -{ - public class Resolvers - { - public delegate Kernel KernelResolver(string agent); - public delegate ISemanticTextMemory SemanticTextMemoryResolver(string agent); - } -}