diff --git a/.github/workflows/transport-ci.yml b/.github/workflows/transport-ci.yml index 6bf4548db8..57ad872b07 100644 --- a/.github/workflows/transport-ci.yml +++ b/.github/workflows/transport-ci.yml @@ -223,7 +223,7 @@ jobs: - name: Commit and push UI changes run: | - git add . + git add transports/ui if git diff --staged --quiet; then echo "No changes to commit. UI build is already up to date." else diff --git a/core/bifrost.go b/core/bifrost.go index be04b2c5ef..9d96a04eb7 100644 --- a/core/bifrost.go +++ b/core/bifrost.go @@ -568,7 +568,12 @@ func (bifrost *Bifrost) GetMCPClients() ([]schemas.MCPClient, error) { // }) func (bifrost *Bifrost) AddMCPClient(config schemas.MCPClientConfig) error { if bifrost.mcpManager == nil { - return fmt.Errorf("MCP is not configured in this Bifrost instance") + manager := &MCPManager{ + clientMap: make(map[string]*MCPClient), + logger: bifrost.logger, + } + + bifrost.mcpManager = manager } return bifrost.mcpManager.AddClient(config) diff --git a/docs/benchmarks.md b/docs/benchmarks.md index 92d8b78120..f90587654d 100644 --- a/docs/benchmarks.md +++ b/docs/benchmarks.md @@ -43,6 +43,8 @@ _\*Bifrost's overhead is measured at 59 µs on t3.medium and 11 µs on t3.xlarge **Note**: On the t3.xlarge, we tested with significantly larger response payloads (~10 KB average vs ~1 KB on t3.medium). Even so, response parsing time dropped dramatically thanks to better CPU throughput and Bifrost's optimized memory reuse. +**Disclaimer**: These metrics are measured without the UI enabled. When using the UI, there is no drop in performance - only memory usage increases due to the additional UI build being served. + --- ## 🎯 Key Performance Highlights diff --git a/transports/bifrost-http/handlers/config.go b/transports/bifrost-http/handlers/config.go index e82a9d3c8d..2e4a143821 100644 --- a/transports/bifrost-http/handlers/config.go +++ b/transports/bifrost-http/handlers/config.go @@ -37,7 +37,6 @@ func NewConfigHandler(client *bifrost.Bifrost, logger schemas.Logger, store *lib func (h *ConfigHandler) RegisterRoutes(r *router.Router) { r.GET("/api/config", h.GetConfig) r.PUT("/api/config", h.handleUpdateConfig) - r.POST("/api/config/save", h.SaveConfig) } // GetConfig handles GET /config - Get the current configuration @@ -74,27 +73,22 @@ func (h *ConfigHandler) handleUpdateConfig(ctx *fasthttp.RequestCtx) { updatedConfig.InitialPoolSize = req.InitialPoolSize } + if req.LogQueueSize != currentConfig.LogQueueSize { + updatedConfig.LogQueueSize = req.LogQueueSize + } + // Update the store with the new config h.store.ClientConfig = updatedConfig - ctx.SetStatusCode(fasthttp.StatusOK) - SendJSON(ctx, map[string]any{ - "status": "success", - "message": "Configuration updated successfully", - }, h.logger) -} - -// SaveConfig handles POST /config/save - Persist current configuration to JSON file -func (h *ConfigHandler) SaveConfig(ctx *fasthttp.RequestCtx) { - // Save current configuration back to the original JSON file if err := h.store.SaveConfig(); err != nil { h.logger.Warn(fmt.Sprintf("Failed to save configuration: %v", err)) SendError(ctx, fasthttp.StatusInternalServerError, fmt.Sprintf("Failed to save configuration: %v", err), h.logger) return } + ctx.SetStatusCode(fasthttp.StatusOK) SendJSON(ctx, map[string]any{ "status": "success", - "message": "Configuration saved successfully", + "message": "Configuration updated successfully", }, h.logger) } diff --git a/transports/bifrost-http/handlers/logging.go b/transports/bifrost-http/handlers/logging.go index 6baa429e70..5fd01efc6e 100644 --- a/transports/bifrost-http/handlers/logging.go +++ b/transports/bifrost-http/handlers/logging.go @@ -32,9 +32,10 @@ func NewLoggingHandler(logManager logging.LogManager, logger schemas.Logger) *Lo func (h *LoggingHandler) RegisterRoutes(r *router.Router) { // Log retrieval with filtering, search, and pagination r.GET("/api/logs", h.GetLogs) + r.GET("/api/logs/dropped", h.GetDroppedRequests) } -// GetLogs handles GET /v1/logs - Get logs with filtering, search, and pagination via query parameters +// GetLogs handles GET /api/logs - Get logs with filtering, search, and pagination via query parameters func (h *LoggingHandler) GetLogs(ctx *fasthttp.RequestCtx) { // Parse query parameters into filters filters := &logging.SearchFilters{} @@ -139,6 +140,12 @@ func (h *LoggingHandler) GetLogs(ctx *fasthttp.RequestCtx) { SendJSON(ctx, result, h.logger) } +// GetDroppedRequests handles GET /api/logs/dropped - Get the number of dropped requests +func (h *LoggingHandler) GetDroppedRequests(ctx *fasthttp.RequestCtx) { + droppedRequests := h.logManager.GetDroppedRequests() + SendJSON(ctx, map[string]int64{"dropped_requests": droppedRequests}, h.logger) +} + // Helper functions // parseCommaSeparated splits a comma-separated string into a slice diff --git a/transports/bifrost-http/handlers/mcp.go b/transports/bifrost-http/handlers/mcp.go index 556c28eb21..9e40bc2a9b 100644 --- a/transports/bifrost-http/handlers/mcp.go +++ b/transports/bifrost-http/handlers/mcp.go @@ -72,7 +72,7 @@ func (h *MCPHandler) ExecuteTool(ctx *fasthttp.RequestCtx) { SendJSON(ctx, resp, h.logger) } -// GetMCPClients handles GET /mcp/clients - Get all MCP clients +// GetMCPClients handles GET /api/mcp/clients - Get all MCP clients func (h *MCPHandler) GetMCPClients(ctx *fasthttp.RequestCtx) { // Get clients from store config configsInStore := h.store.MCPConfig @@ -120,7 +120,7 @@ func (h *MCPHandler) GetMCPClients(ctx *fasthttp.RequestCtx) { SendJSON(ctx, clients, h.logger) } -// ReconnectMCPClient handles POST /mcp/client/{name}/reconnect - Reconnect an MCP client +// ReconnectMCPClient handles POST /api/mcp/client/{name}/reconnect - Reconnect an MCP client func (h *MCPHandler) ReconnectMCPClient(ctx *fasthttp.RequestCtx) { name, err := getNameFromCtx(ctx) if err != nil { @@ -139,7 +139,7 @@ func (h *MCPHandler) ReconnectMCPClient(ctx *fasthttp.RequestCtx) { }, h.logger) } -// AddMCPClient handles POST /mcp/client - Add a new MCP client +// AddMCPClient handles POST /api/mcp/client - Add a new MCP client func (h *MCPHandler) AddMCPClient(ctx *fasthttp.RequestCtx) { var req schemas.MCPClientConfig if err := json.Unmarshal(ctx.PostBody(), &req); err != nil { @@ -152,13 +152,19 @@ func (h *MCPHandler) AddMCPClient(ctx *fasthttp.RequestCtx) { return } + if err := h.store.SaveConfig(); err != nil { + h.logger.Warn(fmt.Sprintf("Failed to save configuration: %v", err)) + SendError(ctx, fasthttp.StatusInternalServerError, fmt.Sprintf("Failed to save configuration: %v", err), h.logger) + return + } + SendJSON(ctx, map[string]any{ "status": "success", "message": "MCP client added successfully", }, h.logger) } -// EditMCPClientTools handles PUT /mcp/client/{name} - Edit MCP client tools +// EditMCPClientTools handles PUT /api/mcp/client/{name} - Edit MCP client tools func (h *MCPHandler) EditMCPClientTools(ctx *fasthttp.RequestCtx) { name, err := getNameFromCtx(ctx) if err != nil { @@ -180,13 +186,19 @@ func (h *MCPHandler) EditMCPClientTools(ctx *fasthttp.RequestCtx) { return } + if err := h.store.SaveConfig(); err != nil { + h.logger.Warn(fmt.Sprintf("Failed to save configuration: %v", err)) + SendError(ctx, fasthttp.StatusInternalServerError, fmt.Sprintf("Failed to save configuration: %v", err), h.logger) + return + } + SendJSON(ctx, map[string]any{ "status": "success", "message": "MCP client tools edited successfully", }, h.logger) } -// RemoveMCPClient handles DELETE /mcp/client/{name} - Remove an MCP client +// RemoveMCPClient handles DELETE /api/mcp/client/{name} - Remove an MCP client func (h *MCPHandler) RemoveMCPClient(ctx *fasthttp.RequestCtx) { name, err := getNameFromCtx(ctx) if err != nil { @@ -199,6 +211,12 @@ func (h *MCPHandler) RemoveMCPClient(ctx *fasthttp.RequestCtx) { return } + if err := h.store.SaveConfig(); err != nil { + h.logger.Warn(fmt.Sprintf("Failed to save configuration: %v", err)) + SendError(ctx, fasthttp.StatusInternalServerError, fmt.Sprintf("Failed to save configuration: %v", err), h.logger) + return + } + SendJSON(ctx, map[string]any{ "status": "success", "message": "MCP client removed successfully", diff --git a/transports/bifrost-http/handlers/providers.go b/transports/bifrost-http/handlers/providers.go index 5684de5aa6..0dd5afd964 100644 --- a/transports/bifrost-http/handlers/providers.go +++ b/transports/bifrost-http/handlers/providers.go @@ -82,7 +82,7 @@ func (h *ProviderHandler) RegisterRoutes(r *router.Router) { r.DELETE("/api/providers/{provider}", h.DeleteProvider) } -// ListProviders handles GET /providers - List all providers +// ListProviders handles GET /api/providers - List all providers func (h *ProviderHandler) ListProviders(ctx *fasthttp.RequestCtx) { providers, err := h.store.GetAllProviders() if err != nil { @@ -119,7 +119,7 @@ func (h *ProviderHandler) ListProviders(ctx *fasthttp.RequestCtx) { SendJSON(ctx, response, h.logger) } -// GetProvider handles GET /providers/{provider} - Get specific provider +// GetProvider handles GET /api/providers/{provider} - Get specific provider func (h *ProviderHandler) GetProvider(ctx *fasthttp.RequestCtx) { provider, err := getProviderFromCtx(ctx) if err != nil { @@ -138,7 +138,7 @@ func (h *ProviderHandler) GetProvider(ctx *fasthttp.RequestCtx) { SendJSON(ctx, response, h.logger) } -// AddProvider handles POST /providers - Add a new provider +// AddProvider handles POST /api/providers - Add a new provider func (h *ProviderHandler) AddProvider(ctx *fasthttp.RequestCtx) { var req AddProviderRequest if err := json.Unmarshal(ctx.PostBody(), &req); err != nil { @@ -200,6 +200,12 @@ func (h *ProviderHandler) AddProvider(ctx *fasthttp.RequestCtx) { return } + if err := h.store.SaveConfig(); err != nil { + h.logger.Warn(fmt.Sprintf("Failed to save configuration: %v", err)) + SendError(ctx, fasthttp.StatusInternalServerError, fmt.Sprintf("Failed to save configuration: %v", err), h.logger) + return + } + h.logger.Info(fmt.Sprintf("Provider %s added successfully", req.Provider)) response := h.getProviderResponseFromConfig(req.Provider, config) @@ -207,7 +213,7 @@ func (h *ProviderHandler) AddProvider(ctx *fasthttp.RequestCtx) { SendJSON(ctx, response, h.logger) } -// UpdateProvider handles PUT /providers/{provider} - Update provider config +// UpdateProvider handles PUT /api/providers/{provider} - Update provider config // NOTE: This endpoint expects ALL fields to be provided in the request body, // including both edited and non-edited fields. Partial updates are not supported. // The frontend should send the complete provider configuration. @@ -340,6 +346,12 @@ func (h *ProviderHandler) UpdateProvider(ctx *fasthttp.RequestCtx) { return } + if err := h.store.SaveConfig(); err != nil { + h.logger.Warn(fmt.Sprintf("Failed to save configuration: %v", err)) + SendError(ctx, fasthttp.StatusInternalServerError, fmt.Sprintf("Failed to save configuration: %v", err), h.logger) + return + } + if config.ConcurrencyAndBufferSize.Concurrency != oldConfigRaw.ConcurrencyAndBufferSize.Concurrency || config.ConcurrencyAndBufferSize.BufferSize != oldConfigRaw.ConcurrencyAndBufferSize.BufferSize { // Update concurrency and queue configuration in Bifrost @@ -354,7 +366,7 @@ func (h *ProviderHandler) UpdateProvider(ctx *fasthttp.RequestCtx) { SendJSON(ctx, response, h.logger) } -// DeleteProvider handles DELETE /providers/{provider} - Remove provider +// DeleteProvider handles DELETE /api/providers/{provider} - Remove provider func (h *ProviderHandler) DeleteProvider(ctx *fasthttp.RequestCtx) { provider, err := getProviderFromCtx(ctx) if err != nil { @@ -375,6 +387,12 @@ func (h *ProviderHandler) DeleteProvider(ctx *fasthttp.RequestCtx) { return } + if err := h.store.SaveConfig(); err != nil { + h.logger.Warn(fmt.Sprintf("Failed to save configuration: %v", err)) + SendError(ctx, fasthttp.StatusInternalServerError, fmt.Sprintf("Failed to save configuration: %v", err), h.logger) + return + } + h.logger.Info(fmt.Sprintf("Provider %s removed successfully", provider)) response := ProviderResponse{ diff --git a/transports/bifrost-http/lib/config.go b/transports/bifrost-http/lib/config.go index b441618d38..31dd113ba5 100644 --- a/transports/bifrost-http/lib/config.go +++ b/transports/bifrost-http/lib/config.go @@ -9,9 +9,10 @@ import ( // ClientConfig represents the core configuration for Bifrost HTTP transport and the Bifrost Client. // It includes settings for excess request handling, Prometheus metrics, and initial pool size. type ClientConfig struct { - DropExcessRequests bool `json:"drop_excess_requests"` - InitialPoolSize int `json:"initial_pool_size"` - PrometheusLabels []string `json:"prometheus_labels"` + DropExcessRequests bool `json:"drop_excess_requests"` // Drop excess requests if the provider queue is full + InitialPoolSize int `json:"initial_pool_size"` // The initial pool size for the bifrost client + PrometheusLabels []string `json:"prometheus_labels"` // The labels to be used for prometheus metrics + LogQueueSize int `json:"log_queue_size"` // The size of the log queue, additional requests will be dropped (not saved for ui) if the queue is full } // ProviderConfig represents the configuration for a specific AI model provider. diff --git a/transports/bifrost-http/lib/store.go b/transports/bifrost-http/lib/store.go index dda9dda50a..4d2b7af6de 100644 --- a/transports/bifrost-http/lib/store.go +++ b/transports/bifrost-http/lib/store.go @@ -49,6 +49,13 @@ type EnvKeyInfo struct { ConfigPath string // Path in config where this env var is used } +var DefaultClientConfig = ClientConfig{ + DropExcessRequests: false, + PrometheusLabels: []string{}, + InitialPoolSize: 300, + LogQueueSize: 1000, +} + // NewConfigStore creates a new in-memory configuration store instance. func NewConfigStore(logger schemas.Logger) (*ConfigStore, error) { return &ConfigStore{ @@ -83,14 +90,10 @@ func (s *ConfigStore) LoadFromConfig(configPath string) error { data, err := os.ReadFile(configPath) if err != nil { if os.IsNotExist(err) { - s.logger.Info(fmt.Sprintf("Config file %s not found, starting with default configuration. Providers can be added dynamically via API.", configPath)) + s.logger.Info(fmt.Sprintf("Config file %s not found, starting with default configuration. Providers can be added dynamically via UI.", configPath)) // Initialize with default configuration - s.ClientConfig = ClientConfig{ - DropExcessRequests: false, - PrometheusLabels: []string{}, - InitialPoolSize: 300, - } + s.ClientConfig = DefaultClientConfig s.Providers = make(map[schemas.ModelProvider]ProviderConfig) s.MCPConfig = nil @@ -122,12 +125,7 @@ func (s *ConfigStore) LoadFromConfig(configPath string) error { } s.ClientConfig = clientConfig } else { - // Default client configuration - s.ClientConfig = ClientConfig{ - DropExcessRequests: false, - PrometheusLabels: []string{}, - InitialPoolSize: 300, - } + s.ClientConfig = DefaultClientConfig } // Process provider configurations @@ -246,15 +244,23 @@ func (s *ConfigStore) processEnvValue(value string) (string, string, error) { return value, "", nil } -// WriteConfigToFile writes the current in-memory configuration back to a JSON file +// writeConfigToFile writes the current in-memory configuration back to a JSON file // in the exact same format that LoadFromConfig expects. This enables persistence -// of runtime configuration changes. -func (s *ConfigStore) WriteConfigToFile(configPath string) error { +// of runtime configuration changes with environment variable references restored. +func (s *ConfigStore) writeConfigToFile(configPath string) error { s.mu.RLock() defer s.mu.RUnlock() s.logger.Info(fmt.Sprintf("Writing current configuration to: %s", configPath)) + // Create a map for quick lookup of env vars by provider and path + envVarsByPath := make(map[string]string) + for envVar, infos := range s.EnvKeys { + for _, info := range infos { + envVarsByPath[info.ConfigPath] = envVar + } + } + // Prepare the output structure output := struct { Providers map[string]interface{} `json:"providers"` @@ -262,17 +268,33 @@ func (s *ConfigStore) WriteConfigToFile(configPath string) error { Client ClientConfig `json:"client,omitempty"` }{ Providers: make(map[string]interface{}), - MCP: s.MCPConfig, + MCP: s.getRestoredMCPConfig(envVarsByPath), Client: s.ClientConfig, } - // Convert providers back to the original format + // Convert providers back to the original format with env variable restoration for provider, config := range s.Providers { providerName := string(provider) - // Create provider config without processed values (keep env.* references) + // Create redacted keys that restore env.* references + redactedKeys := make([]schemas.Key, len(config.Keys)) + for i, key := range config.Keys { + redactedKeys[i] = schemas.Key{ + Models: key.Models, + Weight: key.Weight, + } + + path := fmt.Sprintf("providers.%s.keys[%d]", provider, i) + if envVar, ok := envVarsByPath[path]; ok { + redactedKeys[i].Value = "env." + envVar + } else { + redactedKeys[i].Value = key.Value // Keep actual value, no asterisk redaction + } + } + + // Create provider config with restored env references providerConfig := map[string]interface{}{ - "keys": config.Keys, // Note: This will contain actual values, not env refs + "keys": redactedKeys, } if config.NetworkConfig != nil { @@ -283,8 +305,10 @@ func (s *ConfigStore) WriteConfigToFile(configPath string) error { providerConfig["concurrency_and_buffer_size"] = config.ConcurrencyAndBufferSize } + // Handle meta config with env variable restoration if config.MetaConfig != nil { - providerConfig["meta_config"] = *config.MetaConfig + restoredMetaConfig := s.restoreMetaConfigEnvVars(provider, *config.MetaConfig, envVarsByPath) + providerConfig["meta_config"] = restoredMetaConfig } output.Providers[providerName] = providerConfig @@ -305,12 +329,148 @@ func (s *ConfigStore) WriteConfigToFile(configPath string) error { return nil } +// getRestoredMCPConfig creates a copy of MCP config with env variable references restored +func (s *ConfigStore) getRestoredMCPConfig(envVarsByPath map[string]string) *schemas.MCPConfig { + if s.MCPConfig == nil { + return nil + } + + // Create a copy of the MCP config + mcpConfigCopy := &schemas.MCPConfig{ + ClientConfigs: make([]schemas.MCPClientConfig, len(s.MCPConfig.ClientConfigs)), + } + + // Process each client config + for i, clientConfig := range s.MCPConfig.ClientConfigs { + configCopy := schemas.MCPClientConfig{ + Name: clientConfig.Name, + ConnectionType: clientConfig.ConnectionType, + StdioConfig: clientConfig.StdioConfig, + ToolsToExecute: append([]string{}, clientConfig.ToolsToExecute...), + ToolsToSkip: append([]string{}, clientConfig.ToolsToSkip...), + } + + // Handle connection string with env variable restoration + if clientConfig.ConnectionString != nil { + connStr := *clientConfig.ConnectionString + path := fmt.Sprintf("mcp.client_configs[%d].connection_string", i) + if envVar, ok := envVarsByPath[path]; ok { + connStr = "env." + envVar + } + // If not from env var, keep actual value (no asterisk redaction) + configCopy.ConnectionString = &connStr + } + + mcpConfigCopy.ClientConfigs[i] = configCopy + } + + return mcpConfigCopy +} + +// restoreMetaConfigEnvVars creates a copy of meta config with env variable references restored +func (s *ConfigStore) restoreMetaConfigEnvVars(provider schemas.ModelProvider, metaConfig schemas.MetaConfig, envVarsByPath map[string]string) interface{} { + switch m := metaConfig.(type) { + case *meta.AzureMetaConfig: + azureConfig := *m // Copy the struct + + // Restore endpoint if it came from env var + path := fmt.Sprintf("providers.%s.meta_config.endpoint", provider) + if envVar, ok := envVarsByPath[path]; ok { + azureConfig.Endpoint = "env." + envVar + } + // Otherwise keep actual value (no asterisk redaction) + + // Restore API version if it came from env var + if azureConfig.APIVersion != nil { + path = fmt.Sprintf("providers.%s.meta_config.api_version", provider) + if envVar, ok := envVarsByPath[path]; ok { + apiVersion := "env." + envVar + azureConfig.APIVersion = &apiVersion + } + // Otherwise keep actual value (no asterisk redaction) + } + + return azureConfig + + case *meta.BedrockMetaConfig: + bedrockConfig := *m // Copy the struct + + // Restore secret access key if it came from env var + path := fmt.Sprintf("providers.%s.meta_config.secret_access_key", provider) + if envVar, ok := envVarsByPath[path]; ok { + bedrockConfig.SecretAccessKey = "env." + envVar + } + // Otherwise keep actual value (no asterisk redaction) + + // Restore region if it came from env var + if bedrockConfig.Region != nil { + path = fmt.Sprintf("providers.%s.meta_config.region", provider) + if envVar, ok := envVarsByPath[path]; ok { + region := "env." + envVar + bedrockConfig.Region = ®ion + } + // Otherwise keep actual value (no asterisk redaction) + } + + // Restore session token if it came from env var + if bedrockConfig.SessionToken != nil { + path = fmt.Sprintf("providers.%s.meta_config.session_token", provider) + if envVar, ok := envVarsByPath[path]; ok { + sessionToken := "env." + envVar + bedrockConfig.SessionToken = &sessionToken + } + // Otherwise keep actual value (no asterisk redaction) + } + + // Restore ARN if it came from env var + if bedrockConfig.ARN != nil { + path = fmt.Sprintf("providers.%s.meta_config.arn", provider) + if envVar, ok := envVarsByPath[path]; ok { + arn := "env." + envVar + bedrockConfig.ARN = &arn + } + // Otherwise keep actual value (no asterisk redaction) + } + + return bedrockConfig + + case *meta.VertexMetaConfig: + vertexConfig := *m // Copy the struct + + // Restore project ID if it came from env var + path := fmt.Sprintf("providers.%s.meta_config.project_id", provider) + if envVar, ok := envVarsByPath[path]; ok { + vertexConfig.ProjectID = "env." + envVar + } + // Otherwise keep actual value (no asterisk redaction) + + // Restore region if it came from env var + path = fmt.Sprintf("providers.%s.meta_config.region", provider) + if envVar, ok := envVarsByPath[path]; ok { + vertexConfig.Region = "env." + envVar + } + // Otherwise keep actual value (no asterisk redaction) + + // Restore auth credentials if it came from env var + path = fmt.Sprintf("providers.%s.meta_config.auth_credentials", provider) + if envVar, ok := envVarsByPath[path]; ok { + vertexConfig.AuthCredentials = "env." + envVar + } + // Otherwise keep actual value (no asterisk redaction) + + return vertexConfig + + default: + return metaConfig + } +} + // SaveConfig writes the current configuration back to the original config file path func (s *ConfigStore) SaveConfig() error { if s.configPath == "" { return fmt.Errorf("no config path set - use LoadFromConfig first") } - return s.WriteConfigToFile(s.configPath) + return s.writeConfigToFile(s.configPath) } // parseMetaConfig converts raw JSON to the appropriate provider-specific meta config interface @@ -1263,7 +1423,5 @@ func (s *ConfigStore) autoDetectProviders() { if detectedCount > 0 { s.logger.Info(fmt.Sprintf("Auto-configured %d provider(s) from environment variables", detectedCount)) - } else { - s.logger.Info("No common provider environment variables detected. Use the web UI or configuration file to add providers.") } } diff --git a/transports/bifrost-http/main.go b/transports/bifrost-http/main.go index b8105f4dce..495089abf0 100644 --- a/transports/bifrost-http/main.go +++ b/transports/bifrost-http/main.go @@ -296,7 +296,7 @@ func main() { // Initialize logging plugin with app-dir based path loggingConfig := &logging.Config{ DatabasePath: logDir, - LogQueueSize: 1000, + LogQueueSize: store.ClientConfig.LogQueueSize, } loggingPlugin, err := logging.NewLoggerPlugin(loggingConfig, logger) diff --git a/transports/bifrost-http/plugins/logging/main.go b/transports/bifrost-http/plugins/logging/main.go index f20ef61b8b..97b9c07a43 100644 --- a/transports/bifrost-http/plugins/logging/main.go +++ b/transports/bifrost-http/plugins/logging/main.go @@ -7,6 +7,7 @@ import ( "context" "fmt" "sync" + "sync/atomic" "time" "github.com/dgraph-io/badger/v4" @@ -25,6 +26,7 @@ const ( // Index types ProviderIndex = "provider:" ModelIndex = "model:" + ObjectIndex = "object:" TimestampIndex = "timestamp:" StatusIndex = "status:" LatencyIndex = "latency:" @@ -119,15 +121,16 @@ type LogCallback func(*LogEntry) // LoggerPlugin implements the schemas.Plugin interface type LoggerPlugin struct { - config *Config - db *badger.DB - mu sync.RWMutex - stats *LogStats - logQueue chan *LogEntry - done chan struct{} - wg sync.WaitGroup - logger schemas.Logger - logCallback LogCallback // Callback for real-time log updates + config *Config + db *badger.DB + mu sync.RWMutex + stats *LogStats + logQueue chan *LogEntry + done chan struct{} + wg sync.WaitGroup + logger schemas.Logger + logCallback LogCallback // Callback for real-time log updates + droppedRequests atomic.Int64 } // NewLoggerPlugin creates a new logging plugin @@ -151,7 +154,7 @@ func NewLoggerPlugin(config *Config, logger schemas.Logger) (*LoggerPlugin, erro plugin := &LoggerPlugin{ config: config, db: db, - logQueue: make(chan *LogEntry, config.LogQueueSize), // Buffer for 1000 log entries + logQueue: make(chan *LogEntry, config.LogQueueSize), done: make(chan struct{}), logger: logger, stats: &LogStats{ @@ -277,8 +280,9 @@ func (p *LoggerPlugin) PostHook(ctx *context.Context, result *schemas.BifrostRes // Calculate latency latency := float64(time.Since(startTime).Milliseconds()) - // Create log entry + // Create log entry with guaranteed unique ID logEntry := &LogEntry{ + ID: uuid.New().String(), // Always generate a unique ID Timestamp: startTime, } @@ -308,11 +312,20 @@ func (p *LoggerPlugin) PostHook(ctx *context.Context, result *schemas.BifrostRes logEntry.Status = "success" if result != nil { - logEntry.ID = result.ID - logEntry.Object = result.Object + // Use result ID if available, otherwise keep the generated UUID + if result.ID != "" { + logEntry.ID = result.ID + } logEntry.Model = result.Model logEntry.Latency = &latency logEntry.TokenUsage = &result.Usage + logEntry.Object = result.Object + + if ctx != nil && result.Object == "" { + if object, ok := (*ctx).Value(RequestObjectKey).(string); ok { + logEntry.Object = object + } + } // Handle ExtraFields safely // Set provider if available @@ -324,10 +337,6 @@ func (p *LoggerPlugin) PostHook(ctx *context.Context, result *schemas.BifrostRes if result.ExtraFields.Params.Tools != nil { logEntry.Tools = result.ExtraFields.Params.Tools logEntry.Params = &result.ExtraFields.Params - - if result.ID == "" { - logEntry.ID = uuid.New().String() - } } // Extract chat history if available @@ -350,10 +359,12 @@ func (p *LoggerPlugin) PostHook(ctx *context.Context, result *schemas.BifrostRes if result.ExtraFields.ChatHistory != nil { logEntry.InputHistory = *result.ExtraFields.ChatHistory } else { - if chatHistory, ok := (*ctx).Value(RequestChatHistory).([]schemas.BifrostMessage); ok { - logEntry.InputHistory = chatHistory - } else { - logEntry.InputHistory = []schemas.BifrostMessage{} + if ctx != nil { + if chatHistory, ok := (*ctx).Value(RequestChatHistory).([]schemas.BifrostMessage); ok { + logEntry.InputHistory = chatHistory + } else { + logEntry.InputHistory = []schemas.BifrostMessage{} + } } } @@ -371,6 +382,7 @@ func (p *LoggerPlugin) PostHook(ctx *context.Context, result *schemas.BifrostRes default: // Queue is full, log warning but don't block the request p.logger.Warn("log queue is full, dropping log entry") + p.droppedRequests.Add(1) } return result, err, nil diff --git a/transports/bifrost-http/plugins/logging/utils.go b/transports/bifrost-http/plugins/logging/utils.go index 7642b9922c..2e7db2805d 100644 --- a/transports/bifrost-http/plugins/logging/utils.go +++ b/transports/bifrost-http/plugins/logging/utils.go @@ -60,6 +60,14 @@ func (p *LoggerPlugin) createIndexes(txn *badger.Txn, entry *LogEntry) error { } } + // Object index + if entry.Object != "" { + objectKey := fmt.Sprintf("%s%s%s:%d:%s", IndexPrefix, ObjectIndex, entry.Object, timestamp, entry.ID) + if err := txn.Set([]byte(objectKey), []byte(entry.ID)); err != nil { + return err + } + } + // Timestamp index timestampKey := fmt.Sprintf("%s%s%d:%s", IndexPrefix, TimestampIndex, timestamp, entry.ID) if err := txn.Set([]byte(timestampKey), []byte(entry.ID)); err != nil { @@ -93,13 +101,10 @@ func (p *LoggerPlugin) createIndexes(txn *badger.Txn, entry *LogEntry) error { return nil } -// SearchLogs searches for log entries based on filters and pagination options +// SearchLogs searches for log entries based on filters and pagination func (p *LoggerPlugin) SearchLogs(filters *SearchFilters, pagination *PaginationOptions) (*SearchResult, error) { - var result SearchResult - var successfulRequests int64 - var totalLatency float64 - var logsWithLatency int - var totalTokens int64 + p.mu.RLock() + defer p.mu.RUnlock() if pagination == nil { pagination = &PaginationOptions{ @@ -110,67 +115,46 @@ func (p *LoggerPlugin) SearchLogs(filters *SearchFilters, pagination *Pagination } } - // Initialize result stats - result.Stats.TotalRequests = 0 - result.Stats.SuccessRate = 0 - result.Stats.AverageLatency = 0 - result.Stats.TotalTokens = 0 - result.Pagination = *pagination + var matchingIDs []string + var allLogs []LogEntry + seenIDs := make(map[string]bool) + + // Statistics variables + var successfulRequests int64 + var totalLatency float64 + var totalTokens int64 + var logsWithLatency int64 err := p.db.View(func(txn *badger.Txn) error { - // Get matching IDs using indexes - var matchingIDs []string if filters != nil { + // Use indexes for efficient filtering matchingIDs = p.searchWithIndexes(txn, filters) } else { + // Fallback to full scan if indexing is disabled matchingIDs = p.searchFullScan(txn) } - // Early return if no matches - if len(matchingIDs) == 0 { - result.Stats.TotalRequests = 0 - return nil - } - - // Sort IDs based on pagination options - p.sortIDs(txn, matchingIDs, pagination.SortBy, pagination.Order) - - // Calculate total for stats - result.Stats.TotalRequests = int64(len(matchingIDs)) - - // Apply offset and limit for efficient pagination - start := pagination.Offset - if start >= len(matchingIDs) { - return nil - } - end := min(start+pagination.Limit, len(matchingIDs)) - pageIDs := matchingIDs[start:end] + // Fetch all matching logs, deduplicating by ID + for _, id := range matchingIDs { + if !seenIDs[id] { + if entry, err := p.getLogEntryByID(txn, id); err == nil && p.matchesFilters(entry, filters) { + allLogs = append(allLogs, *entry) + seenIDs[id] = true - // Fetch only the required log entries for the current page - for _, id := range pageIDs { - entry, err := p.getLogEntryByID(txn, id) - if err != nil { - continue - } - - // Verify the entry matches all filters - if p.matchesFilters(entry, filters) { - result.Logs = append(result.Logs, *entry) - - // Update statistics - if entry.Status == "success" { - successfulRequests++ - } - if entry.Latency != nil { - totalLatency += *entry.Latency - logsWithLatency++ - } - if entry.TokenUsage != nil { - totalTokens += int64(entry.TokenUsage.TotalTokens) + // Update statistics + if entry.Status == "success" { + successfulRequests++ + } + if entry.Latency != nil { + totalLatency += *entry.Latency + logsWithLatency++ + } + if entry.TokenUsage != nil { + totalTokens += int64(entry.TokenUsage.TotalTokens) + } } } } - return nil }) @@ -178,16 +162,43 @@ func (p *LoggerPlugin) SearchLogs(filters *SearchFilters, pagination *Pagination return nil, err } - // Calculate final statistics - if result.Stats.TotalRequests > 0 { - result.Stats.SuccessRate = float64(successfulRequests) / float64(result.Stats.TotalRequests) * 100 + // Sort logs based on pagination options + p.sortLogs(allLogs, pagination.SortBy, pagination.Order) + + // Apply pagination + total := len(allLogs) + start := pagination.Offset + end := min(pagination.Offset+pagination.Limit, total) + if start > total { + start = total } - if logsWithLatency > 0 { - result.Stats.AverageLatency = totalLatency / float64(logsWithLatency) + + // Calculate final statistics + var successRate float64 + if total > 0 { + successRate = float64(successfulRequests) / float64(total) * 100 } - result.Stats.TotalTokens = totalTokens - return &result, nil + var averageLatency float64 + if logsWithLatency > 0 { + averageLatency = totalLatency / float64(logsWithLatency) + } + + return &SearchResult{ + Logs: allLogs[start:end], + Pagination: *pagination, + Stats: struct { + TotalRequests int64 `json:"total_requests"` + SuccessRate float64 `json:"success_rate"` + AverageLatency float64 `json:"average_latency"` + TotalTokens int64 `json:"total_tokens"` + }{ + TotalRequests: int64(total), + SuccessRate: successRate, + AverageLatency: averageLatency, + TotalTokens: totalTokens, + }, + }, nil } // searchWithIndexes uses indexes to find matching log IDs efficiently @@ -232,6 +243,38 @@ func (p *LoggerPlugin) searchWithIndexes(txn *badger.Txn, filters *SearchFilters } } + if len(filters.Objects) > 0 { + objectIDs := p.searchByObjects(txn, filters.Objects) + if !hasFilters { + candidateIDs = objectIDs + hasFilters = true + } else { + candidateIDs = p.intersectIDLists(candidateIDs, objectIDs) + } + } + + // Latency range filtering (using buckets for efficiency) + if filters.MinLatency != nil || filters.MaxLatency != nil { + latencyIDs := p.searchByLatencyRange(txn, filters.MinLatency, filters.MaxLatency) + if !hasFilters { + candidateIDs = latencyIDs + hasFilters = true + } else { + candidateIDs = p.intersectIDLists(candidateIDs, latencyIDs) + } + } + + // Token range filtering (using buckets for efficiency) + if filters.MinTokens != nil || filters.MaxTokens != nil { + tokenIDs := p.searchByTokenRange(txn, filters.MinTokens, filters.MaxTokens) + if !hasFilters { + candidateIDs = tokenIDs + hasFilters = true + } else { + candidateIDs = p.intersectIDLists(candidateIDs, tokenIDs) + } + } + // If no filters were applied, return all logs if !hasFilters { return p.searchFullScan(txn) @@ -284,8 +327,8 @@ func (p *LoggerPlugin) searchByTimeRange(txn *badger.Txn, startTime, endTime *ti if err := item.Value(func(val []byte) error { ids = append(ids, string(val)) return nil - }); err == nil { - // Continue to next item + }); err != nil { + // Log error but continue processing } } } @@ -385,6 +428,136 @@ func (p *LoggerPlugin) searchByStatus(txn *badger.Txn, statuses []string) []stri return ids } +func (p *LoggerPlugin) searchByObjects(txn *badger.Txn, objects []string) []string { + idMap := make(map[string]bool) + + for _, object := range objects { + prefix := []byte(IndexPrefix + ObjectIndex + object + ":") + opts := badger.DefaultIteratorOptions + opts.PrefetchValues = false + it := txn.NewIterator(opts) + + for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() { + item := it.Item() + if err := item.Value(func(val []byte) error { + idMap[string(val)] = true + return nil + }); err == nil { + // Continue + } + } + it.Close() + } + + // Convert map to slice + var ids []string + for id := range idMap { + ids = append(ids, id) + } + + return ids +} + +func (p *LoggerPlugin) searchByLatencyRange(txn *badger.Txn, minLatency, maxLatency *float64) []string { + idMap := make(map[string]bool) + + // Determine which latency buckets to search + minBucket := 0 + maxBucket := int(math.Pow(10, 6)) // Very large bucket + + if minLatency != nil && *minLatency > 0 { + minBucket = getLatencyBucket(*minLatency) + } + if maxLatency != nil && *maxLatency > 0 { + maxBucket = getLatencyBucket(*maxLatency) + } + + // Search through relevant latency buckets + opts := badger.DefaultIteratorOptions + opts.PrefetchValues = false + it := txn.NewIterator(opts) + defer it.Close() + + prefix := []byte(IndexPrefix + LatencyIndex) + for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() { + item := it.Item() + key := string(item.Key()) + + // Extract bucket from key + parts := strings.Split(strings.TrimPrefix(key, IndexPrefix+LatencyIndex), ":") + if len(parts) >= 3 { + if bucket, err := strconv.Atoi(parts[0]); err == nil { + if bucket >= minBucket && bucket <= maxBucket { + if err := item.Value(func(val []byte) error { + idMap[string(val)] = true + return nil + }); err != nil { + // Log error but continue + } + } + } + } + } + + // Convert map to slice + var ids []string + for id := range idMap { + ids = append(ids, id) + } + + return ids +} + +func (p *LoggerPlugin) searchByTokenRange(txn *badger.Txn, minTokens, maxTokens *int) []string { + idMap := make(map[string]bool) + + // Determine which token buckets to search + minBucket := 0 + maxBucket := int(math.Pow(2, 20)) // Very large bucket + + if minTokens != nil && *minTokens > 0 { + minBucket = getTokenBucket(*minTokens) + } + if maxTokens != nil && *maxTokens > 0 { + maxBucket = getTokenBucket(*maxTokens) + } + + // Search through relevant token buckets + opts := badger.DefaultIteratorOptions + opts.PrefetchValues = false + it := txn.NewIterator(opts) + defer it.Close() + + prefix := []byte(IndexPrefix + TokenIndex) + for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() { + item := it.Item() + key := string(item.Key()) + + // Extract bucket from key + parts := strings.Split(strings.TrimPrefix(key, IndexPrefix+TokenIndex), ":") + if len(parts) >= 3 { + if bucket, err := strconv.Atoi(parts[0]); err == nil { + if bucket >= minBucket && bucket <= maxBucket { + if err := item.Value(func(val []byte) error { + idMap[string(val)] = true + return nil + }); err != nil { + // Log error but continue + } + } + } + } + } + + // Convert map to slice + var ids []string + for id := range idMap { + ids = append(ids, id) + } + + return ids +} + // intersectIDLists returns the intersection of two ID lists func (p *LoggerPlugin) intersectIDLists(list1, list2 []string) []string { if len(list1) == 0 || len(list2) == 0 { @@ -649,6 +822,9 @@ func getTokenBucket(tokens int) int { type LogManager interface { // Search searches for log entries based on filters and pagination Search(filters *SearchFilters, pagination *PaginationOptions) (*SearchResult, error) + + // Get the number of dropped requests + GetDroppedRequests() int64 } type PluginLogManager struct { @@ -659,6 +835,10 @@ func (p *PluginLogManager) Search(filters *SearchFilters, pagination *Pagination return p.plugin.SearchLogs(filters, pagination) } +func (p *PluginLogManager) GetDroppedRequests() int64 { + return p.plugin.droppedRequests.Load() +} + func (p *LoggerPlugin) GetPluginLogManager() *PluginLogManager { return &PluginLogManager{ plugin: p, diff --git a/transports/bifrost-http/ui/404.html b/transports/bifrost-http/ui/404.html index db7718c3aa..e06483eca3 100644 --- a/transports/bifrost-http/ui/404.html +++ b/transports/bifrost-http/ui/404.html @@ -1,4 +1,4 @@ -404: This page could not be found.Bifrost UI - AI Gateway Dashboard

404

This page could not be found.

\ No newline at end of file +

404

This page could not be found.

\ No newline at end of file diff --git a/transports/bifrost-http/ui/404/index.html b/transports/bifrost-http/ui/404/index.html index 81a144aea0..5fa12f34c7 100644 --- a/transports/bifrost-http/ui/404/index.html +++ b/transports/bifrost-http/ui/404/index.html @@ -1,4 +1,4 @@ -404: This page could not be found.Bifrost UI - AI Gateway Dashboard

404

This page could not be found.

\ No newline at end of file +

404

This page could not be found.

\ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/build/_buildManifest.js b/transports/bifrost-http/ui/_next/static/build/_buildManifest.js index 7ab434c66f..2a6d077149 100644 --- a/transports/bifrost-http/ui/_next/static/build/_buildManifest.js +++ b/transports/bifrost-http/ui/_next/static/build/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST=function(e,r,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:5,errorRate:1e-4,numBits:96,numHashes:14,bitArray:[1,0,0,r,1,e,r,r,e,r,r,e,e,e,e,r,r,e,r,e,r,r,e,r,r,r,e,e,e,r,r,e,e,r,e,e,r,r,r,e,e,r,e,r,e,r,r,e,r,e,r,r,e,r,e,e,e,e,e,e,e,e,r,e,r,e,e,e,e,e,r,e,r,r,e,r,e,e,e,e,e,e,e,e,e,e,r,e,r,r,r,e,r,e,r,e]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-cc3f077a18ea1793.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file +self.__BUILD_MANIFEST=function(e,r,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:6,errorRate:1e-4,numBits:116,numHashes:14,bitArray:[1,0,0,r,r,r,1,e,e,r,r,e,e,r,e,e,e,r,r,r,e,r,r,r,e,r,r,r,e,r,e,r,e,r,r,e,e,e,e,e,e,r,e,e,r,r,e,e,r,r,r,r,e,r,e,r,r,e,r,e,e,e,r,e,r,e,e,e,r,e,r,e,r,e,r,r,e,r,r,r,e,r,r,e,e,e,e,r,e,e,r,e,e,r,r,r,r,r,e,e,r,e,e,e,r,e,e,e,r,r,e,e,e,r,e,r]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-cc3f077a18ea1793.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/154-7b9dae231ea16969.js b/transports/bifrost-http/ui/_next/static/chunks/154-7b9dae231ea16969.js deleted file mode 100644 index fc2087bd5d..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/154-7b9dae231ea16969.js +++ /dev/null @@ -1,124 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[154],{3052:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(9946).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},3786:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(9946).A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},5040:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(9946).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},5688:e=>{e.exports={style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"},className:"__className_5cfdac",variable:"__variable_5cfdac"}},5695:(e,t,r)=>{"use strict";var s=r(8999);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},7109:(e,t,r)=>{"use strict";r.d(t,{V:()=>N});var s=r(5695),i=r(2115);function n(e,t,r){return Math.max(t,Math.min(e,r))}function o(e,t){return"rtl"===t?(1-e)*100:(-1+e)*100}function a(e,t,r){if("string"==typeof t)void 0!==r&&(e.style[t]=r);else for(let r in t)if(t.hasOwnProperty(r)){let s=t[r];void 0!==s&&(e.style[r]=s)}}function l(e,t){e.classList.add(t)}function c(e,t){e.classList.remove(t)}function u(e){e&&e.parentNode&&e.parentNode.removeChild(e)}var p={minimum:.08,maximum:1,template:`
-
-
`,easing:"linear",positionUsing:"",speed:200,trickle:!0,trickleSpeed:200,showSpinner:!0,indeterminate:!1,indeterminateSelector:".indeterminate",barSelector:".bar",spinnerSelector:".spinner",parent:"body",direction:"ltr"},d=class{static settings=p;static status=null;static pending=[];static isPaused=!1;static reset(){return this.status=null,this.isPaused=!1,this.pending=[],this.settings=p,this}static configure(e){return Object.assign(this.settings,e),this}static isStarted(){return"number"==typeof this.status}static set(e){if(this.isPaused)return this;let t=this.isStarted();e=n(e,this.settings.minimum,this.settings.maximum),this.status=e===this.settings.maximum?null:e;let r=this.render(!t),s=this.settings.speed,i=this.settings.easing;return r.forEach(e=>e.offsetWidth),this.queue(t=>{r.forEach(t=>{this.settings.indeterminate||a(t.querySelector(this.settings.barSelector),this.barPositionCSS({n:e,speed:s,ease:i}))}),e===this.settings.maximum?(r.forEach(e=>{a(e,{transition:"none",opacity:"1"}),e.offsetWidth}),setTimeout(()=>{r.forEach(e=>{a(e,{transition:`all ${s}ms ${i}`,opacity:"0"})}),setTimeout(()=>{r.forEach(e=>{this.remove(e),null===this.settings.template&&a(e,{transition:"none",opacity:"1"})}),t()},s)},s)):setTimeout(t,s)}),this}static start(){this.status||this.set(0);let e=()=>{this.isPaused||setTimeout(()=>{this.status&&(this.trickle(),e())},this.settings.trickleSpeed)};return this.settings.trickle&&e(),this}static done(e){return e||this.status?this.inc(.3+.5*Math.random()).set(1):this}static inc(e){if(this.isPaused||this.settings.indeterminate)return this;let t=this.status;return t?t>1?this:("number"!=typeof e&&(e=t>=0&&t<.2?.1:t>=.2&&t<.5?.04:t>=.5&&t<.8?.02:.005*(t>=.8&&t<.99)),t=n(t+e,0,.994),this.set(t)):this.start()}static dec(e){if(this.isPaused||this.settings.indeterminate)return this;let t=this.status;return"number"!=typeof t?this:("number"!=typeof e&&(e=t>.8?.1:t>.5?.05:t>.2?.02:.01),t=n(t-e,0,.994),this.set(t))}static trickle(){return this.isPaused||this.settings.indeterminate?this:this.inc()}static promise(e){if(!e||"resolved"===e.state())return this;let t=0,r=0;return this.start(),t++,r++,e.always(()=>{0==--r?(t=0,this.done()):this.set((t-r)/t)}),this}static render(e=!1){let t="string"==typeof this.settings.parent?document.querySelector(this.settings.parent):this.settings.parent,r=t?Array.from(t.querySelectorAll(".bprogress")):[];if(null!==this.settings.template&&0===r.length){l(document.documentElement,"bprogress-busy");let e=document.createElement("div");l(e,"bprogress"),e.innerHTML=this.settings.template,t!==document.body&&l(t,"bprogress-custom-parent"),t.appendChild(e),r.push(e)}return r.forEach(r=>{if(null===this.settings.template&&(r.style.display=""),l(document.documentElement,"bprogress-busy"),t!==document.body&&l(t,"bprogress-custom-parent"),this.settings.indeterminate){let e=r.querySelector(this.settings.barSelector);e&&(e.style.display="none");let t=r.querySelector(this.settings.indeterminateSelector);t&&(t.style.display="")}else{let t=r.querySelector(this.settings.barSelector),s=e?o(0,this.settings.direction):o(this.status||0,this.settings.direction);a(t,this.barPositionCSS({n:this.status||0,speed:this.settings.speed,ease:this.settings.easing,perc:s}));let i=r.querySelector(this.settings.indeterminateSelector);i&&(i.style.display="none")}if(null===this.settings.template){let e=r.querySelector(this.settings.spinnerSelector);e&&(e.style.display=this.settings.showSpinner?"block":"none")}else if(!this.settings.showSpinner){let e=r.querySelector(this.settings.spinnerSelector);e&&u(e)}}),r}static remove(e){e?null===this.settings.template?e.style.display="none":u(e):(c(document.documentElement,"bprogress-busy"),("string"==typeof this.settings.parent?document.querySelectorAll(this.settings.parent):[this.settings.parent]).forEach(e=>{c(e,"bprogress-custom-parent")}),document.querySelectorAll(".bprogress").forEach(e=>{null===this.settings.template?e.style.display="none":u(e)}))}static pause(){return!this.isStarted()||this.settings.indeterminate||(this.isPaused=!0),this}static resume(){if(!this.isStarted()||this.settings.indeterminate)return this;if(this.isPaused=!1,this.settings.trickle){let e=()=>{this.isPaused||setTimeout(()=>{this.status&&(this.trickle(),e())},this.settings.trickleSpeed)};e()}return this}static isRendered(){return document.querySelectorAll(".bprogress").length>0}static getPositioningCSS(){let e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return`${t}Perspective`in e?"translate3d":`${t}Transform`in e?"translate":"margin"}static queue(e){this.pending.push(e),1===this.pending.length&&this.next()}static next(){let e=this.pending.shift();e&&e(this.next.bind(this))}static initPositionUsing(){""===this.settings.positionUsing&&(this.settings.positionUsing=this.getPositioningCSS())}static barPositionCSS({n:e,speed:t,ease:r,perc:s}){this.initPositionUsing();let i={},n=s??o(e,this.settings.direction);return"translate3d"===this.settings.positionUsing?i={transform:`translate3d(${n}%,0,0)`}:"translate"===this.settings.positionUsing?i={transform:`translate(${n}%,0)`}:"width"===this.settings.positionUsing?i={width:`${"rtl"===this.settings.direction?100-n:n+100}%`,..."rtl"===this.settings.direction?{right:"0",left:"auto"}:{}}:"margin"===this.settings.positionUsing&&(i="rtl"===this.settings.direction?{"margin-left":`${-n}%`}:{"margin-right":`${-n}%`}),i.transition=`all ${t}ms ${r}`,i}},h=({color:e="#29d",height:t="2px",spinnerPosition:r="top-right"})=>` -:root { - --bprogress-color: ${e}; - --bprogress-height: ${t}; - --bprogress-spinner-size: 18px; - --bprogress-spinner-animation-duration: 400ms; - --bprogress-spinner-border-size: 2px; - --bprogress-box-shadow: 0 0 10px ${e}, 0 0 5px ${e}; - --bprogress-z-index: 99999; - --bprogress-spinner-top: ${"top-right"===r||"top-left"===r?"15px":"auto"}; - --bprogress-spinner-bottom: ${"bottom-right"===r||"bottom-left"===r?"15px":"auto"}; - --bprogress-spinner-right: ${"top-right"===r||"bottom-right"===r?"15px":"auto"}; - --bprogress-spinner-left: ${"top-left"===r||"bottom-left"===r?"15px":"auto"}; -} - -.bprogress { - width: 0; - height: 0; - pointer-events: none; - z-index: var(--bprogress-z-index); -} - -.bprogress .bar { - background: var(--bprogress-color); - position: fixed; - z-index: var(--bprogress-z-index); - top: 0; - left: 0; - width: 100%; - height: var(--bprogress-height); -} - -/* Fancy blur effect */ -.bprogress .peg { - display: block; - position: absolute; - right: 0; - width: 100px; - height: 100%; - box-shadow: var(--bprogress-box-shadow); - opacity: 1.0; - transform: rotate(3deg) translate(0px, -4px); -} - -/* Remove these to get rid of the spinner */ -.bprogress .spinner { - display: block; - position: fixed; - z-index: var(--bprogress-z-index); - top: var(--bprogress-spinner-top); - bottom: var(--bprogress-spinner-bottom); - right: var(--bprogress-spinner-right); - left: var(--bprogress-spinner-left); -} - -.bprogress .spinner-icon { - width: var(--bprogress-spinner-size); - height: var(--bprogress-spinner-size); - box-sizing: border-box; - border: solid var(--bprogress-spinner-border-size) transparent; - border-top-color: var(--bprogress-color); - border-left-color: var(--bprogress-color); - border-radius: 50%; - -webkit-animation: bprogress-spinner var(--bprogress-spinner-animation-duration) linear infinite; - animation: bprogress-spinner var(--bprogress-spinner-animation-duration) linear infinite; -} - -.bprogress-custom-parent { - overflow: hidden; - position: relative; -} - -.bprogress-custom-parent .bprogress .spinner, -.bprogress-custom-parent .bprogress .bar { - position: absolute; -} - -.bprogress .indeterminate { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: var(--bprogress-height); - overflow: hidden; -} - -.bprogress .indeterminate .inc, -.bprogress .indeterminate .dec { - position: absolute; - top: 0; - height: 100%; - background-color: var(--bprogress-color); -} - -.bprogress .indeterminate .inc { - animation: bprogress-indeterminate-increase 2s infinite; -} - -.bprogress .indeterminate .dec { - animation: bprogress-indeterminate-decrease 2s 0.5s infinite; -} - -@-webkit-keyframes bprogress-spinner { - 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } -} - -@keyframes bprogress-spinner { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - -@keyframes bprogress-indeterminate-increase { - from { left: -5%; width: 5%; } - to { left: 130%; width: 100%; } -} - -@keyframes bprogress-indeterminate-decrease { - from { left: -80%; width: 80%; } - to { left: 110%; width: 10%; } -} -`;function g(e,t){if("string"==typeof t&&"data-disable-progress"===t){let r=t.substring(5).replace(/-([a-z])/g,(e,t)=>t.toUpperCase());return e.dataset[r]}let r=e[t];if(r instanceof SVGAnimatedString){let e=r.baseVal;if("href"===t){var s=location.origin;if(!e.startsWith("/")||!s)return e;let{pathname:t,query:r,hash:i}=function(e){let t=e.indexOf("#"),r=e.indexOf("?"),s=r>-1&&(t<0||r-1?{pathname:e.substring(0,s?r:t),query:s?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}(e);return`${s}${t}${r}${i}`}return e}return r}function f(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(s=0;s=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var b=(0,i.createContext)(void 0),v=function(){var e=(0,i.useContext)(b);if(!e)throw Error("useProgress must be used within a ProgressProvider");return e},y=function(e){var t=e.children,r=e.color,s=void 0===r?"#0A2FFF":r,n=e.height,o=void 0===n?"2px":n,a=e.options,l=e.spinnerPosition,c=void 0===l?"top-right":l,u=e.style,p=e.disableStyle,g=e.nonce,m=e.shallowRouting,v=e.disableSameURL,y=e.startPosition,S=e.delay,w=e.stopDelay,P=(0,i.useRef)(null),k=(0,i.useRef)(!1),O=(0,i.useCallback)(function(){return k.current=!0},[]),x=(0,i.useCallback)(function(){return k.current=!1},[]),E=(0,i.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];r&&O(),P.current=setTimeout(function(){e>0&&d.set(e),d.start()},t)},[O]),j=(0,i.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;setTimeout(function(){P.current&&clearTimeout(P.current),P.current=setTimeout(function(){d.isStarted()&&(d.done(),k.current&&x())},e)},t)},[x]),A=(0,i.useCallback)(function(e){return d.inc(e)},[]),C=(0,i.useCallback)(function(e){return d.dec(e)},[]),N=(0,i.useCallback)(function(e){return d.set(e)},[]),R=(0,i.useCallback)(function(){return d.pause()},[]),$=(0,i.useCallback)(function(){return d.resume()},[]),q=(0,i.useCallback)(function(){return d.settings},[]),z=(0,i.useCallback)(function(e){var t=q(),r="function"==typeof e?e(t):e,s=f({},t,r);d.configure(s)},[q]),L=(0,i.useMemo)(function(){return i.createElement("style",{nonce:g},u||h({color:s,height:o,spinnerPosition:c}))},[s,o,g,c,u]);return d.configure(a||{}),i.createElement(b.Provider,{value:{start:E,stop:j,inc:A,dec:C,set:N,pause:R,resume:$,setOptions:z,getOptions:q,isAutoStopDisabled:k,disableAutoStop:O,enableAutoStop:x,shallowRouting:void 0!==m&&m,disableSameURL:void 0===v||v,startPosition:void 0===y?0:y,delay:void 0===S?0:S,stopDelay:void 0===w?0:w}},void 0!==p&&p?null:L,t)};function S(){for(var e=arguments.length,t=Array(e),r=0;r=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(s=0;s=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var j=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["memo","shouldCompareComplexProps"];return(0,i.memo)(e,function(e,r){return!1!==r.memo&&(!r.shouldCompareComplexProps||function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s=Object.keys(e).filter(function(e){return!r.includes(e)}),i=Object.keys(t).filter(function(e){return!r.includes(e)});if(s.length!==i.length)return!1;var n=!0,o=!1,a=void 0;try{for(var l,c=s[Symbol.iterator]();!(n=(l=c.next()).done);n=!0){var u=l.value;if(e[u]!==t[u])return!1}}catch(e){o=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw a}}return!0}(e,r,t))})}(function(e){return!function(e){var t=e.shallowRouting,r=void 0!==t&&t,s=e.disableSameURL,n=void 0===s||s,o=e.startPosition,a=void 0===o?0:o,l=e.delay,c=void 0===l?0:l,u=e.stopDelay,p=void 0===u?0:u,d=e.targetPreprocessor,h=e.disableAnchorClick,f=void 0!==h&&h,m=e.startOnLoad,b=void 0!==m&&m,y=e.forcedStopDelay,S=void 0===y?0:y,w=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],P=(0,i.useRef)([]),k=(0,i.useRef)(null),O=v(),x=O.start,E=O.stop,j=O.isAutoStopDisabled;(0,i.useEffect)(function(){b&&x(a,c)},[]),(0,i.useEffect)(function(){return k.current&&clearTimeout(k.current),k.current=setTimeout(function(){j.current||E()},p),function(){k.current&&clearTimeout(k.current)}},w),(0,i.useEffect)(function(){if(!f){var e=function(e){if(e.defaultPrevented)return;var t,s,i,o,l=e.currentTarget;if(l.hasAttribute("download"))return;var u=e.target,p=(null==u?void 0:u.getAttribute("data-prevent-progress"))==="true"||(null==l?void 0:l.getAttribute("data-prevent-progress"))==="true";if(!p)for(var h,f=u;f&&"a"!==f.tagName.toLowerCase();){if((null==(h=f.parentElement)?void 0:h.getAttribute("data-prevent-progress"))==="true"){p=!0;break}f=f.parentElement}if(!p&&"_blank"!==g(l,"target")&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){var m=g(l,"href"),b=d?d(new URL(m)):new URL(m),v=new URL(location.href);if(!(r&&(t=b,s=v,t.protocol+"//"+t.host+t.pathname==s.protocol+"//"+s.host+s.pathname))||!n){i=b,o=v,i.protocol+"//"+i.host+i.pathname+i.search==o.protocol+"//"+o.host+o.pathname+o.search&&n||x(a,c)}}},t=new MutationObserver(function(){var t=Array.from(document.querySelectorAll("a")).filter(function(e){var t=g(e,"href"),r="true"===e.getAttribute("data-disable-progress"),s=t&&!t.startsWith("tel:")&&!t.startsWith("mailto:")&&!t.startsWith("blob:")&&!t.startsWith("javascript:");return!r&&s&&"_blank"!==g(e,"target")});t.forEach(function(t){t.addEventListener("click",e,!0)}),P.current=t});t.observe(document,{childList:!0,subtree:!0});var s=window.history.pushState;return window.history.pushState=new Proxy(window.history.pushState,{apply:function(e,t,r){return j.current||E(p,S),e.apply(t,r)}}),function(){t.disconnect(),P.current.forEach(function(t){t.removeEventListener("click",e,!0)}),P.current=[],window.history.pushState=s}}},[f,d,r,n,c,p,a,x,E,S,j])}(e,[(0,s.usePathname)(),(0,s.useSearchParams)()]),null});j.displayName="AppProgress";var A=function(e){var t=e.children,r=e.ProgressComponent,s=e.color,n=e.height,o=e.options,a=e.spinnerPosition,l=e.style,c=e.disableStyle,u=e.nonce,p=e.stopDelay,d=e.delay,h=e.startPosition,g=e.disableSameURL,f=e.shallowRouting,m=E(e,["children","ProgressComponent","color","height","options","spinnerPosition","style","disableStyle","nonce","stopDelay","delay","startPosition","disableSameURL","shallowRouting"]);return i.createElement(y,{color:s,height:n,options:o,spinnerPosition:a,style:l,disableStyle:c,nonce:u,stopDelay:p,delay:d,startPosition:h,disableSameURL:g,shallowRouting:f},i.createElement(r,x({stopDelay:p,delay:d,startPosition:h,disableSameURL:g,shallowRouting:f},m)),t)},C=function(e){return i.createElement(i.Suspense,null,i.createElement(j,f({},e)))},N=function(e){var t=e.children,r=E(e,["children"]);return i.createElement(A,x({ProgressComponent:C},r),t)}},7340:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(9946).A)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]])},7520:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(9946).A)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]])},9432:e=>{e.exports={style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"},className:"__className_9a8899",variable:"__variable_9a8899"}}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/213-672494f56acc68a6.js b/transports/bifrost-http/ui/_next/static/chunks/213-672494f56acc68a6.js deleted file mode 100644 index f36f5714c4..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/213-672494f56acc68a6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[213],{2564:(t,e,a)=>{a.d(e,{Qg:()=>s,bL:()=>l});var o=a(2115),r=a(3655),n=a(5155),s=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),i=o.forwardRef((t,e)=>(0,n.jsx)(r.sG.span,{...t,ref:e,style:{...s,...t.style}}));i.displayName="VisuallyHidden";var l=i},4416:(t,e,a)=>{a.d(e,{A:()=>o});let o=(0,a(9946).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},5448:(t,e,a)=>{a.d(e,{A:()=>o});let o=(0,a(9946).A)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]])},5452:(t,e,a)=>{a.d(e,{G$:()=>q,Hs:()=>w,UC:()=>ta,VY:()=>tr,ZL:()=>tt,bL:()=>Q,bm:()=>tn,hE:()=>to,hJ:()=>te,l9:()=>$});var o=a(2115),r=a(5185),n=a(6101),s=a(6081),i=a(1285),l=a(5845),d=a(9178),c=a(7900),u=a(4378),f=a(8905),p=a(3655),m=a(2293),g=a(3795),h=a(8168),v=a(9708),y=a(5155),b="Dialog",[x,w]=(0,s.A)(b),[E,k]=x(b),N=t=>{let{__scopeDialog:e,children:a,open:r,defaultOpen:n,onOpenChange:s,modal:d=!0}=t,c=o.useRef(null),u=o.useRef(null),[f,p]=(0,l.i)({prop:r,defaultProp:null!=n&&n,onChange:s,caller:b});return(0,y.jsx)(E,{scope:e,triggerRef:c,contentRef:u,contentId:(0,i.B)(),titleId:(0,i.B)(),descriptionId:(0,i.B)(),open:f,onOpenChange:p,onOpenToggle:o.useCallback(()=>p(t=>!t),[p]),modal:d,children:a})};N.displayName=b;var C="DialogTrigger",j=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,s=k(C,a),i=(0,n.s)(e,s.triggerRef);return(0,y.jsx)(p.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":G(s.open),...o,ref:i,onClick:(0,r.m)(t.onClick,s.onOpenToggle)})});j.displayName=C;var D="DialogPortal",[R,M]=x(D,{forceMount:void 0}),T=t=>{let{__scopeDialog:e,forceMount:a,children:r,container:n}=t,s=k(D,e);return(0,y.jsx)(R,{scope:e,forceMount:a,children:o.Children.map(r,t=>(0,y.jsx)(f.C,{present:a||s.open,children:(0,y.jsx)(u.Z,{asChild:!0,container:n,children:t})}))})};T.displayName=D;var S="DialogOverlay",B=o.forwardRef((t,e)=>{let a=M(S,t.__scopeDialog),{forceMount:o=a.forceMount,...r}=t,n=k(S,t.__scopeDialog);return n.modal?(0,y.jsx)(f.C,{present:o||n.open,children:(0,y.jsx)(A,{...r,ref:e})}):null});B.displayName=S;var I=(0,v.TL)("DialogOverlay.RemoveScroll"),A=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,r=k(S,a);return(0,y.jsx)(g.A,{as:I,allowPinchZoom:!0,shards:[r.contentRef],children:(0,y.jsx)(p.sG.div,{"data-state":G(r.open),...o,ref:e,style:{pointerEvents:"auto",...o.style}})})}),z="DialogContent",P=o.forwardRef((t,e)=>{let a=M(z,t.__scopeDialog),{forceMount:o=a.forceMount,...r}=t,n=k(z,t.__scopeDialog);return(0,y.jsx)(f.C,{present:o||n.open,children:n.modal?(0,y.jsx)(Y,{...r,ref:e}):(0,y.jsx)(O,{...r,ref:e})})});P.displayName=z;var Y=o.forwardRef((t,e)=>{let a=k(z,t.__scopeDialog),s=o.useRef(null),i=(0,n.s)(e,a.contentRef,s);return o.useEffect(()=>{let t=s.current;if(t)return(0,h.Eq)(t)},[]),(0,y.jsx)(L,{...t,ref:i,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,r.m)(t.onCloseAutoFocus,t=>{var e;t.preventDefault(),null==(e=a.triggerRef.current)||e.focus()}),onPointerDownOutside:(0,r.m)(t.onPointerDownOutside,t=>{let e=t.detail.originalEvent,a=0===e.button&&!0===e.ctrlKey;(2===e.button||a)&&t.preventDefault()}),onFocusOutside:(0,r.m)(t.onFocusOutside,t=>t.preventDefault())})}),O=o.forwardRef((t,e)=>{let a=k(z,t.__scopeDialog),r=o.useRef(!1),n=o.useRef(!1);return(0,y.jsx)(L,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:e=>{var o,s;null==(o=t.onCloseAutoFocus)||o.call(t,e),e.defaultPrevented||(r.current||null==(s=a.triggerRef.current)||s.focus(),e.preventDefault()),r.current=!1,n.current=!1},onInteractOutside:e=>{var o,s;null==(o=t.onInteractOutside)||o.call(t,e),e.defaultPrevented||(r.current=!0,"pointerdown"===e.detail.originalEvent.type&&(n.current=!0));let i=e.target;(null==(s=a.triggerRef.current)?void 0:s.contains(i))&&e.preventDefault(),"focusin"===e.detail.originalEvent.type&&n.current&&e.preventDefault()}})}),L=o.forwardRef((t,e)=>{let{__scopeDialog:a,trapFocus:r,onOpenAutoFocus:s,onCloseAutoFocus:i,...l}=t,u=k(z,a),f=o.useRef(null),p=(0,n.s)(e,f);return(0,m.Oh)(),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c.n,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:s,onUnmountAutoFocus:i,children:(0,y.jsx)(d.qW,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":G(u.open),...l,ref:p,onDismiss:()=>u.onOpenChange(!1)})}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Z,{titleId:u.titleId}),(0,y.jsx)(J,{contentRef:f,descriptionId:u.descriptionId})]})]})}),F="DialogTitle",_=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,r=k(F,a);return(0,y.jsx)(p.sG.h2,{id:r.titleId,...o,ref:e})});_.displayName=F;var H="DialogDescription",V=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,r=k(H,a);return(0,y.jsx)(p.sG.p,{id:r.descriptionId,...o,ref:e})});V.displayName=H;var U="DialogClose",X=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,n=k(U,a);return(0,y.jsx)(p.sG.button,{type:"button",...o,ref:e,onClick:(0,r.m)(t.onClick,()=>n.onOpenChange(!1))})});function G(t){return t?"open":"closed"}X.displayName=U;var W="DialogTitleWarning",[q,K]=(0,s.q)(W,{contentName:z,titleName:F,docsSlug:"dialog"}),Z=t=>{let{titleId:e}=t,a=K(W),r="`".concat(a.contentName,"` requires a `").concat(a.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(a.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(a.docsSlug);return o.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},J=t=>{let{contentRef:e,descriptionId:a}=t,r=K("DialogDescriptionWarning"),n="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(r.contentName,"}.");return o.useEffect(()=>{var t;let o=null==(t=e.current)?void 0:t.getAttribute("aria-describedby");a&&o&&(document.getElementById(a)||console.warn(n))},[n,e,a]),null},Q=N,$=j,tt=T,te=B,ta=P,to=_,tr=V,tn=X},6671:(t,e,a)=>{a.d(e,{Toaster:()=>k,o:()=>y});var o=a(2115),r=a(7650);let n=t=>{switch(t){case"success":return l;case"info":return c;case"warning":return d;case"error":return u;default:return null}},s=Array(12).fill(0),i=t=>{let{visible:e,className:a}=t;return o.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":e},o.createElement("div",{className:"sonner-spinner"},s.map((t,e)=>o.createElement("div",{className:"sonner-loading-bar",key:"spinner-bar-".concat(e)}))))},l=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),d=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),c=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),u=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),f=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),o.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),p=()=>{let[t,e]=o.useState(document.hidden);return o.useEffect(()=>{let t=()=>{e(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t},m=1;class g{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...o}=t,r="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:m++,n=this.toasts.find(t=>t.id===r),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),n?this.toasts=this.toasts.map(e=>e.id===r?(this.publish({...e,...t,id:r,title:a}),{...e,...t,id:r,dismissible:s,title:a}):e):this.addToast({title:a,...o,dismissible:s,id:r}),r},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,e)=>{let a,r;if(!e)return;void 0!==e.loading&&(r=this.create({...e,promise:t,type:"loading",message:e.loading,description:"function"!=typeof e.description?e.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=void 0!==r,i=n.then(async t=>{if(a=["resolve",t],o.isValidElement(t))s=!1,this.create({id:r,type:"default",message:t});else if(v(t)&&!t.ok){s=!1;let a="function"==typeof e.error?await e.error("HTTP error! status: ".concat(t.status)):e.error,n="function"==typeof e.description?await e.description("HTTP error! status: ".concat(t.status)):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let a="function"==typeof e.error?await e.error(t):e.error,n="function"==typeof e.description?await e.description(t):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"error",description:n,...i})}else if(void 0!==e.success){s=!1;let a="function"==typeof e.success?await e.success(t):e.success,n="function"==typeof e.description?await e.description(t):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"success",description:n,...i})}}).catch(async t=>{if(a=["reject",t],void 0!==e.error){s=!1;let a="function"==typeof e.error?await e.error(t):e.error,n="function"==typeof e.description?await e.description(t):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(r),r=void 0),null==e.finally||e.finally.call(e)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===a[0]?e(a[1]):t(a[1])).catch(e));return"string"!=typeof r&&"number"!=typeof r?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||m++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}let h=new g,v=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,y=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||m++;return h.addToast({title:t,...e,id:a}),a},{success:h.success,info:h.info,warning:h.warning,error:h.error,custom:h.custom,message:h.message,promise:h.promise,dismiss:h.dismiss,loading:h.loading},{getHistory:()=>h.toasts,getToasts:()=>h.getActiveToasts()});function b(t){return void 0!==t.label}function x(){for(var t=arguments.length,e=Array(t),a=0;asvg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let w=t=>{var e,a,r,s,l,d,c,u,m,g,h;let{invert:v,toast:y,unstyled:w,interacting:E,setHeights:k,visibleToasts:N,heights:C,index:j,toasts:D,expanded:R,removeToast:M,defaultRichColors:T,closeButton:S,style:B,cancelButtonStyle:I,actionButtonStyle:A,className:z="",descriptionClassName:P="",duration:Y,position:O,gap:L,expandByDefault:F,classNames:_,icons:H,closeButtonAriaLabel:V="Close toast"}=t,[U,X]=o.useState(null),[G,W]=o.useState(null),[q,K]=o.useState(!1),[Z,J]=o.useState(!1),[Q,$]=o.useState(!1),[tt,te]=o.useState(!1),[ta,to]=o.useState(!1),[tr,tn]=o.useState(0),[ts,ti]=o.useState(0),tl=o.useRef(y.duration||Y||4e3),td=o.useRef(null),tc=o.useRef(null),tu=0===j,tf=j+1<=N,tp=y.type,tm=!1!==y.dismissible,tg=y.className||"",th=y.descriptionClassName||"",tv=o.useMemo(()=>C.findIndex(t=>t.toastId===y.id)||0,[C,y.id]),ty=o.useMemo(()=>{var t;return null!=(t=y.closeButton)?t:S},[y.closeButton,S]),tb=o.useMemo(()=>y.duration||Y||4e3,[y.duration,Y]),tx=o.useRef(0),tw=o.useRef(0),tE=o.useRef(0),tk=o.useRef(null),[tN,tC]=O.split("-"),tj=o.useMemo(()=>C.reduce((t,e,a)=>a>=tv?t:t+e.height,0),[C,tv]),tD=p(),tR=y.invert||v,tM="loading"===tp;tw.current=o.useMemo(()=>tv*L+tj,[tv,tj]),o.useEffect(()=>{tl.current=tb},[tb]),o.useEffect(()=>{K(!0)},[]),o.useEffect(()=>{let t=tc.current;if(t){let e=t.getBoundingClientRect().height;return ti(e),k(t=>[{toastId:y.id,height:e,position:y.position},...t]),()=>k(t=>t.filter(t=>t.toastId!==y.id))}},[k,y.id]),o.useLayoutEffect(()=>{if(!q)return;let t=tc.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,ti(a),k(t=>t.find(t=>t.toastId===y.id)?t.map(t=>t.toastId===y.id?{...t,height:a}:t):[{toastId:y.id,height:a,position:y.position},...t])},[q,y.title,y.description,k,y.id,y.jsx,y.action,y.cancel]);let tT=o.useCallback(()=>{J(!0),tn(tw.current),k(t=>t.filter(t=>t.toastId!==y.id)),setTimeout(()=>{M(y)},200)},[y,M,k,tw]);o.useEffect(()=>{let t;if((!y.promise||"loading"!==tp)&&y.duration!==1/0&&"loading"!==y.type)return R||E||tD?(()=>{if(tE.current{null==y.onAutoClose||y.onAutoClose.call(y,y),tT()},tl.current)),()=>clearTimeout(t)},[R,E,y,tp,tD,tT]),o.useEffect(()=>{y.delete&&(tT(),null==y.onDismiss||y.onDismiss.call(y,y))},[tT,y.delete]);let tS=y.icon||(null==H?void 0:H[tp])||n(tp);return o.createElement("li",{tabIndex:0,ref:tc,className:x(z,tg,null==_?void 0:_.toast,null==y||null==(e=y.classNames)?void 0:e.toast,null==_?void 0:_.default,null==_?void 0:_[tp],null==y||null==(a=y.classNames)?void 0:a[tp]),"data-sonner-toast":"","data-rich-colors":null!=(g=y.richColors)?g:T,"data-styled":!(y.jsx||y.unstyled||w),"data-mounted":q,"data-promise":!!y.promise,"data-swiped":ta,"data-removed":Z,"data-visible":tf,"data-y-position":tN,"data-x-position":tC,"data-index":j,"data-front":tu,"data-swiping":Q,"data-dismissible":tm,"data-type":tp,"data-invert":tR,"data-swipe-out":tt,"data-swipe-direction":G,"data-expanded":!!(R||F&&q),style:{"--index":j,"--toasts-before":j,"--z-index":D.length-j,"--offset":"".concat(Z?tr:tw.current,"px"),"--initial-height":F?"auto":"".concat(ts,"px"),...B,...y.style},onDragEnd:()=>{$(!1),X(null),tk.current=null},onPointerDown:t=>{!tM&&tm&&(td.current=new Date,tn(tw.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&($(!0),tk.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,o,r;if(tt||!tm)return;tk.current=null;let n=Number((null==(t=tc.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),s=Number((null==(e=tc.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=td.current)?void 0:a.getTime()),l="x"===U?n:s,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){tn(tw.current),null==y.onDismiss||y.onDismiss.call(y,y),"x"===U?W(n>0?"right":"left"):W(s>0?"down":"up"),tT(),te(!0);return}null==(o=tc.current)||o.style.setProperty("--swipe-amount-x","0px"),null==(r=tc.current)||r.style.setProperty("--swipe-amount-y","0px"),to(!1),$(!1),X(null)},onPointerMove:e=>{var a,o,r,n;if(!tk.current||!tm||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tk.current.y,i=e.clientX-tk.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),o=[];return e&&o.push(e),a&&o.push(a),o}(O);!U&&(Math.abs(i)>1||Math.abs(s)>1)&&X(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0},c=t=>1/(1.5+Math.abs(t)/20);if("y"===U){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&s<0||l.includes("bottom")&&s>0)d.y=s;else{let t=s*c(s);d.y=Math.abs(t)0)d.x=i;else{let t=i*c(i);d.x=Math.abs(t)0||Math.abs(d.y)>0)&&to(!0),null==(o=tc.current)||o.style.setProperty("--swipe-amount-x","".concat(d.x,"px")),null==(r=tc.current)||r.style.setProperty("--swipe-amount-y","".concat(d.y,"px"))}},ty&&!y.jsx&&"loading"!==tp?o.createElement("button",{"aria-label":V,"data-disabled":tM,"data-close-button":!0,onClick:tM||!tm?()=>{}:()=>{tT(),null==y.onDismiss||y.onDismiss.call(y,y)},className:x(null==_?void 0:_.closeButton,null==y||null==(r=y.classNames)?void 0:r.closeButton)},null!=(h=null==H?void 0:H.close)?h:f):null,(tp||y.icon||y.promise)&&null!==y.icon&&((null==H?void 0:H[tp])!==null||y.icon)?o.createElement("div",{"data-icon":"",className:x(null==_?void 0:_.icon,null==y||null==(s=y.classNames)?void 0:s.icon)},y.promise||"loading"===y.type&&!y.icon?y.icon||function(){var t,e;return(null==H?void 0:H.loading)?o.createElement("div",{className:x(null==_?void 0:_.loader,null==y||null==(e=y.classNames)?void 0:e.loader,"sonner-loader"),"data-visible":"loading"===tp},H.loading):o.createElement(i,{className:x(null==_?void 0:_.loader,null==y||null==(t=y.classNames)?void 0:t.loader),visible:"loading"===tp})}():null,"loading"!==y.type?tS:null):null,o.createElement("div",{"data-content":"",className:x(null==_?void 0:_.content,null==y||null==(l=y.classNames)?void 0:l.content)},o.createElement("div",{"data-title":"",className:x(null==_?void 0:_.title,null==y||null==(d=y.classNames)?void 0:d.title)},y.jsx?y.jsx:"function"==typeof y.title?y.title():y.title),y.description?o.createElement("div",{"data-description":"",className:x(P,th,null==_?void 0:_.description,null==y||null==(c=y.classNames)?void 0:c.description)},"function"==typeof y.description?y.description():y.description):null),o.isValidElement(y.cancel)?y.cancel:y.cancel&&b(y.cancel)?o.createElement("button",{"data-button":!0,"data-cancel":!0,style:y.cancelButtonStyle||I,onClick:t=>{b(y.cancel)&&tm&&(null==y.cancel.onClick||y.cancel.onClick.call(y.cancel,t),tT())},className:x(null==_?void 0:_.cancelButton,null==y||null==(u=y.classNames)?void 0:u.cancelButton)},y.cancel.label):null,o.isValidElement(y.action)?y.action:y.action&&b(y.action)?o.createElement("button",{"data-button":!0,"data-action":!0,style:y.actionButtonStyle||A,onClick:t=>{b(y.action)&&(null==y.action.onClick||y.action.onClick.call(y.action,t),t.defaultPrevented||tT())},className:x(null==_?void 0:_.actionButton,null==y||null==(m=y.classNames)?void 0:m.actionButton)},y.action.label):null)};function E(){if("undefined"==typeof window||"undefined"==typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let k=o.forwardRef(function(t,e){let{invert:a,position:n="bottom-right",hotkey:s=["altKey","KeyT"],expand:i,closeButton:l,className:d,offset:c,mobileOffset:u,theme:f="light",richColors:p,duration:m,style:g,visibleToasts:v=3,toastOptions:y,dir:b=E(),gap:x=14,icons:k,containerAriaLabel:N="Notifications"}=t,[C,j]=o.useState([]),D=o.useMemo(()=>Array.from(new Set([n].concat(C.filter(t=>t.position).map(t=>t.position)))),[C,n]),[R,M]=o.useState([]),[T,S]=o.useState(!1),[B,I]=o.useState(!1),[A,z]=o.useState("system"!==f?f:"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),P=o.useRef(null),Y=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),O=o.useRef(null),L=o.useRef(!1),F=o.useCallback(t=>{j(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||h.dismiss(t.id),e.filter(e=>{let{id:a}=e;return a!==t.id})})},[]);return o.useEffect(()=>h.subscribe(t=>{if(t.dismiss)return void requestAnimationFrame(()=>{j(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))});setTimeout(()=>{r.flushSync(()=>{j(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[C]),o.useEffect(()=>{if("system"!==f)return void z(f);if("system"===f&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?z("dark"):z("light")),"undefined"==typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",t=>{let{matches:e}=t;e?z("dark"):z("light")})}catch(e){t.addListener(t=>{let{matches:e}=t;try{e?z("dark"):z("light")}catch(t){console.error(t)}})}},[f]),o.useEffect(()=>{C.length<=1&&S(!1)},[C]),o.useEffect(()=>{let t=t=>{var e,a;s.every(e=>t[e]||t.code===e)&&(S(!0),null==(a=P.current)||a.focus()),"Escape"===t.code&&(document.activeElement===P.current||(null==(e=P.current)?void 0:e.contains(document.activeElement)))&&S(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[s]),o.useEffect(()=>{if(P.current)return()=>{O.current&&(O.current.focus({preventScroll:!0}),O.current=null,L.current=!1)}},[P.current]),o.createElement("section",{ref:e,"aria-label":"".concat(N," ").concat(Y),tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},D.map((e,r)=>{var n;let[s,f]=e.split("-");return C.length?o.createElement("ol",{key:e,dir:"auto"===b?E():b,tabIndex:-1,ref:P,className:d,"data-sonner-toaster":!0,"data-sonner-theme":A,"data-y-position":s,"data-x-position":f,style:{"--front-toast-height":"".concat((null==(n=R[0])?void 0:n.height)||0,"px"),"--width":"".concat(356,"px"),"--gap":"".concat(x,"px"),...g,...function(t,e){let a={};return[t,e].forEach((t,e)=>{let o=1===e,r=o?"--mobile-offset":"--offset",n=o?"16px":"24px";function s(t){["top","right","bottom","left"].forEach(e=>{a["".concat(r,"-").concat(e)]="number"==typeof t?"".concat(t,"px"):t})}"number"==typeof t||"string"==typeof t?s(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?a["".concat(r,"-").concat(e)]=n:a["".concat(r,"-").concat(e)]="number"==typeof t[e]?"".concat(t[e],"px"):t[e]}):s(n)}),a}(c,u)},onBlur:t=>{L.current&&!t.currentTarget.contains(t.relatedTarget)&&(L.current=!1,O.current&&(O.current.focus({preventScroll:!0}),O.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(L.current||(L.current=!0,O.current=t.relatedTarget))},onMouseEnter:()=>S(!0),onMouseMove:()=>S(!0),onMouseLeave:()=>{B||S(!1)},onDragEnd:()=>S(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||I(!0)},onPointerUp:()=>I(!1)},C.filter(t=>!t.position&&0===r||t.position===e).map((r,n)=>{var s,d;return o.createElement(w,{key:r.id,icons:k,index:n,toast:r,defaultRichColors:p,duration:null!=(s=null==y?void 0:y.duration)?s:m,className:null==y?void 0:y.className,descriptionClassName:null==y?void 0:y.descriptionClassName,invert:a,visibleToasts:v,closeButton:null!=(d=null==y?void 0:y.closeButton)?d:l,interacting:B,position:e,style:null==y?void 0:y.style,unstyled:null==y?void 0:y.unstyled,classNames:null==y?void 0:y.classNames,cancelButtonStyle:null==y?void 0:y.cancelButtonStyle,actionButtonStyle:null==y?void 0:y.actionButtonStyle,closeButtonAriaLabel:null==y?void 0:y.closeButtonAriaLabel,removeToast:F,toasts:C.filter(t=>t.position==r.position),heights:R.filter(t=>t.position==r.position),setHeights:M,expandByDefault:i,gap:x,expanded:T,swipeDirections:t.swipeDirections})})):null}))})}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/443-5702d24d72c89eac.js b/transports/bifrost-http/ui/_next/static/chunks/272-ea143f89da3f8b1f.js similarity index 75% rename from transports/bifrost-http/ui/_next/static/chunks/443-5702d24d72c89eac.js rename to transports/bifrost-http/ui/_next/static/chunks/272-ea143f89da3f8b1f.js index 0dfe299c7b..554a2cf73b 100644 --- a/transports/bifrost-http/ui/_next/static/chunks/443-5702d24d72c89eac.js +++ b/transports/bifrost-http/ui/_next/static/chunks/272-ea143f89da3f8b1f.js @@ -1,4 +1,4 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[443],{255:(e,t,l)=>{function n(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return n}}),l(5155),l(7650),l(5744),l(589)},547:(e,t,l)=>{l.d(t,{UC:()=>U,ZL:()=>N,bL:()=>B,l9:()=>q});var n=l(2115),o=l(5185),r=l(6101),i=l(6081),a=l(9178),u=l(2293),s=l(7900),d=l(1285),g=l(5152),c=l(4378),p=l(8905),f=l(3655),m=l(9708),v=l(5845),h=l(8168),C=l(3795),b=l(5155),w="Popover",[S,R]=(0,i.A)(w,[g.Bk]),y=(0,g.Bk)(),[F,x]=S(w),M=e=>{let{__scopePopover:t,children:l,open:o,defaultOpen:r,onOpenChange:i,modal:a=!1}=e,u=y(t),s=n.useRef(null),[c,p]=n.useState(!1),[f,m]=(0,v.i)({prop:o,defaultProp:null!=r&&r,onChange:i,caller:w});return(0,b.jsx)(g.bL,{...u,children:(0,b.jsx)(F,{scope:t,contentId:(0,d.B)(),triggerRef:s,open:f,onOpenChange:m,onOpenToggle:n.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:c,onCustomAnchorAdd:n.useCallback(()=>p(!0),[]),onCustomAnchorRemove:n.useCallback(()=>p(!1),[]),modal:a,children:l})})};M.displayName=w;var P="PopoverAnchor";n.forwardRef((e,t)=>{let{__scopePopover:l,...o}=e,r=x(P,l),i=y(l),{onCustomAnchorAdd:a,onCustomAnchorRemove:u}=r;return n.useEffect(()=>(a(),()=>u()),[a,u]),(0,b.jsx)(g.Mz,{...i,...o,ref:t})}).displayName=P;var I="PopoverTrigger",V=n.forwardRef((e,t)=>{let{__scopePopover:l,...n}=e,i=x(I,l),a=y(l),u=(0,r.s)(t,i.triggerRef),s=(0,b.jsx)(f.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":T(i.open),...n,ref:u,onClick:(0,o.m)(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,b.jsx)(g.Mz,{asChild:!0,...a,children:s})});V.displayName=I;var A="PopoverPortal",[E,_]=S(A,{forceMount:void 0}),k=e=>{let{__scopePopover:t,forceMount:l,children:n,container:o}=e,r=x(A,t);return(0,b.jsx)(E,{scope:t,forceMount:l,children:(0,b.jsx)(p.C,{present:l||r.open,children:(0,b.jsx)(c.Z,{asChild:!0,container:o,children:n})})})};k.displayName=A;var L="PopoverContent",G=n.forwardRef((e,t)=>{let l=_(L,e.__scopePopover),{forceMount:n=l.forceMount,...o}=e,r=x(L,e.__scopePopover);return(0,b.jsx)(p.C,{present:n||r.open,children:r.modal?(0,b.jsx)(O,{...o,ref:t}):(0,b.jsx)(H,{...o,ref:t})})});G.displayName=L;var D=(0,m.TL)("PopoverContent.RemoveScroll"),O=n.forwardRef((e,t)=>{let l=x(L,e.__scopePopover),i=n.useRef(null),a=(0,r.s)(t,i),u=n.useRef(!1);return n.useEffect(()=>{let e=i.current;if(e)return(0,h.Eq)(e)},[]),(0,b.jsx)(C.A,{as:D,allowPinchZoom:!0,children:(0,b.jsx)(z,{...e,ref:a,trapFocus:l.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.m)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),u.current||null==(t=l.triggerRef.current)||t.focus()}),onPointerDownOutside:(0,o.m)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,l=0===t.button&&!0===t.ctrlKey;u.current=2===t.button||l},{checkForDefaultPrevented:!1}),onFocusOutside:(0,o.m)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),H=n.forwardRef((e,t)=>{let l=x(L,e.__scopePopover),o=n.useRef(!1),r=n.useRef(!1);return(0,b.jsx)(z,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var n,i;null==(n=e.onCloseAutoFocus)||n.call(e,t),t.defaultPrevented||(o.current||null==(i=l.triggerRef.current)||i.focus(),t.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:t=>{var n,i;null==(n=e.onInteractOutside)||n.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(r.current=!0));let a=t.target;(null==(i=l.triggerRef.current)?void 0:i.contains(a))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&r.current&&t.preventDefault()}})}),z=n.forwardRef((e,t)=>{let{__scopePopover:l,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:r,disableOutsidePointerEvents:i,onEscapeKeyDown:d,onPointerDownOutside:c,onFocusOutside:p,onInteractOutside:f,...m}=e,v=x(L,l),h=y(l);return(0,u.Oh)(),(0,b.jsx)(s.n,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:r,children:(0,b.jsx)(a.qW,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:f,onEscapeKeyDown:d,onPointerDownOutside:c,onFocusOutside:p,onDismiss:()=>v.onOpenChange(!1),children:(0,b.jsx)(g.UC,{"data-state":T(v.open),role:"dialog",id:v.contentId,...h,...m,ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),j="PopoverClose";function T(e){return e?"open":"closed"}n.forwardRef((e,t)=>{let{__scopePopover:l,...n}=e,r=x(j,l);return(0,b.jsx)(f.sG.button,{type:"button",...n,ref:t,onClick:(0,o.m)(e.onClick,()=>r.onOpenChange(!1))})}).displayName=j,n.forwardRef((e,t)=>{let{__scopePopover:l,...n}=e,o=y(l);return(0,b.jsx)(g.i3,{...o,...n,ref:t})}).displayName="PopoverArrow";var B=M,q=V,N=k,U=G},646:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},741:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]])},1032:(e,t,l)=>{function n(e,t){return"function"==typeof e?e(t):e}function o(e,t){return l=>{t.setState(t=>({...t,[e]:n(l,t[e])}))}}function r(e){return e instanceof Function}l.d(t,{HT:()=>N,ZR:()=>q});function i(e,t,l){let n,o=[];return r=>{let i,a;l.key&&l.debug&&(i=Date.now());let u=e(r);if(!(u.length!==o.length||u.some((e,t)=>o[t]!==e)))return n;if(o=u,l.key&&l.debug&&(a=Date.now()),n=t(...u),null==l||null==l.onChange||l.onChange(n),l.key&&l.debug&&null!=l&&l.debug()){let e=Math.round((Date.now()-i)*100)/100,t=Math.round((Date.now()-a)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{function n(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return n}}),l(5155),l(7650),l(5744),l(589)},547:(e,t,l)=>{l.d(t,{UC:()=>U,ZL:()=>N,bL:()=>B,l9:()=>q});var n=l(2115),o=l(5185),r=l(6101),i=l(6081),a=l(9178),u=l(2293),s=l(7900),d=l(1285),g=l(5152),c=l(4378),p=l(8905),f=l(3655),m=l(9708),v=l(5845),h=l(8168),C=l(3795),b=l(5155),w="Popover",[S,R]=(0,i.A)(w,[g.Bk]),y=(0,g.Bk)(),[x,F]=S(w),M=e=>{let{__scopePopover:t,children:l,open:o,defaultOpen:r,onOpenChange:i,modal:a=!1}=e,u=y(t),s=n.useRef(null),[c,p]=n.useState(!1),[f,m]=(0,v.i)({prop:o,defaultProp:null!=r&&r,onChange:i,caller:w});return(0,b.jsx)(g.bL,{...u,children:(0,b.jsx)(x,{scope:t,contentId:(0,d.B)(),triggerRef:s,open:f,onOpenChange:m,onOpenToggle:n.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:c,onCustomAnchorAdd:n.useCallback(()=>p(!0),[]),onCustomAnchorRemove:n.useCallback(()=>p(!1),[]),modal:a,children:l})})};M.displayName=w;var P="PopoverAnchor";n.forwardRef((e,t)=>{let{__scopePopover:l,...o}=e,r=F(P,l),i=y(l),{onCustomAnchorAdd:a,onCustomAnchorRemove:u}=r;return n.useEffect(()=>(a(),()=>u()),[a,u]),(0,b.jsx)(g.Mz,{...i,...o,ref:t})}).displayName=P;var I="PopoverTrigger",A=n.forwardRef((e,t)=>{let{__scopePopover:l,...n}=e,i=F(I,l),a=y(l),u=(0,r.s)(t,i.triggerRef),s=(0,b.jsx)(f.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":T(i.open),...n,ref:u,onClick:(0,o.m)(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,b.jsx)(g.Mz,{asChild:!0,...a,children:s})});A.displayName=I;var V="PopoverPortal",[E,_]=S(V,{forceMount:void 0}),k=e=>{let{__scopePopover:t,forceMount:l,children:n,container:o}=e,r=F(V,t);return(0,b.jsx)(E,{scope:t,forceMount:l,children:(0,b.jsx)(p.C,{present:l||r.open,children:(0,b.jsx)(c.Z,{asChild:!0,container:o,children:n})})})};k.displayName=V;var L="PopoverContent",G=n.forwardRef((e,t)=>{let l=_(L,e.__scopePopover),{forceMount:n=l.forceMount,...o}=e,r=F(L,e.__scopePopover);return(0,b.jsx)(p.C,{present:n||r.open,children:r.modal?(0,b.jsx)(O,{...o,ref:t}):(0,b.jsx)(H,{...o,ref:t})})});G.displayName=L;var D=(0,m.TL)("PopoverContent.RemoveScroll"),O=n.forwardRef((e,t)=>{let l=F(L,e.__scopePopover),i=n.useRef(null),a=(0,r.s)(t,i),u=n.useRef(!1);return n.useEffect(()=>{let e=i.current;if(e)return(0,h.Eq)(e)},[]),(0,b.jsx)(C.A,{as:D,allowPinchZoom:!0,children:(0,b.jsx)(z,{...e,ref:a,trapFocus:l.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.m)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),u.current||null==(t=l.triggerRef.current)||t.focus()}),onPointerDownOutside:(0,o.m)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,l=0===t.button&&!0===t.ctrlKey;u.current=2===t.button||l},{checkForDefaultPrevented:!1}),onFocusOutside:(0,o.m)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),H=n.forwardRef((e,t)=>{let l=F(L,e.__scopePopover),o=n.useRef(!1),r=n.useRef(!1);return(0,b.jsx)(z,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var n,i;null==(n=e.onCloseAutoFocus)||n.call(e,t),t.defaultPrevented||(o.current||null==(i=l.triggerRef.current)||i.focus(),t.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:t=>{var n,i;null==(n=e.onInteractOutside)||n.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(r.current=!0));let a=t.target;(null==(i=l.triggerRef.current)?void 0:i.contains(a))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&r.current&&t.preventDefault()}})}),z=n.forwardRef((e,t)=>{let{__scopePopover:l,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:r,disableOutsidePointerEvents:i,onEscapeKeyDown:d,onPointerDownOutside:c,onFocusOutside:p,onInteractOutside:f,...m}=e,v=F(L,l),h=y(l);return(0,u.Oh)(),(0,b.jsx)(s.n,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:r,children:(0,b.jsx)(a.qW,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:f,onEscapeKeyDown:d,onPointerDownOutside:c,onFocusOutside:p,onDismiss:()=>v.onOpenChange(!1),children:(0,b.jsx)(g.UC,{"data-state":T(v.open),role:"dialog",id:v.contentId,...h,...m,ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),j="PopoverClose";function T(e){return e?"open":"closed"}n.forwardRef((e,t)=>{let{__scopePopover:l,...n}=e,r=F(j,l);return(0,b.jsx)(f.sG.button,{type:"button",...n,ref:t,onClick:(0,o.m)(e.onClick,()=>r.onOpenChange(!1))})}).displayName=j,n.forwardRef((e,t)=>{let{__scopePopover:l,...n}=e,o=y(l);return(0,b.jsx)(g.i3,{...o,...n,ref:t})}).displayName="PopoverArrow";var B=M,q=A,N=k,U=G},646:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},741:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]])},1032:(e,t,l)=>{function n(e,t){return"function"==typeof e?e(t):e}function o(e,t){return l=>{t.setState(t=>({...t,[e]:n(l,t[e])}))}}function r(e){return e instanceof Function}l.d(t,{HT:()=>N,ZR:()=>q});function i(e,t,l){let n,o=[];return r=>{let i,a;l.key&&l.debug&&(i=Date.now());let u=e(r);if(!(u.length!==o.length||u.some((e,t)=>o[t]!==e)))return n;if(o=u,l.key&&l.debug&&(a=Date.now()),n=t(...u),null==l||null==l.onChange||l.onChange(n),l.key&&l.debug&&null!=l&&l.debug()){let e=Math.round((Date.now()-i)*100)/100,t=Math.round((Date.now()-a)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{var l;return null!=(l=null==e?void 0:e.debugAll)?l:e[t]},key:!1,onChange:n}}let u="debugHeaders";function s(e,t,l){var n;let o={id:null!=(n=l.id)?n:t.id,column:t,index:l.index,isPlaceholder:!!l.isPlaceholder,placeholderId:l.placeholderId,depth:l.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{let e=[],t=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(t),e.push(l)};return t(o),e},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(t=>{null==t.createHeader||t.createHeader(o,e)}),o}function d(e,t,l,n){var o,r;let i=0,a=function(e,t){void 0===t&&(t=1),i=Math.max(i,t),e.filter(e=>e.getIsVisible()).forEach(e=>{var l;null!=(l=e.columns)&&l.length&&a(e.columns,t+1)},0)};a(e);let u=[],d=(e,t)=>{let o={depth:t,id:[n,`${t}`].filter(Boolean).join("_"),headers:[]},r=[];e.forEach(e=>{let i,a=[...r].reverse()[0],u=e.column.depth===o.depth,d=!1;if(u&&e.column.parent?i=e.column.parent:(i=e.column,d=!0),a&&(null==a?void 0:a.column)===i)a.subHeaders.push(e);else{let o=s(l,i,{id:[n,t,i.id,null==e?void 0:e.id].filter(Boolean).join("_"),isPlaceholder:d,placeholderId:d?`${r.filter(e=>e.column===i).length}`:void 0,depth:t,index:r.length});o.subHeaders.push(e),r.push(o)}o.headers.push(e),e.headerGroup=o}),u.push(o),t>0&&d(r,t-1)};d(t.map((e,t)=>s(l,e,{depth:i,index:t})),i-1),u.reverse();let g=e=>e.filter(e=>e.column.getIsVisible()).map(e=>{let t=0,l=0,n=[0];return e.subHeaders&&e.subHeaders.length?(n=[],g(e.subHeaders).forEach(e=>{let{colSpan:l,rowSpan:o}=e;t+=l,n.push(o)})):t=1,l+=Math.min(...n),e.colSpan=t,e.rowSpan=l,{colSpan:t,rowSpan:l}});return g(null!=(o=null==(r=u[0])?void 0:r.headers)?o:[]),u}let g=(e,t,l,n,o,r,u)=>{let s={id:t,index:n,original:l,depth:o,parentId:u,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(s._valuesCache.hasOwnProperty(t))return s._valuesCache[t];let l=e.getColumn(t);if(null!=l&&l.accessorFn)return s._valuesCache[t]=l.accessorFn(s.original,n),s._valuesCache[t]},getUniqueValues:t=>{if(s._uniqueValuesCache.hasOwnProperty(t))return s._uniqueValuesCache[t];let l=e.getColumn(t);if(null!=l&&l.accessorFn)return l.columnDef.getUniqueValues?s._uniqueValuesCache[t]=l.columnDef.getUniqueValues(s.original,n):s._uniqueValuesCache[t]=[s.getValue(t)],s._uniqueValuesCache[t]},renderValue:t=>{var l;return null!=(l=s.getValue(t))?l:e.options.renderFallbackValue},subRows:null!=r?r:[],getLeafRows:()=>(function(e,t){let l=[],n=e=>{e.forEach(e=>{l.push(e);let o=t(e);null!=o&&o.length&&n(o)})};return n(e),l})(s.subRows,e=>e.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let e=[],t=s;for(;;){let l=t.getParentRow();if(!l)break;e.push(l),t=l}return e.reverse()},getAllCells:i(()=>[e.getAllLeafColumns()],t=>t.map(t=>(function(e,t,l,n){let o={id:`${t.id}_${l.id}`,row:t,column:l,getValue:()=>t.getValue(n),renderValue:()=>{var t;return null!=(t=o.getValue())?t:e.options.renderFallbackValue},getContext:i(()=>[e,l,t,o],(e,t,l,n)=>({table:e,column:t,row:l,cell:n,getValue:n.getValue,renderValue:n.renderValue}),a(e.options,"debugCells","cell.getContext"))};return e._features.forEach(n=>{null==n.createCell||n.createCell(o,l,t,e)},{}),o})(e,s,t,t.id)),a(e.options,"debugRows","getAllCells")),_getAllCellsByColumnId:i(()=>[s.getAllCells()],e=>e.reduce((e,t)=>(e[t.column.id]=t,e),{}),a(e.options,"debugRows","getAllCellsByColumnId"))};for(let t=0;t{var n,o;let r=null==l||null==(n=l.toString())?void 0:n.toLowerCase();return!!(null==(o=e.getValue(t))||null==(o=o.toString())||null==(o=o.toLowerCase())?void 0:o.includes(r))};c.autoRemove=e=>R(e);let p=(e,t,l)=>{var n;return!!(null==(n=e.getValue(t))||null==(n=n.toString())?void 0:n.includes(l))};p.autoRemove=e=>R(e);let f=(e,t,l)=>{var n;return(null==(n=e.getValue(t))||null==(n=n.toString())?void 0:n.toLowerCase())===(null==l?void 0:l.toLowerCase())};f.autoRemove=e=>R(e);let m=(e,t,l)=>{var n;return null==(n=e.getValue(t))?void 0:n.includes(l)};m.autoRemove=e=>R(e);let v=(e,t,l)=>!l.some(l=>{var n;return!(null!=(n=e.getValue(t))&&n.includes(l))});v.autoRemove=e=>R(e)||!(null!=e&&e.length);let h=(e,t,l)=>l.some(l=>{var n;return null==(n=e.getValue(t))?void 0:n.includes(l)});h.autoRemove=e=>R(e)||!(null!=e&&e.length);let C=(e,t,l)=>e.getValue(t)===l;C.autoRemove=e=>R(e);let b=(e,t,l)=>e.getValue(t)==l;b.autoRemove=e=>R(e);let w=(e,t,l)=>{let[n,o]=l,r=e.getValue(t);return r>=n&&r<=o};w.resolveFilterValue=e=>{let[t,l]=e,n="number"!=typeof t?parseFloat(t):t,o="number"!=typeof l?parseFloat(l):l,r=null===t||Number.isNaN(n)?-1/0:n,i=null===l||Number.isNaN(o)?1/0:o;if(r>i){let e=r;r=i,i=e}return[r,i]},w.autoRemove=e=>R(e)||R(e[0])&&R(e[1]);let S={includesString:c,includesStringSensitive:p,equalsString:f,arrIncludes:m,arrIncludesAll:v,arrIncludesSome:h,equals:C,weakEquals:b,inNumberRange:w};function R(e){return null==e||""===e}function y(e,t,l){return!!e&&!!e.autoRemove&&e.autoRemove(t,l)||void 0===t||"string"==typeof t&&!t}let F={sum:(e,t,l)=>l.reduce((t,l)=>{let n=l.getValue(e);return t+("number"==typeof n?n:0)},0),min:(e,t,l)=>{let n;return l.forEach(t=>{let l=t.getValue(e);null!=l&&(n>l||void 0===n&&l>=l)&&(n=l)}),n},max:(e,t,l)=>{let n;return l.forEach(t=>{let l=t.getValue(e);null!=l&&(n=l)&&(n=l)}),n},extent:(e,t,l)=>{let n,o;return l.forEach(t=>{let l=t.getValue(e);null!=l&&(void 0===n?l>=l&&(n=o=l):(n>l&&(n=l),o{let l=0,n=0;if(t.forEach(t=>{let o=t.getValue(e);null!=o&&(o*=1)>=o&&(++l,n+=o)}),l)return n/l},median:(e,t)=>{if(!t.length)return;let l=t.map(t=>t.getValue(e));if(!function(e){return Array.isArray(e)&&e.every(e=>"number"==typeof e)}(l))return;if(1===l.length)return l[0];let n=Math.floor(l.length/2),o=l.sort((e,t)=>e-t);return l.length%2!=0?o[n]:(o[n-1]+o[n])/2},unique:(e,t)=>Array.from(new Set(t.map(t=>t.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(t=>t.getValue(e))).size,count:(e,t)=>t.length},x=()=>({left:[],right:[]}),M={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},P=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),I=null;function V(e){return"touchstart"===e.type}function A(e,t){return t?"center"===t?e.getCenterVisibleLeafColumns():"left"===t?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}let E=()=>({pageIndex:0,pageSize:10}),_=()=>({top:[],bottom:[]}),k=(e,t,l,n,o)=>{var r;let i=o.getRow(t,!0);l?(i.getCanMultiSelect()||Object.keys(e).forEach(t=>delete e[t]),i.getCanSelect()&&(e[t]=!0)):delete e[t],n&&null!=(r=i.subRows)&&r.length&&i.getCanSelectSubRows()&&i.subRows.forEach(t=>k(e,t.id,l,n,o))};function L(e,t){let l=e.getState().rowSelection,n=[],o={},r=function(e,t){return e.map(e=>{var t;let i=G(e,l);if(i&&(n.push(e),o[e.id]=e),null!=(t=e.subRows)&&t.length&&(e={...e,subRows:r(e.subRows)}),i)return e}).filter(Boolean)};return{rows:r(t.rows),flatRows:n,rowsById:o}}function G(e,t){var l;return null!=(l=t[e.id])&&l}function D(e,t,l){var n;if(!(null!=(n=e.subRows)&&n.length))return!1;let o=!0,r=!1;return e.subRows.forEach(e=>{if((!r||o)&&(e.getCanSelect()&&(G(e,t)?r=!0:o=!1),e.subRows&&e.subRows.length)){let l=D(e,t);"all"===l?r=!0:("some"===l&&(r=!0),o=!1)}}),o?"all":!!r&&"some"}let O=/([0-9]+)/gm;function H(e,t){return e===t?0:e>t?1:-1}function z(e){return"number"==typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"==typeof e?e:""}function j(e,t){let l=e.split(O).filter(Boolean),n=t.split(O).filter(Boolean);for(;l.length&&n.length;){let e=l.shift(),t=n.shift(),o=parseInt(e,10),r=parseInt(t,10),i=[o,r].sort();if(isNaN(i[0])){if(e>t)return 1;if(t>e)return -1;continue}if(isNaN(i[1]))return isNaN(o)?-1:1;if(o>r)return 1;if(r>o)return -1}return l.length-n.length}let T={alphanumeric:(e,t,l)=>j(z(e.getValue(l)).toLowerCase(),z(t.getValue(l)).toLowerCase()),alphanumericCaseSensitive:(e,t,l)=>j(z(e.getValue(l)),z(t.getValue(l))),text:(e,t,l)=>H(z(e.getValue(l)).toLowerCase(),z(t.getValue(l)).toLowerCase()),textCaseSensitive:(e,t,l)=>H(z(e.getValue(l)),z(t.getValue(l))),datetime:(e,t,l)=>{let n=e.getValue(l),o=t.getValue(l);return n>o?1:nH(e.getValue(l),t.getValue(l))},B=[{createTable:e=>{e.getHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,l,n,o)=>{var r,i;let a=null!=(r=null==n?void 0:n.map(e=>l.find(t=>t.id===e)).filter(Boolean))?r:[],u=null!=(i=null==o?void 0:o.map(e=>l.find(t=>t.id===e)).filter(Boolean))?i:[];return d(t,[...a,...l.filter(e=>!(null!=n&&n.includes(e.id))&&!(null!=o&&o.includes(e.id))),...u],e)},a(e.options,u,"getHeaderGroups")),e.getCenterHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,l,n,o)=>d(t,l=l.filter(e=>!(null!=n&&n.includes(e.id))&&!(null!=o&&o.includes(e.id))),e,"center"),a(e.options,u,"getCenterHeaderGroups")),e.getLeftHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,l,n)=>{var o;return d(t,null!=(o=null==n?void 0:n.map(e=>l.find(t=>t.id===e)).filter(Boolean))?o:[],e,"left")},a(e.options,u,"getLeftHeaderGroups")),e.getRightHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,l,n)=>{var o;return d(t,null!=(o=null==n?void 0:n.map(e=>l.find(t=>t.id===e)).filter(Boolean))?o:[],e,"right")},a(e.options,u,"getRightHeaderGroups")),e.getFooterGroups=i(()=>[e.getHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getFooterGroups")),e.getLeftFooterGroups=i(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getLeftFooterGroups")),e.getCenterFooterGroups=i(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getCenterFooterGroups")),e.getRightFooterGroups=i(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getRightFooterGroups")),e.getFlatHeaders=i(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getFlatHeaders")),e.getLeftFlatHeaders=i(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getLeftFlatHeaders")),e.getCenterFlatHeaders=i(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getCenterFlatHeaders")),e.getRightFlatHeaders=i(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getRightFlatHeaders")),e.getCenterLeafHeaders=i(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}),a(e.options,u,"getCenterLeafHeaders")),e.getLeftLeafHeaders=i(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}),a(e.options,u,"getLeftLeafHeaders")),e.getRightLeafHeaders=i(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}),a(e.options,u,"getRightLeafHeaders")),e.getLeafHeaders=i(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(e,t,l)=>{var n,o,r,i,a,u;return[...null!=(n=null==(o=e[0])?void 0:o.headers)?n:[],...null!=(r=null==(i=t[0])?void 0:i.headers)?r:[],...null!=(a=null==(u=l[0])?void 0:u.headers)?a:[]].map(e=>e.getLeafHeaders()).flat()},a(e.options,u,"getLeafHeaders"))}},{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:o("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=l=>{e.getCanHide()&&t.setColumnVisibility(t=>({...t,[e.id]:null!=l?l:!e.getIsVisible()}))},e.getIsVisible=()=>{var l,n;let o=e.columns;return null==(l=o.length?o.some(e=>e.getIsVisible()):null==(n=t.getState().columnVisibility)?void 0:n[e.id])||l},e.getCanHide=()=>{var l,n;return(null==(l=e.columnDef.enableHiding)||l)&&(null==(n=t.options.enableHiding)||n)},e.getToggleVisibilityHandler=()=>t=>{null==e.toggleVisibility||e.toggleVisibility(t.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=i(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),a(t.options,"debugRows","_getAllVisibleCells")),e.getVisibleCells=i(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,l)=>[...e,...t,...l],a(t.options,"debugRows","getVisibleCells"))},createTable:e=>{let t=(t,l)=>i(()=>[l(),l().filter(e=>e.getIsVisible()).map(e=>e.id).join("_")],e=>e.filter(e=>null==e.getIsVisible?void 0:e.getIsVisible()),a(e.options,"debugColumns",t));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=t=>null==e.options.onColumnVisibilityChange?void 0:e.options.onColumnVisibilityChange(t),e.resetColumnVisibility=t=>{var l;e.setColumnVisibility(t?{}:null!=(l=e.initialState.columnVisibility)?l:{})},e.toggleAllColumnsVisible=t=>{var l;t=null!=(l=t)?l:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((e,l)=>({...e,[l.id]:t||!(null!=l.getCanHide&&l.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(e=>!(null!=e.getIsVisible&&e.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(e=>null==e.getIsVisible?void 0:e.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>t=>{var l;e.toggleAllColumnsVisible(null==(l=t.target)?void 0:l.checked)}}},{getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:o("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=i(e=>[A(t,e)],t=>t.findIndex(t=>t.id===e.id),a(t.options,"debugColumns","getIndex")),e.getIsFirstColumn=l=>{var n;return(null==(n=A(t,l)[0])?void 0:n.id)===e.id},e.getIsLastColumn=l=>{var n;let o=A(t,l);return(null==(n=o[o.length-1])?void 0:n.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>null==e.options.onColumnOrderChange?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var l;e.setColumnOrder(t?[]:null!=(l=e.initialState.columnOrder)?l:[])},e._getOrderColumnsFn=i(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(e,t,l)=>n=>{let o=[];if(null!=e&&e.length){let t=[...e],l=[...n];for(;l.length&&t.length;){let e=t.shift(),n=l.findIndex(t=>t.id===e);n>-1&&o.push(l.splice(n,1)[0])}o=[...o,...l]}else o=n;return function(e,t,l){if(!(null!=t&&t.length)||!l)return e;let n=e.filter(e=>!t.includes(e.id));return"remove"===l?n:[...t.map(t=>e.find(e=>e.id===t)).filter(Boolean),...n]}(o,t,l)},a(e.options,"debugTable","_getOrderColumnsFn"))}},{getInitialState:e=>({columnPinning:x(),...e}),getDefaultOptions:e=>({onColumnPinningChange:o("columnPinning",e)}),createColumn:(e,t)=>{e.pin=l=>{let n=e.getLeafColumns().map(e=>e.id).filter(Boolean);t.setColumnPinning(e=>{var t,o,r,i,a,u;return"right"===l?{left:(null!=(r=null==e?void 0:e.left)?r:[]).filter(e=>!(null!=n&&n.includes(e))),right:[...(null!=(i=null==e?void 0:e.right)?i:[]).filter(e=>!(null!=n&&n.includes(e))),...n]}:"left"===l?{left:[...(null!=(a=null==e?void 0:e.left)?a:[]).filter(e=>!(null!=n&&n.includes(e))),...n],right:(null!=(u=null==e?void 0:e.right)?u:[]).filter(e=>!(null!=n&&n.includes(e)))}:{left:(null!=(t=null==e?void 0:e.left)?t:[]).filter(e=>!(null!=n&&n.includes(e))),right:(null!=(o=null==e?void 0:e.right)?o:[]).filter(e=>!(null!=n&&n.includes(e)))}})},e.getCanPin=()=>e.getLeafColumns().some(e=>{var l,n,o;return(null==(l=e.columnDef.enablePinning)||l)&&(null==(n=null!=(o=t.options.enableColumnPinning)?o:t.options.enablePinning)||n)}),e.getIsPinned=()=>{let l=e.getLeafColumns().map(e=>e.id),{left:n,right:o}=t.getState().columnPinning,r=l.some(e=>null==n?void 0:n.includes(e)),i=l.some(e=>null==o?void 0:o.includes(e));return r?"left":!!i&&"right"},e.getPinnedIndex=()=>{var l,n;let o=e.getIsPinned();return o?null!=(l=null==(n=t.getState().columnPinning)||null==(n=n[o])?void 0:n.indexOf(e.id))?l:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=i(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(e,t,l)=>{let n=[...null!=t?t:[],...null!=l?l:[]];return e.filter(e=>!n.includes(e.column.id))},a(t.options,"debugRows","getCenterVisibleCells")),e.getLeftVisibleCells=i(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:"left"})),a(t.options,"debugRows","getLeftVisibleCells")),e.getRightVisibleCells=i(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:"right"})),a(t.options,"debugRows","getRightVisibleCells"))},createTable:e=>{e.setColumnPinning=t=>null==e.options.onColumnPinningChange?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var l,n;return e.setColumnPinning(t?x():null!=(l=null==(n=e.initialState)?void 0:n.columnPinning)?l:x())},e.getIsSomeColumnsPinned=t=>{var l,n,o;let r=e.getState().columnPinning;return t?!!(null==(l=r[t])?void 0:l.length):!!((null==(n=r.left)?void 0:n.length)||(null==(o=r.right)?void 0:o.length))},e.getLeftLeafColumns=i(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),a(e.options,"debugColumns","getLeftLeafColumns")),e.getRightLeafColumns=i(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),a(e.options,"debugColumns","getRightLeafColumns")),e.getCenterLeafColumns=i(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(e,t,l)=>{let n=[...null!=t?t:[],...null!=l?l:[]];return e.filter(e=>!n.includes(e.id))},a(e.options,"debugColumns","getCenterLeafColumns"))}},{createColumn:(e,t)=>{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},{getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:o("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{let l=t.getCoreRowModel().flatRows[0],n=null==l?void 0:l.getValue(e.id);return"string"==typeof n?S.includesString:"number"==typeof n?S.inNumberRange:"boolean"==typeof n||null!==n&&"object"==typeof n?S.equals:Array.isArray(n)?S.arrIncludes:S.weakEquals},e.getFilterFn=()=>{var l,n;return r(e.columnDef.filterFn)?e.columnDef.filterFn:"auto"===e.columnDef.filterFn?e.getAutoFilterFn():null!=(l=null==(n=t.options.filterFns)?void 0:n[e.columnDef.filterFn])?l:S[e.columnDef.filterFn]},e.getCanFilter=()=>{var l,n,o;return(null==(l=e.columnDef.enableColumnFilter)||l)&&(null==(n=t.options.enableColumnFilters)||n)&&(null==(o=t.options.enableFilters)||o)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var l;return null==(l=t.getState().columnFilters)||null==(l=l.find(t=>t.id===e.id))?void 0:l.value},e.getFilterIndex=()=>{var l,n;return null!=(l=null==(n=t.getState().columnFilters)?void 0:n.findIndex(t=>t.id===e.id))?l:-1},e.setFilterValue=l=>{t.setColumnFilters(t=>{var o,r;let i=e.getFilterFn(),a=null==t?void 0:t.find(t=>t.id===e.id),u=n(l,a?a.value:void 0);if(y(i,u,e))return null!=(o=null==t?void 0:t.filter(t=>t.id!==e.id))?o:[];let s={id:e.id,value:u};return a?null!=(r=null==t?void 0:t.map(t=>t.id===e.id?s:t))?r:[]:null!=t&&t.length?[...t,s]:[s]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{let l=e.getAllLeafColumns();null==e.options.onColumnFiltersChange||e.options.onColumnFiltersChange(e=>{var o;return null==(o=n(t,e))?void 0:o.filter(e=>{let t=l.find(t=>t.id===e.id);return!(t&&y(t.getFilterFn(),e.value,t))&&!0})})},e.resetColumnFilters=t=>{var l,n;e.setColumnFilters(t?[]:null!=(l=null==(n=e.initialState)?void 0:n.columnFilters)?l:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel)?e.getPreFilteredRowModel():e._getFilteredRowModel()}},{createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},{getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:o("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var l;let n=null==(l=e.getCoreRowModel().flatRows[0])||null==(l=l._getAllCellsByColumnId()[t.id])?void 0:l.getValue();return"string"==typeof n||"number"==typeof n}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var l,n,o,r;return(null==(l=e.columnDef.enableGlobalFilter)||l)&&(null==(n=t.options.enableGlobalFilter)||n)&&(null==(o=t.options.enableFilters)||o)&&(null==(r=null==t.options.getColumnCanGlobalFilter?void 0:t.options.getColumnCanGlobalFilter(e))||r)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>S.includesString,e.getGlobalFilterFn=()=>{var t,l;let{globalFilterFn:n}=e.options;return r(n)?n:"auto"===n?e.getGlobalAutoFilterFn():null!=(t=null==(l=e.options.filterFns)?void 0:l[n])?t:S[n]},e.setGlobalFilter=t=>{null==e.options.onGlobalFilterChange||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:o("sorting",e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{let l=t.getFilteredRowModel().flatRows.slice(10),n=!1;for(let t of l){let l=null==t?void 0:t.getValue(e.id);if("[object Date]"===Object.prototype.toString.call(l))return T.datetime;if("string"==typeof l&&(n=!0,l.split(O).length>1))return T.alphanumeric}return n?T.text:T.basic},e.getAutoSortDir=()=>{let l=t.getFilteredRowModel().flatRows[0];return"string"==typeof(null==l?void 0:l.getValue(e.id))?"asc":"desc"},e.getSortingFn=()=>{var l,n;if(!e)throw Error();return r(e.columnDef.sortingFn)?e.columnDef.sortingFn:"auto"===e.columnDef.sortingFn?e.getAutoSortingFn():null!=(l=null==(n=t.options.sortingFns)?void 0:n[e.columnDef.sortingFn])?l:T[e.columnDef.sortingFn]},e.toggleSorting=(l,n)=>{let o=e.getNextSortingOrder(),r=null!=l;t.setSorting(i=>{let a,u=null==i?void 0:i.find(t=>t.id===e.id),s=null==i?void 0:i.findIndex(t=>t.id===e.id),d=[],g=r?l:"desc"===o;if("toggle"!=(a=null!=i&&i.length&&e.getCanMultiSort()&&n?u?"toggle":"add":null!=i&&i.length&&s!==i.length-1?"replace":u?"toggle":"replace")||r||o||(a="remove"),"add"===a){var c;(d=[...i,{id:e.id,desc:g}]).splice(0,d.length-(null!=(c=t.options.maxMultiSortColCount)?c:Number.MAX_SAFE_INTEGER))}else d="toggle"===a?i.map(t=>t.id===e.id?{...t,desc:g}:t):"remove"===a?i.filter(t=>t.id!==e.id):[{id:e.id,desc:g}];return d})},e.getFirstSortDir=()=>{var l,n;return(null!=(l=null!=(n=e.columnDef.sortDescFirst)?n:t.options.sortDescFirst)?l:"desc"===e.getAutoSortDir())?"desc":"asc"},e.getNextSortingOrder=l=>{var n,o;let r=e.getFirstSortDir(),i=e.getIsSorted();return i?(i===r||null!=(n=t.options.enableSortingRemoval)&&!n||!!l&&null!=(o=t.options.enableMultiRemove)&&!o)&&("desc"===i?"asc":"desc"):r},e.getCanSort=()=>{var l,n;return(null==(l=e.columnDef.enableSorting)||l)&&(null==(n=t.options.enableSorting)||n)&&!!e.accessorFn},e.getCanMultiSort=()=>{var l,n;return null!=(l=null!=(n=e.columnDef.enableMultiSort)?n:t.options.enableMultiSort)?l:!!e.accessorFn},e.getIsSorted=()=>{var l;let n=null==(l=t.getState().sorting)?void 0:l.find(t=>t.id===e.id);return!!n&&(n.desc?"desc":"asc")},e.getSortIndex=()=>{var l,n;return null!=(l=null==(n=t.getState().sorting)?void 0:n.findIndex(t=>t.id===e.id))?l:-1},e.clearSorting=()=>{t.setSorting(t=>null!=t&&t.length?t.filter(t=>t.id!==e.id):[])},e.getToggleSortingHandler=()=>{let l=e.getCanSort();return n=>{l&&(null==n.persist||n.persist(),null==e.toggleSorting||e.toggleSorting(void 0,!!e.getCanMultiSort()&&(null==t.options.isMultiSortEvent?void 0:t.options.isMultiSortEvent(n))))}}},createTable:e=>{e.setSorting=t=>null==e.options.onSortingChange?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var l,n;e.setSorting(t?[]:null!=(l=null==(n=e.initialState)?void 0:n.sorting)?l:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel)?e.getPreSortedRowModel():e._getSortedRowModel()}},{getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,l;return null!=(t=null==(l=e.getValue())||null==l.toString?void 0:l.toString())?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:o("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(t=>null!=t&&t.includes(e.id)?t.filter(t=>t!==e.id):[...null!=t?t:[],e.id])},e.getCanGroup=()=>{var l,n;return(null==(l=e.columnDef.enableGrouping)||l)&&(null==(n=t.options.enableGrouping)||n)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var l;return null==(l=t.getState().grouping)?void 0:l.includes(e.id)},e.getGroupedIndex=()=>{var l;return null==(l=t.getState().grouping)?void 0:l.indexOf(e.id)},e.getToggleGroupingHandler=()=>{let t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{let l=t.getCoreRowModel().flatRows[0],n=null==l?void 0:l.getValue(e.id);return"number"==typeof n?F.sum:"[object Date]"===Object.prototype.toString.call(n)?F.extent:void 0},e.getAggregationFn=()=>{var l,n;if(!e)throw Error();return r(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:"auto"===e.columnDef.aggregationFn?e.getAutoAggregationFn():null!=(l=null==(n=t.options.aggregationFns)?void 0:n[e.columnDef.aggregationFn])?l:F[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>null==e.options.onGroupingChange?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var l,n;e.setGrouping(t?[]:null!=(l=null==(n=e.initialState)?void 0:n.grouping)?l:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel)?e.getPreGroupedRowModel():e._getGroupedRowModel()},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=l=>{if(e._groupingValuesCache.hasOwnProperty(l))return e._groupingValuesCache[l];let n=t.getColumn(l);return null!=n&&n.columnDef.getGroupingValue?(e._groupingValuesCache[l]=n.columnDef.getGroupingValue(e.original),e._groupingValuesCache[l]):e.getValue(l)},e._groupingValuesCache={}},createCell:(e,t,l,n)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===l.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!(null!=(t=l.subRows)&&t.length)}}},{getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:o("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,l=!1;e._autoResetExpanded=()=>{var n,o;if(!t)return void e._queue(()=>{t=!0});if(null!=(n=null!=(o=e.options.autoResetAll)?o:e.options.autoResetExpanded)?n:!e.options.manualExpanding){if(l)return;l=!0,e._queue(()=>{e.resetExpanded(),l=!1})}},e.setExpanded=t=>null==e.options.onExpandedChange?void 0:e.options.onExpandedChange(t),e.toggleAllRowsExpanded=t=>{(null!=t?t:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=t=>{var l,n;e.setExpanded(t?{}:null!=(l=null==(n=e.initialState)?void 0:n.expanded)?l:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(e=>e.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>t=>{null==t.persist||t.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{let t=e.getState().expanded;return!0===t||Object.values(t).some(Boolean)},e.getIsAllRowsExpanded=()=>{let t=e.getState().expanded;return"boolean"==typeof t?!0===t:!(!Object.keys(t).length||e.getRowModel().flatRows.some(e=>!e.getIsExpanded()))},e.getExpandedDepth=()=>{let t=0;return(!0===e.getState().expanded?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(e=>{let l=e.split(".");t=Math.max(t,l.length)}),t},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel)?e.getPreExpandedRowModel():e._getExpandedRowModel()},createRow:(e,t)=>{e.toggleExpanded=l=>{t.setExpanded(n=>{var o;let r=!0===n||!!(null!=n&&n[e.id]),i={};if(!0===n?Object.keys(t.getRowModel().rowsById).forEach(e=>{i[e]=!0}):i=n,l=null!=(o=l)?o:!r,!r&&l)return{...i,[e.id]:!0};if(r&&!l){let{[e.id]:t,...l}=i;return l}return n})},e.getIsExpanded=()=>{var l;let n=t.getState().expanded;return!!(null!=(l=null==t.options.getIsRowExpanded?void 0:t.options.getIsRowExpanded(e))?l:!0===n||(null==n?void 0:n[e.id]))},e.getCanExpand=()=>{var l,n,o;return null!=(l=null==t.options.getRowCanExpand?void 0:t.options.getRowCanExpand(e))?l:(null==(n=t.options.enableExpanding)||n)&&!!(null!=(o=e.subRows)&&o.length)},e.getIsAllParentsExpanded=()=>{let l=!0,n=e;for(;l&&n.parentId;)l=(n=t.getRow(n.parentId,!0)).getIsExpanded();return l},e.getToggleExpandedHandler=()=>{let t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}}},{getInitialState:e=>({...e,pagination:{...E(),...null==e?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:o("pagination",e)}),createTable:e=>{let t=!1,l=!1;e._autoResetPageIndex=()=>{var n,o;if(!t)return void e._queue(()=>{t=!0});if(null!=(n=null!=(o=e.options.autoResetAll)?o:e.options.autoResetPageIndex)?n:!e.options.manualPagination){if(l)return;l=!0,e._queue(()=>{e.resetPageIndex(),l=!1})}},e.setPagination=t=>null==e.options.onPaginationChange?void 0:e.options.onPaginationChange(e=>n(t,e)),e.resetPagination=t=>{var l;e.setPagination(t?E():null!=(l=e.initialState.pagination)?l:E())},e.setPageIndex=t=>{e.setPagination(l=>{let o=n(t,l.pageIndex);return o=Math.max(0,Math.min(o,void 0===e.options.pageCount||-1===e.options.pageCount?Number.MAX_SAFE_INTEGER:e.options.pageCount-1)),{...l,pageIndex:o}})},e.resetPageIndex=t=>{var l,n;e.setPageIndex(t?0:null!=(l=null==(n=e.initialState)||null==(n=n.pagination)?void 0:n.pageIndex)?l:0)},e.resetPageSize=t=>{var l,n;e.setPageSize(t?10:null!=(l=null==(n=e.initialState)||null==(n=n.pagination)?void 0:n.pageSize)?l:10)},e.setPageSize=t=>{e.setPagination(e=>{let l=Math.max(1,n(t,e.pageSize)),o=Math.floor(e.pageSize*e.pageIndex/l);return{...e,pageIndex:o,pageSize:l}})},e.setPageCount=t=>e.setPagination(l=>{var o;let r=n(t,null!=(o=e.options.pageCount)?o:-1);return"number"==typeof r&&(r=Math.max(-1,r)),{...l,pageCount:r}}),e.getPageOptions=i(()=>[e.getPageCount()],e=>{let t=[];return e&&e>0&&(t=[...Array(e)].fill(null).map((e,t)=>t)),t},a(e.options,"debugTable","getPageOptions")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{let{pageIndex:t}=e.getState().pagination,l=e.getPageCount();return -1===l||0!==l&&te.setPageIndex(e=>e-1),e.nextPage=()=>e.setPageIndex(e=>e+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel)?e.getPrePaginationRowModel():e._getPaginationRowModel(),e.getPageCount=()=>{var t;return null!=(t=e.options.pageCount)?t:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var t;return null!=(t=e.options.rowCount)?t:e.getPrePaginationRowModel().rows.length}}},{getInitialState:e=>({rowPinning:_(),...e}),getDefaultOptions:e=>({onRowPinningChange:o("rowPinning",e)}),createRow:(e,t)=>{e.pin=(l,n,o)=>{let r=n?e.getLeafRows().map(e=>{let{id:t}=e;return t}):[],i=new Set([...o?e.getParentRows().map(e=>{let{id:t}=e;return t}):[],e.id,...r]);t.setRowPinning(e=>{var t,n,o,r,a,u;return"bottom"===l?{top:(null!=(o=null==e?void 0:e.top)?o:[]).filter(e=>!(null!=i&&i.has(e))),bottom:[...(null!=(r=null==e?void 0:e.bottom)?r:[]).filter(e=>!(null!=i&&i.has(e))),...Array.from(i)]}:"top"===l?{top:[...(null!=(a=null==e?void 0:e.top)?a:[]).filter(e=>!(null!=i&&i.has(e))),...Array.from(i)],bottom:(null!=(u=null==e?void 0:e.bottom)?u:[]).filter(e=>!(null!=i&&i.has(e)))}:{top:(null!=(t=null==e?void 0:e.top)?t:[]).filter(e=>!(null!=i&&i.has(e))),bottom:(null!=(n=null==e?void 0:e.bottom)?n:[]).filter(e=>!(null!=i&&i.has(e)))}})},e.getCanPin=()=>{var l;let{enableRowPinning:n,enablePinning:o}=t.options;return"function"==typeof n?n(e):null==(l=null!=n?n:o)||l},e.getIsPinned=()=>{let l=[e.id],{top:n,bottom:o}=t.getState().rowPinning,r=l.some(e=>null==n?void 0:n.includes(e)),i=l.some(e=>null==o?void 0:o.includes(e));return r?"top":!!i&&"bottom"},e.getPinnedIndex=()=>{var l,n;let o=e.getIsPinned();if(!o)return -1;let r=null==(l="top"===o?t.getTopRows():t.getBottomRows())?void 0:l.map(e=>{let{id:t}=e;return t});return null!=(n=null==r?void 0:r.indexOf(e.id))?n:-1}},createTable:e=>{e.setRowPinning=t=>null==e.options.onRowPinningChange?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var l,n;return e.setRowPinning(t?_():null!=(l=null==(n=e.initialState)?void 0:n.rowPinning)?l:_())},e.getIsSomeRowsPinned=t=>{var l,n,o;let r=e.getState().rowPinning;return t?!!(null==(l=r[t])?void 0:l.length):!!((null==(n=r.top)?void 0:n.length)||(null==(o=r.bottom)?void 0:o.length))},e._getPinnedRows=(t,l,n)=>{var o;return(null==(o=e.options.keepPinnedRows)||o?(null!=l?l:[]).map(t=>{let l=e.getRow(t,!0);return l.getIsAllParentsExpanded()?l:null}):(null!=l?l:[]).map(e=>t.find(t=>t.id===e))).filter(Boolean).map(e=>({...e,position:n}))},e.getTopRows=i(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,l)=>e._getPinnedRows(t,l,"top"),a(e.options,"debugRows","getTopRows")),e.getBottomRows=i(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,l)=>e._getPinnedRows(t,l,"bottom"),a(e.options,"debugRows","getBottomRows")),e.getCenterRows=i(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(e,t,l)=>{let n=new Set([...null!=t?t:[],...null!=l?l:[]]);return e.filter(e=>!n.has(e.id))},a(e.options,"debugRows","getCenterRows"))}},{getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:o("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>null==e.options.onRowSelectionChange?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var l;return e.setRowSelection(t?{}:null!=(l=e.initialState.rowSelection)?l:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(l=>{t=void 0!==t?t:!e.getIsAllRowsSelected();let n={...l},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach(e=>{e.getCanSelect()&&(n[e.id]=!0)}):o.forEach(e=>{delete n[e.id]}),n})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(l=>{let n=void 0!==t?t:!e.getIsAllPageRowsSelected(),o={...l};return e.getRowModel().rows.forEach(t=>{k(o,t.id,n,!0,e)}),o}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=i(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,l)=>Object.keys(t).length?L(e,l):{rows:[],flatRows:[],rowsById:{}},a(e.options,"debugTable","getSelectedRowModel")),e.getFilteredSelectedRowModel=i(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,l)=>Object.keys(t).length?L(e,l):{rows:[],flatRows:[],rowsById:{}},a(e.options,"debugTable","getFilteredSelectedRowModel")),e.getGroupedSelectedRowModel=i(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,l)=>Object.keys(t).length?L(e,l):{rows:[],flatRows:[],rowsById:{}},a(e.options,"debugTable","getGroupedSelectedRowModel")),e.getIsAllRowsSelected=()=>{let t=e.getFilteredRowModel().flatRows,{rowSelection:l}=e.getState(),n=!!(t.length&&Object.keys(l).length);return n&&t.some(e=>e.getCanSelect()&&!l[e.id])&&(n=!1),n},e.getIsAllPageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows.filter(e=>e.getCanSelect()),{rowSelection:l}=e.getState(),n=!!t.length;return n&&t.some(e=>!l[e.id])&&(n=!1),n},e.getIsSomeRowsSelected=()=>{var t;let l=Object.keys(null!=(t=e.getState().rowSelection)?t:{}).length;return l>0&&l{let t=e.getPaginationRowModel().flatRows;return!e.getIsAllPageRowsSelected()&&t.filter(e=>e.getCanSelect()).some(e=>e.getIsSelected()||e.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(l,n)=>{let o=e.getIsSelected();t.setRowSelection(r=>{var i;if(l=void 0!==l?l:!o,e.getCanSelect()&&o===l)return r;let a={...r};return k(a,e.id,l,null==(i=null==n?void 0:n.selectChildren)||i,t),a})},e.getIsSelected=()=>{let{rowSelection:l}=t.getState();return G(e,l)},e.getIsSomeSelected=()=>{let{rowSelection:l}=t.getState();return"some"===D(e,l)},e.getIsAllSubRowsSelected=()=>{let{rowSelection:l}=t.getState();return"all"===D(e,l)},e.getCanSelect=()=>{var l;return"function"==typeof t.options.enableRowSelection?t.options.enableRowSelection(e):null==(l=t.options.enableRowSelection)||l},e.getCanSelectSubRows=()=>{var l;return"function"==typeof t.options.enableSubRowSelection?t.options.enableSubRowSelection(e):null==(l=t.options.enableSubRowSelection)||l},e.getCanMultiSelect=()=>{var l;return"function"==typeof t.options.enableMultiRowSelection?t.options.enableMultiRowSelection(e):null==(l=t.options.enableMultiRowSelection)||l},e.getToggleSelectedHandler=()=>{let t=e.getCanSelect();return l=>{var n;t&&e.toggleSelected(null==(n=l.target)?void 0:n.checked)}}}},{getDefaultColumnDef:()=>M,getInitialState:e=>({columnSizing:{},columnSizingInfo:P(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:o("columnSizing",e),onColumnSizingInfoChange:o("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var l,n,o;let r=t.getState().columnSizing[e.id];return Math.min(Math.max(null!=(l=e.columnDef.minSize)?l:M.minSize,null!=(n=null!=r?r:e.columnDef.size)?n:M.size),null!=(o=e.columnDef.maxSize)?o:M.maxSize)},e.getStart=i(e=>[e,A(t,e),t.getState().columnSizing],(t,l)=>l.slice(0,e.getIndex(t)).reduce((e,t)=>e+t.getSize(),0),a(t.options,"debugColumns","getStart")),e.getAfter=i(e=>[e,A(t,e),t.getState().columnSizing],(t,l)=>l.slice(e.getIndex(t)+1).reduce((e,t)=>e+t.getSize(),0),a(t.options,"debugColumns","getAfter")),e.resetSize=()=>{t.setColumnSizing(t=>{let{[e.id]:l,...n}=t;return n})},e.getCanResize=()=>{var l,n;return(null==(l=e.columnDef.enableResizing)||l)&&(null==(n=t.options.enableColumnResizing)||n)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let t=0,l=e=>{if(e.subHeaders.length)e.subHeaders.forEach(l);else{var n;t+=null!=(n=e.column.getSize())?n:0}};return l(e),t},e.getStart=()=>{if(e.index>0){let t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},e.getResizeHandler=l=>{let n=t.getColumn(e.column.id),o=null==n?void 0:n.getCanResize();return r=>{if(!n||!o||(null==r.persist||r.persist(),V(r)&&r.touches&&r.touches.length>1))return;let i=e.getSize(),a=e?e.getLeafHeaders().map(e=>[e.column.id,e.column.getSize()]):[[n.id,n.getSize()]],u=V(r)?Math.round(r.touches[0].clientX):r.clientX,s={},d=(e,l)=>{"number"==typeof l&&(t.setColumnSizingInfo(e=>{var n,o;let r="rtl"===t.options.columnResizeDirection?-1:1,i=(l-(null!=(n=null==e?void 0:e.startOffset)?n:0))*r,a=Math.max(i/(null!=(o=null==e?void 0:e.startSize)?o:0),-.999999);return e.columnSizingStart.forEach(e=>{let[t,l]=e;s[t]=Math.round(100*Math.max(l+l*a,0))/100}),{...e,deltaOffset:i,deltaPercentage:a}}),("onChange"===t.options.columnResizeMode||"end"===e)&&t.setColumnSizing(e=>({...e,...s})))},g=e=>d("move",e),c=e=>{d("end",e),t.setColumnSizingInfo(e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=l||("undefined"!=typeof document?document:null),f={moveHandler:e=>g(e.clientX),upHandler:e=>{null==p||p.removeEventListener("mousemove",f.moveHandler),null==p||p.removeEventListener("mouseup",f.upHandler),c(e.clientX)}},m={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),g(e.touches[0].clientX),!1),upHandler:e=>{var t;null==p||p.removeEventListener("touchmove",m.moveHandler),null==p||p.removeEventListener("touchend",m.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),c(null==(t=e.touches[0])?void 0:t.clientX)}},v=!!function(){if("boolean"==typeof I)return I;let e=!1;try{let t=()=>{};window.addEventListener("test",t,{get passive(){return e=!0,!1}}),window.removeEventListener("test",t)}catch(t){e=!1}return I=e}()&&{passive:!1};V(r)?(null==p||p.addEventListener("touchmove",m.moveHandler,v),null==p||p.addEventListener("touchend",m.upHandler,v)):(null==p||p.addEventListener("mousemove",f.moveHandler,v),null==p||p.addEventListener("mouseup",f.upHandler,v)),t.setColumnSizingInfo(e=>({...e,startOffset:u,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:a,isResizingColumn:n.id}))}}},createTable:e=>{e.setColumnSizing=t=>null==e.options.onColumnSizingChange?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>null==e.options.onColumnSizingInfoChange?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var l;e.setColumnSizing(t?{}:null!=(l=e.initialState.columnSizing)?l:{})},e.resetHeaderSizeInfo=t=>{var l;e.setColumnSizingInfo(t?P():null!=(l=e.initialState.columnSizingInfo)?l:P())},e.getTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0},e.getLeftTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getLeftHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0},e.getCenterTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getCenterHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0},e.getRightTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getRightHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0}}}];function q(e){var t,l;let o=[...B,...null!=(t=e._features)?t:[]],r={_features:o},u=r._features.reduce((e,t)=>Object.assign(e,null==t.getDefaultOptions?void 0:t.getDefaultOptions(r)),{}),s=e=>r.options.mergeOptions?r.options.mergeOptions(u,e):{...u,...e},d={...null!=(l=e.initialState)?l:{}};r._features.forEach(e=>{var t;d=null!=(t=null==e.getInitialState?void 0:e.getInitialState(d))?t:d});let g=[],c=!1,p={_features:o,options:{...u,...e},initialState:d,_queue:e=>{g.push(e),c||(c=!0,Promise.resolve().then(()=>{for(;g.length;)g.shift()();c=!1}).catch(e=>setTimeout(()=>{throw e})))},reset:()=>{r.setState(r.initialState)},setOptions:e=>{let t=n(e,r.options);r.options=s(t)},getState:()=>r.options.state,setState:e=>{null==r.options.onStateChange||r.options.onStateChange(e)},_getRowId:(e,t,l)=>{var n;return null!=(n=null==r.options.getRowId?void 0:r.options.getRowId(e,t,l))?n:`${l?[l.id,t].join("."):t}`},getCoreRowModel:()=>(r._getCoreRowModel||(r._getCoreRowModel=r.options.getCoreRowModel(r)),r._getCoreRowModel()),getRowModel:()=>r.getPaginationRowModel(),getRow:(e,t)=>{let l=(t?r.getPrePaginationRowModel():r.getRowModel()).rowsById[e];if(!l&&!(l=r.getCoreRowModel().rowsById[e]))throw Error();return l},_getDefaultColumnDef:i(()=>[r.options.defaultColumn],e=>{var t;return e=null!=(t=e)?t:{},{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t,l;return null!=(t=null==(l=e.renderValue())||null==l.toString?void 0:l.toString())?t:null},...r._features.reduce((e,t)=>Object.assign(e,null==t.getDefaultColumnDef?void 0:t.getDefaultColumnDef()),{}),...e}},a(e,"debugColumns","_getDefaultColumnDef")),_getColumnDefs:()=>r.options.columns,getAllColumns:i(()=>[r._getColumnDefs()],e=>{let t=function(e,l,n){return void 0===n&&(n=0),e.map(e=>{let o=function(e,t,l,n){var o,r;let u,s={...e._getDefaultColumnDef(),...t},d=s.accessorKey,g=null!=(o=null!=(r=s.id)?r:d?"function"==typeof String.prototype.replaceAll?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)?o:"string"==typeof s.header?s.header:void 0;if(s.accessorFn?u=s.accessorFn:d&&(u=d.includes(".")?e=>{let t=e;for(let e of d.split(".")){var l;t=null==(l=t)?void 0:l[e]}return t}:e=>e[s.accessorKey]),!g)throw Error();let c={id:`${String(g)}`,accessorFn:u,parent:n,depth:l,columnDef:s,columns:[],getFlatColumns:i(()=>[!0],()=>{var e;return[c,...null==(e=c.columns)?void 0:e.flatMap(e=>e.getFlatColumns())]},a(e.options,"debugColumns","column.getFlatColumns")),getLeafColumns:i(()=>[e._getOrderColumnsFn()],e=>{var t;return null!=(t=c.columns)&&t.length?e(c.columns.flatMap(e=>e.getLeafColumns())):[c]},a(e.options,"debugColumns","column.getLeafColumns"))};for(let t of e._features)null==t.createColumn||t.createColumn(c,e);return c}(r,e,n,l);return o.columns=e.columns?t(e.columns,o,n+1):[],o})};return t(e)},a(e,"debugColumns","getAllColumns")),getAllFlatColumns:i(()=>[r.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),a(e,"debugColumns","getAllFlatColumns")),_getAllFlatColumnsById:i(()=>[r.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),a(e,"debugColumns","getAllFlatColumnsById")),getAllLeafColumns:i(()=>[r.getAllColumns(),r._getOrderColumnsFn()],(e,t)=>t(e.flatMap(e=>e.getLeafColumns())),a(e,"debugColumns","getAllLeafColumns")),getColumn:e=>r._getAllFlatColumnsById()[e]};Object.assign(r,p);for(let e=0;ei(()=>[e.options.data],t=>{let l={rows:[],flatRows:[],rowsById:{}},n=function(t,o,r){void 0===o&&(o=0);let i=[];for(let u=0;ue._autoResetPageIndex()))}},1492:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]])},2138:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},2146:(e,t,l)=>{function n(e){let{reason:t,children:l}=e;return l}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),l(5262)},2355:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},3052:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},3904:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},4054:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var l in t)Object.defineProperty(e,l,{enumerable:!0,get:t[l]})}(t,{bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return r},createSnapshot:function(){return a}});let l=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class n{disable(){throw l}getStore(){}run(){throw l}exit(){throw l}enterWith(){throw l}static bind(e){return e}}let o="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function r(){return o?new o:new n}function i(e){return o?o.bind(e):n.bind(e)}function a(){return o?o.snapshot():function(e,...t){return e(...t)}}},4186:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]])},4357:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},5028:(e,t,l)=>{l.d(t,{default:()=>o.a});var n=l(6645),o=l.n(n)},5339:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},5744:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=l(7828)},5868:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]])},6268:(e,t,l)=>{l.d(t,{Kv:()=>r,N4:()=>i});var n=l(2115),o=l(1032);function r(e,t){var l,o,r;return e?"function"==typeof(o=l=e)&&(()=>{let e=Object.getPrototypeOf(o);return e.prototype&&e.prototype.isReactComponent})()||"function"==typeof l||"object"==typeof(r=l)&&"symbol"==typeof r.$$typeof&&["react.memo","react.forward_ref"].includes(r.$$typeof.description)?n.createElement(e,t):e:null}function i(e){let t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[l]=n.useState(()=>({current:(0,o.ZR)(t)})),[r,i]=n.useState(()=>l.current.initialState);return l.current.setOptions(t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{i(t),null==e.onStateChange||e.onStateChange(t)}})),l.current}},6561:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]])},6645:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let n=l(8229)._(l(7357));function o(e,t){var l;let o={};"function"==typeof e&&(o.loader=e);let r={...o,...t};return(0,n.default)({...r,modules:null==(l=r.loadableGenerated)?void 0:l.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7357:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=l(5155),o=l(2115),r=l(2146);function i(e){return{default:e&&"default"in e?e.default:e}}l(255);let a={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},u=function(e){let t={...a,...e},l=(0,o.lazy)(()=>t.loader().then(i)),u=t.loading;function s(e){let i=u?(0,n.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,a=!t.ssr||!!t.loading,s=a?o.Suspense:o.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:[null,(0,n.jsx)(l,{...e})]}):(0,n.jsx)(r.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(l,{...e})});return(0,n.jsx)(s,{...a?{fallback:i}:{},children:d})}return s.displayName="LoadableComponent",s}},7434:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},7740:(e,t,l)=>{l.d(t,{uB:()=>_});var n=/[\\\/_+.#"@\[\(\{&]/,o=/[\\\/_+.#"@\[\(\{&]/g,r=/[\s-]/,i=/[\s-]/g;function a(e){return e.toLowerCase().replace(i," ")}var u=l(5452),s=l(2115),d=l(3655),g=l(1285),c=l(6101),p='[cmdk-group=""]',f='[cmdk-group-items=""]',m='[cmdk-item=""]',v="".concat(m,':not([aria-disabled="true"])'),h="cmdk-item-select",C="data-value",b=(e,t,l)=>(function(e,t,l){return function e(t,l,a,u,s,d,g){if(d===l.length)return s===t.length?1:.99;var c=`${s},${d}`;if(void 0!==g[c])return g[c];for(var p,f,m,v,h=u.charAt(d),C=a.indexOf(h,s),b=0;C>=0;)(p=e(t,l,a,u,C+1,d+1,g))>b&&(C===s?p*=1:n.test(t.charAt(C-1))?(p*=.8,(m=t.slice(s,C-1).match(o))&&s>0&&(p*=Math.pow(.999,m.length))):r.test(t.charAt(C-1))?(p*=.9,(v=t.slice(s,C-1).match(i))&&s>0&&(p*=Math.pow(.999,v.length))):(p*=.17,s>0&&(p*=Math.pow(.999,C-s))),t.charAt(C)!==l.charAt(d)&&(p*=.9999)),(p<.1&&a.charAt(C-1)===u.charAt(d+1)||u.charAt(d+1)===u.charAt(d)&&a.charAt(C-1)!==u.charAt(d))&&.1*(f=e(t,l,a,u,C+1,d+2,g))>p&&(p=.1*f),p>b&&(b=p),C=a.indexOf(h,C+1);return g[c]=b,b}(e=l&&l.length>0?`${e+" "+l.join(" ")}`:e,t,a(e),a(t),0,0,{})})(e,t,l),w=s.createContext(void 0),S=()=>s.useContext(w),R=s.createContext(void 0),y=()=>s.useContext(R),F=s.createContext(void 0),x=s.forwardRef((e,t)=>{let l=G(()=>{var t,l;return{search:"",value:null!=(l=null!=(t=e.value)?t:e.defaultValue)?l:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=G(()=>new Set),o=G(()=>new Map),r=G(()=>new Map),i=G(()=>new Set),a=k(e),{label:u,children:c,value:S,onValueChange:y,filter:F,shouldFilter:x,loop:M,disablePointerSelection:P=!1,vimBindings:I=!0,...V}=e,A=(0,g.B)(),E=(0,g.B)(),_=(0,g.B)(),D=s.useRef(null),O=H();L(()=>{if(void 0!==S){let e=S.trim();l.current.value=e,T.emit()}},[S]),L(()=>{O(6,K)},[]);let T=s.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>l.current,setState:(e,t,n)=>{var o,r,i,u;if(!Object.is(l.current[e],t)){if(l.current[e]=t,"search"===e)$(),N(),O(1,U);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(_);e?e.focus():null==(o=document.getElementById(A))||o.focus()}if(O(7,()=>{var e;l.current.selectedItemId=null==(e=X())?void 0:e.id,T.emit()}),n||O(5,K),(null==(r=a.current)?void 0:r.value)!==void 0){null==(u=(i=a.current).onValueChange)||u.call(i,null!=t?t:"");return}}T.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),B=s.useMemo(()=>({value:(e,t,n)=>{var o;t!==(null==(o=r.current.get(e))?void 0:o.value)&&(r.current.set(e,{value:t,keywords:n}),l.current.filtered.items.set(e,q(t,n)),O(2,()=>{N(),T.emit()}))},item:(e,t)=>(n.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),O(3,()=>{$(),N(),l.current.value||U(),T.emit()}),()=>{r.current.delete(e),n.current.delete(e),l.current.filtered.items.delete(e);let t=X();O(4,()=>{$(),(null==t?void 0:t.getAttribute("id"))===e&&U(),T.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{r.current.delete(e),o.current.delete(e)}),filter:()=>a.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>a.current.disablePointerSelection,listId:A,inputId:_,labelId:E,listInnerRef:D}),[]);function q(e,t){var n,o;let r=null!=(o=null==(n=a.current)?void 0:n.filter)?o:b;return e?r(e,l.current.search,t):0}function N(){if(!l.current.search||!1===a.current.shouldFilter)return;let e=l.current.filtered.items,t=[];l.current.filtered.groups.forEach(l=>{let n=o.current.get(l),r=0;n.forEach(t=>{r=Math.max(e.get(t),r)}),t.push([l,r])});let n=D.current;Z().sort((t,l)=>{var n,o;let r=t.getAttribute("id"),i=l.getAttribute("id");return(null!=(n=e.get(i))?n:0)-(null!=(o=e.get(r))?o:0)}).forEach(e=>{let t=e.closest(f);t?t.appendChild(e.parentElement===t?e:e.closest("".concat(f," > *"))):n.appendChild(e.parentElement===n?e:e.closest("".concat(f," > *")))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let l=null==(t=D.current)?void 0:t.querySelector("".concat(p,"[").concat(C,'="').concat(encodeURIComponent(e[0]),'"]'));null==l||l.parentElement.appendChild(l)})}function U(){let e=Z().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(C);T.setState("value",t||void 0)}function $(){var e,t,i,u;if(!l.current.search||!1===a.current.shouldFilter){l.current.filtered.count=n.current.size;return}l.current.filtered.groups=new Set;let s=0;for(let o of n.current){let n=q(null!=(t=null==(e=r.current.get(o))?void 0:e.value)?t:"",null!=(u=null==(i=r.current.get(o))?void 0:i.keywords)?u:[]);l.current.filtered.items.set(o,n),n>0&&s++}for(let[e,t]of o.current)for(let n of t)if(l.current.filtered.items.get(n)>0){l.current.filtered.groups.add(e);break}l.current.filtered.count=s}function K(){var e,t,l;let n=X();n&&((null==(e=n.parentElement)?void 0:e.firstChild)===n&&(null==(l=null==(t=n.closest(p))?void 0:t.querySelector('[cmdk-group-heading=""]'))||l.scrollIntoView({block:"nearest"})),n.scrollIntoView({block:"nearest"}))}function X(){var e;return null==(e=D.current)?void 0:e.querySelector("".concat(m,'[aria-selected="true"]'))}function Z(){var e;return Array.from((null==(e=D.current)?void 0:e.querySelectorAll(v))||[])}function W(e){let t=Z()[e];t&&T.setState("value",t.getAttribute(C))}function J(e){var t;let l=X(),n=Z(),o=n.findIndex(e=>e===l),r=n[o+e];null!=(t=a.current)&&t.loop&&(r=o+e<0?n[n.length-1]:o+e===n.length?n[0]:n[o+e]),r&&T.setState("value",r.getAttribute(C))}function Q(e){let t=X(),l=null==t?void 0:t.closest(p),n;for(;l&&!n;)n=null==(l=e>0?function(e,t){let l=e.nextElementSibling;for(;l;){if(l.matches(t))return l;l=l.nextElementSibling}}(l,p):function(e,t){let l=e.previousElementSibling;for(;l;){if(l.matches(t))return l;l=l.previousElementSibling}}(l,p))?void 0:l.querySelector(v);n?T.setState("value",n.getAttribute(C)):J(e)}let Y=()=>W(Z().length-1),ee=e=>{e.preventDefault(),e.metaKey?Y():e.altKey?Q(1):J(1)},et=e=>{e.preventDefault(),e.metaKey?W(0):e.altKey?Q(-1):J(-1)};return s.createElement(d.sG.div,{ref:t,tabIndex:-1,...V,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=V.onKeyDown)||t.call(V,e);let l=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||l))switch(e.key){case"n":case"j":I&&e.ctrlKey&&ee(e);break;case"ArrowDown":ee(e);break;case"p":case"k":I&&e.ctrlKey&&et(e);break;case"ArrowUp":et(e);break;case"Home":e.preventDefault(),W(0);break;case"End":e.preventDefault(),Y();break;case"Enter":{e.preventDefault();let t=X();if(t){let e=new Event(h);t.dispatchEvent(e)}}}}},s.createElement("label",{"cmdk-label":"",htmlFor:B.inputId,id:B.labelId,style:j},u),z(e,e=>s.createElement(R.Provider,{value:T},s.createElement(w.Provider,{value:B},e))))}),M=s.forwardRef((e,t)=>{var l,n;let o=(0,g.B)(),r=s.useRef(null),i=s.useContext(F),a=S(),u=k(e),p=null!=(n=null==(l=u.current)?void 0:l.forceMount)?n:null==i?void 0:i.forceMount;L(()=>{if(!p)return a.item(o,null==i?void 0:i.id)},[p]);let f=O(o,r,[e.value,e.children,r],e.keywords),m=y(),v=D(e=>e.value&&e.value===f.current),C=D(e=>!!p||!1===a.filter()||!e.search||e.filtered.items.get(o)>0);function b(){var e,t;w(),null==(t=(e=u.current).onSelect)||t.call(e,f.current)}function w(){m.setState("value",f.current,!0)}if(s.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(h,b),()=>t.removeEventListener(h,b)},[C,e.onSelect,e.disabled]),!C)return null;let{disabled:R,value:x,onSelect:M,forceMount:P,keywords:I,...V}=e;return s.createElement(d.sG.div,{ref:(0,c.t)(r,t),...V,id:o,"cmdk-item":"",role:"option","aria-disabled":!!R,"aria-selected":!!v,"data-disabled":!!R,"data-selected":!!v,onPointerMove:R||a.getDisablePointerSelection()?void 0:w,onClick:R?void 0:b},e.children)}),P=s.forwardRef((e,t)=>{let{heading:l,children:n,forceMount:o,...r}=e,i=(0,g.B)(),a=s.useRef(null),u=s.useRef(null),p=(0,g.B)(),f=S(),m=D(e=>!!o||!1===f.filter()||!e.search||e.filtered.groups.has(i));L(()=>f.group(i),[]),O(i,a,[e.value,e.heading,u]);let v=s.useMemo(()=>({id:i,forceMount:o}),[o]);return s.createElement(d.sG.div,{ref:(0,c.t)(a,t),...r,"cmdk-group":"",role:"presentation",hidden:!m||void 0},l&&s.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:p},l),z(e,e=>s.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":l?p:void 0},s.createElement(F.Provider,{value:v},e))))}),I=s.forwardRef((e,t)=>{let{alwaysRender:l,...n}=e,o=s.useRef(null),r=D(e=>!e.search);return l||r?s.createElement(d.sG.div,{ref:(0,c.t)(o,t),...n,"cmdk-separator":"",role:"separator"}):null}),V=s.forwardRef((e,t)=>{let{onValueChange:l,...n}=e,o=null!=e.value,r=y(),i=D(e=>e.search),a=D(e=>e.selectedItemId),u=S();return s.useEffect(()=>{null!=e.value&&r.setState("search",e.value)},[e.value]),s.createElement(d.sG.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":a,id:u.inputId,type:"text",value:o?e.value:i,onChange:e=>{o||r.setState("search",e.target.value),null==l||l(e.target.value)}})}),A=s.forwardRef((e,t)=>{let{children:l,label:n="Suggestions",...o}=e,r=s.useRef(null),i=s.useRef(null),a=D(e=>e.selectedItemId),u=S();return s.useEffect(()=>{if(i.current&&r.current){let e=i.current,t=r.current,l,n=new ResizeObserver(()=>{l=requestAnimationFrame(()=>{let l=e.offsetHeight;t.style.setProperty("--cmdk-list-height",l.toFixed(1)+"px")})});return n.observe(e),()=>{cancelAnimationFrame(l),n.unobserve(e)}}},[]),s.createElement(d.sG.div,{ref:(0,c.t)(r,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":a,"aria-label":n,id:u.listId},z(e,e=>s.createElement("div",{ref:(0,c.t)(i,u.listInnerRef),"cmdk-list-sizer":""},e)))}),E=s.forwardRef((e,t)=>{let{open:l,onOpenChange:n,overlayClassName:o,contentClassName:r,container:i,...a}=e;return s.createElement(u.bL,{open:l,onOpenChange:n},s.createElement(u.ZL,{container:i},s.createElement(u.hJ,{"cmdk-overlay":"",className:o}),s.createElement(u.UC,{"aria-label":e.label,"cmdk-dialog":"",className:r},s.createElement(x,{ref:t,...a}))))}),_=Object.assign(x,{List:A,Item:M,Input:V,Group:P,Separator:I,Dialog:E,Empty:s.forwardRef((e,t)=>D(e=>0===e.filtered.count)?s.createElement(d.sG.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:s.forwardRef((e,t)=>{let{progress:l,children:n,label:o="Loading...",...r}=e;return s.createElement(d.sG.div,{ref:t,...r,"cmdk-loading":"",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},z(e,e=>s.createElement("div",{"aria-hidden":!0},e)))})});function k(e){let t=s.useRef(e);return L(()=>{t.current=e}),t}var L="undefined"==typeof window?s.useEffect:s.useLayoutEffect;function G(e){let t=s.useRef();return void 0===t.current&&(t.current=e()),t}function D(e){let t=y(),l=()=>e(t.snapshot());return s.useSyncExternalStore(t.subscribe,l,l)}function O(e,t,l){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=s.useRef(),r=S();return L(()=>{var i;let a=(()=>{var e;for(let t of l){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),u=n.map(e=>e.trim());r.value(e,a,u),null==(i=t.current)||i.setAttribute(C,a),o.current=a}),o}var H=()=>{let[e,t]=s.useState(),l=G(()=>new Map);return L(()=>{l.current.forEach(e=>e()),l.current=new Map},[e]),(e,n)=>{l.current.set(e,n),t({})}};function z(e,t){let l,{asChild:n,children:o}=e;return n&&s.isValidElement(o)?s.cloneElement("function"==typeof(l=o.type)?l(o.props):"render"in l?l.render(o.props):o,{ref:o.ref},t(o.props.children)):t(o)}var j={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"}},7828:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,l(4054).createAsyncLocalStorage)()},7924:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])}}]); \ No newline at end of file + color: hsl(${Math.max(0,Math.min(120-120*n,120))}deg 100% 31%);`,null==l?void 0:l.key)}return n}}function a(e,t,l,n){return{debug:()=>{var l;return null!=(l=null==e?void 0:e.debugAll)?l:e[t]},key:!1,onChange:n}}let u="debugHeaders";function s(e,t,l){var n;let o={id:null!=(n=l.id)?n:t.id,column:t,index:l.index,isPlaceholder:!!l.isPlaceholder,placeholderId:l.placeholderId,depth:l.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{let e=[],t=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(t),e.push(l)};return t(o),e},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(t=>{null==t.createHeader||t.createHeader(o,e)}),o}function d(e,t,l,n){var o,r;let i=0,a=function(e,t){void 0===t&&(t=1),i=Math.max(i,t),e.filter(e=>e.getIsVisible()).forEach(e=>{var l;null!=(l=e.columns)&&l.length&&a(e.columns,t+1)},0)};a(e);let u=[],d=(e,t)=>{let o={depth:t,id:[n,`${t}`].filter(Boolean).join("_"),headers:[]},r=[];e.forEach(e=>{let i,a=[...r].reverse()[0],u=e.column.depth===o.depth,d=!1;if(u&&e.column.parent?i=e.column.parent:(i=e.column,d=!0),a&&(null==a?void 0:a.column)===i)a.subHeaders.push(e);else{let o=s(l,i,{id:[n,t,i.id,null==e?void 0:e.id].filter(Boolean).join("_"),isPlaceholder:d,placeholderId:d?`${r.filter(e=>e.column===i).length}`:void 0,depth:t,index:r.length});o.subHeaders.push(e),r.push(o)}o.headers.push(e),e.headerGroup=o}),u.push(o),t>0&&d(r,t-1)};d(t.map((e,t)=>s(l,e,{depth:i,index:t})),i-1),u.reverse();let g=e=>e.filter(e=>e.column.getIsVisible()).map(e=>{let t=0,l=0,n=[0];return e.subHeaders&&e.subHeaders.length?(n=[],g(e.subHeaders).forEach(e=>{let{colSpan:l,rowSpan:o}=e;t+=l,n.push(o)})):t=1,l+=Math.min(...n),e.colSpan=t,e.rowSpan=l,{colSpan:t,rowSpan:l}});return g(null!=(o=null==(r=u[0])?void 0:r.headers)?o:[]),u}let g=(e,t,l,n,o,r,u)=>{let s={id:t,index:n,original:l,depth:o,parentId:u,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(s._valuesCache.hasOwnProperty(t))return s._valuesCache[t];let l=e.getColumn(t);if(null!=l&&l.accessorFn)return s._valuesCache[t]=l.accessorFn(s.original,n),s._valuesCache[t]},getUniqueValues:t=>{if(s._uniqueValuesCache.hasOwnProperty(t))return s._uniqueValuesCache[t];let l=e.getColumn(t);if(null!=l&&l.accessorFn)return l.columnDef.getUniqueValues?s._uniqueValuesCache[t]=l.columnDef.getUniqueValues(s.original,n):s._uniqueValuesCache[t]=[s.getValue(t)],s._uniqueValuesCache[t]},renderValue:t=>{var l;return null!=(l=s.getValue(t))?l:e.options.renderFallbackValue},subRows:null!=r?r:[],getLeafRows:()=>(function(e,t){let l=[],n=e=>{e.forEach(e=>{l.push(e);let o=t(e);null!=o&&o.length&&n(o)})};return n(e),l})(s.subRows,e=>e.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let e=[],t=s;for(;;){let l=t.getParentRow();if(!l)break;e.push(l),t=l}return e.reverse()},getAllCells:i(()=>[e.getAllLeafColumns()],t=>t.map(t=>(function(e,t,l,n){let o={id:`${t.id}_${l.id}`,row:t,column:l,getValue:()=>t.getValue(n),renderValue:()=>{var t;return null!=(t=o.getValue())?t:e.options.renderFallbackValue},getContext:i(()=>[e,l,t,o],(e,t,l,n)=>({table:e,column:t,row:l,cell:n,getValue:n.getValue,renderValue:n.renderValue}),a(e.options,"debugCells","cell.getContext"))};return e._features.forEach(n=>{null==n.createCell||n.createCell(o,l,t,e)},{}),o})(e,s,t,t.id)),a(e.options,"debugRows","getAllCells")),_getAllCellsByColumnId:i(()=>[s.getAllCells()],e=>e.reduce((e,t)=>(e[t.column.id]=t,e),{}),a(e.options,"debugRows","getAllCellsByColumnId"))};for(let t=0;t{var n,o;let r=null==l||null==(n=l.toString())?void 0:n.toLowerCase();return!!(null==(o=e.getValue(t))||null==(o=o.toString())||null==(o=o.toLowerCase())?void 0:o.includes(r))};c.autoRemove=e=>R(e);let p=(e,t,l)=>{var n;return!!(null==(n=e.getValue(t))||null==(n=n.toString())?void 0:n.includes(l))};p.autoRemove=e=>R(e);let f=(e,t,l)=>{var n;return(null==(n=e.getValue(t))||null==(n=n.toString())?void 0:n.toLowerCase())===(null==l?void 0:l.toLowerCase())};f.autoRemove=e=>R(e);let m=(e,t,l)=>{var n;return null==(n=e.getValue(t))?void 0:n.includes(l)};m.autoRemove=e=>R(e);let v=(e,t,l)=>!l.some(l=>{var n;return!(null!=(n=e.getValue(t))&&n.includes(l))});v.autoRemove=e=>R(e)||!(null!=e&&e.length);let h=(e,t,l)=>l.some(l=>{var n;return null==(n=e.getValue(t))?void 0:n.includes(l)});h.autoRemove=e=>R(e)||!(null!=e&&e.length);let C=(e,t,l)=>e.getValue(t)===l;C.autoRemove=e=>R(e);let b=(e,t,l)=>e.getValue(t)==l;b.autoRemove=e=>R(e);let w=(e,t,l)=>{let[n,o]=l,r=e.getValue(t);return r>=n&&r<=o};w.resolveFilterValue=e=>{let[t,l]=e,n="number"!=typeof t?parseFloat(t):t,o="number"!=typeof l?parseFloat(l):l,r=null===t||Number.isNaN(n)?-1/0:n,i=null===l||Number.isNaN(o)?1/0:o;if(r>i){let e=r;r=i,i=e}return[r,i]},w.autoRemove=e=>R(e)||R(e[0])&&R(e[1]);let S={includesString:c,includesStringSensitive:p,equalsString:f,arrIncludes:m,arrIncludesAll:v,arrIncludesSome:h,equals:C,weakEquals:b,inNumberRange:w};function R(e){return null==e||""===e}function y(e,t,l){return!!e&&!!e.autoRemove&&e.autoRemove(t,l)||void 0===t||"string"==typeof t&&!t}let x={sum:(e,t,l)=>l.reduce((t,l)=>{let n=l.getValue(e);return t+("number"==typeof n?n:0)},0),min:(e,t,l)=>{let n;return l.forEach(t=>{let l=t.getValue(e);null!=l&&(n>l||void 0===n&&l>=l)&&(n=l)}),n},max:(e,t,l)=>{let n;return l.forEach(t=>{let l=t.getValue(e);null!=l&&(n=l)&&(n=l)}),n},extent:(e,t,l)=>{let n,o;return l.forEach(t=>{let l=t.getValue(e);null!=l&&(void 0===n?l>=l&&(n=o=l):(n>l&&(n=l),o{let l=0,n=0;if(t.forEach(t=>{let o=t.getValue(e);null!=o&&(o*=1)>=o&&(++l,n+=o)}),l)return n/l},median:(e,t)=>{if(!t.length)return;let l=t.map(t=>t.getValue(e));if(!function(e){return Array.isArray(e)&&e.every(e=>"number"==typeof e)}(l))return;if(1===l.length)return l[0];let n=Math.floor(l.length/2),o=l.sort((e,t)=>e-t);return l.length%2!=0?o[n]:(o[n-1]+o[n])/2},unique:(e,t)=>Array.from(new Set(t.map(t=>t.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(t=>t.getValue(e))).size,count:(e,t)=>t.length},F=()=>({left:[],right:[]}),M={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},P=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),I=null;function A(e){return"touchstart"===e.type}function V(e,t){return t?"center"===t?e.getCenterVisibleLeafColumns():"left"===t?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}let E=()=>({pageIndex:0,pageSize:10}),_=()=>({top:[],bottom:[]}),k=(e,t,l,n,o)=>{var r;let i=o.getRow(t,!0);l?(i.getCanMultiSelect()||Object.keys(e).forEach(t=>delete e[t]),i.getCanSelect()&&(e[t]=!0)):delete e[t],n&&null!=(r=i.subRows)&&r.length&&i.getCanSelectSubRows()&&i.subRows.forEach(t=>k(e,t.id,l,n,o))};function L(e,t){let l=e.getState().rowSelection,n=[],o={},r=function(e,t){return e.map(e=>{var t;let i=G(e,l);if(i&&(n.push(e),o[e.id]=e),null!=(t=e.subRows)&&t.length&&(e={...e,subRows:r(e.subRows)}),i)return e}).filter(Boolean)};return{rows:r(t.rows),flatRows:n,rowsById:o}}function G(e,t){var l;return null!=(l=t[e.id])&&l}function D(e,t,l){var n;if(!(null!=(n=e.subRows)&&n.length))return!1;let o=!0,r=!1;return e.subRows.forEach(e=>{if((!r||o)&&(e.getCanSelect()&&(G(e,t)?r=!0:o=!1),e.subRows&&e.subRows.length)){let l=D(e,t);"all"===l?r=!0:("some"===l&&(r=!0),o=!1)}}),o?"all":!!r&&"some"}let O=/([0-9]+)/gm;function H(e,t){return e===t?0:e>t?1:-1}function z(e){return"number"==typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"==typeof e?e:""}function j(e,t){let l=e.split(O).filter(Boolean),n=t.split(O).filter(Boolean);for(;l.length&&n.length;){let e=l.shift(),t=n.shift(),o=parseInt(e,10),r=parseInt(t,10),i=[o,r].sort();if(isNaN(i[0])){if(e>t)return 1;if(t>e)return -1;continue}if(isNaN(i[1]))return isNaN(o)?-1:1;if(o>r)return 1;if(r>o)return -1}return l.length-n.length}let T={alphanumeric:(e,t,l)=>j(z(e.getValue(l)).toLowerCase(),z(t.getValue(l)).toLowerCase()),alphanumericCaseSensitive:(e,t,l)=>j(z(e.getValue(l)),z(t.getValue(l))),text:(e,t,l)=>H(z(e.getValue(l)).toLowerCase(),z(t.getValue(l)).toLowerCase()),textCaseSensitive:(e,t,l)=>H(z(e.getValue(l)),z(t.getValue(l))),datetime:(e,t,l)=>{let n=e.getValue(l),o=t.getValue(l);return n>o?1:nH(e.getValue(l),t.getValue(l))},B=[{createTable:e=>{e.getHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,l,n,o)=>{var r,i;let a=null!=(r=null==n?void 0:n.map(e=>l.find(t=>t.id===e)).filter(Boolean))?r:[],u=null!=(i=null==o?void 0:o.map(e=>l.find(t=>t.id===e)).filter(Boolean))?i:[];return d(t,[...a,...l.filter(e=>!(null!=n&&n.includes(e.id))&&!(null!=o&&o.includes(e.id))),...u],e)},a(e.options,u,"getHeaderGroups")),e.getCenterHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,l,n,o)=>d(t,l=l.filter(e=>!(null!=n&&n.includes(e.id))&&!(null!=o&&o.includes(e.id))),e,"center"),a(e.options,u,"getCenterHeaderGroups")),e.getLeftHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,l,n)=>{var o;return d(t,null!=(o=null==n?void 0:n.map(e=>l.find(t=>t.id===e)).filter(Boolean))?o:[],e,"left")},a(e.options,u,"getLeftHeaderGroups")),e.getRightHeaderGroups=i(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,l,n)=>{var o;return d(t,null!=(o=null==n?void 0:n.map(e=>l.find(t=>t.id===e)).filter(Boolean))?o:[],e,"right")},a(e.options,u,"getRightHeaderGroups")),e.getFooterGroups=i(()=>[e.getHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getFooterGroups")),e.getLeftFooterGroups=i(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getLeftFooterGroups")),e.getCenterFooterGroups=i(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getCenterFooterGroups")),e.getRightFooterGroups=i(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),a(e.options,u,"getRightFooterGroups")),e.getFlatHeaders=i(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getFlatHeaders")),e.getLeftFlatHeaders=i(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getLeftFlatHeaders")),e.getCenterFlatHeaders=i(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getCenterFlatHeaders")),e.getRightFlatHeaders=i(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),a(e.options,u,"getRightFlatHeaders")),e.getCenterLeafHeaders=i(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}),a(e.options,u,"getCenterLeafHeaders")),e.getLeftLeafHeaders=i(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}),a(e.options,u,"getLeftLeafHeaders")),e.getRightLeafHeaders=i(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}),a(e.options,u,"getRightLeafHeaders")),e.getLeafHeaders=i(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(e,t,l)=>{var n,o,r,i,a,u;return[...null!=(n=null==(o=e[0])?void 0:o.headers)?n:[],...null!=(r=null==(i=t[0])?void 0:i.headers)?r:[],...null!=(a=null==(u=l[0])?void 0:u.headers)?a:[]].map(e=>e.getLeafHeaders()).flat()},a(e.options,u,"getLeafHeaders"))}},{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:o("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=l=>{e.getCanHide()&&t.setColumnVisibility(t=>({...t,[e.id]:null!=l?l:!e.getIsVisible()}))},e.getIsVisible=()=>{var l,n;let o=e.columns;return null==(l=o.length?o.some(e=>e.getIsVisible()):null==(n=t.getState().columnVisibility)?void 0:n[e.id])||l},e.getCanHide=()=>{var l,n;return(null==(l=e.columnDef.enableHiding)||l)&&(null==(n=t.options.enableHiding)||n)},e.getToggleVisibilityHandler=()=>t=>{null==e.toggleVisibility||e.toggleVisibility(t.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=i(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),a(t.options,"debugRows","_getAllVisibleCells")),e.getVisibleCells=i(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,l)=>[...e,...t,...l],a(t.options,"debugRows","getVisibleCells"))},createTable:e=>{let t=(t,l)=>i(()=>[l(),l().filter(e=>e.getIsVisible()).map(e=>e.id).join("_")],e=>e.filter(e=>null==e.getIsVisible?void 0:e.getIsVisible()),a(e.options,"debugColumns",t));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=t=>null==e.options.onColumnVisibilityChange?void 0:e.options.onColumnVisibilityChange(t),e.resetColumnVisibility=t=>{var l;e.setColumnVisibility(t?{}:null!=(l=e.initialState.columnVisibility)?l:{})},e.toggleAllColumnsVisible=t=>{var l;t=null!=(l=t)?l:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((e,l)=>({...e,[l.id]:t||!(null!=l.getCanHide&&l.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(e=>!(null!=e.getIsVisible&&e.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(e=>null==e.getIsVisible?void 0:e.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>t=>{var l;e.toggleAllColumnsVisible(null==(l=t.target)?void 0:l.checked)}}},{getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:o("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=i(e=>[V(t,e)],t=>t.findIndex(t=>t.id===e.id),a(t.options,"debugColumns","getIndex")),e.getIsFirstColumn=l=>{var n;return(null==(n=V(t,l)[0])?void 0:n.id)===e.id},e.getIsLastColumn=l=>{var n;let o=V(t,l);return(null==(n=o[o.length-1])?void 0:n.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>null==e.options.onColumnOrderChange?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var l;e.setColumnOrder(t?[]:null!=(l=e.initialState.columnOrder)?l:[])},e._getOrderColumnsFn=i(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(e,t,l)=>n=>{let o=[];if(null!=e&&e.length){let t=[...e],l=[...n];for(;l.length&&t.length;){let e=t.shift(),n=l.findIndex(t=>t.id===e);n>-1&&o.push(l.splice(n,1)[0])}o=[...o,...l]}else o=n;return function(e,t,l){if(!(null!=t&&t.length)||!l)return e;let n=e.filter(e=>!t.includes(e.id));return"remove"===l?n:[...t.map(t=>e.find(e=>e.id===t)).filter(Boolean),...n]}(o,t,l)},a(e.options,"debugTable","_getOrderColumnsFn"))}},{getInitialState:e=>({columnPinning:F(),...e}),getDefaultOptions:e=>({onColumnPinningChange:o("columnPinning",e)}),createColumn:(e,t)=>{e.pin=l=>{let n=e.getLeafColumns().map(e=>e.id).filter(Boolean);t.setColumnPinning(e=>{var t,o,r,i,a,u;return"right"===l?{left:(null!=(r=null==e?void 0:e.left)?r:[]).filter(e=>!(null!=n&&n.includes(e))),right:[...(null!=(i=null==e?void 0:e.right)?i:[]).filter(e=>!(null!=n&&n.includes(e))),...n]}:"left"===l?{left:[...(null!=(a=null==e?void 0:e.left)?a:[]).filter(e=>!(null!=n&&n.includes(e))),...n],right:(null!=(u=null==e?void 0:e.right)?u:[]).filter(e=>!(null!=n&&n.includes(e)))}:{left:(null!=(t=null==e?void 0:e.left)?t:[]).filter(e=>!(null!=n&&n.includes(e))),right:(null!=(o=null==e?void 0:e.right)?o:[]).filter(e=>!(null!=n&&n.includes(e)))}})},e.getCanPin=()=>e.getLeafColumns().some(e=>{var l,n,o;return(null==(l=e.columnDef.enablePinning)||l)&&(null==(n=null!=(o=t.options.enableColumnPinning)?o:t.options.enablePinning)||n)}),e.getIsPinned=()=>{let l=e.getLeafColumns().map(e=>e.id),{left:n,right:o}=t.getState().columnPinning,r=l.some(e=>null==n?void 0:n.includes(e)),i=l.some(e=>null==o?void 0:o.includes(e));return r?"left":!!i&&"right"},e.getPinnedIndex=()=>{var l,n;let o=e.getIsPinned();return o?null!=(l=null==(n=t.getState().columnPinning)||null==(n=n[o])?void 0:n.indexOf(e.id))?l:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=i(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(e,t,l)=>{let n=[...null!=t?t:[],...null!=l?l:[]];return e.filter(e=>!n.includes(e.column.id))},a(t.options,"debugRows","getCenterVisibleCells")),e.getLeftVisibleCells=i(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:"left"})),a(t.options,"debugRows","getLeftVisibleCells")),e.getRightVisibleCells=i(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:"right"})),a(t.options,"debugRows","getRightVisibleCells"))},createTable:e=>{e.setColumnPinning=t=>null==e.options.onColumnPinningChange?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var l,n;return e.setColumnPinning(t?F():null!=(l=null==(n=e.initialState)?void 0:n.columnPinning)?l:F())},e.getIsSomeColumnsPinned=t=>{var l,n,o;let r=e.getState().columnPinning;return t?!!(null==(l=r[t])?void 0:l.length):!!((null==(n=r.left)?void 0:n.length)||(null==(o=r.right)?void 0:o.length))},e.getLeftLeafColumns=i(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),a(e.options,"debugColumns","getLeftLeafColumns")),e.getRightLeafColumns=i(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(e,t)=>(null!=t?t:[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),a(e.options,"debugColumns","getRightLeafColumns")),e.getCenterLeafColumns=i(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(e,t,l)=>{let n=[...null!=t?t:[],...null!=l?l:[]];return e.filter(e=>!n.includes(e.id))},a(e.options,"debugColumns","getCenterLeafColumns"))}},{createColumn:(e,t)=>{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},{getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:o("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{let l=t.getCoreRowModel().flatRows[0],n=null==l?void 0:l.getValue(e.id);return"string"==typeof n?S.includesString:"number"==typeof n?S.inNumberRange:"boolean"==typeof n||null!==n&&"object"==typeof n?S.equals:Array.isArray(n)?S.arrIncludes:S.weakEquals},e.getFilterFn=()=>{var l,n;return r(e.columnDef.filterFn)?e.columnDef.filterFn:"auto"===e.columnDef.filterFn?e.getAutoFilterFn():null!=(l=null==(n=t.options.filterFns)?void 0:n[e.columnDef.filterFn])?l:S[e.columnDef.filterFn]},e.getCanFilter=()=>{var l,n,o;return(null==(l=e.columnDef.enableColumnFilter)||l)&&(null==(n=t.options.enableColumnFilters)||n)&&(null==(o=t.options.enableFilters)||o)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var l;return null==(l=t.getState().columnFilters)||null==(l=l.find(t=>t.id===e.id))?void 0:l.value},e.getFilterIndex=()=>{var l,n;return null!=(l=null==(n=t.getState().columnFilters)?void 0:n.findIndex(t=>t.id===e.id))?l:-1},e.setFilterValue=l=>{t.setColumnFilters(t=>{var o,r;let i=e.getFilterFn(),a=null==t?void 0:t.find(t=>t.id===e.id),u=n(l,a?a.value:void 0);if(y(i,u,e))return null!=(o=null==t?void 0:t.filter(t=>t.id!==e.id))?o:[];let s={id:e.id,value:u};return a?null!=(r=null==t?void 0:t.map(t=>t.id===e.id?s:t))?r:[]:null!=t&&t.length?[...t,s]:[s]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{let l=e.getAllLeafColumns();null==e.options.onColumnFiltersChange||e.options.onColumnFiltersChange(e=>{var o;return null==(o=n(t,e))?void 0:o.filter(e=>{let t=l.find(t=>t.id===e.id);return!(t&&y(t.getFilterFn(),e.value,t))&&!0})})},e.resetColumnFilters=t=>{var l,n;e.setColumnFilters(t?[]:null!=(l=null==(n=e.initialState)?void 0:n.columnFilters)?l:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel)?e.getPreFilteredRowModel():e._getFilteredRowModel()}},{createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},{getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:o("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var l;let n=null==(l=e.getCoreRowModel().flatRows[0])||null==(l=l._getAllCellsByColumnId()[t.id])?void 0:l.getValue();return"string"==typeof n||"number"==typeof n}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var l,n,o,r;return(null==(l=e.columnDef.enableGlobalFilter)||l)&&(null==(n=t.options.enableGlobalFilter)||n)&&(null==(o=t.options.enableFilters)||o)&&(null==(r=null==t.options.getColumnCanGlobalFilter?void 0:t.options.getColumnCanGlobalFilter(e))||r)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>S.includesString,e.getGlobalFilterFn=()=>{var t,l;let{globalFilterFn:n}=e.options;return r(n)?n:"auto"===n?e.getGlobalAutoFilterFn():null!=(t=null==(l=e.options.filterFns)?void 0:l[n])?t:S[n]},e.setGlobalFilter=t=>{null==e.options.onGlobalFilterChange||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:o("sorting",e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{let l=t.getFilteredRowModel().flatRows.slice(10),n=!1;for(let t of l){let l=null==t?void 0:t.getValue(e.id);if("[object Date]"===Object.prototype.toString.call(l))return T.datetime;if("string"==typeof l&&(n=!0,l.split(O).length>1))return T.alphanumeric}return n?T.text:T.basic},e.getAutoSortDir=()=>{let l=t.getFilteredRowModel().flatRows[0];return"string"==typeof(null==l?void 0:l.getValue(e.id))?"asc":"desc"},e.getSortingFn=()=>{var l,n;if(!e)throw Error();return r(e.columnDef.sortingFn)?e.columnDef.sortingFn:"auto"===e.columnDef.sortingFn?e.getAutoSortingFn():null!=(l=null==(n=t.options.sortingFns)?void 0:n[e.columnDef.sortingFn])?l:T[e.columnDef.sortingFn]},e.toggleSorting=(l,n)=>{let o=e.getNextSortingOrder(),r=null!=l;t.setSorting(i=>{let a,u=null==i?void 0:i.find(t=>t.id===e.id),s=null==i?void 0:i.findIndex(t=>t.id===e.id),d=[],g=r?l:"desc"===o;if("toggle"!=(a=null!=i&&i.length&&e.getCanMultiSort()&&n?u?"toggle":"add":null!=i&&i.length&&s!==i.length-1?"replace":u?"toggle":"replace")||r||o||(a="remove"),"add"===a){var c;(d=[...i,{id:e.id,desc:g}]).splice(0,d.length-(null!=(c=t.options.maxMultiSortColCount)?c:Number.MAX_SAFE_INTEGER))}else d="toggle"===a?i.map(t=>t.id===e.id?{...t,desc:g}:t):"remove"===a?i.filter(t=>t.id!==e.id):[{id:e.id,desc:g}];return d})},e.getFirstSortDir=()=>{var l,n;return(null!=(l=null!=(n=e.columnDef.sortDescFirst)?n:t.options.sortDescFirst)?l:"desc"===e.getAutoSortDir())?"desc":"asc"},e.getNextSortingOrder=l=>{var n,o;let r=e.getFirstSortDir(),i=e.getIsSorted();return i?(i===r||null!=(n=t.options.enableSortingRemoval)&&!n||!!l&&null!=(o=t.options.enableMultiRemove)&&!o)&&("desc"===i?"asc":"desc"):r},e.getCanSort=()=>{var l,n;return(null==(l=e.columnDef.enableSorting)||l)&&(null==(n=t.options.enableSorting)||n)&&!!e.accessorFn},e.getCanMultiSort=()=>{var l,n;return null!=(l=null!=(n=e.columnDef.enableMultiSort)?n:t.options.enableMultiSort)?l:!!e.accessorFn},e.getIsSorted=()=>{var l;let n=null==(l=t.getState().sorting)?void 0:l.find(t=>t.id===e.id);return!!n&&(n.desc?"desc":"asc")},e.getSortIndex=()=>{var l,n;return null!=(l=null==(n=t.getState().sorting)?void 0:n.findIndex(t=>t.id===e.id))?l:-1},e.clearSorting=()=>{t.setSorting(t=>null!=t&&t.length?t.filter(t=>t.id!==e.id):[])},e.getToggleSortingHandler=()=>{let l=e.getCanSort();return n=>{l&&(null==n.persist||n.persist(),null==e.toggleSorting||e.toggleSorting(void 0,!!e.getCanMultiSort()&&(null==t.options.isMultiSortEvent?void 0:t.options.isMultiSortEvent(n))))}}},createTable:e=>{e.setSorting=t=>null==e.options.onSortingChange?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var l,n;e.setSorting(t?[]:null!=(l=null==(n=e.initialState)?void 0:n.sorting)?l:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel)?e.getPreSortedRowModel():e._getSortedRowModel()}},{getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,l;return null!=(t=null==(l=e.getValue())||null==l.toString?void 0:l.toString())?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:o("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(t=>null!=t&&t.includes(e.id)?t.filter(t=>t!==e.id):[...null!=t?t:[],e.id])},e.getCanGroup=()=>{var l,n;return(null==(l=e.columnDef.enableGrouping)||l)&&(null==(n=t.options.enableGrouping)||n)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var l;return null==(l=t.getState().grouping)?void 0:l.includes(e.id)},e.getGroupedIndex=()=>{var l;return null==(l=t.getState().grouping)?void 0:l.indexOf(e.id)},e.getToggleGroupingHandler=()=>{let t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{let l=t.getCoreRowModel().flatRows[0],n=null==l?void 0:l.getValue(e.id);return"number"==typeof n?x.sum:"[object Date]"===Object.prototype.toString.call(n)?x.extent:void 0},e.getAggregationFn=()=>{var l,n;if(!e)throw Error();return r(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:"auto"===e.columnDef.aggregationFn?e.getAutoAggregationFn():null!=(l=null==(n=t.options.aggregationFns)?void 0:n[e.columnDef.aggregationFn])?l:x[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>null==e.options.onGroupingChange?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var l,n;e.setGrouping(t?[]:null!=(l=null==(n=e.initialState)?void 0:n.grouping)?l:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel)?e.getPreGroupedRowModel():e._getGroupedRowModel()},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=l=>{if(e._groupingValuesCache.hasOwnProperty(l))return e._groupingValuesCache[l];let n=t.getColumn(l);return null!=n&&n.columnDef.getGroupingValue?(e._groupingValuesCache[l]=n.columnDef.getGroupingValue(e.original),e._groupingValuesCache[l]):e.getValue(l)},e._groupingValuesCache={}},createCell:(e,t,l,n)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===l.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!(null!=(t=l.subRows)&&t.length)}}},{getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:o("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,l=!1;e._autoResetExpanded=()=>{var n,o;if(!t)return void e._queue(()=>{t=!0});if(null!=(n=null!=(o=e.options.autoResetAll)?o:e.options.autoResetExpanded)?n:!e.options.manualExpanding){if(l)return;l=!0,e._queue(()=>{e.resetExpanded(),l=!1})}},e.setExpanded=t=>null==e.options.onExpandedChange?void 0:e.options.onExpandedChange(t),e.toggleAllRowsExpanded=t=>{(null!=t?t:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=t=>{var l,n;e.setExpanded(t?{}:null!=(l=null==(n=e.initialState)?void 0:n.expanded)?l:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(e=>e.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>t=>{null==t.persist||t.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{let t=e.getState().expanded;return!0===t||Object.values(t).some(Boolean)},e.getIsAllRowsExpanded=()=>{let t=e.getState().expanded;return"boolean"==typeof t?!0===t:!(!Object.keys(t).length||e.getRowModel().flatRows.some(e=>!e.getIsExpanded()))},e.getExpandedDepth=()=>{let t=0;return(!0===e.getState().expanded?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(e=>{let l=e.split(".");t=Math.max(t,l.length)}),t},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel)?e.getPreExpandedRowModel():e._getExpandedRowModel()},createRow:(e,t)=>{e.toggleExpanded=l=>{t.setExpanded(n=>{var o;let r=!0===n||!!(null!=n&&n[e.id]),i={};if(!0===n?Object.keys(t.getRowModel().rowsById).forEach(e=>{i[e]=!0}):i=n,l=null!=(o=l)?o:!r,!r&&l)return{...i,[e.id]:!0};if(r&&!l){let{[e.id]:t,...l}=i;return l}return n})},e.getIsExpanded=()=>{var l;let n=t.getState().expanded;return!!(null!=(l=null==t.options.getIsRowExpanded?void 0:t.options.getIsRowExpanded(e))?l:!0===n||(null==n?void 0:n[e.id]))},e.getCanExpand=()=>{var l,n,o;return null!=(l=null==t.options.getRowCanExpand?void 0:t.options.getRowCanExpand(e))?l:(null==(n=t.options.enableExpanding)||n)&&!!(null!=(o=e.subRows)&&o.length)},e.getIsAllParentsExpanded=()=>{let l=!0,n=e;for(;l&&n.parentId;)l=(n=t.getRow(n.parentId,!0)).getIsExpanded();return l},e.getToggleExpandedHandler=()=>{let t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}}},{getInitialState:e=>({...e,pagination:{...E(),...null==e?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:o("pagination",e)}),createTable:e=>{let t=!1,l=!1;e._autoResetPageIndex=()=>{var n,o;if(!t)return void e._queue(()=>{t=!0});if(null!=(n=null!=(o=e.options.autoResetAll)?o:e.options.autoResetPageIndex)?n:!e.options.manualPagination){if(l)return;l=!0,e._queue(()=>{e.resetPageIndex(),l=!1})}},e.setPagination=t=>null==e.options.onPaginationChange?void 0:e.options.onPaginationChange(e=>n(t,e)),e.resetPagination=t=>{var l;e.setPagination(t?E():null!=(l=e.initialState.pagination)?l:E())},e.setPageIndex=t=>{e.setPagination(l=>{let o=n(t,l.pageIndex);return o=Math.max(0,Math.min(o,void 0===e.options.pageCount||-1===e.options.pageCount?Number.MAX_SAFE_INTEGER:e.options.pageCount-1)),{...l,pageIndex:o}})},e.resetPageIndex=t=>{var l,n;e.setPageIndex(t?0:null!=(l=null==(n=e.initialState)||null==(n=n.pagination)?void 0:n.pageIndex)?l:0)},e.resetPageSize=t=>{var l,n;e.setPageSize(t?10:null!=(l=null==(n=e.initialState)||null==(n=n.pagination)?void 0:n.pageSize)?l:10)},e.setPageSize=t=>{e.setPagination(e=>{let l=Math.max(1,n(t,e.pageSize)),o=Math.floor(e.pageSize*e.pageIndex/l);return{...e,pageIndex:o,pageSize:l}})},e.setPageCount=t=>e.setPagination(l=>{var o;let r=n(t,null!=(o=e.options.pageCount)?o:-1);return"number"==typeof r&&(r=Math.max(-1,r)),{...l,pageCount:r}}),e.getPageOptions=i(()=>[e.getPageCount()],e=>{let t=[];return e&&e>0&&(t=[...Array(e)].fill(null).map((e,t)=>t)),t},a(e.options,"debugTable","getPageOptions")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{let{pageIndex:t}=e.getState().pagination,l=e.getPageCount();return -1===l||0!==l&&te.setPageIndex(e=>e-1),e.nextPage=()=>e.setPageIndex(e=>e+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel)?e.getPrePaginationRowModel():e._getPaginationRowModel(),e.getPageCount=()=>{var t;return null!=(t=e.options.pageCount)?t:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var t;return null!=(t=e.options.rowCount)?t:e.getPrePaginationRowModel().rows.length}}},{getInitialState:e=>({rowPinning:_(),...e}),getDefaultOptions:e=>({onRowPinningChange:o("rowPinning",e)}),createRow:(e,t)=>{e.pin=(l,n,o)=>{let r=n?e.getLeafRows().map(e=>{let{id:t}=e;return t}):[],i=new Set([...o?e.getParentRows().map(e=>{let{id:t}=e;return t}):[],e.id,...r]);t.setRowPinning(e=>{var t,n,o,r,a,u;return"bottom"===l?{top:(null!=(o=null==e?void 0:e.top)?o:[]).filter(e=>!(null!=i&&i.has(e))),bottom:[...(null!=(r=null==e?void 0:e.bottom)?r:[]).filter(e=>!(null!=i&&i.has(e))),...Array.from(i)]}:"top"===l?{top:[...(null!=(a=null==e?void 0:e.top)?a:[]).filter(e=>!(null!=i&&i.has(e))),...Array.from(i)],bottom:(null!=(u=null==e?void 0:e.bottom)?u:[]).filter(e=>!(null!=i&&i.has(e)))}:{top:(null!=(t=null==e?void 0:e.top)?t:[]).filter(e=>!(null!=i&&i.has(e))),bottom:(null!=(n=null==e?void 0:e.bottom)?n:[]).filter(e=>!(null!=i&&i.has(e)))}})},e.getCanPin=()=>{var l;let{enableRowPinning:n,enablePinning:o}=t.options;return"function"==typeof n?n(e):null==(l=null!=n?n:o)||l},e.getIsPinned=()=>{let l=[e.id],{top:n,bottom:o}=t.getState().rowPinning,r=l.some(e=>null==n?void 0:n.includes(e)),i=l.some(e=>null==o?void 0:o.includes(e));return r?"top":!!i&&"bottom"},e.getPinnedIndex=()=>{var l,n;let o=e.getIsPinned();if(!o)return -1;let r=null==(l="top"===o?t.getTopRows():t.getBottomRows())?void 0:l.map(e=>{let{id:t}=e;return t});return null!=(n=null==r?void 0:r.indexOf(e.id))?n:-1}},createTable:e=>{e.setRowPinning=t=>null==e.options.onRowPinningChange?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var l,n;return e.setRowPinning(t?_():null!=(l=null==(n=e.initialState)?void 0:n.rowPinning)?l:_())},e.getIsSomeRowsPinned=t=>{var l,n,o;let r=e.getState().rowPinning;return t?!!(null==(l=r[t])?void 0:l.length):!!((null==(n=r.top)?void 0:n.length)||(null==(o=r.bottom)?void 0:o.length))},e._getPinnedRows=(t,l,n)=>{var o;return(null==(o=e.options.keepPinnedRows)||o?(null!=l?l:[]).map(t=>{let l=e.getRow(t,!0);return l.getIsAllParentsExpanded()?l:null}):(null!=l?l:[]).map(e=>t.find(t=>t.id===e))).filter(Boolean).map(e=>({...e,position:n}))},e.getTopRows=i(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,l)=>e._getPinnedRows(t,l,"top"),a(e.options,"debugRows","getTopRows")),e.getBottomRows=i(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,l)=>e._getPinnedRows(t,l,"bottom"),a(e.options,"debugRows","getBottomRows")),e.getCenterRows=i(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(e,t,l)=>{let n=new Set([...null!=t?t:[],...null!=l?l:[]]);return e.filter(e=>!n.has(e.id))},a(e.options,"debugRows","getCenterRows"))}},{getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:o("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>null==e.options.onRowSelectionChange?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var l;return e.setRowSelection(t?{}:null!=(l=e.initialState.rowSelection)?l:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(l=>{t=void 0!==t?t:!e.getIsAllRowsSelected();let n={...l},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach(e=>{e.getCanSelect()&&(n[e.id]=!0)}):o.forEach(e=>{delete n[e.id]}),n})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(l=>{let n=void 0!==t?t:!e.getIsAllPageRowsSelected(),o={...l};return e.getRowModel().rows.forEach(t=>{k(o,t.id,n,!0,e)}),o}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=i(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,l)=>Object.keys(t).length?L(e,l):{rows:[],flatRows:[],rowsById:{}},a(e.options,"debugTable","getSelectedRowModel")),e.getFilteredSelectedRowModel=i(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,l)=>Object.keys(t).length?L(e,l):{rows:[],flatRows:[],rowsById:{}},a(e.options,"debugTable","getFilteredSelectedRowModel")),e.getGroupedSelectedRowModel=i(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,l)=>Object.keys(t).length?L(e,l):{rows:[],flatRows:[],rowsById:{}},a(e.options,"debugTable","getGroupedSelectedRowModel")),e.getIsAllRowsSelected=()=>{let t=e.getFilteredRowModel().flatRows,{rowSelection:l}=e.getState(),n=!!(t.length&&Object.keys(l).length);return n&&t.some(e=>e.getCanSelect()&&!l[e.id])&&(n=!1),n},e.getIsAllPageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows.filter(e=>e.getCanSelect()),{rowSelection:l}=e.getState(),n=!!t.length;return n&&t.some(e=>!l[e.id])&&(n=!1),n},e.getIsSomeRowsSelected=()=>{var t;let l=Object.keys(null!=(t=e.getState().rowSelection)?t:{}).length;return l>0&&l{let t=e.getPaginationRowModel().flatRows;return!e.getIsAllPageRowsSelected()&&t.filter(e=>e.getCanSelect()).some(e=>e.getIsSelected()||e.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(l,n)=>{let o=e.getIsSelected();t.setRowSelection(r=>{var i;if(l=void 0!==l?l:!o,e.getCanSelect()&&o===l)return r;let a={...r};return k(a,e.id,l,null==(i=null==n?void 0:n.selectChildren)||i,t),a})},e.getIsSelected=()=>{let{rowSelection:l}=t.getState();return G(e,l)},e.getIsSomeSelected=()=>{let{rowSelection:l}=t.getState();return"some"===D(e,l)},e.getIsAllSubRowsSelected=()=>{let{rowSelection:l}=t.getState();return"all"===D(e,l)},e.getCanSelect=()=>{var l;return"function"==typeof t.options.enableRowSelection?t.options.enableRowSelection(e):null==(l=t.options.enableRowSelection)||l},e.getCanSelectSubRows=()=>{var l;return"function"==typeof t.options.enableSubRowSelection?t.options.enableSubRowSelection(e):null==(l=t.options.enableSubRowSelection)||l},e.getCanMultiSelect=()=>{var l;return"function"==typeof t.options.enableMultiRowSelection?t.options.enableMultiRowSelection(e):null==(l=t.options.enableMultiRowSelection)||l},e.getToggleSelectedHandler=()=>{let t=e.getCanSelect();return l=>{var n;t&&e.toggleSelected(null==(n=l.target)?void 0:n.checked)}}}},{getDefaultColumnDef:()=>M,getInitialState:e=>({columnSizing:{},columnSizingInfo:P(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:o("columnSizing",e),onColumnSizingInfoChange:o("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var l,n,o;let r=t.getState().columnSizing[e.id];return Math.min(Math.max(null!=(l=e.columnDef.minSize)?l:M.minSize,null!=(n=null!=r?r:e.columnDef.size)?n:M.size),null!=(o=e.columnDef.maxSize)?o:M.maxSize)},e.getStart=i(e=>[e,V(t,e),t.getState().columnSizing],(t,l)=>l.slice(0,e.getIndex(t)).reduce((e,t)=>e+t.getSize(),0),a(t.options,"debugColumns","getStart")),e.getAfter=i(e=>[e,V(t,e),t.getState().columnSizing],(t,l)=>l.slice(e.getIndex(t)+1).reduce((e,t)=>e+t.getSize(),0),a(t.options,"debugColumns","getAfter")),e.resetSize=()=>{t.setColumnSizing(t=>{let{[e.id]:l,...n}=t;return n})},e.getCanResize=()=>{var l,n;return(null==(l=e.columnDef.enableResizing)||l)&&(null==(n=t.options.enableColumnResizing)||n)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let t=0,l=e=>{if(e.subHeaders.length)e.subHeaders.forEach(l);else{var n;t+=null!=(n=e.column.getSize())?n:0}};return l(e),t},e.getStart=()=>{if(e.index>0){let t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},e.getResizeHandler=l=>{let n=t.getColumn(e.column.id),o=null==n?void 0:n.getCanResize();return r=>{if(!n||!o||(null==r.persist||r.persist(),A(r)&&r.touches&&r.touches.length>1))return;let i=e.getSize(),a=e?e.getLeafHeaders().map(e=>[e.column.id,e.column.getSize()]):[[n.id,n.getSize()]],u=A(r)?Math.round(r.touches[0].clientX):r.clientX,s={},d=(e,l)=>{"number"==typeof l&&(t.setColumnSizingInfo(e=>{var n,o;let r="rtl"===t.options.columnResizeDirection?-1:1,i=(l-(null!=(n=null==e?void 0:e.startOffset)?n:0))*r,a=Math.max(i/(null!=(o=null==e?void 0:e.startSize)?o:0),-.999999);return e.columnSizingStart.forEach(e=>{let[t,l]=e;s[t]=Math.round(100*Math.max(l+l*a,0))/100}),{...e,deltaOffset:i,deltaPercentage:a}}),("onChange"===t.options.columnResizeMode||"end"===e)&&t.setColumnSizing(e=>({...e,...s})))},g=e=>d("move",e),c=e=>{d("end",e),t.setColumnSizingInfo(e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=l||("undefined"!=typeof document?document:null),f={moveHandler:e=>g(e.clientX),upHandler:e=>{null==p||p.removeEventListener("mousemove",f.moveHandler),null==p||p.removeEventListener("mouseup",f.upHandler),c(e.clientX)}},m={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),g(e.touches[0].clientX),!1),upHandler:e=>{var t;null==p||p.removeEventListener("touchmove",m.moveHandler),null==p||p.removeEventListener("touchend",m.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),c(null==(t=e.touches[0])?void 0:t.clientX)}},v=!!function(){if("boolean"==typeof I)return I;let e=!1;try{let t=()=>{};window.addEventListener("test",t,{get passive(){return e=!0,!1}}),window.removeEventListener("test",t)}catch(t){e=!1}return I=e}()&&{passive:!1};A(r)?(null==p||p.addEventListener("touchmove",m.moveHandler,v),null==p||p.addEventListener("touchend",m.upHandler,v)):(null==p||p.addEventListener("mousemove",f.moveHandler,v),null==p||p.addEventListener("mouseup",f.upHandler,v)),t.setColumnSizingInfo(e=>({...e,startOffset:u,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:a,isResizingColumn:n.id}))}}},createTable:e=>{e.setColumnSizing=t=>null==e.options.onColumnSizingChange?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>null==e.options.onColumnSizingInfoChange?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var l;e.setColumnSizing(t?{}:null!=(l=e.initialState.columnSizing)?l:{})},e.resetHeaderSizeInfo=t=>{var l;e.setColumnSizingInfo(t?P():null!=(l=e.initialState.columnSizingInfo)?l:P())},e.getTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0},e.getLeftTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getLeftHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0},e.getCenterTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getCenterHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0},e.getRightTotalSize=()=>{var t,l;return null!=(t=null==(l=e.getRightHeaderGroups()[0])?void 0:l.headers.reduce((e,t)=>e+t.getSize(),0))?t:0}}}];function q(e){var t,l;let o=[...B,...null!=(t=e._features)?t:[]],r={_features:o},u=r._features.reduce((e,t)=>Object.assign(e,null==t.getDefaultOptions?void 0:t.getDefaultOptions(r)),{}),s=e=>r.options.mergeOptions?r.options.mergeOptions(u,e):{...u,...e},d={...null!=(l=e.initialState)?l:{}};r._features.forEach(e=>{var t;d=null!=(t=null==e.getInitialState?void 0:e.getInitialState(d))?t:d});let g=[],c=!1,p={_features:o,options:{...u,...e},initialState:d,_queue:e=>{g.push(e),c||(c=!0,Promise.resolve().then(()=>{for(;g.length;)g.shift()();c=!1}).catch(e=>setTimeout(()=>{throw e})))},reset:()=>{r.setState(r.initialState)},setOptions:e=>{let t=n(e,r.options);r.options=s(t)},getState:()=>r.options.state,setState:e=>{null==r.options.onStateChange||r.options.onStateChange(e)},_getRowId:(e,t,l)=>{var n;return null!=(n=null==r.options.getRowId?void 0:r.options.getRowId(e,t,l))?n:`${l?[l.id,t].join("."):t}`},getCoreRowModel:()=>(r._getCoreRowModel||(r._getCoreRowModel=r.options.getCoreRowModel(r)),r._getCoreRowModel()),getRowModel:()=>r.getPaginationRowModel(),getRow:(e,t)=>{let l=(t?r.getPrePaginationRowModel():r.getRowModel()).rowsById[e];if(!l&&!(l=r.getCoreRowModel().rowsById[e]))throw Error();return l},_getDefaultColumnDef:i(()=>[r.options.defaultColumn],e=>{var t;return e=null!=(t=e)?t:{},{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t,l;return null!=(t=null==(l=e.renderValue())||null==l.toString?void 0:l.toString())?t:null},...r._features.reduce((e,t)=>Object.assign(e,null==t.getDefaultColumnDef?void 0:t.getDefaultColumnDef()),{}),...e}},a(e,"debugColumns","_getDefaultColumnDef")),_getColumnDefs:()=>r.options.columns,getAllColumns:i(()=>[r._getColumnDefs()],e=>{let t=function(e,l,n){return void 0===n&&(n=0),e.map(e=>{let o=function(e,t,l,n){var o,r;let u,s={...e._getDefaultColumnDef(),...t},d=s.accessorKey,g=null!=(o=null!=(r=s.id)?r:d?"function"==typeof String.prototype.replaceAll?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)?o:"string"==typeof s.header?s.header:void 0;if(s.accessorFn?u=s.accessorFn:d&&(u=d.includes(".")?e=>{let t=e;for(let e of d.split(".")){var l;t=null==(l=t)?void 0:l[e]}return t}:e=>e[s.accessorKey]),!g)throw Error();let c={id:`${String(g)}`,accessorFn:u,parent:n,depth:l,columnDef:s,columns:[],getFlatColumns:i(()=>[!0],()=>{var e;return[c,...null==(e=c.columns)?void 0:e.flatMap(e=>e.getFlatColumns())]},a(e.options,"debugColumns","column.getFlatColumns")),getLeafColumns:i(()=>[e._getOrderColumnsFn()],e=>{var t;return null!=(t=c.columns)&&t.length?e(c.columns.flatMap(e=>e.getLeafColumns())):[c]},a(e.options,"debugColumns","column.getLeafColumns"))};for(let t of e._features)null==t.createColumn||t.createColumn(c,e);return c}(r,e,n,l);return o.columns=e.columns?t(e.columns,o,n+1):[],o})};return t(e)},a(e,"debugColumns","getAllColumns")),getAllFlatColumns:i(()=>[r.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),a(e,"debugColumns","getAllFlatColumns")),_getAllFlatColumnsById:i(()=>[r.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),a(e,"debugColumns","getAllFlatColumnsById")),getAllLeafColumns:i(()=>[r.getAllColumns(),r._getOrderColumnsFn()],(e,t)=>t(e.flatMap(e=>e.getLeafColumns())),a(e,"debugColumns","getAllLeafColumns")),getColumn:e=>r._getAllFlatColumnsById()[e]};Object.assign(r,p);for(let e=0;ei(()=>[e.options.data],t=>{let l={rows:[],flatRows:[],rowsById:{}},n=function(t,o,r){void 0===o&&(o=0);let i=[];for(let u=0;ue._autoResetPageIndex()))}},1492:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]])},2138:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},2146:(e,t,l)=>{function n(e){let{reason:t,children:l}=e;return l}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),l(5262)},2355:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},3052:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},3904:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},4054:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var l in t)Object.defineProperty(e,l,{enumerable:!0,get:t[l]})}(t,{bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return r},createSnapshot:function(){return a}});let l=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class n{disable(){throw l}getStore(){}run(){throw l}exit(){throw l}enterWith(){throw l}static bind(e){return e}}let o="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function r(){return o?new o:new n}function i(e){return o?o.bind(e):n.bind(e)}function a(){return o?o.snapshot():function(e,...t){return e(...t)}}},4186:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]])},4357:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},5028:(e,t,l)=>{l.d(t,{default:()=>o.a});var n=l(6645),o=l.n(n)},5339:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},5448:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]])},5744:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=l(7828)},5868:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]])},6268:(e,t,l)=>{l.d(t,{Kv:()=>r,N4:()=>i});var n=l(2115),o=l(1032);function r(e,t){var l,o,r;return e?"function"==typeof(o=l=e)&&(()=>{let e=Object.getPrototypeOf(o);return e.prototype&&e.prototype.isReactComponent})()||"function"==typeof l||"object"==typeof(r=l)&&"symbol"==typeof r.$$typeof&&["react.memo","react.forward_ref"].includes(r.$$typeof.description)?n.createElement(e,t):e:null}function i(e){let t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[l]=n.useState(()=>({current:(0,o.ZR)(t)})),[r,i]=n.useState(()=>l.current.initialState);return l.current.setOptions(t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{i(t),null==e.onStateChange||e.onStateChange(t)}})),l.current}},6561:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]])},6645:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let n=l(8229)._(l(7357));function o(e,t){var l;let o={};"function"==typeof e&&(o.loader=e);let r={...o,...t};return(0,n.default)({...r,modules:null==(l=r.loadableGenerated)?void 0:l.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7357:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=l(5155),o=l(2115),r=l(2146);function i(e){return{default:e&&"default"in e?e.default:e}}l(255);let a={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},u=function(e){let t={...a,...e},l=(0,o.lazy)(()=>t.loader().then(i)),u=t.loading;function s(e){let i=u?(0,n.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,a=!t.ssr||!!t.loading,s=a?o.Suspense:o.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:[null,(0,n.jsx)(l,{...e})]}):(0,n.jsx)(r.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(l,{...e})});return(0,n.jsx)(s,{...a?{fallback:i}:{},children:d})}return s.displayName="LoadableComponent",s}},7434:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},7740:(e,t,l)=>{l.d(t,{uB:()=>_});var n=/[\\\/_+.#"@\[\(\{&]/,o=/[\\\/_+.#"@\[\(\{&]/g,r=/[\s-]/,i=/[\s-]/g;function a(e){return e.toLowerCase().replace(i," ")}var u=l(5452),s=l(2115),d=l(3655),g=l(1285),c=l(6101),p='[cmdk-group=""]',f='[cmdk-group-items=""]',m='[cmdk-item=""]',v="".concat(m,':not([aria-disabled="true"])'),h="cmdk-item-select",C="data-value",b=(e,t,l)=>(function(e,t,l){return function e(t,l,a,u,s,d,g){if(d===l.length)return s===t.length?1:.99;var c=`${s},${d}`;if(void 0!==g[c])return g[c];for(var p,f,m,v,h=u.charAt(d),C=a.indexOf(h,s),b=0;C>=0;)(p=e(t,l,a,u,C+1,d+1,g))>b&&(C===s?p*=1:n.test(t.charAt(C-1))?(p*=.8,(m=t.slice(s,C-1).match(o))&&s>0&&(p*=Math.pow(.999,m.length))):r.test(t.charAt(C-1))?(p*=.9,(v=t.slice(s,C-1).match(i))&&s>0&&(p*=Math.pow(.999,v.length))):(p*=.17,s>0&&(p*=Math.pow(.999,C-s))),t.charAt(C)!==l.charAt(d)&&(p*=.9999)),(p<.1&&a.charAt(C-1)===u.charAt(d+1)||u.charAt(d+1)===u.charAt(d)&&a.charAt(C-1)!==u.charAt(d))&&.1*(f=e(t,l,a,u,C+1,d+2,g))>p&&(p=.1*f),p>b&&(b=p),C=a.indexOf(h,C+1);return g[c]=b,b}(e=l&&l.length>0?`${e+" "+l.join(" ")}`:e,t,a(e),a(t),0,0,{})})(e,t,l),w=s.createContext(void 0),S=()=>s.useContext(w),R=s.createContext(void 0),y=()=>s.useContext(R),x=s.createContext(void 0),F=s.forwardRef((e,t)=>{let l=G(()=>{var t,l;return{search:"",value:null!=(l=null!=(t=e.value)?t:e.defaultValue)?l:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=G(()=>new Set),o=G(()=>new Map),r=G(()=>new Map),i=G(()=>new Set),a=k(e),{label:u,children:c,value:S,onValueChange:y,filter:x,shouldFilter:F,loop:M,disablePointerSelection:P=!1,vimBindings:I=!0,...A}=e,V=(0,g.B)(),E=(0,g.B)(),_=(0,g.B)(),D=s.useRef(null),O=H();L(()=>{if(void 0!==S){let e=S.trim();l.current.value=e,T.emit()}},[S]),L(()=>{O(6,K)},[]);let T=s.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>l.current,setState:(e,t,n)=>{var o,r,i,u;if(!Object.is(l.current[e],t)){if(l.current[e]=t,"search"===e)$(),N(),O(1,U);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(_);e?e.focus():null==(o=document.getElementById(V))||o.focus()}if(O(7,()=>{var e;l.current.selectedItemId=null==(e=X())?void 0:e.id,T.emit()}),n||O(5,K),(null==(r=a.current)?void 0:r.value)!==void 0){null==(u=(i=a.current).onValueChange)||u.call(i,null!=t?t:"");return}}T.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),B=s.useMemo(()=>({value:(e,t,n)=>{var o;t!==(null==(o=r.current.get(e))?void 0:o.value)&&(r.current.set(e,{value:t,keywords:n}),l.current.filtered.items.set(e,q(t,n)),O(2,()=>{N(),T.emit()}))},item:(e,t)=>(n.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),O(3,()=>{$(),N(),l.current.value||U(),T.emit()}),()=>{r.current.delete(e),n.current.delete(e),l.current.filtered.items.delete(e);let t=X();O(4,()=>{$(),(null==t?void 0:t.getAttribute("id"))===e&&U(),T.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{r.current.delete(e),o.current.delete(e)}),filter:()=>a.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>a.current.disablePointerSelection,listId:V,inputId:_,labelId:E,listInnerRef:D}),[]);function q(e,t){var n,o;let r=null!=(o=null==(n=a.current)?void 0:n.filter)?o:b;return e?r(e,l.current.search,t):0}function N(){if(!l.current.search||!1===a.current.shouldFilter)return;let e=l.current.filtered.items,t=[];l.current.filtered.groups.forEach(l=>{let n=o.current.get(l),r=0;n.forEach(t=>{r=Math.max(e.get(t),r)}),t.push([l,r])});let n=D.current;Z().sort((t,l)=>{var n,o;let r=t.getAttribute("id"),i=l.getAttribute("id");return(null!=(n=e.get(i))?n:0)-(null!=(o=e.get(r))?o:0)}).forEach(e=>{let t=e.closest(f);t?t.appendChild(e.parentElement===t?e:e.closest("".concat(f," > *"))):n.appendChild(e.parentElement===n?e:e.closest("".concat(f," > *")))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let l=null==(t=D.current)?void 0:t.querySelector("".concat(p,"[").concat(C,'="').concat(encodeURIComponent(e[0]),'"]'));null==l||l.parentElement.appendChild(l)})}function U(){let e=Z().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(C);T.setState("value",t||void 0)}function $(){var e,t,i,u;if(!l.current.search||!1===a.current.shouldFilter){l.current.filtered.count=n.current.size;return}l.current.filtered.groups=new Set;let s=0;for(let o of n.current){let n=q(null!=(t=null==(e=r.current.get(o))?void 0:e.value)?t:"",null!=(u=null==(i=r.current.get(o))?void 0:i.keywords)?u:[]);l.current.filtered.items.set(o,n),n>0&&s++}for(let[e,t]of o.current)for(let n of t)if(l.current.filtered.items.get(n)>0){l.current.filtered.groups.add(e);break}l.current.filtered.count=s}function K(){var e,t,l;let n=X();n&&((null==(e=n.parentElement)?void 0:e.firstChild)===n&&(null==(l=null==(t=n.closest(p))?void 0:t.querySelector('[cmdk-group-heading=""]'))||l.scrollIntoView({block:"nearest"})),n.scrollIntoView({block:"nearest"}))}function X(){var e;return null==(e=D.current)?void 0:e.querySelector("".concat(m,'[aria-selected="true"]'))}function Z(){var e;return Array.from((null==(e=D.current)?void 0:e.querySelectorAll(v))||[])}function W(e){let t=Z()[e];t&&T.setState("value",t.getAttribute(C))}function J(e){var t;let l=X(),n=Z(),o=n.findIndex(e=>e===l),r=n[o+e];null!=(t=a.current)&&t.loop&&(r=o+e<0?n[n.length-1]:o+e===n.length?n[0]:n[o+e]),r&&T.setState("value",r.getAttribute(C))}function Q(e){let t=X(),l=null==t?void 0:t.closest(p),n;for(;l&&!n;)n=null==(l=e>0?function(e,t){let l=e.nextElementSibling;for(;l;){if(l.matches(t))return l;l=l.nextElementSibling}}(l,p):function(e,t){let l=e.previousElementSibling;for(;l;){if(l.matches(t))return l;l=l.previousElementSibling}}(l,p))?void 0:l.querySelector(v);n?T.setState("value",n.getAttribute(C)):J(e)}let Y=()=>W(Z().length-1),ee=e=>{e.preventDefault(),e.metaKey?Y():e.altKey?Q(1):J(1)},et=e=>{e.preventDefault(),e.metaKey?W(0):e.altKey?Q(-1):J(-1)};return s.createElement(d.sG.div,{ref:t,tabIndex:-1,...A,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=A.onKeyDown)||t.call(A,e);let l=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||l))switch(e.key){case"n":case"j":I&&e.ctrlKey&&ee(e);break;case"ArrowDown":ee(e);break;case"p":case"k":I&&e.ctrlKey&&et(e);break;case"ArrowUp":et(e);break;case"Home":e.preventDefault(),W(0);break;case"End":e.preventDefault(),Y();break;case"Enter":{e.preventDefault();let t=X();if(t){let e=new Event(h);t.dispatchEvent(e)}}}}},s.createElement("label",{"cmdk-label":"",htmlFor:B.inputId,id:B.labelId,style:j},u),z(e,e=>s.createElement(R.Provider,{value:T},s.createElement(w.Provider,{value:B},e))))}),M=s.forwardRef((e,t)=>{var l,n;let o=(0,g.B)(),r=s.useRef(null),i=s.useContext(x),a=S(),u=k(e),p=null!=(n=null==(l=u.current)?void 0:l.forceMount)?n:null==i?void 0:i.forceMount;L(()=>{if(!p)return a.item(o,null==i?void 0:i.id)},[p]);let f=O(o,r,[e.value,e.children,r],e.keywords),m=y(),v=D(e=>e.value&&e.value===f.current),C=D(e=>!!p||!1===a.filter()||!e.search||e.filtered.items.get(o)>0);function b(){var e,t;w(),null==(t=(e=u.current).onSelect)||t.call(e,f.current)}function w(){m.setState("value",f.current,!0)}if(s.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(h,b),()=>t.removeEventListener(h,b)},[C,e.onSelect,e.disabled]),!C)return null;let{disabled:R,value:F,onSelect:M,forceMount:P,keywords:I,...A}=e;return s.createElement(d.sG.div,{ref:(0,c.t)(r,t),...A,id:o,"cmdk-item":"",role:"option","aria-disabled":!!R,"aria-selected":!!v,"data-disabled":!!R,"data-selected":!!v,onPointerMove:R||a.getDisablePointerSelection()?void 0:w,onClick:R?void 0:b},e.children)}),P=s.forwardRef((e,t)=>{let{heading:l,children:n,forceMount:o,...r}=e,i=(0,g.B)(),a=s.useRef(null),u=s.useRef(null),p=(0,g.B)(),f=S(),m=D(e=>!!o||!1===f.filter()||!e.search||e.filtered.groups.has(i));L(()=>f.group(i),[]),O(i,a,[e.value,e.heading,u]);let v=s.useMemo(()=>({id:i,forceMount:o}),[o]);return s.createElement(d.sG.div,{ref:(0,c.t)(a,t),...r,"cmdk-group":"",role:"presentation",hidden:!m||void 0},l&&s.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:p},l),z(e,e=>s.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":l?p:void 0},s.createElement(x.Provider,{value:v},e))))}),I=s.forwardRef((e,t)=>{let{alwaysRender:l,...n}=e,o=s.useRef(null),r=D(e=>!e.search);return l||r?s.createElement(d.sG.div,{ref:(0,c.t)(o,t),...n,"cmdk-separator":"",role:"separator"}):null}),A=s.forwardRef((e,t)=>{let{onValueChange:l,...n}=e,o=null!=e.value,r=y(),i=D(e=>e.search),a=D(e=>e.selectedItemId),u=S();return s.useEffect(()=>{null!=e.value&&r.setState("search",e.value)},[e.value]),s.createElement(d.sG.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":a,id:u.inputId,type:"text",value:o?e.value:i,onChange:e=>{o||r.setState("search",e.target.value),null==l||l(e.target.value)}})}),V=s.forwardRef((e,t)=>{let{children:l,label:n="Suggestions",...o}=e,r=s.useRef(null),i=s.useRef(null),a=D(e=>e.selectedItemId),u=S();return s.useEffect(()=>{if(i.current&&r.current){let e=i.current,t=r.current,l,n=new ResizeObserver(()=>{l=requestAnimationFrame(()=>{let l=e.offsetHeight;t.style.setProperty("--cmdk-list-height",l.toFixed(1)+"px")})});return n.observe(e),()=>{cancelAnimationFrame(l),n.unobserve(e)}}},[]),s.createElement(d.sG.div,{ref:(0,c.t)(r,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":a,"aria-label":n,id:u.listId},z(e,e=>s.createElement("div",{ref:(0,c.t)(i,u.listInnerRef),"cmdk-list-sizer":""},e)))}),E=s.forwardRef((e,t)=>{let{open:l,onOpenChange:n,overlayClassName:o,contentClassName:r,container:i,...a}=e;return s.createElement(u.bL,{open:l,onOpenChange:n},s.createElement(u.ZL,{container:i},s.createElement(u.hJ,{"cmdk-overlay":"",className:o}),s.createElement(u.UC,{"aria-label":e.label,"cmdk-dialog":"",className:r},s.createElement(F,{ref:t,...a}))))}),_=Object.assign(F,{List:V,Item:M,Input:A,Group:P,Separator:I,Dialog:E,Empty:s.forwardRef((e,t)=>D(e=>0===e.filtered.count)?s.createElement(d.sG.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:s.forwardRef((e,t)=>{let{progress:l,children:n,label:o="Loading...",...r}=e;return s.createElement(d.sG.div,{ref:t,...r,"cmdk-loading":"",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},z(e,e=>s.createElement("div",{"aria-hidden":!0},e)))})});function k(e){let t=s.useRef(e);return L(()=>{t.current=e}),t}var L="undefined"==typeof window?s.useEffect:s.useLayoutEffect;function G(e){let t=s.useRef();return void 0===t.current&&(t.current=e()),t}function D(e){let t=y(),l=()=>e(t.snapshot());return s.useSyncExternalStore(t.subscribe,l,l)}function O(e,t,l){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=s.useRef(),r=S();return L(()=>{var i;let a=(()=>{var e;for(let t of l){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),u=n.map(e=>e.trim());r.value(e,a,u),null==(i=t.current)||i.setAttribute(C,a),o.current=a}),o}var H=()=>{let[e,t]=s.useState(),l=G(()=>new Map);return L(()=>{l.current.forEach(e=>e()),l.current=new Map},[e]),(e,n)=>{l.current.set(e,n),t({})}};function z(e,t){let l,{asChild:n,children:o}=e;return n&&s.isValidElement(o)?s.cloneElement("function"==typeof(l=o.type)?l(o.props):"render"in l?l.render(o.props):o,{ref:o.ref},t(o.props.children)):t(o)}var j={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"}},7828:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,l(4054).createAsyncLocalStorage)()},7924:(e,t,l)=>{l.d(t,{A:()=>n});let n=(0,l(9946).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/273-9756261fec6bc01b.js b/transports/bifrost-http/ui/_next/static/chunks/273-9756261fec6bc01b.js new file mode 100644 index 0000000000..a71a8f2e83 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/273-9756261fec6bc01b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[273],{381:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},9613:(e,t,r)=>{r.d(t,{Kq:()=>V,UC:()=>G,ZL:()=>Z,bL:()=>X,i3:()=>K,l9:()=>Y});var n=r(2115),o=r(5185),l=r(6101),a=r(6081),i=r(9178),s=r(1285),u=r(5152),c=r(4378),d=r(8905),p=r(3655),f=r(9708),h=r(5845),x=r(2564),v=r(5155),[g,y]=(0,a.A)("Tooltip",[u.Bk]),m=(0,u.Bk)(),b="TooltipProvider",w="tooltip.open",[C,T]=g(b),E=e=>{let{__scopeTooltip:t,delayDuration:r=700,skipDelayDuration:o=300,disableHoverableContent:l=!1,children:a}=e,i=n.useRef(!0),s=n.useRef(!1),u=n.useRef(0);return n.useEffect(()=>{let e=u.current;return()=>window.clearTimeout(e)},[]),(0,v.jsx)(C,{scope:t,isOpenDelayedRef:i,delayDuration:r,onOpen:n.useCallback(()=>{window.clearTimeout(u.current),i.current=!1},[]),onClose:n.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>i.current=!0,o)},[o]),isPointerInTransitRef:s,onPointerInTransitChange:n.useCallback(e=>{s.current=e},[]),disableHoverableContent:l,children:a})};E.displayName=b;var k="Tooltip",[L,R]=g(k),j=e=>{let{__scopeTooltip:t,children:r,open:o,defaultOpen:l,onOpenChange:a,disableHoverableContent:i,delayDuration:c}=e,d=T(k,e.__scopeTooltip),p=m(t),[f,x]=n.useState(null),g=(0,s.B)(),y=n.useRef(0),b=null!=i?i:d.disableHoverableContent,C=null!=c?c:d.delayDuration,E=n.useRef(!1),[R,j]=(0,h.i)({prop:o,defaultProp:null!=l&&l,onChange:e=>{e?(d.onOpen(),document.dispatchEvent(new CustomEvent(w))):d.onClose(),null==a||a(e)},caller:k}),_=n.useMemo(()=>R?E.current?"delayed-open":"instant-open":"closed",[R]),M=n.useCallback(()=>{window.clearTimeout(y.current),y.current=0,E.current=!1,j(!0)},[j]),P=n.useCallback(()=>{window.clearTimeout(y.current),y.current=0,j(!1)},[j]),D=n.useCallback(()=>{window.clearTimeout(y.current),y.current=window.setTimeout(()=>{E.current=!0,j(!0),y.current=0},C)},[C,j]);return n.useEffect(()=>()=>{y.current&&(window.clearTimeout(y.current),y.current=0)},[]),(0,v.jsx)(u.bL,{...p,children:(0,v.jsx)(L,{scope:t,contentId:g,open:R,stateAttribute:_,trigger:f,onTriggerChange:x,onTriggerEnter:n.useCallback(()=>{d.isOpenDelayedRef.current?D():M()},[d.isOpenDelayedRef,D,M]),onTriggerLeave:n.useCallback(()=>{b?P():(window.clearTimeout(y.current),y.current=0)},[P,b]),onOpen:M,onClose:P,disableHoverableContent:b,children:r})})};j.displayName=k;var _="TooltipTrigger",M=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...a}=e,i=R(_,r),s=T(_,r),c=m(r),d=n.useRef(null),f=(0,l.s)(t,d,i.onTriggerChange),h=n.useRef(!1),x=n.useRef(!1),g=n.useCallback(()=>h.current=!1,[]);return n.useEffect(()=>()=>document.removeEventListener("pointerup",g),[g]),(0,v.jsx)(u.Mz,{asChild:!0,...c,children:(0,v.jsx)(p.sG.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...a,ref:f,onPointerMove:(0,o.m)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(x.current||s.isPointerInTransitRef.current||(i.onTriggerEnter(),x.current=!0))}),onPointerLeave:(0,o.m)(e.onPointerLeave,()=>{i.onTriggerLeave(),x.current=!1}),onPointerDown:(0,o.m)(e.onPointerDown,()=>{i.open&&i.onClose(),h.current=!0,document.addEventListener("pointerup",g,{once:!0})}),onFocus:(0,o.m)(e.onFocus,()=>{h.current||i.onOpen()}),onBlur:(0,o.m)(e.onBlur,i.onClose),onClick:(0,o.m)(e.onClick,i.onClose)})})});M.displayName=_;var P="TooltipPortal",[D,N]=g(P,{forceMount:void 0}),O=e=>{let{__scopeTooltip:t,forceMount:r,children:n,container:o}=e,l=R(P,t);return(0,v.jsx)(D,{scope:t,forceMount:r,children:(0,v.jsx)(d.C,{present:r||l.open,children:(0,v.jsx)(c.Z,{asChild:!0,container:o,children:n})})})};O.displayName=P;var B="TooltipContent",I=n.forwardRef((e,t)=>{let r=N(B,e.__scopeTooltip),{forceMount:n=r.forceMount,side:o="top",...l}=e,a=R(B,e.__scopeTooltip);return(0,v.jsx)(d.C,{present:n||a.open,children:a.disableHoverableContent?(0,v.jsx)(H,{side:o,...l,ref:t}):(0,v.jsx)(A,{side:o,...l,ref:t})})}),A=n.forwardRef((e,t)=>{let r=R(B,e.__scopeTooltip),o=T(B,e.__scopeTooltip),a=n.useRef(null),i=(0,l.s)(t,a),[s,u]=n.useState(null),{trigger:c,onClose:d}=r,p=a.current,{onPointerInTransitChange:f}=o,h=n.useCallback(()=>{u(null),f(!1)},[f]),x=n.useCallback((e,t)=>{let r=e.currentTarget,n={x:e.clientX,y:e.clientY},o=function(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),l=Math.abs(t.left-e.x);switch(Math.min(r,n,o,l)){case l:return"left";case o:return"right";case r:return"top";case n:return"bottom";default:throw Error("unreachable")}}(n,r.getBoundingClientRect());u(function(e){let t=e.slice();return t.sort((e,t)=>e.xt.x?1:e.yt.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(n.y-r.y)>=(e.y-r.y)*(n.x-r.x))t.pop();else break}t.push(n)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let n=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(n.y-t.y)>=(e.y-t.y)*(n.x-t.x))r.pop();else break}r.push(n)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(t)}([...function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return n}(n,o),...function(e){let{top:t,right:r,bottom:n,left:o}=e;return[{x:o,y:t},{x:r,y:t},{x:r,y:n},{x:o,y:n}]}(t.getBoundingClientRect())])),f(!0)},[f]);return n.useEffect(()=>()=>h(),[h]),n.useEffect(()=>{if(c&&p){let e=e=>x(e,p),t=e=>x(e,c);return c.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{c.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[c,p,x,h]),n.useEffect(()=>{if(s){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},n=(null==c?void 0:c.contains(t))||(null==p?void 0:p.contains(t)),o=!function(e,t){let{x:r,y:n}=e,o=!1;for(let e=0,l=t.length-1;en!=d>n&&r<(c-s)*(n-u)/(d-u)+s&&(o=!o)}return o}(r,s);n?h():o&&(h(),d())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[c,p,s,d,h]),(0,v.jsx)(H,{...e,ref:i})}),[q,z]=g(k,{isInside:!1}),F=(0,f.Dc)("TooltipContent"),H=n.forwardRef((e,t)=>{let{__scopeTooltip:r,children:o,"aria-label":l,onEscapeKeyDown:a,onPointerDownOutside:s,...c}=e,d=R(B,r),p=m(r),{onClose:f}=d;return n.useEffect(()=>(document.addEventListener(w,f),()=>document.removeEventListener(w,f)),[f]),n.useEffect(()=>{if(d.trigger){let e=e=>{let t=e.target;(null==t?void 0:t.contains(d.trigger))&&f()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[d.trigger,f]),(0,v.jsx)(i.qW,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:f,children:(0,v.jsxs)(u.UC,{"data-state":d.stateAttribute,...p,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,v.jsx)(F,{children:o}),(0,v.jsx)(q,{scope:r,isInside:!0,children:(0,v.jsx)(x.bL,{id:d.contentId,role:"tooltip",children:l||o})})]})})});I.displayName=B;var S="TooltipArrow",U=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...n}=e,o=m(r);return z(S,r).isInside?null:(0,v.jsx)(u.i3,{...o,...n,ref:t})});U.displayName=S;var V=E,X=j,Y=M,Z=O,G=I,K=U}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/293-d2734c4726406a0e.js b/transports/bifrost-http/ui/_next/static/chunks/293-d2734c4726406a0e.js deleted file mode 100644 index 3c2d0d5a2e..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/293-d2734c4726406a0e.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[293],{968:(e,t,r)=>{"use strict";r.d(t,{b:()=>s});var n=r(2115),a=r(3655),o=r(5155),i=n.forwardRef((e,t)=>(0,o.jsx)(a.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null==(r=e.onMouseDown)||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label";var s=i},1243:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},1284:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},1539:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},2525:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},3717:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]])},4109:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("refresh-ccw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]])},4229:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},4616:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},4884:(e,t,r)=>{"use strict";r.d(t,{bL:()=>A,zi:()=>w});var n=r(2115),a=r(5185),o=r(6101),i=r(6081),s=r(5845),c=r(5503),u=r(1275),l=r(3655),f=r(5155),d="Switch",[p,h]=(0,i.A)(d),[y,v]=p(d),b=n.forwardRef((e,t)=>{let{__scopeSwitch:r,name:i,checked:c,defaultChecked:u,required:p,disabled:h,value:v="on",onCheckedChange:b,form:_,...g}=e,[A,w]=n.useState(null),k=(0,o.s)(t,e=>w(e)),x=n.useRef(!1),z=!A||_||!!A.closest("form"),[M,O]=(0,s.i)({prop:c,defaultProp:null!=u&&u,onChange:b,caller:d});return(0,f.jsxs)(y,{scope:r,checked:M,disabled:h,children:[(0,f.jsx)(l.sG.button,{type:"button",role:"switch","aria-checked":M,"aria-required":p,"data-state":m(M),"data-disabled":h?"":void 0,disabled:h,value:v,...g,ref:k,onClick:(0,a.m)(e.onClick,e=>{O(e=>!e),z&&(x.current=e.isPropagationStopped(),x.current||e.stopPropagation())})}),z&&(0,f.jsx)(j,{control:A,bubbles:!x.current,name:i,value:v,checked:M,required:p,disabled:h,form:_,style:{transform:"translateX(-100%)"}})]})});b.displayName=d;var _="SwitchThumb",g=n.forwardRef((e,t)=>{let{__scopeSwitch:r,...n}=e,a=v(_,r);return(0,f.jsx)(l.sG.span,{"data-state":m(a.checked),"data-disabled":a.disabled?"":void 0,...n,ref:t})});g.displayName=_;var j=n.forwardRef((e,t)=>{let{__scopeSwitch:r,control:a,checked:i,bubbles:s=!0,...l}=e,d=n.useRef(null),p=(0,o.s)(d,t),h=(0,c.Z)(i),y=(0,u.X)(a);return n.useEffect(()=>{let e=d.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==i&&t){let r=new Event("click",{bubbles:s});t.call(e,i),e.dispatchEvent(r)}},[h,i,s]),(0,f.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...l,tabIndex:-1,ref:p,style:{...l.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function m(e){return e?"checked":"unchecked"}j.displayName="SwitchBubbleInput";var A=b,w=g},7649:(e,t,r)=>{"use strict";r.d(t,{UC:()=>P,VY:()=>T,ZD:()=>I,ZL:()=>S,bL:()=>E,hE:()=>F,hJ:()=>L,l9:()=>R,rc:()=>C});var n=r(2115),a=r(6081),o=r(6101),i=r(5452),s=r(5185),c=r(9708),u=r(5155),l="AlertDialog",[f,d]=(0,a.A)(l,[i.Hs]),p=(0,i.Hs)(),h=e=>{let{__scopeAlertDialog:t,...r}=e,n=p(t);return(0,u.jsx)(i.bL,{...n,...r,modal:!0})};h.displayName=l;var y=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.l9,{...a,...n,ref:t})});y.displayName="AlertDialogTrigger";var v=e=>{let{__scopeAlertDialog:t,...r}=e,n=p(t);return(0,u.jsx)(i.ZL,{...n,...r})};v.displayName="AlertDialogPortal";var b=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.hJ,{...a,...n,ref:t})});b.displayName="AlertDialogOverlay";var _="AlertDialogContent",[g,j]=f(_),m=(0,c.Dc)("AlertDialogContent"),A=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,children:a,...c}=e,l=p(r),f=n.useRef(null),d=(0,o.s)(t,f),h=n.useRef(null);return(0,u.jsx)(i.G$,{contentName:_,titleName:w,docsSlug:"alert-dialog",children:(0,u.jsx)(g,{scope:r,cancelRef:h,children:(0,u.jsxs)(i.UC,{role:"alertdialog",...l,...c,ref:d,onOpenAutoFocus:(0,s.m)(c.onOpenAutoFocus,e=>{var t;e.preventDefault(),null==(t=h.current)||t.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,u.jsx)(m,{children:a}),(0,u.jsx)(N,{contentRef:f})]})})})});A.displayName=_;var w="AlertDialogTitle",k=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.hE,{...a,...n,ref:t})});k.displayName=w;var x="AlertDialogDescription",z=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.VY,{...a,...n,ref:t})});z.displayName=x;var M=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.bm,{...a,...n,ref:t})});M.displayName="AlertDialogAction";var O="AlertDialogCancel",D=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,{cancelRef:a}=j(O,r),s=p(r),c=(0,o.s)(t,a);return(0,u.jsx)(i.bm,{...s,...n,ref:c})});D.displayName=O;var N=e=>{let{contentRef:t}=e,r="`".concat(_,"` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the `").concat(_,"` by passing a `").concat(x,"` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `").concat(_,"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog");return n.useEffect(()=>{var e;document.getElementById(null==(e=t.current)?void 0:e.getAttribute("aria-describedby"))||console.warn(r)},[r,t]),null},E=h,R=y,S=v,L=b,P=A,C=M,I=D,F=k,T=z},8103:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("pickaxe",[["path",{d:"M14.531 12.469 6.619 20.38a1 1 0 1 1-3-3l7.912-7.912",key:"we99rg"}],["path",{d:"M15.686 4.314A12.5 12.5 0 0 0 5.461 2.958 1 1 0 0 0 5.58 4.71a22 22 0 0 1 6.318 3.393",key:"1w6hck"}],["path",{d:"M17.7 3.7a1 1 0 0 0-1.4 0l-4.6 4.6a1 1 0 0 0 0 1.4l2.6 2.6a1 1 0 0 0 1.4 0l4.6-4.6a1 1 0 0 0 0-1.4z",key:"15hgfx"}],["path",{d:"M19.686 8.314a12.501 12.501 0 0 1 1.356 10.225 1 1 0 0 1-1.751-.119 22 22 0 0 0-3.393-6.319",key:"452b4h"}]])},9231:(e,t,r)=>{e=r.nmd(e);var n,a,o="__lodash_hash_undefined__",i="[object Arguments]",s="[object Array]",c="[object Boolean]",u="[object Date]",l="[object Error]",f="[object Function]",d="[object Map]",p="[object Number]",h="[object Object]",y="[object Promise]",v="[object RegExp]",b="[object Set]",_="[object String]",g="[object WeakMap]",j="[object ArrayBuffer]",m="[object DataView]",A=/^\[object .+?Constructor\]$/,w=/^(?:0|[1-9]\d*)$/,k={};k["[object Float32Array]"]=k["[object Float64Array]"]=k["[object Int8Array]"]=k["[object Int16Array]"]=k["[object Int32Array]"]=k["[object Uint8Array]"]=k["[object Uint8ClampedArray]"]=k["[object Uint16Array]"]=k["[object Uint32Array]"]=!0,k[i]=k[s]=k[j]=k[c]=k[m]=k[u]=k[l]=k[f]=k[d]=k[p]=k[h]=k[v]=k[b]=k[_]=k[g]=!1;var x="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,z="object"==typeof self&&self&&self.Object===Object&&self,M=x||z||Function("return this")(),O=t&&!t.nodeType&&t,D=O&&e&&!e.nodeType&&e,N=D&&D.exports===O,E=N&&x.process,R=function(){try{return E&&E.binding&&E.binding("util")}catch(e){}}(),S=R&&R.isTypedArray;function L(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function P(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}var C=Array.prototype,I=Function.prototype,F=Object.prototype,T=M["__core-js_shared__"],U=I.toString,V=F.hasOwnProperty,$=function(){var e=/[^.]+$/.exec(T&&T.keys&&T.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),B=F.toString,H=RegExp("^"+U.call(V).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),q=N?M.Buffer:void 0,G=M.Symbol,Z=M.Uint8Array,Y=F.propertyIsEnumerable,J=C.splice,W=G?G.toStringTag:void 0,X=Object.getOwnPropertySymbols,K=q?q.isBuffer:void 0,Q=(n=Object.keys,a=Object,function(e){return n(a(e))}),ee=ek(M,"DataView"),et=ek(M,"Map"),er=ek(M,"Promise"),en=ek(M,"Set"),ea=ek(M,"WeakMap"),eo=ek(Object,"create"),ei=eM(ee),es=eM(et),ec=eM(er),eu=eM(en),el=eM(ea),ef=G?G.prototype:void 0,ed=ef?ef.valueOf:void 0;function ep(e){var t=-1,r=null==e?0:e.length;for(this.clear();++ts))return!1;var u=o.get(e);if(u&&o.get(t))return u==t;var l=-1,f=!0,d=2&r?new ev:void 0;for(o.set(e,t),o.set(t,e);++l-1},eh.prototype.set=function(e,t){var r=this.__data__,n=e_(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},ey.prototype.clear=function(){this.size=0,this.__data__={hash:new ep,map:new(et||eh),string:new ep}},ey.prototype.delete=function(e){var t=ew(this,e).delete(e);return this.size-=!!t,t},ey.prototype.get=function(e){return ew(this,e).get(e)},ey.prototype.has=function(e){return ew(this,e).has(e)},ey.prototype.set=function(e,t){var r=ew(this,e),n=r.size;return r.set(e,t),this.size+=+(r.size!=n),this},ev.prototype.add=ev.prototype.push=function(e){return this.__data__.set(e,o),this},ev.prototype.has=function(e){return this.__data__.has(e)},eb.prototype.clear=function(){this.__data__=new eh,this.size=0},eb.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},eb.prototype.get=function(e){return this.__data__.get(e)},eb.prototype.has=function(e){return this.__data__.has(e)},eb.prototype.set=function(e,t){var r=this.__data__;if(r instanceof eh){var n=r.__data__;if(!et||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ey(n)}return r.set(e,t),this.size=r.size,this};var ex=X?function(e){return null==e?[]:function(e,t){for(var r=-1,n=null==e?0:e.length,a=0,o=[];++r-1&&e%1==0&&e<=0x1fffffffffffff}function eL(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function eP(e){return null!=e&&"object"==typeof e}var eC=S?function(e){return S(e)}:function(e){return eP(e)&&eS(e.length)&&!!k[eg(e)]};function eI(e){return null!=e&&eS(e.length)&&!eR(e)?function(e,t){var r,n,a=eN(e),o=!a&&eD(e),i=!a&&!o&&eE(e),s=!a&&!o&&!i&&eC(e),c=a||o||i||s,u=c?function(e,t){for(var r=-1,n=Array(e);++r-1&&r%1==0&&r{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/341-3971b040aed697e5.js b/transports/bifrost-http/ui/_next/static/chunks/341-3971b040aed697e5.js new file mode 100644 index 0000000000..a0f6688964 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/341-3971b040aed697e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[341],{1225:(e,t,a)=>{a.d(t,{ThemeToggle:()=>x});var r=a(5155);a(2115);var n=a(2098),s=a(3509),i=a(1362),o=a(7168),l=a(8698),d=a(3999);function c(e){let{...t}=e;return(0,r.jsx)(l.bL,{"data-slot":"dropdown-menu",...t})}function u(e){let{...t}=e;return(0,r.jsx)(l.l9,{"data-slot":"dropdown-menu-trigger",...t})}function g(e){let{className:t,sideOffset:a=4,...n}=e;return(0,r.jsx)(l.ZL,{children:(0,r.jsx)(l.UC,{"data-slot":"dropdown-menu-content",sideOffset:a,className:(0,d.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",t),...n})})}function p(e){let{className:t,inset:a,variant:n="default",...s}=e;return(0,r.jsx)(l.q7,{"data-slot":"dropdown-menu-item","data-inset":a,"data-variant":n,className:(0,d.cn)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s})}function x(){let{setTheme:e}=(0,i.D)();return(0,r.jsxs)(c,{children:[(0,r.jsx)(u,{asChild:!0,children:(0,r.jsxs)(o.$,{variant:"ghost",size:"icon",className:"h-9 w-9",children:[(0,r.jsx)(n.A,{className:"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,r.jsx)(s.A,{className:"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,r.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}),(0,r.jsxs)(g,{align:"end",children:[(0,r.jsx)(p,{onClick:()=>e("light"),children:"Light"}),(0,r.jsx)(p,{onClick:()=>e("dark"),children:"Dark"}),(0,r.jsx)(p,{onClick:()=>e("system"),children:"System"})]})]})}},1886:(e,t,a)=>{a.d(t,{K:()=>i});var r=a(9362),n=a(3464);class s{getErrorMessage(e){if((0,r.F0)(e)&&e.response){let t=e.response.data;if(t.error&&t.error.message)return t.error.message}return e instanceof Error&&e.message||"An unexpected error occurred."}async getLogs(e,t){try{let a={limit:t.limit,offset:t.offset,sort_by:t.sort_by,order:t.order};return e.providers&&e.providers.length>0&&(a.providers=e.providers.join(",")),e.models&&e.models.length>0&&(a.models=e.models.join(",")),e.status&&e.status.length>0&&(a.status=e.status.join(",")),e.objects&&e.objects.length>0&&(a.objects=e.objects.join(",")),e.start_time&&(a.start_time=e.start_time),e.end_time&&(a.end_time=e.end_time),e.min_latency&&(a.min_latency=e.min_latency),e.max_latency&&(a.max_latency=e.max_latency),e.min_tokens&&(a.min_tokens=e.min_tokens),e.max_tokens&&(a.max_tokens=e.max_tokens),e.content_search&&(a.content_search=e.content_search),[(await this.client.get("/logs",{params:a})).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getDroppedRequests(){try{return[(await this.client.get("/logs/dropped")).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getProviders(){try{return[(await this.client.get("/providers")).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getProvider(e){try{return[(await this.client.get("/providers/".concat(e))).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async createProvider(e){try{return[(await this.client.post("/providers",e)).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async updateProvider(e,t){try{return[(await this.client.put("/providers/".concat(e),t)).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async deleteProvider(e){try{return[(await this.client.delete("/providers/".concat(e))).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getMCPClients(){try{return[(await this.client.get("/mcp/clients")).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async createMCPClient(e){try{return await this.client.post("/mcp/client",e),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async updateMCPClient(e,t){try{return await this.client.put("/mcp/client/".concat(e),t),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async deleteMCPClient(e){try{return await this.client.delete("/mcp/client/".concat(e)),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async reconnectMCPClient(e){try{return await this.client.post("/mcp/client/".concat(e,"/reconnect")),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getCoreConfig(){try{return[(await this.client.get("/config")).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async updateCoreConfig(e){try{return await this.client.put("/config",e),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}constructor(){this.client=n.A.create({baseURL:"/api",headers:{"Content-Type":"application/json"}})}}let i=new s},2384:(e,t,a)=>{a.d(t,{A:()=>s});var r=a(5155),n=a(1154);let s=function(){return(0,r.jsx)("div",{className:"h-base flex items-center justify-center pb-24",children:(0,r.jsx)(n.A,{className:"h-4 w-4 animate-spin"})})}},3999:(e,t,a)=>{a.d(t,{cn:()=>s});var r=a(2596),n=a(9688);function s(){for(var e=arguments.length,t=Array(e),a=0;a{a.d(t,{Tabs:()=>i,TabsContent:()=>d,TabsList:()=>o,TabsTrigger:()=>l});var r=a(5155);a(2115);var n=a(704),s=a(3999);function i(e){let{className:t,...a}=e;return(0,r.jsx)(n.bL,{"data-slot":"tabs",className:(0,s.cn)("flex flex-col gap-2",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)(n.B8,{"data-slot":"tabs-list",className:(0,s.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)(n.l9,{"data-slot":"tabs-trigger",className:(0,s.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a})}function d(e){let{className:t,...a}=e;return(0,r.jsx)(n.UC,{"data-slot":"tabs-content",className:(0,s.cn)("flex-1 outline-none",t),...a})}},5784:(e,t,a)=>{a.d(t,{bq:()=>u,eb:()=>p,gC:()=>g,l6:()=>d,yv:()=>c});var r=a(5155);a(2115);var n=a(4582),s=a(6474),i=a(2815),o=a(7863),l=a(3999);function d(e){let{...t}=e;return(0,r.jsx)(n.bL,{"data-slot":"select",...t})}function c(e){let{...t}=e;return(0,r.jsx)(n.WT,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:a="default",children:i,...o}=e;return(0,r.jsxs)(n.l9,{"data-slot":"select-trigger","data-size":a,className:(0,l.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...o,children:[i,(0,r.jsx)(n.In,{asChild:!0,children:(0,r.jsx)(s.A,{className:"size-4 opacity-50"})})]})}function g(e){let{className:t,children:a,position:s="popper",...i}=e;return(0,r.jsx)(n.ZL,{children:(0,r.jsxs)(n.UC,{"data-slot":"select-content",className:(0,l.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===s&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:s,...i,children:[(0,r.jsx)(x,{}),(0,r.jsx)(n.LM,{className:(0,l.cn)("p-1","popper"===s&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),(0,r.jsx)(f,{})]})})}function p(e){let{className:t,children:a,...s}=e;return(0,r.jsxs)(n.q7,{"data-slot":"select-item",className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...s,children:[(0,r.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(n.VF,{children:(0,r.jsx)(i.A,{className:"size-4"})})}),(0,r.jsx)(n.p4,{children:a})]})}function x(e){let{className:t,...a}=e;return(0,r.jsx)(n.PP,{"data-slot":"select-scroll-up-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(o.A,{className:"size-4"})})}function f(e){let{className:t,...a}=e;return(0,r.jsx)(n.wn,{"data-slot":"select-scroll-down-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(s.A,{className:"size-4"})})}},6037:(e,t,a)=>{a.d(t,{Separator:()=>i,W:()=>o});var r=a(5155);a(2115);var n=a(7489),s=a(3999);function i(e){let{className:t,orientation:a="horizontal",decorative:i=!0,...o}=e;return(0,r.jsx)(n.b,{"data-slot":"separator",decorative:i,orientation:a,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...o})}function o(e){let{className:t}=e;return(0,r.jsx)("div",{className:(0,s.cn)("border-border h-[1px] w-full border-t border-dashed bg-transparent",{["".concat(t)]:void 0!==t})})}},7168:(e,t,a)=>{a.d(t,{$:()=>d,r:()=>l});var r=a(5155);a(2115);var n=a(9708),s=a(2085),i=a(3999),o=a(1154);let l=(0,s.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function d(e){let{className:t,variant:a,size:n,asChild:s=!1,children:i,isLoading:l=!1,...d}=e;return(0,r.jsx)(c,{className:t,variant:a,size:n,asChild:s,...d,children:l?(0,r.jsx)(o.A,{className:"size-4 animate-spin"}):i})}function c(e){let{className:t,variant:a,size:s,asChild:o=!1,...d}=e,c=o?n.DX:"button";return(0,r.jsx)(c,{"data-slot":"button",className:(0,i.cn)(l({variant:a,size:s,className:t}),"cursor-pointer"),...d})}},7783:(e,t,a)=>{a.d(t,{Ez:()=>l,RY:()=>o,f:()=>n,mG:()=>s,oU:()=>i,tJ:()=>d,wf:()=>c,xq:()=>r});let r=["openai","anthropic","azure","bedrock","cohere","vertex","mistral","ollama"],n=["success","error","cancelled"],s=["chat.completion","text.completion","embedding"],i={openai:"OpenAI",anthropic:"Anthropic",azure:"Azure OpenAI",bedrock:"AWS Bedrock",cohere:"Cohere",vertex:"Vertex AI",mistral:"Mistral AI",ollama:"Ollama"},o={openai:"bg-cyan-100 text-cyan-800",anthropic:"bg-orange-100 text-orange-800",bedrock:"bg-yellow-100 text-yellow-800",azure:"bg-blue-100 text-blue-800",cohere:"bg-purple-100 text-purple-800",vertex:"bg-pink-100 text-pink-800",mistral:"bg-gray-100 text-gray-800",ollama:"bg-indigo-100 text-indigo-800"},l={success:"bg-green-100 text-green-800",error:"bg-red-100 text-red-800",cancelled:"bg-gray-100 text-gray-800"},d={"chat.completion":"Chat","text.completion":"Text",embedding:"Embedding"},c={"chat.completion":"bg-blue-100 text-blue-800","text.completion":"bg-green-100 text-green-800",embedding:"bg-red-100 text-red-800"}},8145:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(5155);a(2115);var n=a(9708),s=a(2085),i=a(3999);let o=(0,s.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",success:"border-transparent bg-green-700 text-white [a&]:hover:bg-green-700/90"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:a,asChild:s=!1,...l}=e,d=s?n.DX:"span";return(0,r.jsx)(d,{"data-slot":"badge",className:(0,i.cn)(o({variant:a}),t),...l})}},8482:(e,t,a)=>{a.d(t,{BT:()=>l,Wu:()=>d,ZB:()=>o,Zp:()=>s,aR:()=>i});var r=a(5155);a(2115);var n=a(3999);function s(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function i(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,n.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,n.cn)("leading-none font-semibold",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...a})}function d(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",t),...a})}},8524:(e,t,a)=>{a.d(t,{A0:()=>i,BF:()=>o,Hj:()=>l,XI:()=>s,nA:()=>c,nd:()=>d});var r=a(5155);a(2115);var n=a(3999);function s(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,r.jsx)("table",{"data-slot":"table",className:(0,n.cn)("w-full caption-bottom text-sm",t),...a})})}function i(e){let{className:t,...a}=e;return(0,r.jsx)("thead",{"data-slot":"table-header",className:(0,n.cn)("[&_tr]:border-b",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)("tbody",{"data-slot":"table-body",className:(0,n.cn)("[&_tr:last-child]:border-0",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("tr",{"data-slot":"table-row",className:(0,n.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t),...a})}function d(e){let{className:t,...a}=e;return(0,r.jsx)("th",{"data-slot":"table-head",className:(0,n.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...a})}function c(e){let{className:t,...a}=e;return(0,r.jsx)("td",{"data-slot":"table-cell",className:(0,n.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...a})}},9026:(e,t,a)=>{a.d(t,{Fc:()=>o,TN:()=>l});var r=a(5155);a(2115);var n=a(2085),s=a(3999);let i=(0,n.F)("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:a,...n}=e;return(0,r.jsx)("div",{"data-slot":"alert",role:"alert",className:(0,s.cn)(i({variant:a}),t),...n})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"alert-description",className:(0,s.cn)("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...a})}},9464:(e,t,a)=>{a.d(t,{A:()=>i});var r=a(5155),n=a(6037),s=a(1225);function i(e){let{title:t}=e;return(0,r.jsxs)("div",{className:"bg-background fixed top-0 right-0 left-(--sidebar-width) z-10",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3",children:[(0,r.jsx)("div",{className:"p-3 font-semibold",children:t}),(0,r.jsx)(s.ThemeToggle,{})]}),(0,r.jsx)(n.Separator,{className:"w-full"})]})}},9840:(e,t,a)=>{a.d(t,{Cf:()=>c,Es:()=>g,L3:()=>p,c7:()=>u,lG:()=>o,rr:()=>x});var r=a(5155);a(2115);var n=a(5452),s=a(4416),i=a(3999);function o(e){let{...t}=e;return(0,r.jsx)(n.bL,{"data-slot":"dialog",...t})}function l(e){let{...t}=e;return(0,r.jsx)(n.ZL,{"data-slot":"dialog-portal",...t})}function d(e){let{className:t,...a}=e;return(0,r.jsx)(n.hJ,{"data-slot":"dialog-overlay",className:(0,i.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...a})}function c(e){let{className:t,children:a,showCloseButton:o=!0,...c}=e;return(0,r.jsxs)(l,{"data-slot":"dialog-portal",children:[(0,r.jsx)(d,{}),(0,r.jsxs)(n.UC,{"data-slot":"dialog-content",className:(0,i.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...c,children:[a,o&&(0,r.jsxs)(n.bm,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,r.jsx)(s.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function u(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"dialog-header",className:(0,i.cn)("flex flex-col gap-2 text-center sm:text-left",t),...a})}function g(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"dialog-footer",className:(0,i.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...a})}function p(e){let{className:t,...a}=e;return(0,r.jsx)(n.hE,{"data-slot":"dialog-title",className:(0,i.cn)("text-lg leading-none font-semibold",t),...a})}function x(e){let{className:t,...a}=e;return(0,r.jsx)(n.VY,{"data-slot":"dialog-description",className:(0,i.cn)("text-muted-foreground text-sm",t),...a})}},9852:(e,t,a)=>{a.d(t,{p:()=>i});var r=a(5155),n=a(2115),s=a(3999);let i=n.forwardRef((e,t)=>{let{className:a,type:n,...i}=e;return(0,r.jsx)("input",{type:n,ref:t,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...i})});i.displayName="Input"}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/341-5aa9f869e119bce4.js b/transports/bifrost-http/ui/_next/static/chunks/341-5aa9f869e119bce4.js deleted file mode 100644 index aaf4bfab39..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/341-5aa9f869e119bce4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[341],{1225:(e,t,a)=>{a.d(t,{ThemeToggle:()=>x});var r=a(5155);a(2115);var n=a(2098),s=a(3509),i=a(1362),o=a(7168),l=a(8698),d=a(3999);function c(e){let{...t}=e;return(0,r.jsx)(l.bL,{"data-slot":"dropdown-menu",...t})}function u(e){let{...t}=e;return(0,r.jsx)(l.l9,{"data-slot":"dropdown-menu-trigger",...t})}function g(e){let{className:t,sideOffset:a=4,...n}=e;return(0,r.jsx)(l.ZL,{children:(0,r.jsx)(l.UC,{"data-slot":"dropdown-menu-content",sideOffset:a,className:(0,d.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",t),...n})})}function p(e){let{className:t,inset:a,variant:n="default",...s}=e;return(0,r.jsx)(l.q7,{"data-slot":"dropdown-menu-item","data-inset":a,"data-variant":n,className:(0,d.cn)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s})}function x(){let{setTheme:e}=(0,i.D)();return(0,r.jsxs)(c,{children:[(0,r.jsx)(u,{asChild:!0,children:(0,r.jsxs)(o.$,{variant:"ghost",size:"icon",className:"h-9 w-9",children:[(0,r.jsx)(n.A,{className:"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,r.jsx)(s.A,{className:"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,r.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}),(0,r.jsxs)(g,{align:"end",children:[(0,r.jsx)(p,{onClick:()=>e("light"),children:"Light"}),(0,r.jsx)(p,{onClick:()=>e("dark"),children:"Dark"}),(0,r.jsx)(p,{onClick:()=>e("system"),children:"System"})]})]})}},1886:(e,t,a)=>{a.d(t,{K:()=>i});var r=a(9362),n=a(3464);class s{getErrorMessage(e){if((0,r.F0)(e)&&e.response){let t=e.response.data;if(t.error&&t.error.message)return t.error.message}return e instanceof Error&&e.message||"An unexpected error occurred."}async getLogs(e,t){try{let a={limit:t.limit,offset:t.offset,sort_by:t.sort_by,order:t.order};return e.providers&&e.providers.length>0&&(a.providers=e.providers.join(",")),e.models&&e.models.length>0&&(a.models=e.models.join(",")),e.status&&e.status.length>0&&(a.status=e.status.join(",")),e.objects&&e.objects.length>0&&(a.objects=e.objects.join(",")),e.start_time&&(a.start_time=e.start_time),e.end_time&&(a.end_time=e.end_time),e.min_latency&&(a.min_latency=e.min_latency),e.max_latency&&(a.max_latency=e.max_latency),e.min_tokens&&(a.min_tokens=e.min_tokens),e.max_tokens&&(a.max_tokens=e.max_tokens),e.content_search&&(a.content_search=e.content_search),[(await this.client.get("/logs",{params:a})).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getProviders(){try{return[(await this.client.get("/providers")).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getProvider(e){try{return[(await this.client.get("/providers/".concat(e))).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async createProvider(e){try{return[(await this.client.post("/providers",e)).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async updateProvider(e,t){try{return[(await this.client.put("/providers/".concat(e),t)).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async deleteProvider(e){try{return[(await this.client.delete("/providers/".concat(e))).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getMCPClients(){try{return[(await this.client.get("/mcp/clients")).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async createMCPClient(e){try{return await this.client.post("/mcp/client",e),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async updateMCPClient(e,t){try{return await this.client.put("/mcp/client/".concat(e),t),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async deleteMCPClient(e){try{return await this.client.delete("/mcp/client/".concat(e)),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async reconnectMCPClient(e){try{return await this.client.post("/mcp/client/".concat(e,"/reconnect")),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async saveConfig(){try{return await this.client.post("/config/save"),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}async getCoreConfig(){try{return[(await this.client.get("/config")).data,null]}catch(e){return[null,this.getErrorMessage(e)]}}async updateCoreConfig(e){try{return await this.client.put("/config",e),[null,null]}catch(e){return[null,this.getErrorMessage(e)]}}constructor(){this.client=n.A.create({baseURL:"/api",headers:{"Content-Type":"application/json"}})}}let i=new s},2384:(e,t,a)=>{a.d(t,{A:()=>s});var r=a(5155),n=a(1154);let s=function(){return(0,r.jsx)("div",{className:"h-base flex items-center justify-center pb-24",children:(0,r.jsx)(n.A,{className:"h-4 w-4 animate-spin"})})}},3999:(e,t,a)=>{a.d(t,{cn:()=>s});var r=a(2596),n=a(9688);function s(){for(var e=arguments.length,t=Array(e),a=0;a{a.d(t,{Tabs:()=>i,TabsContent:()=>d,TabsList:()=>o,TabsTrigger:()=>l});var r=a(5155);a(2115);var n=a(704),s=a(3999);function i(e){let{className:t,...a}=e;return(0,r.jsx)(n.bL,{"data-slot":"tabs",className:(0,s.cn)("flex flex-col gap-2",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)(n.B8,{"data-slot":"tabs-list",className:(0,s.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)(n.l9,{"data-slot":"tabs-trigger",className:(0,s.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a})}function d(e){let{className:t,...a}=e;return(0,r.jsx)(n.UC,{"data-slot":"tabs-content",className:(0,s.cn)("flex-1 outline-none",t),...a})}},5784:(e,t,a)=>{a.d(t,{bq:()=>u,eb:()=>p,gC:()=>g,l6:()=>d,yv:()=>c});var r=a(5155);a(2115);var n=a(4582),s=a(6474),i=a(2815),o=a(7863),l=a(3999);function d(e){let{...t}=e;return(0,r.jsx)(n.bL,{"data-slot":"select",...t})}function c(e){let{...t}=e;return(0,r.jsx)(n.WT,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:a="default",children:i,...o}=e;return(0,r.jsxs)(n.l9,{"data-slot":"select-trigger","data-size":a,className:(0,l.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...o,children:[i,(0,r.jsx)(n.In,{asChild:!0,children:(0,r.jsx)(s.A,{className:"size-4 opacity-50"})})]})}function g(e){let{className:t,children:a,position:s="popper",...i}=e;return(0,r.jsx)(n.ZL,{children:(0,r.jsxs)(n.UC,{"data-slot":"select-content",className:(0,l.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===s&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:s,...i,children:[(0,r.jsx)(x,{}),(0,r.jsx)(n.LM,{className:(0,l.cn)("p-1","popper"===s&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),(0,r.jsx)(f,{})]})})}function p(e){let{className:t,children:a,...s}=e;return(0,r.jsxs)(n.q7,{"data-slot":"select-item",className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...s,children:[(0,r.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(n.VF,{children:(0,r.jsx)(i.A,{className:"size-4"})})}),(0,r.jsx)(n.p4,{children:a})]})}function x(e){let{className:t,...a}=e;return(0,r.jsx)(n.PP,{"data-slot":"select-scroll-up-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(o.A,{className:"size-4"})})}function f(e){let{className:t,...a}=e;return(0,r.jsx)(n.wn,{"data-slot":"select-scroll-down-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(s.A,{className:"size-4"})})}},6037:(e,t,a)=>{a.d(t,{Separator:()=>i,W:()=>o});var r=a(5155);a(2115);var n=a(7489),s=a(3999);function i(e){let{className:t,orientation:a="horizontal",decorative:i=!0,...o}=e;return(0,r.jsx)(n.b,{"data-slot":"separator",decorative:i,orientation:a,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...o})}function o(e){let{className:t}=e;return(0,r.jsx)("div",{className:(0,s.cn)("border-border h-[1px] w-full border-t border-dashed bg-transparent",{["".concat(t)]:void 0!==t})})}},7168:(e,t,a)=>{a.d(t,{$:()=>d,r:()=>l});var r=a(5155);a(2115);var n=a(9708),s=a(2085),i=a(3999),o=a(1154);let l=(0,s.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function d(e){let{className:t,variant:a,size:n,asChild:s=!1,children:i,isLoading:l=!1,...d}=e;return(0,r.jsx)(c,{className:t,variant:a,size:n,asChild:s,...d,children:l?(0,r.jsx)(o.A,{className:"size-4 animate-spin"}):i})}function c(e){let{className:t,variant:a,size:s,asChild:o=!1,...d}=e,c=o?n.DX:"button";return(0,r.jsx)(c,{"data-slot":"button",className:(0,i.cn)(l({variant:a,size:s,className:t}),"cursor-pointer"),...d})}},7783:(e,t,a)=>{a.d(t,{Ez:()=>l,RY:()=>o,f:()=>n,mG:()=>s,oU:()=>i,tJ:()=>d,wf:()=>c,xq:()=>r});let r=["openai","anthropic","azure","bedrock","cohere","vertex","mistral","ollama"],n=["success","error","cancelled"],s=["chat.completion","text.completion","embedding"],i={openai:"OpenAI",anthropic:"Anthropic",azure:"Azure OpenAI",bedrock:"AWS Bedrock",cohere:"Cohere",vertex:"Vertex AI",mistral:"Mistral AI",ollama:"Ollama"},o={openai:"bg-cyan-100 text-cyan-800",anthropic:"bg-orange-100 text-orange-800",bedrock:"bg-yellow-100 text-yellow-800",azure:"bg-blue-100 text-blue-800",cohere:"bg-purple-100 text-purple-800",vertex:"bg-pink-100 text-pink-800",mistral:"bg-gray-100 text-gray-800",ollama:"bg-indigo-100 text-indigo-800"},l={success:"bg-green-100 text-green-800",error:"bg-red-100 text-red-800",cancelled:"bg-gray-100 text-gray-800"},d={"chat.completion":"Chat","text.completion":"Text",embedding:"Embedding"},c={"chat.completion":"bg-blue-100 text-blue-800","text.completion":"bg-green-100 text-green-800",embedding:"bg-red-100 text-red-800"}},8145:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(5155);a(2115);var n=a(9708),s=a(2085),i=a(3999);let o=(0,s.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",success:"border-transparent bg-green-700 text-white [a&]:hover:bg-green-700/90"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:a,asChild:s=!1,...l}=e,d=s?n.DX:"span";return(0,r.jsx)(d,{"data-slot":"badge",className:(0,i.cn)(o({variant:a}),t),...l})}},8482:(e,t,a)=>{a.d(t,{BT:()=>l,Wu:()=>d,ZB:()=>o,Zp:()=>s,aR:()=>i});var r=a(5155);a(2115);var n=a(3999);function s(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function i(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,n.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,n.cn)("leading-none font-semibold",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...a})}function d(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",t),...a})}},8524:(e,t,a)=>{a.d(t,{A0:()=>i,BF:()=>o,Hj:()=>l,XI:()=>s,nA:()=>c,nd:()=>d});var r=a(5155);a(2115);var n=a(3999);function s(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,r.jsx)("table",{"data-slot":"table",className:(0,n.cn)("w-full caption-bottom text-sm",t),...a})})}function i(e){let{className:t,...a}=e;return(0,r.jsx)("thead",{"data-slot":"table-header",className:(0,n.cn)("[&_tr]:border-b",t),...a})}function o(e){let{className:t,...a}=e;return(0,r.jsx)("tbody",{"data-slot":"table-body",className:(0,n.cn)("[&_tr:last-child]:border-0",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("tr",{"data-slot":"table-row",className:(0,n.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t),...a})}function d(e){let{className:t,...a}=e;return(0,r.jsx)("th",{"data-slot":"table-head",className:(0,n.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...a})}function c(e){let{className:t,...a}=e;return(0,r.jsx)("td",{"data-slot":"table-cell",className:(0,n.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...a})}},9026:(e,t,a)=>{a.d(t,{Fc:()=>o,TN:()=>l});var r=a(5155);a(2115);var n=a(2085),s=a(3999);let i=(0,n.F)("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:a,...n}=e;return(0,r.jsx)("div",{"data-slot":"alert",role:"alert",className:(0,s.cn)(i({variant:a}),t),...n})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"alert-description",className:(0,s.cn)("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...a})}},9464:(e,t,a)=>{a.d(t,{A:()=>i});var r=a(5155),n=a(6037),s=a(1225);function i(e){let{title:t}=e;return(0,r.jsxs)("div",{className:"bg-background fixed top-0 right-0 left-(--sidebar-width) z-10",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3",children:[(0,r.jsx)("div",{className:"p-3 font-semibold",children:t}),(0,r.jsx)(s.ThemeToggle,{})]}),(0,r.jsx)(n.Separator,{className:"w-full"})]})}},9840:(e,t,a)=>{a.d(t,{Cf:()=>c,Es:()=>g,L3:()=>p,c7:()=>u,lG:()=>o,rr:()=>x});var r=a(5155);a(2115);var n=a(5452),s=a(4416),i=a(3999);function o(e){let{...t}=e;return(0,r.jsx)(n.bL,{"data-slot":"dialog",...t})}function l(e){let{...t}=e;return(0,r.jsx)(n.ZL,{"data-slot":"dialog-portal",...t})}function d(e){let{className:t,...a}=e;return(0,r.jsx)(n.hJ,{"data-slot":"dialog-overlay",className:(0,i.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...a})}function c(e){let{className:t,children:a,showCloseButton:o=!0,...c}=e;return(0,r.jsxs)(l,{"data-slot":"dialog-portal",children:[(0,r.jsx)(d,{}),(0,r.jsxs)(n.UC,{"data-slot":"dialog-content",className:(0,i.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...c,children:[a,o&&(0,r.jsxs)(n.bm,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,r.jsx)(s.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function u(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"dialog-header",className:(0,i.cn)("flex flex-col gap-2 text-center sm:text-left",t),...a})}function g(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"dialog-footer",className:(0,i.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...a})}function p(e){let{className:t,...a}=e;return(0,r.jsx)(n.hE,{"data-slot":"dialog-title",className:(0,i.cn)("text-lg leading-none font-semibold",t),...a})}function x(e){let{className:t,...a}=e;return(0,r.jsx)(n.VY,{"data-slot":"dialog-description",className:(0,i.cn)("text-muted-foreground text-sm",t),...a})}},9852:(e,t,a)=>{a.d(t,{p:()=>i});var r=a(5155),n=a(2115),s=a(3999);let i=n.forwardRef((e,t)=>{let{className:a,type:n,...i}=e;return(0,r.jsx)("input",{type:n,ref:t,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...i})});i.displayName="Input"}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/473-3e3a48663e3561da.js b/transports/bifrost-http/ui/_next/static/chunks/473-3e3a48663e3561da.js deleted file mode 100644 index 7540546023..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/473-3e3a48663e3561da.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[473],{381:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},4213:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]])},4869:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},5487:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]])},9613:(e,t,r)=>{r.d(t,{Kq:()=>U,UC:()=>G,ZL:()=>Z,bL:()=>X,i3:()=>K,l9:()=>Y});var n=r(2115),o=r(5185),l=r(6101),a=r(6081),i=r(9178),s=r(1285),c=r(5152),u=r(4378),d=r(8905),p=r(3655),y=r(9708),h=r(5845),x=r(2564),f=r(5155),[v,g]=(0,a.A)("Tooltip",[c.Bk]),m=(0,c.Bk)(),b="TooltipProvider",w="tooltip.open",[k,C]=v(b),T=e=>{let{__scopeTooltip:t,delayDuration:r=700,skipDelayDuration:o=300,disableHoverableContent:l=!1,children:a}=e,i=n.useRef(!0),s=n.useRef(!1),c=n.useRef(0);return n.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,f.jsx)(k,{scope:t,isOpenDelayedRef:i,delayDuration:r,onOpen:n.useCallback(()=>{window.clearTimeout(c.current),i.current=!1},[]),onClose:n.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.current=!0,o)},[o]),isPointerInTransitRef:s,onPointerInTransitChange:n.useCallback(e=>{s.current=e},[]),disableHoverableContent:l,children:a})};T.displayName=b;var E="Tooltip",[L,j]=v(E),R=e=>{let{__scopeTooltip:t,children:r,open:o,defaultOpen:l,onOpenChange:a,disableHoverableContent:i,delayDuration:u}=e,d=C(E,e.__scopeTooltip),p=m(t),[y,x]=n.useState(null),v=(0,s.B)(),g=n.useRef(0),b=null!=i?i:d.disableHoverableContent,k=null!=u?u:d.delayDuration,T=n.useRef(!1),[j,R]=(0,h.i)({prop:o,defaultProp:null!=l&&l,onChange:e=>{e?(d.onOpen(),document.dispatchEvent(new CustomEvent(w))):d.onClose(),null==a||a(e)},caller:E}),A=n.useMemo(()=>j?T.current?"delayed-open":"instant-open":"closed",[j]),M=n.useCallback(()=>{window.clearTimeout(g.current),g.current=0,T.current=!1,R(!0)},[R]),_=n.useCallback(()=>{window.clearTimeout(g.current),g.current=0,R(!1)},[R]),P=n.useCallback(()=>{window.clearTimeout(g.current),g.current=window.setTimeout(()=>{T.current=!0,R(!0),g.current=0},k)},[k,R]);return n.useEffect(()=>()=>{g.current&&(window.clearTimeout(g.current),g.current=0)},[]),(0,f.jsx)(c.bL,{...p,children:(0,f.jsx)(L,{scope:t,contentId:v,open:j,stateAttribute:A,trigger:y,onTriggerChange:x,onTriggerEnter:n.useCallback(()=>{d.isOpenDelayedRef.current?P():M()},[d.isOpenDelayedRef,P,M]),onTriggerLeave:n.useCallback(()=>{b?_():(window.clearTimeout(g.current),g.current=0)},[_,b]),onOpen:M,onClose:_,disableHoverableContent:b,children:r})})};R.displayName=E;var A="TooltipTrigger",M=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...a}=e,i=j(A,r),s=C(A,r),u=m(r),d=n.useRef(null),y=(0,l.s)(t,d,i.onTriggerChange),h=n.useRef(!1),x=n.useRef(!1),v=n.useCallback(()=>h.current=!1,[]);return n.useEffect(()=>()=>document.removeEventListener("pointerup",v),[v]),(0,f.jsx)(c.Mz,{asChild:!0,...u,children:(0,f.jsx)(p.sG.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...a,ref:y,onPointerMove:(0,o.m)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(x.current||s.isPointerInTransitRef.current||(i.onTriggerEnter(),x.current=!0))}),onPointerLeave:(0,o.m)(e.onPointerLeave,()=>{i.onTriggerLeave(),x.current=!1}),onPointerDown:(0,o.m)(e.onPointerDown,()=>{i.open&&i.onClose(),h.current=!0,document.addEventListener("pointerup",v,{once:!0})}),onFocus:(0,o.m)(e.onFocus,()=>{h.current||i.onOpen()}),onBlur:(0,o.m)(e.onBlur,i.onClose),onClick:(0,o.m)(e.onClick,i.onClose)})})});M.displayName=A;var _="TooltipPortal",[P,D]=v(_,{forceMount:void 0}),N=e=>{let{__scopeTooltip:t,forceMount:r,children:n,container:o}=e,l=j(_,t);return(0,f.jsx)(P,{scope:t,forceMount:r,children:(0,f.jsx)(d.C,{present:r||l.open,children:(0,f.jsx)(u.Z,{asChild:!0,container:o,children:n})})})};N.displayName=_;var O="TooltipContent",z=n.forwardRef((e,t)=>{let r=D(O,e.__scopeTooltip),{forceMount:n=r.forceMount,side:o="top",...l}=e,a=j(O,e.__scopeTooltip);return(0,f.jsx)(d.C,{present:n||a.open,children:a.disableHoverableContent?(0,f.jsx)(F,{side:o,...l,ref:t}):(0,f.jsx)(B,{side:o,...l,ref:t})})}),B=n.forwardRef((e,t)=>{let r=j(O,e.__scopeTooltip),o=C(O,e.__scopeTooltip),a=n.useRef(null),i=(0,l.s)(t,a),[s,c]=n.useState(null),{trigger:u,onClose:d}=r,p=a.current,{onPointerInTransitChange:y}=o,h=n.useCallback(()=>{c(null),y(!1)},[y]),x=n.useCallback((e,t)=>{let r=e.currentTarget,n={x:e.clientX,y:e.clientY},o=function(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),l=Math.abs(t.left-e.x);switch(Math.min(r,n,o,l)){case l:return"left";case o:return"right";case r:return"top";case n:return"bottom";default:throw Error("unreachable")}}(n,r.getBoundingClientRect());c(function(e){let t=e.slice();return t.sort((e,t)=>e.xt.x?1:e.yt.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(n.y-r.y)>=(e.y-r.y)*(n.x-r.x))t.pop();else break}t.push(n)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let n=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(n.y-t.y)>=(e.y-t.y)*(n.x-t.x))r.pop();else break}r.push(n)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(t)}([...function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return n}(n,o),...function(e){let{top:t,right:r,bottom:n,left:o}=e;return[{x:o,y:t},{x:r,y:t},{x:r,y:n},{x:o,y:n}]}(t.getBoundingClientRect())])),y(!0)},[y]);return n.useEffect(()=>()=>h(),[h]),n.useEffect(()=>{if(u&&p){let e=e=>x(e,p),t=e=>x(e,u);return u.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{u.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[u,p,x,h]),n.useEffect(()=>{if(s){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},n=(null==u?void 0:u.contains(t))||(null==p?void 0:p.contains(t)),o=!function(e,t){let{x:r,y:n}=e,o=!1;for(let e=0,l=t.length-1;en!=d>n&&r<(u-s)*(n-c)/(d-c)+s&&(o=!o)}return o}(r,s);n?h():o&&(h(),d())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[u,p,s,d,h]),(0,f.jsx)(F,{...e,ref:i})}),[I,q]=v(E,{isInside:!1}),V=(0,y.Dc)("TooltipContent"),F=n.forwardRef((e,t)=>{let{__scopeTooltip:r,children:o,"aria-label":l,onEscapeKeyDown:a,onPointerDownOutside:s,...u}=e,d=j(O,r),p=m(r),{onClose:y}=d;return n.useEffect(()=>(document.addEventListener(w,y),()=>document.removeEventListener(w,y)),[y]),n.useEffect(()=>{if(d.trigger){let e=e=>{let t=e.target;(null==t?void 0:t.contains(d.trigger))&&y()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[d.trigger,y]),(0,f.jsx)(i.qW,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:y,children:(0,f.jsxs)(c.UC,{"data-state":d.stateAttribute,...p,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,f.jsx)(V,{children:o}),(0,f.jsx)(I,{scope:r,isInside:!0,children:(0,f.jsx)(x.bL,{id:d.contentId,role:"tooltip",children:l||o})})]})})});z.displayName=O;var H="TooltipArrow",S=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...n}=e,o=m(r);return q(H,r).isInside?null:(0,f.jsx)(c.i3,{...o,...n,ref:t})});S.displayName=H;var U=T,X=R,Y=M,Z=N,G=z,K=S},9803:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]])}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/529-26467b76604e8781.js b/transports/bifrost-http/ui/_next/static/chunks/529-26467b76604e8781.js new file mode 100644 index 0000000000..d0bb696f24 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/529-26467b76604e8781.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[529],{968:(e,t,r)=>{"use strict";r.d(t,{b:()=>s});var n=r(2115),a=r(3655),o=r(5155),i=n.forwardRef((e,t)=>(0,o.jsx)(a.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null==(r=e.onMouseDown)||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label";var s=i},1243:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},1284:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},1539:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},2525:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},3717:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]])},4109:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("refresh-ccw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]])},4213:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]])},4229:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},4616:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},4869:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},4884:(e,t,r)=>{"use strict";r.d(t,{bL:()=>m,zi:()=>A});var n=r(2115),a=r(5185),o=r(6101),i=r(6081),s=r(5845),c=r(5503),u=r(1275),l=r(3655),f=r(5155),d="Switch",[p,h]=(0,i.A)(d),[y,v]=p(d),b=n.forwardRef((e,t)=>{let{__scopeSwitch:r,name:i,checked:c,defaultChecked:u,required:p,disabled:h,value:v="on",onCheckedChange:b,form:_,...g}=e,[m,A]=n.useState(null),w=(0,o.s)(t,e=>A(e)),x=n.useRef(!1),z=!m||_||!!m.closest("form"),[M,O]=(0,s.i)({prop:c,defaultProp:null!=u&&u,onChange:b,caller:d});return(0,f.jsxs)(y,{scope:r,checked:M,disabled:h,children:[(0,f.jsx)(l.sG.button,{type:"button",role:"switch","aria-checked":M,"aria-required":p,"data-state":k(M),"data-disabled":h?"":void 0,disabled:h,value:v,...g,ref:w,onClick:(0,a.m)(e.onClick,e=>{O(e=>!e),z&&(x.current=e.isPropagationStopped(),x.current||e.stopPropagation())})}),z&&(0,f.jsx)(j,{control:m,bubbles:!x.current,name:i,value:v,checked:M,required:p,disabled:h,form:_,style:{transform:"translateX(-100%)"}})]})});b.displayName=d;var _="SwitchThumb",g=n.forwardRef((e,t)=>{let{__scopeSwitch:r,...n}=e,a=v(_,r);return(0,f.jsx)(l.sG.span,{"data-state":k(a.checked),"data-disabled":a.disabled?"":void 0,...n,ref:t})});g.displayName=_;var j=n.forwardRef((e,t)=>{let{__scopeSwitch:r,control:a,checked:i,bubbles:s=!0,...l}=e,d=n.useRef(null),p=(0,o.s)(d,t),h=(0,c.Z)(i),y=(0,u.X)(a);return n.useEffect(()=>{let e=d.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==i&&t){let r=new Event("click",{bubbles:s});t.call(e,i),e.dispatchEvent(r)}},[h,i,s]),(0,f.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...l,tabIndex:-1,ref:p,style:{...l.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function k(e){return e?"checked":"unchecked"}j.displayName="SwitchBubbleInput";var m=b,A=g},7649:(e,t,r)=>{"use strict";r.d(t,{UC:()=>P,VY:()=>V,ZD:()=>I,ZL:()=>S,bL:()=>E,hE:()=>F,hJ:()=>L,l9:()=>R,rc:()=>C});var n=r(2115),a=r(6081),o=r(6101),i=r(5452),s=r(5185),c=r(9708),u=r(5155),l="AlertDialog",[f,d]=(0,a.A)(l,[i.Hs]),p=(0,i.Hs)(),h=e=>{let{__scopeAlertDialog:t,...r}=e,n=p(t);return(0,u.jsx)(i.bL,{...n,...r,modal:!0})};h.displayName=l;var y=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.l9,{...a,...n,ref:t})});y.displayName="AlertDialogTrigger";var v=e=>{let{__scopeAlertDialog:t,...r}=e,n=p(t);return(0,u.jsx)(i.ZL,{...n,...r})};v.displayName="AlertDialogPortal";var b=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.hJ,{...a,...n,ref:t})});b.displayName="AlertDialogOverlay";var _="AlertDialogContent",[g,j]=f(_),k=(0,c.Dc)("AlertDialogContent"),m=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,children:a,...c}=e,l=p(r),f=n.useRef(null),d=(0,o.s)(t,f),h=n.useRef(null);return(0,u.jsx)(i.G$,{contentName:_,titleName:A,docsSlug:"alert-dialog",children:(0,u.jsx)(g,{scope:r,cancelRef:h,children:(0,u.jsxs)(i.UC,{role:"alertdialog",...l,...c,ref:d,onOpenAutoFocus:(0,s.m)(c.onOpenAutoFocus,e=>{var t;e.preventDefault(),null==(t=h.current)||t.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,u.jsx)(k,{children:a}),(0,u.jsx)(N,{contentRef:f})]})})})});m.displayName=_;var A="AlertDialogTitle",w=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.hE,{...a,...n,ref:t})});w.displayName=A;var x="AlertDialogDescription",z=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.VY,{...a,...n,ref:t})});z.displayName=x;var M=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,a=p(r);return(0,u.jsx)(i.bm,{...a,...n,ref:t})});M.displayName="AlertDialogAction";var O="AlertDialogCancel",D=n.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...n}=e,{cancelRef:a}=j(O,r),s=p(r),c=(0,o.s)(t,a);return(0,u.jsx)(i.bm,{...s,...n,ref:c})});D.displayName=O;var N=e=>{let{contentRef:t}=e,r="`".concat(_,"` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the `").concat(_,"` by passing a `").concat(x,"` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `").concat(_,"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog");return n.useEffect(()=>{var e;document.getElementById(null==(e=t.current)?void 0:e.getAttribute("aria-describedby"))||console.warn(r)},[r,t]),null},E=h,R=y,S=v,L=b,P=m,C=M,I=D,F=w,V=z},8103:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("pickaxe",[["path",{d:"M14.531 12.469 6.619 20.38a1 1 0 1 1-3-3l7.912-7.912",key:"we99rg"}],["path",{d:"M15.686 4.314A12.5 12.5 0 0 0 5.461 2.958 1 1 0 0 0 5.58 4.71a22 22 0 0 1 6.318 3.393",key:"1w6hck"}],["path",{d:"M17.7 3.7a1 1 0 0 0-1.4 0l-4.6 4.6a1 1 0 0 0 0 1.4l2.6 2.6a1 1 0 0 0 1.4 0l4.6-4.6a1 1 0 0 0 0-1.4z",key:"15hgfx"}],["path",{d:"M19.686 8.314a12.501 12.501 0 0 1 1.356 10.225 1 1 0 0 1-1.751-.119 22 22 0 0 0-3.393-6.319",key:"452b4h"}]])},9231:(e,t,r)=>{e=r.nmd(e);var n,a,o="__lodash_hash_undefined__",i="[object Arguments]",s="[object Array]",c="[object Boolean]",u="[object Date]",l="[object Error]",f="[object Function]",d="[object Map]",p="[object Number]",h="[object Object]",y="[object Promise]",v="[object RegExp]",b="[object Set]",_="[object String]",g="[object WeakMap]",j="[object ArrayBuffer]",k="[object DataView]",m=/^\[object .+?Constructor\]$/,A=/^(?:0|[1-9]\d*)$/,w={};w["[object Float32Array]"]=w["[object Float64Array]"]=w["[object Int8Array]"]=w["[object Int16Array]"]=w["[object Int32Array]"]=w["[object Uint8Array]"]=w["[object Uint8ClampedArray]"]=w["[object Uint16Array]"]=w["[object Uint32Array]"]=!0,w[i]=w[s]=w[j]=w[c]=w[k]=w[u]=w[l]=w[f]=w[d]=w[p]=w[h]=w[v]=w[b]=w[_]=w[g]=!1;var x="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,z="object"==typeof self&&self&&self.Object===Object&&self,M=x||z||Function("return this")(),O=t&&!t.nodeType&&t,D=O&&e&&!e.nodeType&&e,N=D&&D.exports===O,E=N&&x.process,R=function(){try{return E&&E.binding&&E.binding("util")}catch(e){}}(),S=R&&R.isTypedArray;function L(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function P(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}var C=Array.prototype,I=Function.prototype,F=Object.prototype,V=M["__core-js_shared__"],T=I.toString,U=F.hasOwnProperty,$=function(){var e=/[^.]+$/.exec(V&&V.keys&&V.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),q=F.toString,B=RegExp("^"+T.call(U).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),H=N?M.Buffer:void 0,G=M.Symbol,Z=M.Uint8Array,Y=F.propertyIsEnumerable,J=C.splice,W=G?G.toStringTag:void 0,X=Object.getOwnPropertySymbols,K=H?H.isBuffer:void 0,Q=(n=Object.keys,a=Object,function(e){return n(a(e))}),ee=ew(M,"DataView"),et=ew(M,"Map"),er=ew(M,"Promise"),en=ew(M,"Set"),ea=ew(M,"WeakMap"),eo=ew(Object,"create"),ei=eM(ee),es=eM(et),ec=eM(er),eu=eM(en),el=eM(ea),ef=G?G.prototype:void 0,ed=ef?ef.valueOf:void 0;function ep(e){var t=-1,r=null==e?0:e.length;for(this.clear();++ts))return!1;var u=o.get(e);if(u&&o.get(t))return u==t;var l=-1,f=!0,d=2&r?new ev:void 0;for(o.set(e,t),o.set(t,e);++l-1},eh.prototype.set=function(e,t){var r=this.__data__,n=e_(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},ey.prototype.clear=function(){this.size=0,this.__data__={hash:new ep,map:new(et||eh),string:new ep}},ey.prototype.delete=function(e){var t=eA(this,e).delete(e);return this.size-=!!t,t},ey.prototype.get=function(e){return eA(this,e).get(e)},ey.prototype.has=function(e){return eA(this,e).has(e)},ey.prototype.set=function(e,t){var r=eA(this,e),n=r.size;return r.set(e,t),this.size+=+(r.size!=n),this},ev.prototype.add=ev.prototype.push=function(e){return this.__data__.set(e,o),this},ev.prototype.has=function(e){return this.__data__.has(e)},eb.prototype.clear=function(){this.__data__=new eh,this.size=0},eb.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},eb.prototype.get=function(e){return this.__data__.get(e)},eb.prototype.has=function(e){return this.__data__.has(e)},eb.prototype.set=function(e,t){var r=this.__data__;if(r instanceof eh){var n=r.__data__;if(!et||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ey(n)}return r.set(e,t),this.size=r.size,this};var ex=X?function(e){return null==e?[]:function(e,t){for(var r=-1,n=null==e?0:e.length,a=0,o=[];++r-1&&e%1==0&&e<=0x1fffffffffffff}function eL(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function eP(e){return null!=e&&"object"==typeof e}var eC=S?function(e){return S(e)}:function(e){return eP(e)&&eS(e.length)&&!!w[eg(e)]};function eI(e){return null!=e&&eS(e.length)&&!eR(e)?function(e,t){var r,n,a=eN(e),o=!a&&eD(e),i=!a&&!o&&eE(e),s=!a&&!o&&!i&&eC(e),c=a||o||i||s,u=c?function(e,t){for(var r=-1,n=Array(e);++r-1&&r%1==0&&r{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]])},9917:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(9946).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/678-56244c2aeff7b5e2.js b/transports/bifrost-http/ui/_next/static/chunks/678-56244c2aeff7b5e2.js new file mode 100644 index 0000000000..0c69de1b92 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/678-56244c2aeff7b5e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[678],{2564:(t,e,a)=>{a.d(e,{Qg:()=>s,bL:()=>l});var o=a(2115),r=a(3655),n=a(5155),s=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),i=o.forwardRef((t,e)=>(0,n.jsx)(r.sG.span,{...t,ref:e,style:{...s,...t.style}}));i.displayName="VisuallyHidden";var l=i},4416:(t,e,a)=>{a.d(e,{A:()=>o});let o=(0,a(9946).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},5452:(t,e,a)=>{a.d(e,{G$:()=>q,Hs:()=>x,UC:()=>ta,VY:()=>tr,ZL:()=>tt,bL:()=>Q,bm:()=>tn,hE:()=>to,hJ:()=>te,l9:()=>$});var o=a(2115),r=a(5185),n=a(6101),s=a(6081),i=a(1285),l=a(5845),d=a(9178),c=a(7900),u=a(4378),f=a(8905),p=a(3655),m=a(2293),g=a(3795),h=a(8168),v=a(9708),b=a(5155),y="Dialog",[w,x]=(0,s.A)(y),[E,k]=w(y),N=t=>{let{__scopeDialog:e,children:a,open:r,defaultOpen:n,onOpenChange:s,modal:d=!0}=t,c=o.useRef(null),u=o.useRef(null),[f,p]=(0,l.i)({prop:r,defaultProp:null!=n&&n,onChange:s,caller:y});return(0,b.jsx)(E,{scope:e,triggerRef:c,contentRef:u,contentId:(0,i.B)(),titleId:(0,i.B)(),descriptionId:(0,i.B)(),open:f,onOpenChange:p,onOpenToggle:o.useCallback(()=>p(t=>!t),[p]),modal:d,children:a})};N.displayName=y;var C="DialogTrigger",j=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,s=k(C,a),i=(0,n.s)(e,s.triggerRef);return(0,b.jsx)(p.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":G(s.open),...o,ref:i,onClick:(0,r.m)(t.onClick,s.onOpenToggle)})});j.displayName=C;var D="DialogPortal",[R,M]=w(D,{forceMount:void 0}),T=t=>{let{__scopeDialog:e,forceMount:a,children:r,container:n}=t,s=k(D,e);return(0,b.jsx)(R,{scope:e,forceMount:a,children:o.Children.map(r,t=>(0,b.jsx)(f.C,{present:a||s.open,children:(0,b.jsx)(u.Z,{asChild:!0,container:n,children:t})}))})};T.displayName=D;var S="DialogOverlay",B=o.forwardRef((t,e)=>{let a=M(S,t.__scopeDialog),{forceMount:o=a.forceMount,...r}=t,n=k(S,t.__scopeDialog);return n.modal?(0,b.jsx)(f.C,{present:o||n.open,children:(0,b.jsx)(z,{...r,ref:e})}):null});B.displayName=S;var I=(0,v.TL)("DialogOverlay.RemoveScroll"),z=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,r=k(S,a);return(0,b.jsx)(g.A,{as:I,allowPinchZoom:!0,shards:[r.contentRef],children:(0,b.jsx)(p.sG.div,{"data-state":G(r.open),...o,ref:e,style:{pointerEvents:"auto",...o.style}})})}),A="DialogContent",P=o.forwardRef((t,e)=>{let a=M(A,t.__scopeDialog),{forceMount:o=a.forceMount,...r}=t,n=k(A,t.__scopeDialog);return(0,b.jsx)(f.C,{present:o||n.open,children:n.modal?(0,b.jsx)(Y,{...r,ref:e}):(0,b.jsx)(O,{...r,ref:e})})});P.displayName=A;var Y=o.forwardRef((t,e)=>{let a=k(A,t.__scopeDialog),s=o.useRef(null),i=(0,n.s)(e,a.contentRef,s);return o.useEffect(()=>{let t=s.current;if(t)return(0,h.Eq)(t)},[]),(0,b.jsx)(L,{...t,ref:i,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,r.m)(t.onCloseAutoFocus,t=>{var e;t.preventDefault(),null==(e=a.triggerRef.current)||e.focus()}),onPointerDownOutside:(0,r.m)(t.onPointerDownOutside,t=>{let e=t.detail.originalEvent,a=0===e.button&&!0===e.ctrlKey;(2===e.button||a)&&t.preventDefault()}),onFocusOutside:(0,r.m)(t.onFocusOutside,t=>t.preventDefault())})}),O=o.forwardRef((t,e)=>{let a=k(A,t.__scopeDialog),r=o.useRef(!1),n=o.useRef(!1);return(0,b.jsx)(L,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:e=>{var o,s;null==(o=t.onCloseAutoFocus)||o.call(t,e),e.defaultPrevented||(r.current||null==(s=a.triggerRef.current)||s.focus(),e.preventDefault()),r.current=!1,n.current=!1},onInteractOutside:e=>{var o,s;null==(o=t.onInteractOutside)||o.call(t,e),e.defaultPrevented||(r.current=!0,"pointerdown"===e.detail.originalEvent.type&&(n.current=!0));let i=e.target;(null==(s=a.triggerRef.current)?void 0:s.contains(i))&&e.preventDefault(),"focusin"===e.detail.originalEvent.type&&n.current&&e.preventDefault()}})}),L=o.forwardRef((t,e)=>{let{__scopeDialog:a,trapFocus:r,onOpenAutoFocus:s,onCloseAutoFocus:i,...l}=t,u=k(A,a),f=o.useRef(null),p=(0,n.s)(e,f);return(0,m.Oh)(),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.n,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:s,onUnmountAutoFocus:i,children:(0,b.jsx)(d.qW,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":G(u.open),...l,ref:p,onDismiss:()=>u.onOpenChange(!1)})}),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Z,{titleId:u.titleId}),(0,b.jsx)(J,{contentRef:f,descriptionId:u.descriptionId})]})]})}),F="DialogTitle",_=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,r=k(F,a);return(0,b.jsx)(p.sG.h2,{id:r.titleId,...o,ref:e})});_.displayName=F;var H="DialogDescription",V=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,r=k(H,a);return(0,b.jsx)(p.sG.p,{id:r.descriptionId,...o,ref:e})});V.displayName=H;var U="DialogClose",X=o.forwardRef((t,e)=>{let{__scopeDialog:a,...o}=t,n=k(U,a);return(0,b.jsx)(p.sG.button,{type:"button",...o,ref:e,onClick:(0,r.m)(t.onClick,()=>n.onOpenChange(!1))})});function G(t){return t?"open":"closed"}X.displayName=U;var W="DialogTitleWarning",[q,K]=(0,s.q)(W,{contentName:A,titleName:F,docsSlug:"dialog"}),Z=t=>{let{titleId:e}=t,a=K(W),r="`".concat(a.contentName,"` requires a `").concat(a.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(a.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(a.docsSlug);return o.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},J=t=>{let{contentRef:e,descriptionId:a}=t,r=K("DialogDescriptionWarning"),n="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(r.contentName,"}.");return o.useEffect(()=>{var t;let o=null==(t=e.current)?void 0:t.getAttribute("aria-describedby");a&&o&&(document.getElementById(a)||console.warn(n))},[n,e,a]),null},Q=N,$=j,tt=T,te=B,ta=P,to=_,tr=V,tn=X},6671:(t,e,a)=>{a.d(e,{Toaster:()=>k,o:()=>b});var o=a(2115),r=a(7650);let n=t=>{switch(t){case"success":return l;case"info":return c;case"warning":return d;case"error":return u;default:return null}},s=Array(12).fill(0),i=t=>{let{visible:e,className:a}=t;return o.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":e},o.createElement("div",{className:"sonner-spinner"},s.map((t,e)=>o.createElement("div",{className:"sonner-loading-bar",key:"spinner-bar-".concat(e)}))))},l=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),d=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),c=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),u=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),f=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),o.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),p=()=>{let[t,e]=o.useState(document.hidden);return o.useEffect(()=>{let t=()=>{e(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t},m=1;class g{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...o}=t,r="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:m++,n=this.toasts.find(t=>t.id===r),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),n?this.toasts=this.toasts.map(e=>e.id===r?(this.publish({...e,...t,id:r,title:a}),{...e,...t,id:r,dismissible:s,title:a}):e):this.addToast({title:a,...o,dismissible:s,id:r}),r},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,e)=>{let a,r;if(!e)return;void 0!==e.loading&&(r=this.create({...e,promise:t,type:"loading",message:e.loading,description:"function"!=typeof e.description?e.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=void 0!==r,i=n.then(async t=>{if(a=["resolve",t],o.isValidElement(t))s=!1,this.create({id:r,type:"default",message:t});else if(v(t)&&!t.ok){s=!1;let a="function"==typeof e.error?await e.error("HTTP error! status: ".concat(t.status)):e.error,n="function"==typeof e.description?await e.description("HTTP error! status: ".concat(t.status)):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let a="function"==typeof e.error?await e.error(t):e.error,n="function"==typeof e.description?await e.description(t):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"error",description:n,...i})}else if(void 0!==e.success){s=!1;let a="function"==typeof e.success?await e.success(t):e.success,n="function"==typeof e.description?await e.description(t):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"success",description:n,...i})}}).catch(async t=>{if(a=["reject",t],void 0!==e.error){s=!1;let a="function"==typeof e.error?await e.error(t):e.error,n="function"==typeof e.description?await e.description(t):e.description,i="object"!=typeof a||o.isValidElement(a)?{message:a}:a;this.create({id:r,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(r),r=void 0),null==e.finally||e.finally.call(e)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===a[0]?e(a[1]):t(a[1])).catch(e));return"string"!=typeof r&&"number"!=typeof r?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||m++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}let h=new g,v=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,b=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||m++;return h.addToast({title:t,...e,id:a}),a},{success:h.success,info:h.info,warning:h.warning,error:h.error,custom:h.custom,message:h.message,promise:h.promise,dismiss:h.dismiss,loading:h.loading},{getHistory:()=>h.toasts,getToasts:()=>h.getActiveToasts()});function y(t){return void 0!==t.label}function w(){for(var t=arguments.length,e=Array(t),a=0;asvg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let x=t=>{var e,a,r,s,l,d,c,u,m,g,h;let{invert:v,toast:b,unstyled:x,interacting:E,setHeights:k,visibleToasts:N,heights:C,index:j,toasts:D,expanded:R,removeToast:M,defaultRichColors:T,closeButton:S,style:B,cancelButtonStyle:I,actionButtonStyle:z,className:A="",descriptionClassName:P="",duration:Y,position:O,gap:L,expandByDefault:F,classNames:_,icons:H,closeButtonAriaLabel:V="Close toast"}=t,[U,X]=o.useState(null),[G,W]=o.useState(null),[q,K]=o.useState(!1),[Z,J]=o.useState(!1),[Q,$]=o.useState(!1),[tt,te]=o.useState(!1),[ta,to]=o.useState(!1),[tr,tn]=o.useState(0),[ts,ti]=o.useState(0),tl=o.useRef(b.duration||Y||4e3),td=o.useRef(null),tc=o.useRef(null),tu=0===j,tf=j+1<=N,tp=b.type,tm=!1!==b.dismissible,tg=b.className||"",th=b.descriptionClassName||"",tv=o.useMemo(()=>C.findIndex(t=>t.toastId===b.id)||0,[C,b.id]),tb=o.useMemo(()=>{var t;return null!=(t=b.closeButton)?t:S},[b.closeButton,S]),ty=o.useMemo(()=>b.duration||Y||4e3,[b.duration,Y]),tw=o.useRef(0),tx=o.useRef(0),tE=o.useRef(0),tk=o.useRef(null),[tN,tC]=O.split("-"),tj=o.useMemo(()=>C.reduce((t,e,a)=>a>=tv?t:t+e.height,0),[C,tv]),tD=p(),tR=b.invert||v,tM="loading"===tp;tx.current=o.useMemo(()=>tv*L+tj,[tv,tj]),o.useEffect(()=>{tl.current=ty},[ty]),o.useEffect(()=>{K(!0)},[]),o.useEffect(()=>{let t=tc.current;if(t){let e=t.getBoundingClientRect().height;return ti(e),k(t=>[{toastId:b.id,height:e,position:b.position},...t]),()=>k(t=>t.filter(t=>t.toastId!==b.id))}},[k,b.id]),o.useLayoutEffect(()=>{if(!q)return;let t=tc.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,ti(a),k(t=>t.find(t=>t.toastId===b.id)?t.map(t=>t.toastId===b.id?{...t,height:a}:t):[{toastId:b.id,height:a,position:b.position},...t])},[q,b.title,b.description,k,b.id,b.jsx,b.action,b.cancel]);let tT=o.useCallback(()=>{J(!0),tn(tx.current),k(t=>t.filter(t=>t.toastId!==b.id)),setTimeout(()=>{M(b)},200)},[b,M,k,tx]);o.useEffect(()=>{let t;if((!b.promise||"loading"!==tp)&&b.duration!==1/0&&"loading"!==b.type)return R||E||tD?(()=>{if(tE.current{null==b.onAutoClose||b.onAutoClose.call(b,b),tT()},tl.current)),()=>clearTimeout(t)},[R,E,b,tp,tD,tT]),o.useEffect(()=>{b.delete&&(tT(),null==b.onDismiss||b.onDismiss.call(b,b))},[tT,b.delete]);let tS=b.icon||(null==H?void 0:H[tp])||n(tp);return o.createElement("li",{tabIndex:0,ref:tc,className:w(A,tg,null==_?void 0:_.toast,null==b||null==(e=b.classNames)?void 0:e.toast,null==_?void 0:_.default,null==_?void 0:_[tp],null==b||null==(a=b.classNames)?void 0:a[tp]),"data-sonner-toast":"","data-rich-colors":null!=(g=b.richColors)?g:T,"data-styled":!(b.jsx||b.unstyled||x),"data-mounted":q,"data-promise":!!b.promise,"data-swiped":ta,"data-removed":Z,"data-visible":tf,"data-y-position":tN,"data-x-position":tC,"data-index":j,"data-front":tu,"data-swiping":Q,"data-dismissible":tm,"data-type":tp,"data-invert":tR,"data-swipe-out":tt,"data-swipe-direction":G,"data-expanded":!!(R||F&&q),style:{"--index":j,"--toasts-before":j,"--z-index":D.length-j,"--offset":"".concat(Z?tr:tx.current,"px"),"--initial-height":F?"auto":"".concat(ts,"px"),...B,...b.style},onDragEnd:()=>{$(!1),X(null),tk.current=null},onPointerDown:t=>{!tM&&tm&&(td.current=new Date,tn(tx.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&($(!0),tk.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,o,r;if(tt||!tm)return;tk.current=null;let n=Number((null==(t=tc.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),s=Number((null==(e=tc.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=td.current)?void 0:a.getTime()),l="x"===U?n:s,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){tn(tx.current),null==b.onDismiss||b.onDismiss.call(b,b),"x"===U?W(n>0?"right":"left"):W(s>0?"down":"up"),tT(),te(!0);return}null==(o=tc.current)||o.style.setProperty("--swipe-amount-x","0px"),null==(r=tc.current)||r.style.setProperty("--swipe-amount-y","0px"),to(!1),$(!1),X(null)},onPointerMove:e=>{var a,o,r,n;if(!tk.current||!tm||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tk.current.y,i=e.clientX-tk.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),o=[];return e&&o.push(e),a&&o.push(a),o}(O);!U&&(Math.abs(i)>1||Math.abs(s)>1)&&X(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0},c=t=>1/(1.5+Math.abs(t)/20);if("y"===U){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&s<0||l.includes("bottom")&&s>0)d.y=s;else{let t=s*c(s);d.y=Math.abs(t)0)d.x=i;else{let t=i*c(i);d.x=Math.abs(t)0||Math.abs(d.y)>0)&&to(!0),null==(o=tc.current)||o.style.setProperty("--swipe-amount-x","".concat(d.x,"px")),null==(r=tc.current)||r.style.setProperty("--swipe-amount-y","".concat(d.y,"px"))}},tb&&!b.jsx&&"loading"!==tp?o.createElement("button",{"aria-label":V,"data-disabled":tM,"data-close-button":!0,onClick:tM||!tm?()=>{}:()=>{tT(),null==b.onDismiss||b.onDismiss.call(b,b)},className:w(null==_?void 0:_.closeButton,null==b||null==(r=b.classNames)?void 0:r.closeButton)},null!=(h=null==H?void 0:H.close)?h:f):null,(tp||b.icon||b.promise)&&null!==b.icon&&((null==H?void 0:H[tp])!==null||b.icon)?o.createElement("div",{"data-icon":"",className:w(null==_?void 0:_.icon,null==b||null==(s=b.classNames)?void 0:s.icon)},b.promise||"loading"===b.type&&!b.icon?b.icon||function(){var t,e;return(null==H?void 0:H.loading)?o.createElement("div",{className:w(null==_?void 0:_.loader,null==b||null==(e=b.classNames)?void 0:e.loader,"sonner-loader"),"data-visible":"loading"===tp},H.loading):o.createElement(i,{className:w(null==_?void 0:_.loader,null==b||null==(t=b.classNames)?void 0:t.loader),visible:"loading"===tp})}():null,"loading"!==b.type?tS:null):null,o.createElement("div",{"data-content":"",className:w(null==_?void 0:_.content,null==b||null==(l=b.classNames)?void 0:l.content)},o.createElement("div",{"data-title":"",className:w(null==_?void 0:_.title,null==b||null==(d=b.classNames)?void 0:d.title)},b.jsx?b.jsx:"function"==typeof b.title?b.title():b.title),b.description?o.createElement("div",{"data-description":"",className:w(P,th,null==_?void 0:_.description,null==b||null==(c=b.classNames)?void 0:c.description)},"function"==typeof b.description?b.description():b.description):null),o.isValidElement(b.cancel)?b.cancel:b.cancel&&y(b.cancel)?o.createElement("button",{"data-button":!0,"data-cancel":!0,style:b.cancelButtonStyle||I,onClick:t=>{y(b.cancel)&&tm&&(null==b.cancel.onClick||b.cancel.onClick.call(b.cancel,t),tT())},className:w(null==_?void 0:_.cancelButton,null==b||null==(u=b.classNames)?void 0:u.cancelButton)},b.cancel.label):null,o.isValidElement(b.action)?b.action:b.action&&y(b.action)?o.createElement("button",{"data-button":!0,"data-action":!0,style:b.actionButtonStyle||z,onClick:t=>{y(b.action)&&(null==b.action.onClick||b.action.onClick.call(b.action,t),t.defaultPrevented||tT())},className:w(null==_?void 0:_.actionButton,null==b||null==(m=b.classNames)?void 0:m.actionButton)},b.action.label):null)};function E(){if("undefined"==typeof window||"undefined"==typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let k=o.forwardRef(function(t,e){let{invert:a,position:n="bottom-right",hotkey:s=["altKey","KeyT"],expand:i,closeButton:l,className:d,offset:c,mobileOffset:u,theme:f="light",richColors:p,duration:m,style:g,visibleToasts:v=3,toastOptions:b,dir:y=E(),gap:w=14,icons:k,containerAriaLabel:N="Notifications"}=t,[C,j]=o.useState([]),D=o.useMemo(()=>Array.from(new Set([n].concat(C.filter(t=>t.position).map(t=>t.position)))),[C,n]),[R,M]=o.useState([]),[T,S]=o.useState(!1),[B,I]=o.useState(!1),[z,A]=o.useState("system"!==f?f:"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),P=o.useRef(null),Y=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),O=o.useRef(null),L=o.useRef(!1),F=o.useCallback(t=>{j(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||h.dismiss(t.id),e.filter(e=>{let{id:a}=e;return a!==t.id})})},[]);return o.useEffect(()=>h.subscribe(t=>{if(t.dismiss)return void requestAnimationFrame(()=>{j(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))});setTimeout(()=>{r.flushSync(()=>{j(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[C]),o.useEffect(()=>{if("system"!==f)return void A(f);if("system"===f&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?A("dark"):A("light")),"undefined"==typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",t=>{let{matches:e}=t;e?A("dark"):A("light")})}catch(e){t.addListener(t=>{let{matches:e}=t;try{e?A("dark"):A("light")}catch(t){console.error(t)}})}},[f]),o.useEffect(()=>{C.length<=1&&S(!1)},[C]),o.useEffect(()=>{let t=t=>{var e,a;s.every(e=>t[e]||t.code===e)&&(S(!0),null==(a=P.current)||a.focus()),"Escape"===t.code&&(document.activeElement===P.current||(null==(e=P.current)?void 0:e.contains(document.activeElement)))&&S(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[s]),o.useEffect(()=>{if(P.current)return()=>{O.current&&(O.current.focus({preventScroll:!0}),O.current=null,L.current=!1)}},[P.current]),o.createElement("section",{ref:e,"aria-label":"".concat(N," ").concat(Y),tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},D.map((e,r)=>{var n;let[s,f]=e.split("-");return C.length?o.createElement("ol",{key:e,dir:"auto"===y?E():y,tabIndex:-1,ref:P,className:d,"data-sonner-toaster":!0,"data-sonner-theme":z,"data-y-position":s,"data-x-position":f,style:{"--front-toast-height":"".concat((null==(n=R[0])?void 0:n.height)||0,"px"),"--width":"".concat(356,"px"),"--gap":"".concat(w,"px"),...g,...function(t,e){let a={};return[t,e].forEach((t,e)=>{let o=1===e,r=o?"--mobile-offset":"--offset",n=o?"16px":"24px";function s(t){["top","right","bottom","left"].forEach(e=>{a["".concat(r,"-").concat(e)]="number"==typeof t?"".concat(t,"px"):t})}"number"==typeof t||"string"==typeof t?s(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?a["".concat(r,"-").concat(e)]=n:a["".concat(r,"-").concat(e)]="number"==typeof t[e]?"".concat(t[e],"px"):t[e]}):s(n)}),a}(c,u)},onBlur:t=>{L.current&&!t.currentTarget.contains(t.relatedTarget)&&(L.current=!1,O.current&&(O.current.focus({preventScroll:!0}),O.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(L.current||(L.current=!0,O.current=t.relatedTarget))},onMouseEnter:()=>S(!0),onMouseMove:()=>S(!0),onMouseLeave:()=>{B||S(!1)},onDragEnd:()=>S(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||I(!0)},onPointerUp:()=>I(!1)},C.filter(t=>!t.position&&0===r||t.position===e).map((r,n)=>{var s,d;return o.createElement(x,{key:r.id,icons:k,index:n,toast:r,defaultRichColors:p,duration:null!=(s=null==b?void 0:b.duration)?s:m,className:null==b?void 0:b.className,descriptionClassName:null==b?void 0:b.descriptionClassName,invert:a,visibleToasts:v,closeButton:null!=(d=null==b?void 0:b.closeButton)?d:l,interacting:B,position:e,style:null==b?void 0:b.style,unstyled:null==b?void 0:b.unstyled,classNames:null==b?void 0:b.classNames,cancelButtonStyle:null==b?void 0:b.cancelButtonStyle,actionButtonStyle:null==b?void 0:b.actionButtonStyle,closeButtonAriaLabel:null==b?void 0:b.closeButtonAriaLabel,removeToast:F,toasts:C.filter(t=>t.position==r.position),heights:R.filter(t=>t.position==r.position),setHeights:M,expandByDefault:i,gap:w,expanded:T,swipeDirections:t.swipeDirections})})):null}))})}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/825-aee0522b5fc044c3.js b/transports/bifrost-http/ui/_next/static/chunks/825-aee0522b5fc044c3.js new file mode 100644 index 0000000000..676f1e0564 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/825-aee0522b5fc044c3.js @@ -0,0 +1,124 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[825],{901:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RouterContext",{enumerable:!0,get:function(){return i}});let i=r(8229)._(r(2115)).default.createContext(null)},1193:(e,t)=>{"use strict";function r(e){var t;let{config:r,src:i,width:n,quality:s}=e,o=s||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return l},getImageProps:function(){return a}});let i=r(8229),n=r(8883),s=r(3063),o=i._(r(1193));function a(e){let{props:t}=(0,n.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let l=s.Image},2464:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return i}});let i=r(8229)._(r(2115)).default.createContext({})},3052:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});let i=(0,r(9946).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},3063:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return S}});let i=r(8229),n=r(6966),s=r(5155),o=n._(r(2115)),a=i._(r(7650)),l=i._(r(5564)),u=r(8883),c=r(5840),d=r(6752);r(3230);let p=r(901),f=i._(r(1193)),h=r(6654),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function m(e,t,r,i,n,s,o){let a=null==e?void 0:e.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}(null==i?void 0:i.current)&&i.current(e)}}))}function b(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}let v=(0,o.forwardRef)((e,t)=>{let{src:r,srcSet:i,sizes:n,height:a,width:l,decoding:u,className:c,style:d,fetchPriority:p,placeholder:f,loading:g,unoptimized:v,fill:y,onLoadRef:S,onLoadingCompleteRef:w,setBlurComplete:P,setShowAltText:O,sizesInput:x,onLoad:_,onError:E,...j}=e,k=(0,o.useCallback)(e=>{e&&(E&&(e.src=e.src),e.complete&&m(e,f,S,w,P,v,x))},[r,f,S,w,P,E,v,x]),C=(0,h.useMergedRef)(t,k);return(0,s.jsx)("img",{...j,...b(p),loading:g,width:l,height:a,decoding:u,"data-nimg":y?"fill":"1",className:c,style:d,sizes:n,srcSet:i,src:r,ref:C,onLoad:e=>{m(e.currentTarget,f,S,w,P,v,x)},onError:e=>{O(!0),"empty"!==f&&P(!0),E&&E(e)}})});function y(e){let{isAppRouter:t,imgAttributes:r}=e,i={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...b(r.fetchPriority)};return t&&a.default.preload?(a.default.preload(r.src,i),null):(0,s.jsx)(l.default,{children:(0,s.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...i},"__nimg-"+r.src+r.srcSet+r.sizes)})}let S=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(p.RouterContext),i=(0,o.useContext)(d.ImageConfigContext),n=(0,o.useMemo)(()=>{var e;let t=g||i||c.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),n=t.deviceSizes.sort((e,t)=>e-t),s=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:n,qualities:s}},[i]),{onLoad:a,onLoadingComplete:l}=e,h=(0,o.useRef)(a);(0,o.useEffect)(()=>{h.current=a},[a]);let m=(0,o.useRef)(l);(0,o.useEffect)(()=>{m.current=l},[l]);let[b,S]=(0,o.useState)(!1),[w,P]=(0,o.useState)(!1),{props:O,meta:x}=(0,u.getImgProps)(e,{defaultLoader:f.default,imgConf:n,blurComplete:b,showAltText:w});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(v,{...O,unoptimized:x.unoptimized,placeholder:x.placeholder,fill:x.fill,onLoadRef:h,onLoadingCompleteRef:m,setBlurComplete:S,setShowAltText:P,sizesInput:e.sizes,ref:t}),x.priority?(0,s.jsx)(y,{isAppRouter:!r,imgAttributes:O}):null]})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3786:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});let i=(0,r(9946).A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},5029:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let i=r(2115),n=i.useLayoutEffect,s=i.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let n=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(n,e))}}return n(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),n(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),s(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},5040:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});let i=(0,r(9946).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},5100:(e,t)=>{"use strict";function r(e){let{widthInt:t,heightInt:r,blurWidth:i,blurHeight:n,blurDataURL:s,objectFit:o}=e,a=i?40*i:t,l=n?40*n:r,u=a&&l?"viewBox='0 0 "+a+" "+l+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+u+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(u?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+s+"'/%3E%3C/svg%3E"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},5564:(e,t,r)=>{"use strict";var i=r(9509);Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return m},defaultHead:function(){return p}});let n=r(8229),s=r(6966),o=r(5155),a=s._(r(2115)),l=n._(r(5029)),u=r(2464),c=r(2830),d=r(7544);function p(e){void 0===e&&(e=!1);let t=[(0,o.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}r(3230);let h=["name","httpEquiv","charSet","itemProp"];function g(e,t){let{inAmpMode:r}=t;return e.reduce(f,[]).reverse().concat(p(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,i={};return n=>{let s=!0,o=!1;if(n.key&&"number"!=typeof n.key&&n.key.indexOf("$")>0){o=!0;let t=n.key.slice(n.key.indexOf("$")+1);e.has(t)?s=!1:e.add(t)}switch(n.type){case"title":case"base":t.has(n.type)?s=!1:t.add(n.type);break;case"meta":for(let e=0,t=h.length;e{let n=e.key||t;if(i.env.__NEXT_OPTIMIZE_FONTS&&!r&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(t=>e.props.href.startsWith(t))){let t={...e.props||{}};return t["data-href"]=t.href,t.href=void 0,t["data-optimized-fonts"]=!0,a.default.cloneElement(e,t)}return a.default.cloneElement(e,{key:n})})}let m=function(e){let{children:t}=e,r=(0,a.useContext)(u.AmpStateContext),i=(0,a.useContext)(c.HeadManagerContext);return(0,o.jsx)(l.default,{reduceComponentsToState:g,headManager:i,inAmpMode:(0,d.isInAmpMode)(r),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5688:e=>{e.exports={style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"},className:"__className_5cfdac",variable:"__variable_5cfdac"}},5695:(e,t,r)=>{"use strict";var i=r(8999);r.o(i,"usePathname")&&r.d(t,{usePathname:function(){return i.usePathname}}),r.o(i,"useSearchParams")&&r.d(t,{useSearchParams:function(){return i.useSearchParams}})},5840:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{VALID_LOADERS:function(){return r},imageConfigDefault:function(){return i}});let r=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},6752:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ImageConfigContext",{enumerable:!0,get:function(){return s}});let i=r(8229)._(r(2115)),n=r(5840),s=i.default.createContext(n.imageConfigDefault)},6766:(e,t,r)=>{"use strict";r.d(t,{default:()=>n.a});var i=r(1469),n=r.n(i)},7109:(e,t,r)=>{"use strict";r.d(t,{V:()=>R});var i=r(5695),n=r(2115);function s(e,t,r){return Math.max(t,Math.min(e,r))}function o(e,t){return"rtl"===t?(1-e)*100:(-1+e)*100}function a(e,t,r){if("string"==typeof t)void 0!==r&&(e.style[t]=r);else for(let r in t)if(t.hasOwnProperty(r)){let i=t[r];void 0!==i&&(e.style[r]=i)}}function l(e,t){e.classList.add(t)}function u(e,t){e.classList.remove(t)}function c(e){e&&e.parentNode&&e.parentNode.removeChild(e)}var d={minimum:.08,maximum:1,template:`
+
+
`,easing:"linear",positionUsing:"",speed:200,trickle:!0,trickleSpeed:200,showSpinner:!0,indeterminate:!1,indeterminateSelector:".indeterminate",barSelector:".bar",spinnerSelector:".spinner",parent:"body",direction:"ltr"},p=class{static settings=d;static status=null;static pending=[];static isPaused=!1;static reset(){return this.status=null,this.isPaused=!1,this.pending=[],this.settings=d,this}static configure(e){return Object.assign(this.settings,e),this}static isStarted(){return"number"==typeof this.status}static set(e){if(this.isPaused)return this;let t=this.isStarted();e=s(e,this.settings.minimum,this.settings.maximum),this.status=e===this.settings.maximum?null:e;let r=this.render(!t),i=this.settings.speed,n=this.settings.easing;return r.forEach(e=>e.offsetWidth),this.queue(t=>{r.forEach(t=>{this.settings.indeterminate||a(t.querySelector(this.settings.barSelector),this.barPositionCSS({n:e,speed:i,ease:n}))}),e===this.settings.maximum?(r.forEach(e=>{a(e,{transition:"none",opacity:"1"}),e.offsetWidth}),setTimeout(()=>{r.forEach(e=>{a(e,{transition:`all ${i}ms ${n}`,opacity:"0"})}),setTimeout(()=>{r.forEach(e=>{this.remove(e),null===this.settings.template&&a(e,{transition:"none",opacity:"1"})}),t()},i)},i)):setTimeout(t,i)}),this}static start(){this.status||this.set(0);let e=()=>{this.isPaused||setTimeout(()=>{this.status&&(this.trickle(),e())},this.settings.trickleSpeed)};return this.settings.trickle&&e(),this}static done(e){return e||this.status?this.inc(.3+.5*Math.random()).set(1):this}static inc(e){if(this.isPaused||this.settings.indeterminate)return this;let t=this.status;return t?t>1?this:("number"!=typeof e&&(e=t>=0&&t<.2?.1:t>=.2&&t<.5?.04:t>=.5&&t<.8?.02:.005*(t>=.8&&t<.99)),t=s(t+e,0,.994),this.set(t)):this.start()}static dec(e){if(this.isPaused||this.settings.indeterminate)return this;let t=this.status;return"number"!=typeof t?this:("number"!=typeof e&&(e=t>.8?.1:t>.5?.05:t>.2?.02:.01),t=s(t-e,0,.994),this.set(t))}static trickle(){return this.isPaused||this.settings.indeterminate?this:this.inc()}static promise(e){if(!e||"resolved"===e.state())return this;let t=0,r=0;return this.start(),t++,r++,e.always(()=>{0==--r?(t=0,this.done()):this.set((t-r)/t)}),this}static render(e=!1){let t="string"==typeof this.settings.parent?document.querySelector(this.settings.parent):this.settings.parent,r=t?Array.from(t.querySelectorAll(".bprogress")):[];if(null!==this.settings.template&&0===r.length){l(document.documentElement,"bprogress-busy");let e=document.createElement("div");l(e,"bprogress"),e.innerHTML=this.settings.template,t!==document.body&&l(t,"bprogress-custom-parent"),t.appendChild(e),r.push(e)}return r.forEach(r=>{if(null===this.settings.template&&(r.style.display=""),l(document.documentElement,"bprogress-busy"),t!==document.body&&l(t,"bprogress-custom-parent"),this.settings.indeterminate){let e=r.querySelector(this.settings.barSelector);e&&(e.style.display="none");let t=r.querySelector(this.settings.indeterminateSelector);t&&(t.style.display="")}else{let t=r.querySelector(this.settings.barSelector),i=e?o(0,this.settings.direction):o(this.status||0,this.settings.direction);a(t,this.barPositionCSS({n:this.status||0,speed:this.settings.speed,ease:this.settings.easing,perc:i}));let n=r.querySelector(this.settings.indeterminateSelector);n&&(n.style.display="none")}if(null===this.settings.template){let e=r.querySelector(this.settings.spinnerSelector);e&&(e.style.display=this.settings.showSpinner?"block":"none")}else if(!this.settings.showSpinner){let e=r.querySelector(this.settings.spinnerSelector);e&&c(e)}}),r}static remove(e){e?null===this.settings.template?e.style.display="none":c(e):(u(document.documentElement,"bprogress-busy"),("string"==typeof this.settings.parent?document.querySelectorAll(this.settings.parent):[this.settings.parent]).forEach(e=>{u(e,"bprogress-custom-parent")}),document.querySelectorAll(".bprogress").forEach(e=>{null===this.settings.template?e.style.display="none":c(e)}))}static pause(){return!this.isStarted()||this.settings.indeterminate||(this.isPaused=!0),this}static resume(){if(!this.isStarted()||this.settings.indeterminate)return this;if(this.isPaused=!1,this.settings.trickle){let e=()=>{this.isPaused||setTimeout(()=>{this.status&&(this.trickle(),e())},this.settings.trickleSpeed)};e()}return this}static isRendered(){return document.querySelectorAll(".bprogress").length>0}static getPositioningCSS(){let e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return`${t}Perspective`in e?"translate3d":`${t}Transform`in e?"translate":"margin"}static queue(e){this.pending.push(e),1===this.pending.length&&this.next()}static next(){let e=this.pending.shift();e&&e(this.next.bind(this))}static initPositionUsing(){""===this.settings.positionUsing&&(this.settings.positionUsing=this.getPositioningCSS())}static barPositionCSS({n:e,speed:t,ease:r,perc:i}){this.initPositionUsing();let n={},s=i??o(e,this.settings.direction);return"translate3d"===this.settings.positionUsing?n={transform:`translate3d(${s}%,0,0)`}:"translate"===this.settings.positionUsing?n={transform:`translate(${s}%,0)`}:"width"===this.settings.positionUsing?n={width:`${"rtl"===this.settings.direction?100-s:s+100}%`,..."rtl"===this.settings.direction?{right:"0",left:"auto"}:{}}:"margin"===this.settings.positionUsing&&(n="rtl"===this.settings.direction?{"margin-left":`${-s}%`}:{"margin-right":`${-s}%`}),n.transition=`all ${t}ms ${r}`,n}},f=({color:e="#29d",height:t="2px",spinnerPosition:r="top-right"})=>` +:root { + --bprogress-color: ${e}; + --bprogress-height: ${t}; + --bprogress-spinner-size: 18px; + --bprogress-spinner-animation-duration: 400ms; + --bprogress-spinner-border-size: 2px; + --bprogress-box-shadow: 0 0 10px ${e}, 0 0 5px ${e}; + --bprogress-z-index: 99999; + --bprogress-spinner-top: ${"top-right"===r||"top-left"===r?"15px":"auto"}; + --bprogress-spinner-bottom: ${"bottom-right"===r||"bottom-left"===r?"15px":"auto"}; + --bprogress-spinner-right: ${"top-right"===r||"bottom-right"===r?"15px":"auto"}; + --bprogress-spinner-left: ${"top-left"===r||"bottom-left"===r?"15px":"auto"}; +} + +.bprogress { + width: 0; + height: 0; + pointer-events: none; + z-index: var(--bprogress-z-index); +} + +.bprogress .bar { + background: var(--bprogress-color); + position: fixed; + z-index: var(--bprogress-z-index); + top: 0; + left: 0; + width: 100%; + height: var(--bprogress-height); +} + +/* Fancy blur effect */ +.bprogress .peg { + display: block; + position: absolute; + right: 0; + width: 100px; + height: 100%; + box-shadow: var(--bprogress-box-shadow); + opacity: 1.0; + transform: rotate(3deg) translate(0px, -4px); +} + +/* Remove these to get rid of the spinner */ +.bprogress .spinner { + display: block; + position: fixed; + z-index: var(--bprogress-z-index); + top: var(--bprogress-spinner-top); + bottom: var(--bprogress-spinner-bottom); + right: var(--bprogress-spinner-right); + left: var(--bprogress-spinner-left); +} + +.bprogress .spinner-icon { + width: var(--bprogress-spinner-size); + height: var(--bprogress-spinner-size); + box-sizing: border-box; + border: solid var(--bprogress-spinner-border-size) transparent; + border-top-color: var(--bprogress-color); + border-left-color: var(--bprogress-color); + border-radius: 50%; + -webkit-animation: bprogress-spinner var(--bprogress-spinner-animation-duration) linear infinite; + animation: bprogress-spinner var(--bprogress-spinner-animation-duration) linear infinite; +} + +.bprogress-custom-parent { + overflow: hidden; + position: relative; +} + +.bprogress-custom-parent .bprogress .spinner, +.bprogress-custom-parent .bprogress .bar { + position: absolute; +} + +.bprogress .indeterminate { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: var(--bprogress-height); + overflow: hidden; +} + +.bprogress .indeterminate .inc, +.bprogress .indeterminate .dec { + position: absolute; + top: 0; + height: 100%; + background-color: var(--bprogress-color); +} + +.bprogress .indeterminate .inc { + animation: bprogress-indeterminate-increase 2s infinite; +} + +.bprogress .indeterminate .dec { + animation: bprogress-indeterminate-decrease 2s 0.5s infinite; +} + +@-webkit-keyframes bprogress-spinner { + 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } +} + +@keyframes bprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +@keyframes bprogress-indeterminate-increase { + from { left: -5%; width: 5%; } + to { left: 130%; width: 100%; } +} + +@keyframes bprogress-indeterminate-decrease { + from { left: -80%; width: 80%; } + to { left: 110%; width: 10%; } +} +`;function h(e,t){if("string"==typeof t&&"data-disable-progress"===t){let r=t.substring(5).replace(/-([a-z])/g,(e,t)=>t.toUpperCase());return e.dataset[r]}let r=e[t];if(r instanceof SVGAnimatedString){let e=r.baseVal;if("href"===t){var i=location.origin;if(!e.startsWith("/")||!i)return e;let{pathname:t,query:r,hash:n}=function(e){let t=e.indexOf("#"),r=e.indexOf("?"),i=r>-1&&(t<0||r-1?{pathname:e.substring(0,i?r:t),query:i?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}(e);return`${i}${t}${r}${n}`}return e}return r}function g(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var b=(0,n.createContext)(void 0),v=function(){var e=(0,n.useContext)(b);if(!e)throw Error("useProgress must be used within a ProgressProvider");return e},y=function(e){var t=e.children,r=e.color,i=void 0===r?"#0A2FFF":r,s=e.height,o=void 0===s?"2px":s,a=e.options,l=e.spinnerPosition,u=void 0===l?"top-right":l,c=e.style,d=e.disableStyle,h=e.nonce,m=e.shallowRouting,v=e.disableSameURL,y=e.startPosition,S=e.delay,w=e.stopDelay,P=(0,n.useRef)(null),O=(0,n.useRef)(!1),x=(0,n.useCallback)(function(){return O.current=!0},[]),_=(0,n.useCallback)(function(){return O.current=!1},[]),E=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];r&&x(),P.current=setTimeout(function(){e>0&&p.set(e),p.start()},t)},[x]),j=(0,n.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;setTimeout(function(){P.current&&clearTimeout(P.current),P.current=setTimeout(function(){p.isStarted()&&(p.done(),O.current&&_())},e)},t)},[_]),k=(0,n.useCallback)(function(e){return p.inc(e)},[]),C=(0,n.useCallback)(function(e){return p.dec(e)},[]),R=(0,n.useCallback)(function(e){return p.set(e)},[]),z=(0,n.useCallback)(function(){return p.pause()},[]),A=(0,n.useCallback)(function(){return p.resume()},[]),M=(0,n.useCallback)(function(){return p.settings},[]),N=(0,n.useCallback)(function(e){var t=M(),r="function"==typeof e?e(t):e,i=g({},t,r);p.configure(i)},[M]),D=(0,n.useMemo)(function(){return n.createElement("style",{nonce:h},c||f({color:i,height:o,spinnerPosition:u}))},[i,o,h,u,c]);return p.configure(a||{}),n.createElement(b.Provider,{value:{start:E,stop:j,inc:k,dec:C,set:R,pause:z,resume:A,setOptions:N,getOptions:M,isAutoStopDisabled:O,disableAutoStop:x,enableAutoStop:_,shallowRouting:void 0!==m&&m,disableSameURL:void 0===v||v,startPosition:void 0===y?0:y,delay:void 0===S?0:S,stopDelay:void 0===w?0:w}},void 0!==d&&d?null:D,t)};function S(){for(var e=arguments.length,t=Array(e),r=0;r=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var j=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["memo","shouldCompareComplexProps"];return(0,n.memo)(e,function(e,r){return!1!==r.memo&&(!r.shouldCompareComplexProps||function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=Object.keys(e).filter(function(e){return!r.includes(e)}),n=Object.keys(t).filter(function(e){return!r.includes(e)});if(i.length!==n.length)return!1;var s=!0,o=!1,a=void 0;try{for(var l,u=i[Symbol.iterator]();!(s=(l=u.next()).done);s=!0){var c=l.value;if(e[c]!==t[c])return!1}}catch(e){o=!0,a=e}finally{try{s||null==u.return||u.return()}finally{if(o)throw a}}return!0}(e,r,t))})}(function(e){return!function(e){var t=e.shallowRouting,r=void 0!==t&&t,i=e.disableSameURL,s=void 0===i||i,o=e.startPosition,a=void 0===o?0:o,l=e.delay,u=void 0===l?0:l,c=e.stopDelay,d=void 0===c?0:c,p=e.targetPreprocessor,f=e.disableAnchorClick,g=void 0!==f&&f,m=e.startOnLoad,b=void 0!==m&&m,y=e.forcedStopDelay,S=void 0===y?0:y,w=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],P=(0,n.useRef)([]),O=(0,n.useRef)(null),x=v(),_=x.start,E=x.stop,j=x.isAutoStopDisabled;(0,n.useEffect)(function(){b&&_(a,u)},[]),(0,n.useEffect)(function(){return O.current&&clearTimeout(O.current),O.current=setTimeout(function(){j.current||E()},d),function(){O.current&&clearTimeout(O.current)}},w),(0,n.useEffect)(function(){if(!g){var e=function(e){if(e.defaultPrevented)return;var t,i,n,o,l=e.currentTarget;if(l.hasAttribute("download"))return;var c=e.target,d=(null==c?void 0:c.getAttribute("data-prevent-progress"))==="true"||(null==l?void 0:l.getAttribute("data-prevent-progress"))==="true";if(!d)for(var f,g=c;g&&"a"!==g.tagName.toLowerCase();){if((null==(f=g.parentElement)?void 0:f.getAttribute("data-prevent-progress"))==="true"){d=!0;break}g=g.parentElement}if(!d&&"_blank"!==h(l,"target")&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){var m=h(l,"href"),b=p?p(new URL(m)):new URL(m),v=new URL(location.href);if(!(r&&(t=b,i=v,t.protocol+"//"+t.host+t.pathname==i.protocol+"//"+i.host+i.pathname))||!s){n=b,o=v,n.protocol+"//"+n.host+n.pathname+n.search==o.protocol+"//"+o.host+o.pathname+o.search&&s||_(a,u)}}},t=new MutationObserver(function(){var t=Array.from(document.querySelectorAll("a")).filter(function(e){var t=h(e,"href"),r="true"===e.getAttribute("data-disable-progress"),i=t&&!t.startsWith("tel:")&&!t.startsWith("mailto:")&&!t.startsWith("blob:")&&!t.startsWith("javascript:");return!r&&i&&"_blank"!==h(e,"target")});t.forEach(function(t){t.addEventListener("click",e,!0)}),P.current=t});t.observe(document,{childList:!0,subtree:!0});var i=window.history.pushState;return window.history.pushState=new Proxy(window.history.pushState,{apply:function(e,t,r){return j.current||E(d,S),e.apply(t,r)}}),function(){t.disconnect(),P.current.forEach(function(t){t.removeEventListener("click",e,!0)}),P.current=[],window.history.pushState=i}}},[g,p,r,s,u,d,a,_,E,S,j])}(e,[(0,i.usePathname)(),(0,i.useSearchParams)()]),null});j.displayName="AppProgress";var k=function(e){var t=e.children,r=e.ProgressComponent,i=e.color,s=e.height,o=e.options,a=e.spinnerPosition,l=e.style,u=e.disableStyle,c=e.nonce,d=e.stopDelay,p=e.delay,f=e.startPosition,h=e.disableSameURL,g=e.shallowRouting,m=E(e,["children","ProgressComponent","color","height","options","spinnerPosition","style","disableStyle","nonce","stopDelay","delay","startPosition","disableSameURL","shallowRouting"]);return n.createElement(y,{color:i,height:s,options:o,spinnerPosition:a,style:l,disableStyle:u,nonce:c,stopDelay:d,delay:p,startPosition:f,disableSameURL:h,shallowRouting:g},n.createElement(r,_({stopDelay:d,delay:p,startPosition:f,disableSameURL:h,shallowRouting:g},m)),t)},C=function(e){return n.createElement(n.Suspense,null,n.createElement(j,g({},e)))},R=function(e){var t=e.children,r=E(e,["children"]);return n.createElement(k,_({ProgressComponent:C},r),t)}},7340:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});let i=(0,r(9946).A)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]])},7520:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});let i=(0,r(9946).A)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]])},7544:(e,t)=>{"use strict";function r(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:i=!1}=void 0===e?{}:e;return t||r&&i}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return r}})},8883:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImgProps",{enumerable:!0,get:function(){return l}}),r(3230);let i=r(5100),n=r(5840),s=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function a(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function l(e,t){var r,l;let u,c,d,{src:p,sizes:f,unoptimized:h=!1,priority:g=!1,loading:m,className:b,quality:v,width:y,height:S,fill:w=!1,style:P,overrideSrc:O,onLoad:x,onLoadingComplete:_,placeholder:E="empty",blurDataURL:j,fetchPriority:k,decoding:C="async",layout:R,objectFit:z,objectPosition:A,lazyBoundary:M,lazyRoot:N,...D}=e,{imgConf:T,showAltText:L,blurComplete:U,defaultLoader:I}=t,q=T||n.imageConfigDefault;if("allSizes"in q)u=q;else{let e=[...q.deviceSizes,...q.imageSizes].sort((e,t)=>e-t),t=q.deviceSizes.sort((e,t)=>e-t),i=null==(r=q.qualities)?void 0:r.sort((e,t)=>e-t);u={...q,allSizes:e,deviceSizes:t,qualities:i}}if(void 0===I)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let $=D.loader||I;delete D.loader,delete D.srcSet;let F="__next_img_default"in $;if(F){if("custom"===u.loader)throw Object.defineProperty(Error('Image with src "'+p+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=$;$=t=>{let{config:r,...i}=t;return e(i)}}if(R){"fill"===R&&(w=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[R];e&&(P={...P,...e});let t={responsive:"100vw",fill:"100vw"}[R];t&&!f&&(f=t)}let W="",G=a(y),V=a(S);if((l=p)&&"object"==typeof l&&(o(l)||void 0!==l.src)){let e=o(p)?p.default:p;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(c=e.blurWidth,d=e.blurHeight,j=j||e.blurDataURL,W=e.src,!w)if(G||V){if(G&&!V){let t=G/e.width;V=Math.round(e.height*t)}else if(!G&&V){let t=V/e.height;G=Math.round(e.width*t)}}else G=e.width,V=e.height}let B=!g&&("lazy"===m||void 0===m);(!(p="string"==typeof p?p:W)||p.startsWith("data:")||p.startsWith("blob:"))&&(h=!0,B=!1),u.unoptimized&&(h=!0),F&&!u.dangerouslyAllowSVG&&p.split("?",1)[0].endsWith(".svg")&&(h=!0);let H=a(v),X=Object.assign(w?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:z,objectPosition:A}:{},L?{}:{color:"transparent"},P),K=U||"empty"===E?null:"blur"===E?'url("data:image/svg+xml;charset=utf-8,'+(0,i.getImageBlurSvg)({widthInt:G,heightInt:V,blurWidth:c,blurHeight:d,blurDataURL:j||"",objectFit:X.objectFit})+'")':'url("'+E+'")',J=s.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,Y=K?{backgroundSize:J,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:K}:{},Z=function(e){let{config:t,src:r,unoptimized:i,width:n,quality:s,sizes:o,loader:a}=e;if(i)return{src:r,srcSet:void 0,sizes:void 0};let{widths:l,kind:u}=function(e,t,r){let{deviceSizes:i,allSizes:n}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let i;i=e.exec(r);)t.push(parseInt(i[2]));if(t.length){let e=.01*Math.min(...t);return{widths:n.filter(t=>t>=i[0]*e),kind:"w"}}return{widths:n,kind:"w"}}return"number"!=typeof t?{widths:i,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>n.find(t=>t>=e)||n[n.length-1]))],kind:"x"}}(t,n,o),c=l.length-1;return{sizes:o||"w"!==u?o:"100vw",srcSet:l.map((e,i)=>a({config:t,src:r,quality:s,width:e})+" "+("w"===u?e:i+1)+u).join(", "),src:a({config:t,src:r,quality:s,width:l[c]})}}({config:u,src:p,unoptimized:h,width:G,quality:H,sizes:f,loader:$});return{props:{...D,loading:B?"lazy":m,fetchPriority:k,width:G,height:V,decoding:C,className:b,style:{...X,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:O||Z.src},meta:{unoptimized:h,priority:g,placeholder:E,fill:w}}}},9432:e=>{e.exports={style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"},className:"__className_9a8899",variable:"__variable_9a8899"}}}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/app/config/page-6aaabc7109379e54.js b/transports/bifrost-http/ui/_next/static/chunks/app/config/page-6aaabc7109379e54.js new file mode 100644 index 0000000000..88d6510c65 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/app/config/page-6aaabc7109379e54.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[653],{6137:(e,s,i)=>{"use strict";i.r(s),i.d(s,{default:()=>eD});var t=i(5155),r=i(2115),a=i(9464),l=i(4964),n=i(8145),o=i(4213),c=i(1539),d=i(381),g=i(6671);function A(){return{toast:e=>{let{title:s,description:i,variant:t}=e,r=i?"".concat(s,": ").concat(i):s;"destructive"===t?g.o.error(r):g.o.success(r)}}}var C=i(1886),u=i(8482),w=i(4884),B=i(3999);let h=r.forwardRef((e,s)=>{let{className:i,...r}=e;return(0,t.jsx)(w.bL,{className:(0,B.cn)("peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",i),...r,ref:s,children:(0,t.jsx)(w.zi,{className:(0,B.cn)("bg-background pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})})});h.displayName=w.bL.displayName;var x=i(1154),m=i(1243),W=i(7489),L=i(9026),D=i(9852);function v(e){let{className:s,...i}=e;return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,B.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),...i})}let f=e=>e.split(",").map(e=>e.trim()).filter(e=>e.length>0),Y=(e,s)=>(null==e?void 0:e.length)===(null==s?void 0:s.length)&&(null==e?void 0:e.every((e,i)=>e===s[i]));function F(){let[e,s]=(0,r.useState)({drop_excess_requests:!1,initial_pool_size:300,log_queue_size:1e3}),[i,a]=(0,r.useState)(0),[l,n]=(0,r.useState)(!0),[o,c]=(0,r.useState)({initial_pool_size:"300",prometheus_labels:"",log_queue_size:"1000"});(0,r.useEffect)(()=>{(async()=>{let[e,s]=await C.K.getDroppedRequests();s?g.o.error(s):e&&a(e.dropped_requests)})()},[]);let d=(0,r.useRef)(void 0),A=(0,r.useRef)(void 0),w=(0,r.useRef)(void 0);(0,r.useEffect)(()=>{(async()=>{let[e,i]=await C.K.getCoreConfig();if(i)g.o.error(i);else if(e){var t,r;s(e),c({initial_pool_size:(null==(t=e.initial_pool_size)?void 0:t.toString())||"300",prometheus_labels:e.prometheus_labels||"",log_queue_size:(null==(r=e.log_queue_size)?void 0:r.toString())||"1000"})}n(!1)})()},[]);let B=(0,r.useCallback)(async(i,t)=>{let r={...e,[i]:t};s(r);let[,a]=await C.K.updateCoreConfig(r);a?g.o.error(a):g.o.success("Core setting updated successfully.")},[e]),Y=async(e,s)=>{await B(e,s)},F=(0,r.useCallback)(e=>{c(s=>({...s,initial_pool_size:e})),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{let s=Number.parseInt(e);!isNaN(s)&&s>0&&B("initial_pool_size",s)},1e3)},[B]),H=(0,r.useCallback)(e=>{c(s=>({...s,prometheus_labels:e})),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{B("prometheus_labels",f(e))},1e3)},[B]),p=(0,r.useCallback)(e=>{c(s=>({...s,log_queue_size:e})),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{let s=Number.parseInt(e);!isNaN(s)&&s>0&&B("log_queue_size",s)},1e3)},[B]);return((0,r.useEffect)(()=>()=>{d.current&&clearTimeout(d.current),A.current&&clearTimeout(A.current),w.current&&clearTimeout(w.current)},[]),l)?(0,t.jsx)("div",{className:"flex h-64 items-center justify-center",children:(0,t.jsx)(x.A,{className:"h-4 w-4 animate-spin"})}):(0,t.jsxs)("div",{children:[(0,t.jsxs)(u.aR,{className:"mb-4 px-0",children:[(0,t.jsx)(u.ZB,{className:"flex items-center gap-2",children:"Core System Settings"}),(0,t.jsx)(u.BT,{children:"Configure core Bifrost settings like request handling, pool sizes, and system behavior."})]}),(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between space-x-2 rounded-lg border p-4",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("label",{htmlFor:"drop-excess-requests",className:"text-sm font-medium",children:"Drop Excess Requests"}),(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:"If enabled, Bifrost will drop requests that exceed pool capacity."})]}),(0,t.jsx)(h,{id:"drop-excess-requests",checked:e.drop_excess_requests,onCheckedChange:e=>Y("drop_excess_requests",e)})]}),(0,t.jsx)(W.w,{}),(0,t.jsxs)(L.Fc,{children:[(0,t.jsx)(m.A,{className:"h-4 w-4"}),(0,t.jsx)(L.TN,{children:"The settings below require a Bifrost service restart to take effect. Current connections will continue with existing settings until restart."})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between space-x-2 rounded-lg border p-4",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("label",{htmlFor:"initial-pool-size",className:"text-sm font-medium",children:"Initial Pool Size"}),(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:"The initial connection pool size."})]}),(0,t.jsx)(D.p,{id:"initial-pool-size",type:"number",className:"w-24",value:o.initial_pool_size,onChange:e=>F(e.target.value),min:"1"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between space-x-2 rounded-lg border p-4",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("label",{htmlFor:"log-queue-size",className:"text-sm font-medium",children:"Log Queue Size"}),(0,t.jsxs)("p",{className:"text-muted-foreground text-sm",children:["Additional logs will be dropped if the queue is full. Bifrost has dropped"," ",(0,t.jsxs)("span",{className:"font-bold",children:[i," logs"]})," so far."]})]}),(0,t.jsx)(D.p,{id:"log-queue-size",type:"number",className:"w-24",value:o.log_queue_size,onChange:e=>p(e.target.value),min:"1"})]}),(0,t.jsxs)("div",{className:"space-y-2 rounded-lg border p-4",children:[(0,t.jsxs)("div",{className:"space-y-0.5",children:[(0,t.jsx)("label",{htmlFor:"prometheus-labels",className:"text-sm font-medium",children:"Prometheus Labels"}),(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:"Comma-separated list of custom labels to add to the Prometheus metrics."})]}),(0,t.jsx)(v,{id:"prometheus-labels",className:"h-24",placeholder:"teamId, projectId, environment",value:o.prometheus_labels,onChange:e=>H(e.target.value)})]})]})]})}var H=i(7168),p=i(8524),Q=i(4616),b=i(9803),V=i(3717),y=i(2525),j=i(7783),N=i(7649);function E(e){let{...s}=e;return(0,t.jsx)(N.bL,{"data-slot":"alert-dialog",...s})}function P(e){let{...s}=e;return(0,t.jsx)(N.l9,{"data-slot":"alert-dialog-trigger",...s})}function G(e){let{...s}=e;return(0,t.jsx)(N.ZL,{"data-slot":"alert-dialog-portal",...s})}function q(e){let{className:s,...i}=e;return(0,t.jsx)(N.hJ,{"data-slot":"alert-dialog-overlay",className:(0,B.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",s),...i})}function R(e){let{className:s,...i}=e;return(0,t.jsxs)(G,{children:[(0,t.jsx)(q,{}),(0,t.jsx)(N.UC,{"data-slot":"alert-dialog-content",className:(0,B.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",s),...i})]})}function I(e){let{className:s,...i}=e;return(0,t.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,B.cn)("flex flex-col gap-2 text-center sm:text-left",s),...i})}function K(e){let{className:s,...i}=e;return(0,t.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,B.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",s),...i})}function k(e){let{className:s,...i}=e;return(0,t.jsx)(N.hE,{"data-slot":"alert-dialog-title",className:(0,B.cn)("text-lg font-semibold",s),...i})}function U(e){let{className:s,...i}=e;return(0,t.jsx)(N.VY,{"data-slot":"alert-dialog-description",className:(0,B.cn)("text-muted-foreground text-sm",s),...i})}function M(e){let{className:s,...i}=e;return(0,t.jsx)(N.rc,{className:(0,B.cn)((0,H.r)({variant:"destructive"}),s),...i})}function Z(e){let{className:s,...i}=e;return(0,t.jsx)(N.ZD,{className:(0,B.cn)((0,H.r)({variant:"outline"}),s),...i})}var S=i(5784),X=i(9840),O=i(7777),z=i(4416);let J=r.forwardRef((e,s)=>{let{className:i,value:a,onValueChange:l,...o}=e,[c,d]=r.useState(""),g=e=>{l(a.filter(s=>s!==e))};return(0,t.jsxs)("div",{className:(0,B.cn)("border-input flex flex-wrap items-center gap-2 rounded-md border p-2",i),children:[a.map(e=>(0,t.jsxs)(n.E,{variant:"secondary",className:"flex items-center gap-1",children:[e,(0,t.jsx)("button",{type:"button",className:"ring-offset-background focus:ring-ring cursor-pointer rounded-full outline-none focus:ring-2 focus:ring-offset-2",onClick:()=>g(e),children:(0,t.jsx)(z.A,{className:"h-3 w-3"})})]},e)),(0,t.jsx)(D.p,{ref:s,type:"text",value:c,onChange:e=>{d(e.target.value)},onKeyDown:e=>{if("Enter"===e.key||","===e.key){e.preventDefault();let s=c.trim();s&&!a.includes(s)&&l([...a,s]),d("")}else"Backspace"===e.key&&""===c&&a.length>0&&l(a.slice(0,-1))},className:"flex-1 border-0 shadow-none focus-visible:ring-0",...o})]})});J.displayName="TagInput";var T=i(6037),_=i(1284),$=i(4869),ee=i(4229),es=i(9231),ei=i.n(es),et=i(8103);let er={azure:{title:"Azure OpenAI Meta Config",fields:[{name:"endpoint",label:"Endpoint",type:"text",placeholder:"https://your-resource.openai.azure.com or env.AZURE_ENDPOINT"},{name:"api_version",label:"API Version (Optional)",type:"text",placeholder:"YYYY-MM-DD or env.AZURE_VERSION"},{name:"deployments",label:"Deployments (JSON format)",type:"textarea",placeholder:'{ "gpt-4": "my-deployment" }',isJson:!0}]},bedrock:{title:"AWS Bedrock Meta Config",fields:[{name:"region",label:"Region",type:"text",placeholder:"us-east-1 or env.AWS_REGION"}]},vertex:{title:"Google Vertex AI Meta Config",fields:[{name:"project_id",label:"Project ID",type:"text",placeholder:"gcp-project-id or env.GCP_PROJECT"},{name:"region",label:"Region",type:"text",placeholder:"us-central1 or env.GCP_REGION"},{name:"auth_credentials",label:"Auth Credentials (JSON key)",type:"textarea",placeholder:"JSON key or env.GCP_CREDS"}]}},ea=e=>{let{provider:s,metaConfig:i,onMetaConfigChange:r}=e,a=er[s];if(!a)return null;let l=e=>{let s=i[e.name];return"textarea"===e.type?(0,t.jsx)(v,{placeholder:e.placeholder,value:e.isJson?"string"==typeof s?s:JSON.stringify(s,null,2):s||"",onChange:s=>{r(e.name,s.target.value)},onBlur:s=>{if(e.isJson)try{let i=JSON.parse(s.target.value);r(e.name,i)}catch(e){}},rows:4,className:"max-w-full font-mono text-sm wrap-anywhere"}):(0,t.jsx)(D.p,{placeholder:e.placeholder,value:s||"",onChange:s=>r(e.name,s.target.value)})};return(0,t.jsxs)("div",{className:"",children:[(0,t.jsx)(u.aR,{className:"mb-2 px-0",children:(0,t.jsxs)(u.ZB,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(et.A,{className:"h-4 w-4"}),a.title,(0,t.jsx)(O.Bc,{children:(0,t.jsxs)(O.m_,{children:[(0,t.jsx)(O.k$,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(_.A,{className:"text-muted-foreground ml-1 h-3 w-3"})})}),(0,t.jsx)(O.ZI,{className:"max-w-fit",children:(0,t.jsxs)("p",{children:["Use ",(0,t.jsx)("code",{className:"rounded bg-neutral-100 px-1 py-0.5 text-neutral-800",children:"env."})," to read the value from an environment variable."]})})]})})]})}),(0,t.jsx)(u.Wu,{className:"space-y-4 px-0",children:a.fields.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium",children:e.label}),l(e)]},e.name))})]})};class el{isValid(){return!this.rules.some(e=>!e.isValid)}getErrors(){return this.rules.filter(e=>!e.isValid).map(e=>e.message)}getFirstError(){let e=this.rules.find(e=>!e.isValid);return null==e?void 0:e.message}static required(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"This field is required";return{isValid:null!=e&&""!==e&&0!==e,message:s}}static minValue(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at least ".concat(s);return{isValid:!isNaN(e)&&e>=s,message:i}}static maxValue(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at most ".concat(s);return{isValid:!isNaN(e)&&e<=s,message:i}}static pattern(e,s,i){return{isValid:s.test(e||""),message:i}}static email(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Must be a valid email";return this.pattern(e,/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,s)}static url(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Must be a valid URL";return this.pattern(e,/^https?:\/\/.+/,s)}static minLength(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at least ".concat(s," characters");return{isValid:(e||"").length>=s,message:i}}static maxLength(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at most ".concat(s," characters");return{isValid:(e||"").length<=s,message:i}}static arrayMinLength(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must have at least ".concat(s," items");return{isValid:(null==e?void 0:e.length)>=s,message:i}}static arrayMaxLength(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must have at most ".concat(s," items");return{isValid:(null==e?void 0:e.length)<=s,message:i}}static arrayUnique(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Must have unique items";return{isValid:(null==e?void 0:e.length)===new Set(e).size,message:s}}static arraysEqual(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be equal";return{isValid:(null==e?void 0:e.length)===(null==s?void 0:s.length)&&(null==e?void 0:e.every((e,i)=>e===s[i])),message:i}}static custom(e,s){return{isValid:e,message:s}}static all(e){return e.find(e=>!e.isValid)||{isValid:!0,message:""}}constructor(e){this.rules=e.filter(e=>void 0!==e)}}let en={openai:(0,t.jsx)("svg",{fill:"#000000",width:"28",height:"28",viewBox:"0 0 24 24",role:"img",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"})}),anthropic:(0,t.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.1315 4.10742H20.335L28 23.3341H23.7965L16.1315 4.10742ZM7.66383 4.10742H12.0587L19.7237 23.3341H15.4373L13.8705 19.2963H5.85317L4.28517 23.3329H0L7.665 4.10976L7.66383 4.10742ZM12.4845 15.7263L9.86183 8.96892L7.23917 15.7274H12.4833L12.4845 15.7263Z",fill:"black"})}),bedrock:(0,t.jsxs)("svg",{width:"29",height:"28",viewBox:"0 0 29 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("path",{d:"M15.7276 18.0981H19.3209C19.5706 18.0981 19.7748 18.3046 19.7748 18.5577V20.6811C20.2076 20.7878 20.5919 21.0369 20.8661 21.3883C21.1403 21.7397 21.2885 22.1731 21.2868 22.6189C21.2868 23.7191 20.4059 24.6116 19.3209 24.6116C18.2348 24.6116 17.3539 23.7191 17.3539 22.6189C17.3539 21.6774 18.0003 20.8876 18.8671 20.6799V19.0174H15.7288V24.4576C15.7291 24.5366 15.7091 24.6143 15.6707 24.6834C15.6323 24.7525 15.5767 24.8105 15.5094 24.8519L12.3711 26.7664C12.2999 26.8099 12.218 26.8328 12.1345 26.8324C12.0511 26.832 11.9694 26.8083 11.8986 26.7641L6.1516 23.1637C6.08529 23.1221 6.03068 23.0643 5.99291 22.9957C5.95515 22.9271 5.93548 22.85 5.93577 22.7717V19.0162L3.0646 17.3479C2.99931 17.31 2.94431 17.2567 2.90444 17.1927C2.86457 17.1286 2.84105 17.0557 2.83594 16.9804V16.9489V10.9732C2.83594 10.8099 2.9211 10.6582 3.05994 10.5766L5.93577 8.87089V5.18889C5.93577 5.03839 6.0081 4.89839 6.12827 4.81322L6.15277 4.79689L11.9009 1.23389C11.9722 1.18953 12.0544 1.16602 12.1384 1.16602C12.2223 1.16602 12.3045 1.18953 12.3758 1.23389L15.5141 3.18806C15.5804 3.22968 15.635 3.28751 15.6728 3.3561C15.7106 3.42469 15.7302 3.50176 15.7299 3.58006V8.86622H20.2286V6.62972C19.7956 6.52295 19.4111 6.27369 19.1369 5.92202C18.8626 5.57034 18.7146 5.13668 18.7166 4.69072C18.7166 3.59056 19.5974 2.69806 20.6824 2.69806C21.7686 2.69806 22.6483 3.59056 22.6483 4.69072C22.6483 5.63222 22.0031 6.42206 21.1363 6.62972V9.32589C21.1367 9.38589 21.1253 9.4454 21.1028 9.50099C21.0802 9.55659 21.0469 9.60719 21.0047 9.64989C20.9626 9.69259 20.9124 9.72655 20.8571 9.74983C20.8018 9.77311 20.7424 9.78525 20.6824 9.78556H15.7299V11.8926H23.4579C23.5572 11.4588 23.8003 11.0713 24.1477 10.7932C24.495 10.5151 24.9263 10.3627 25.3713 10.3607C26.4563 10.3607 27.3371 11.2521 27.3371 12.3522C27.3371 13.4524 26.4574 14.3449 25.3713 14.3449C24.9261 14.3429 24.4948 14.1903 24.1474 13.9119C23.8 13.6336 23.557 13.2459 23.4579 12.8119H15.7276V15.0717H21.5061L22.5736 16.4484C22.8709 16.2745 23.2092 16.1831 23.5536 16.1836C24.6398 16.1836 25.5194 17.0749 25.5194 18.1751C25.5194 19.2752 24.6398 20.1677 23.5536 20.1677C22.4686 20.1677 21.5878 19.2752 21.5878 18.1751C21.5878 17.7714 21.7068 17.3957 21.9098 17.0819L21.0651 15.9911H15.7276V18.0981ZM12.1378 2.16489L9.75427 3.64189V7.10456H8.8466V4.20422L6.84344 5.44672V8.88256L9.3051 10.4692L11.8333 8.87789V6.22256H12.7409V9.13456C12.7409 9.29322 12.6593 9.44139 12.5263 9.52539L9.79277 11.2439V13.6717L11.4518 14.8489L10.9314 15.6026L9.2911 14.4382L7.5061 15.6107L7.0126 14.8407L8.8851 13.6099V11.2882L6.38027 9.67122L3.7436 11.2346V13.1899L6.04427 11.8027L6.5086 12.5926L3.7436 14.2597V16.6829L6.2706 18.1506L8.91894 16.5546L9.3821 17.3444L6.84344 18.8739V22.5162L9.0321 23.8871L11.7913 22.2234L12.2556 23.0144L9.90244 24.4331L12.1401 25.8342L14.8211 24.1974V17.4541L9.2701 20.8292L8.80344 20.0417L14.8211 16.3831V3.83672L12.1378 2.16489ZM19.3209 21.5479C19.1809 21.5487 19.0423 21.577 18.9132 21.6314C18.7841 21.6858 18.667 21.7651 18.5686 21.8648C18.4702 21.9645 18.3925 22.0826 18.3398 22.2124C18.2871 22.3422 18.2605 22.4811 18.2616 22.6212C18.2616 23.2127 18.7353 23.6922 19.3209 23.6922C19.4608 23.6913 19.5991 23.6628 19.728 23.6085C19.8569 23.5541 19.9738 23.4749 20.0721 23.3753C20.1703 23.2757 20.248 23.1578 20.3007 23.0282C20.3534 22.8986 20.38 22.7599 20.3791 22.6201C20.3802 22.4801 20.3537 22.3413 20.301 22.2115C20.2484 22.0818 20.1708 21.9637 20.0725 21.8641C19.9742 21.7644 19.8573 21.685 19.7283 21.6306C19.5993 21.5761 19.4609 21.5488 19.3209 21.5479ZM23.5559 17.1029C23.4159 17.1037 23.2773 17.132 23.1482 17.1864C23.0191 17.2408 22.902 17.3201 22.8036 17.4198C22.7052 17.5195 22.6275 17.6376 22.5748 17.7674C22.5221 17.8972 22.4955 18.0361 22.4966 18.1762C22.4966 18.7689 22.9703 19.2496 23.5548 19.2496C23.6948 19.2488 23.8334 19.2204 23.9625 19.166C24.0916 19.1116 24.2087 19.0323 24.3071 18.9326C24.4055 18.8329 24.4832 18.7148 24.5359 18.585C24.5886 18.4552 24.6152 18.3163 24.6141 18.1762C24.6152 18.0361 24.5886 17.8972 24.5359 17.7674C24.4832 17.6376 24.4055 17.5195 24.3071 17.4198C24.2087 17.3201 24.0916 17.2408 23.9625 17.1864C23.8334 17.132 23.696 17.1037 23.5559 17.1029ZM25.3701 11.2812C25.23 11.282 25.0915 11.3104 24.9624 11.3648C24.8333 11.4191 24.7162 11.4984 24.6178 11.5981C24.5194 11.6978 24.4416 11.816 24.3889 11.9458C24.3363 12.0756 24.3097 12.2145 24.3108 12.3546C24.3108 12.9461 24.7856 13.4256 25.3701 13.4256C25.51 13.4246 25.6483 13.3962 25.7772 13.3418C25.9061 13.2874 26.023 13.2082 26.1212 13.1086C26.2195 13.0091 26.2972 12.8911 26.3499 12.7615C26.4026 12.632 26.4292 12.4933 26.4283 12.3534C26.4293 12.2134 26.4028 12.0746 26.3502 11.9449C26.2976 11.8152 26.2199 11.6971 26.1217 11.5974C26.0234 11.4977 25.9064 11.4184 25.7775 11.3639C25.6485 11.3095 25.5101 11.281 25.3701 11.2801V11.2812ZM20.6813 3.61622C20.5413 3.61714 20.4029 3.64564 20.2739 3.70009C20.1449 3.75454 20.028 3.83387 19.9297 3.93356C19.8314 4.03324 19.7538 4.15132 19.7012 4.28104C19.6486 4.41076 19.622 4.54958 19.6231 4.68956C19.6231 5.28222 20.0968 5.76289 20.6813 5.76289C20.8213 5.76213 20.9599 5.73374 21.089 5.67936C21.2181 5.62498 21.3352 5.54566 21.4336 5.44597C21.532 5.34627 21.6098 5.22814 21.6624 5.09834C21.7151 4.96854 21.7417 4.82963 21.7406 4.68956C21.7417 4.54948 21.7151 4.41057 21.6624 4.28077C21.6098 4.15098 21.532 4.03285 21.4336 3.93315C21.3352 3.83345 21.2181 3.75414 21.089 3.69975C20.9599 3.64537 20.8213 3.61699 20.6813 3.61622Z",fill:"url(#paint0_linear_2482_3244)"}),(0,t.jsx)("defs",{children:(0,t.jsxs)("linearGradient",{id:"paint0_linear_2482_3244",x1:"1962.93",y1:"514.493",x2:"424.608",y2:"1982.98",gradientUnits:"userSpaceOnUse",children:[(0,t.jsx)("stop",{"stop-color":"#6350FB"}),(0,t.jsx)("stop",{offset:"0.5","stop-color":"#3D8FFF"}),(0,t.jsx)("stop",{offset:"1","stop-color":"#9AD8F8"})]})})]}),cohere:(0,t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.48006 16.4482C10.1707 16.4482 11.5451 16.4097 13.4444 15.628C15.6576 14.7168 20.0617 13.0613 23.2386 11.3627C25.4611 10.175 26.4352 8.60235 26.4352 6.48602C26.4352 5.78728 26.2976 5.0954 26.0302 4.44987C25.7627 3.80434 25.3708 3.21782 24.8766 2.7238C24.3825 2.22977 23.7959 1.83793 23.1503 1.57064C22.5047 1.30336 21.8128 1.16586 21.1141 1.16602H8.80456C6.77807 1.16633 4.83468 1.97156 3.40184 3.40462C1.969 4.83768 1.16406 6.78119 1.16406 8.80768C1.16406 13.0275 4.36656 16.4482 9.48006 16.4482Z",fill:"#39594D"}),(0,t.jsx)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.5625 21.7119C11.5624 20.7002 11.8622 19.7113 12.4239 18.8699C12.9856 18.0285 13.784 17.3724 14.7183 16.9846L18.5952 15.3746C22.5163 13.7482 26.8318 16.6299 26.8318 20.8754C26.8318 21.6575 26.6778 22.4319 26.3784 23.1544C26.0791 23.8769 25.6404 24.5334 25.0873 25.0864C24.5343 25.6393 23.8777 26.0779 23.1551 26.3771C22.4325 26.6763 21.6581 26.8302 20.876 26.8301L16.6795 26.8289C16.0074 26.8289 15.3419 26.6965 14.721 26.4393C14.1001 26.182 13.536 25.805 13.0608 25.3297C12.5856 24.8545 12.2088 24.2902 11.9517 23.6693C11.6946 23.0483 11.5623 22.3828 11.5625 21.7107V21.7119Z",fill:"#D18EE2"}),(0,t.jsx)("path",{d:"M5.5694 17.4551C4.99084 17.4549 4.41792 17.5688 3.88337 17.7901C3.34882 18.0114 2.86312 18.3359 2.45401 18.745C2.04491 19.1541 1.72042 19.6398 1.49909 20.1744C1.27775 20.7089 1.16391 21.2819 1.16406 21.8604V22.4309C1.18287 23.5867 1.65522 24.6888 2.47922 25.4995C3.30323 26.3102 4.41286 26.7646 5.56881 26.7646C6.72476 26.7646 7.8344 26.3102 8.6584 25.4995C9.48241 24.6888 9.95475 23.5867 9.97356 22.4309V21.8592C9.97356 21.2809 9.85965 20.7082 9.63832 20.1738C9.41699 19.6395 9.09258 19.154 8.68361 18.745C8.27465 18.3361 7.78914 18.0117 7.2548 17.7903C6.72046 17.569 6.14776 17.4551 5.5694 17.4551Z",fill:"#FF7759"})]}),vertex:(0,t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsxs)("g",{"clip-path":"url(#clip0_2482_3231)",children:[(0,t.jsx)("path",{d:"M13.997 23.5859C13.4114 23.5859 12.8498 23.8186 12.4357 24.2326C12.0217 24.6467 11.7891 25.2083 11.7891 25.7939C11.7891 26.3794 12.0217 26.941 12.4357 27.3551C12.8498 27.7692 13.4114 28.0018 13.997 28.0018C14.5826 28.0018 15.1441 27.7692 15.5582 27.3551C15.9723 26.941 16.2049 26.3794 16.2049 25.7939C16.2049 25.2083 15.9723 24.6467 15.5582 24.2326C15.1441 23.8186 14.5826 23.5859 13.997 23.5859ZM13.997 26.8596C13.7824 26.8596 13.5727 26.7958 13.3946 26.6762C13.2164 26.5567 13.0778 26.3869 12.9964 26.1884C12.915 25.9899 12.8945 25.7717 12.9375 25.5615C12.9805 25.3513 13.085 25.1586 13.2378 25.008C13.3905 24.8574 13.5847 24.7556 13.7954 24.7156C14.0062 24.6756 14.2241 24.6992 14.4215 24.7833C14.6188 24.8675 14.7866 25.0085 14.9036 25.1883C15.0206 25.3682 15.0815 25.5788 15.0785 25.7933C15.0785 25.9346 15.0504 26.0745 14.9959 26.2049C14.9413 26.3352 14.8614 26.4535 14.7608 26.5527C14.6602 26.6519 14.5408 26.7301 14.4097 26.7828C14.2786 26.8355 14.1383 26.8616 13.997 26.8596Z",fill:"#4285F4"}),(0,t.jsx)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M25.2994 16.5009C25.5759 16.5453 25.8268 16.6876 26.0053 16.9023C26.1645 17.1361 26.2312 17.4208 26.1924 17.701C26.1536 17.9813 26.0121 18.2372 25.7952 18.4189L16.1819 25.5146C16.1332 25.1296 15.9839 24.7642 15.7489 24.4554C15.514 24.1465 15.2018 23.905 14.8438 23.7553L24.5037 16.6619C24.7408 16.5139 25.0235 16.4567 25.2994 16.5009Z",fill:"#669DF6"}),(0,t.jsx)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.8069 25.482L2.22044 18.405C1.99694 18.2322 1.84767 17.9808 1.80303 17.7018C1.75838 17.4229 1.8217 17.1374 1.9801 16.9035C2.15708 16.6859 2.40802 16.5411 2.68498 16.4968C2.96195 16.4524 3.24555 16.5117 3.4816 16.6632L13.1416 23.7565C12.7888 23.904 12.4803 24.1405 12.2464 24.443C12.0124 24.7454 11.861 25.1035 11.8069 25.482Z",fill:"#AECBFA"}),(0,t.jsx)("path",{d:"M4.98383 5.2215C4.68646 5.21757 4.40238 5.09769 4.19209 4.88741C3.9818 4.67712 3.86193 4.39303 3.858 4.09566V1.27233C3.83948 1.11248 3.85498 0.950517 3.90348 0.79708C3.95199 0.643643 4.0324 0.502201 4.13944 0.382042C4.24648 0.261884 4.37773 0.165726 4.52456 0.0998824C4.67139 0.0340392 4.8305 0 4.99142 0C5.15234 0 5.31144 0.0340392 5.45827 0.0998824C5.60511 0.165726 5.73635 0.261884 5.84339 0.382042C5.95043 0.502201 6.03085 0.643643 6.07935 0.79708C6.12786 0.950517 6.14336 1.11248 6.12483 1.27233V4.09566C6.12085 4.39564 5.99888 4.68198 5.78533 4.89269C5.57178 5.1034 5.28384 5.22152 4.98383 5.2215ZM4.9535 15.207C5.25611 15.207 5.54633 15.0868 5.76031 14.8728C5.97429 14.6588 6.0945 14.3686 6.0945 14.066C6.0945 13.7634 5.97429 13.4732 5.76031 13.2592C5.54633 13.0452 5.25611 12.925 4.9535 12.925C4.65089 12.925 4.36067 13.0452 4.14669 13.2592C3.93271 13.4732 3.8125 13.7634 3.8125 14.066C3.8125 14.3686 3.93271 14.6588 4.14669 14.8728C4.36067 15.0868 4.65089 15.207 4.9535 15.207ZM4.9535 11.889C5.10334 11.889 5.25171 11.8595 5.39014 11.8021C5.52857 11.7448 5.65436 11.6608 5.76031 11.5548C5.86626 11.4489 5.95031 11.3231 6.00765 11.1846C6.06499 11.0462 6.0945 10.8978 6.0945 10.748C6.0945 10.5982 6.06499 10.4498 6.00765 10.3114C5.95031 10.1729 5.86626 10.0471 5.76031 9.94119C5.65436 9.83524 5.52857 9.75119 5.39014 9.69385C5.25171 9.63651 5.10334 9.607 4.9535 9.607C4.65089 9.607 4.36067 9.72721 4.14669 9.94119C3.93271 10.1552 3.8125 10.4454 3.8125 10.748C3.8125 11.0506 3.93271 11.3408 4.14669 11.5548C4.36067 11.7688 4.65089 11.889 4.9535 11.889ZM4.9535 8.55466C5.25611 8.55466 5.54633 8.43445 5.76031 8.22047C5.97429 8.00649 6.0945 7.71628 6.0945 7.41366C6.0945 7.11105 5.97429 6.82083 5.76031 6.60685C5.54633 6.39288 5.25611 6.27266 4.9535 6.27266C4.65089 6.27266 4.36067 6.39288 4.14669 6.60685C3.93271 6.82083 3.8125 7.11105 3.8125 7.41366C3.8125 7.71628 3.93271 8.00649 4.14669 8.22047C4.36067 8.43445 4.65089 8.55466 4.9535 8.55466Z",fill:"#AECBFA"}),(0,t.jsx)("path",{d:"M23.0008 8.52503C22.7007 8.52104 22.4141 8.3989 22.2034 8.1851C21.9927 7.9713 21.8747 7.68306 21.875 7.38286V4.55953C21.875 4.26094 21.9936 3.97458 22.2048 3.76344C22.4159 3.55231 22.7022 3.43369 23.0008 3.43369C23.2994 3.43369 23.5858 3.55231 23.7969 3.76344C24.0081 3.97458 24.1267 4.26094 24.1267 4.55953V7.38286C24.129 7.53212 24.1016 7.68034 24.046 7.8189C23.9905 7.95745 23.9079 8.08356 23.8031 8.18987C23.6983 8.29618 23.5734 8.38057 23.4357 8.43811C23.2979 8.49565 23.1501 8.5252 23.0008 8.52503ZM23.03 15.2217C23.1798 15.2217 23.3282 15.1922 23.4666 15.1348C23.6051 15.0775 23.7309 14.9935 23.8368 14.8875C23.9428 14.7815 24.0268 14.6558 24.0841 14.5173C24.1415 14.3789 24.171 14.2305 24.171 14.0807C24.171 13.9309 24.1415 13.7825 24.0841 13.644C24.0268 13.5056 23.9428 13.3798 23.8368 13.2739C23.7309 13.1679 23.6051 13.0839 23.4666 13.0265C23.3282 12.9692 23.1798 12.9397 23.03 12.9397C22.7274 12.9397 22.4372 13.0599 22.2232 13.2739C22.0092 13.4879 21.889 13.7781 21.889 14.0807C21.889 14.3833 22.0092 14.6735 22.2232 14.8875C22.4372 15.1015 22.7274 15.2217 23.03 15.2217ZM23.03 11.843C23.3326 11.843 23.6228 11.7228 23.8368 11.5088C24.0508 11.2949 24.171 11.0046 24.171 10.702C24.171 10.3994 24.0508 10.1092 23.8368 9.89522C23.6228 9.68124 23.3326 9.56102 23.03 9.56102C22.7274 9.56102 22.4372 9.68124 22.2232 9.89522C22.0092 10.1092 21.889 10.3994 21.889 10.702C21.889 11.0046 22.0092 11.2949 22.2232 11.5088C22.4372 11.7228 22.7274 11.843 23.03 11.843ZM23.03 2.41286C23.1798 2.41286 23.3282 2.38335 23.4666 2.32601C23.6051 2.26867 23.7309 2.18462 23.8368 2.07867C23.9428 1.97272 24.0268 1.84693 24.0841 1.7085C24.1415 1.57007 24.171 1.4217 24.171 1.27186C24.171 1.12202 24.1415 0.97365 24.0841 0.835218C24.0268 0.696785 23.9428 0.571002 23.8368 0.465051C23.7309 0.359099 23.6051 0.275053 23.4666 0.217713C23.3282 0.160372 23.1798 0.130859 23.03 0.130859C22.7274 0.130859 22.4372 0.251072 22.2232 0.465051C22.0092 0.67903 21.889 0.969247 21.889 1.27186C21.889 1.57447 22.0092 1.86469 22.2232 2.07867C22.4372 2.29265 22.7274 2.41286 23.03 2.41286Z",fill:"#4285F4"}),(0,t.jsx)("path",{d:"M13.9926 18.5705C13.6952 18.5666 13.4111 18.4467 13.2008 18.2364C12.9905 18.0261 12.8707 17.742 12.8667 17.4447V14.5758C12.8989 14.2978 13.0322 14.0413 13.2412 13.8552C13.4502 13.669 13.7203 13.5662 14.0001 13.5662C14.28 13.5662 14.5501 13.669 14.7591 13.8552C14.9681 14.0413 15.1013 14.2978 15.1336 14.5758V17.4143C15.1359 17.5655 15.1081 17.7157 15.0517 17.856C14.9954 17.9963 14.9117 18.124 14.8055 18.2317C14.6993 18.3393 14.5727 18.4247 14.4331 18.4829C14.2935 18.541 14.1438 18.5708 13.9926 18.5705ZM13.9926 21.8897C14.2952 21.8897 14.5854 21.7694 14.7994 21.5555C15.0133 21.3415 15.1336 21.0513 15.1336 20.7487C15.1336 20.446 15.0133 20.1558 14.7994 19.9419C14.5854 19.7279 14.2952 19.6077 13.9926 19.6077C13.69 19.6077 13.3997 19.7279 13.1858 19.9419C12.9718 20.1558 12.8516 20.446 12.8516 20.7487C12.8516 21.0513 12.9718 21.3415 13.1858 21.5555C13.3997 21.7694 13.69 21.8897 13.9926 21.8897ZM13.9926 12.414C14.2952 12.414 14.5854 12.2938 14.7994 12.0798C15.0133 11.8658 15.1336 11.5756 15.1336 11.273C15.1336 10.9704 15.0133 10.6802 14.7994 10.4662C14.5854 10.2522 14.2952 10.132 13.9926 10.132C13.69 10.132 13.3997 10.2522 13.1858 10.4662C12.9718 10.6802 12.8516 10.9704 12.8516 11.273C12.8516 11.5756 12.9718 11.8658 13.1858 12.0798C13.3997 12.2938 13.69 12.414 13.9926 12.414ZM13.9926 9.08083C14.2952 9.08083 14.5854 8.96062 14.7994 8.74664C15.0133 8.53266 15.1336 8.24244 15.1336 7.93983C15.1336 7.63722 15.0133 7.347 14.7994 7.13302C14.5854 6.91904 14.2952 6.79883 13.9926 6.79883C13.69 6.79883 13.3997 6.91904 13.1858 7.13302C12.9718 7.347 12.8516 7.63722 12.8516 7.93983C12.8516 8.24244 12.9718 8.53266 13.1858 8.74664C13.3997 8.96062 13.69 9.08083 13.9926 9.08083Z",fill:"#669DF6"}),(0,t.jsx)("path",{d:"M18.5011 11.8726C18.2037 11.8686 17.9196 11.7488 17.7093 11.5385C17.499 11.3282 17.3792 11.0441 17.3752 10.7467V7.92339C17.3464 7.68214 17.3955 7.43801 17.5152 7.2266C17.6349 7.0152 17.8191 6.84757 18.0407 6.74819C18.2624 6.6488 18.5101 6.62285 18.7476 6.67413C18.9851 6.7254 19.1999 6.85122 19.3609 7.03322C19.4678 7.15343 19.5481 7.29486 19.5966 7.44827C19.645 7.60167 19.6605 7.76358 19.6421 7.92339V10.7467C19.6381 11.0467 19.5161 11.333 19.3026 11.5437C19.089 11.7545 18.8011 11.8726 18.5011 11.8726ZM18.5162 5.73122C18.6661 5.73122 18.8144 5.70171 18.9529 5.64437C19.0913 5.58703 19.2171 5.50298 19.323 5.39703C19.429 5.29108 19.513 5.16529 19.5704 5.02686C19.6277 4.88843 19.6572 4.74006 19.6572 4.59022C19.6572 4.44038 19.6277 4.29201 19.5704 4.15358C19.513 4.01514 19.429 3.88936 19.323 3.78341C19.2171 3.67746 19.0913 3.59341 18.9529 3.53607C18.8144 3.47873 18.6661 3.44922 18.5162 3.44922C18.2136 3.44922 17.9234 3.56943 17.7094 3.78341C17.4954 3.99739 17.3752 4.28761 17.3752 4.59022C17.3752 4.89283 17.4954 5.18305 17.7094 5.39703C17.9234 5.61101 18.2136 5.73122 18.5162 5.73122ZM18.5162 18.4946C18.8188 18.4946 19.1091 18.3743 19.323 18.1604C19.537 17.9464 19.6572 17.6562 19.6572 17.3536C19.6572 17.0509 19.537 16.7607 19.323 16.5467C19.1091 16.3328 18.8188 16.2126 18.5162 16.2126C18.2136 16.2126 17.9234 16.3328 17.7094 16.5467C17.4954 16.7607 17.3752 17.0509 17.3752 17.3536C17.3752 17.6562 17.4954 17.9464 17.7094 18.1604C17.9234 18.3743 18.2136 18.4946 18.5162 18.4946ZM18.5162 15.1614C18.8188 15.1614 19.1091 15.0412 19.323 14.8272C19.537 14.6132 19.6572 14.323 19.6572 14.0204C19.6572 13.7178 19.537 13.4276 19.323 13.2136C19.1091 12.9996 18.8188 12.8794 18.5162 12.8794C18.2136 12.8794 17.9234 12.9996 17.7094 13.2136C17.4954 13.4276 17.3752 13.7178 17.3752 14.0204C17.3752 14.323 17.4954 14.6132 17.7094 14.8272C17.9234 15.0412 18.2136 15.1614 18.5162 15.1614Z",fill:"#4285F4"}),(0,t.jsx)("path",{d:"M9.47752 18.4957C9.78013 18.4957 10.0704 18.3755 10.2843 18.1615C10.4983 17.9475 10.6185 17.6573 10.6185 17.3547C10.6185 17.0521 10.4983 16.7619 10.2843 16.5479C10.0704 16.3339 9.78013 16.2137 9.47752 16.2137C9.17491 16.2137 8.88469 16.3339 8.67071 16.5479C8.45673 16.7619 8.33652 17.0521 8.33652 17.3547C8.33652 17.6573 8.45673 17.9475 8.67071 18.1615C8.88469 18.3755 9.17491 18.4957 9.47752 18.4957ZM9.47752 9.08072C9.78013 9.08072 10.0704 8.96051 10.2843 8.74653C10.4983 8.53255 10.6185 8.24233 10.6185 7.93972C10.6185 7.63711 10.4983 7.34689 10.2843 7.13291C10.0704 6.91893 9.78013 6.79872 9.47752 6.79872C9.17491 6.79872 8.88469 6.91893 8.67071 7.13291C8.45673 7.34689 8.33652 7.63711 8.33652 7.93972C8.33652 8.24233 8.45673 8.53255 8.67071 8.74653C8.88469 8.96051 9.17491 9.08072 9.47752 9.08072ZM9.47752 5.73239C9.78029 5.73239 10.0707 5.61211 10.2847 5.39802C10.4988 5.18393 10.6191 4.89357 10.6191 4.5908C10.6191 4.28804 10.4988 3.99767 10.2847 3.78358C10.0707 3.56949 9.78029 3.44922 9.47752 3.44922C9.17475 3.44922 8.88439 3.56949 8.6703 3.78358C8.45621 3.99767 8.33594 4.28804 8.33594 4.5908C8.33594 4.89357 8.45621 5.18393 8.6703 5.39802C8.88439 5.61211 9.17475 5.73239 9.47752 5.73239ZM9.49269 15.1626C9.1976 15.1628 8.91391 15.0487 8.70116 14.8442C8.48841 14.6397 8.36315 14.3607 8.35169 14.0659V11.2134C8.35169 10.9148 8.4703 10.6284 8.68144 10.4173C8.89257 10.2062 9.17893 10.0876 9.47752 10.0876C9.77611 10.0876 10.0625 10.2062 10.2736 10.4173C10.4847 10.6284 10.6034 10.9148 10.6034 11.2134V14.0659C10.5956 14.3567 10.4756 14.6332 10.2686 14.8376C10.0616 15.042 9.78357 15.1584 9.49269 15.1626Z",fill:"#AECBFA"})]}),(0,t.jsx)("defs",{children:(0,t.jsx)("clipPath",{id:"clip0_2482_3231",children:(0,t.jsx)("rect",{width:"28",height:"28",fill:"white"})})})]}),ollama:(0,t.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.22529 1.27126C9.47729 1.37043 9.70479 1.53376 9.91129 1.7496C10.2555 2.1066 10.546 2.6176 10.7676 3.2231C10.9905 3.8321 11.1351 4.50643 11.19 5.1831C11.9245 4.76754 12.7397 4.5145 13.5805 4.4411L13.64 4.43643C14.655 4.35476 15.6583 4.53793 16.5333 4.98943C16.6511 5.05126 16.7666 5.11776 16.8798 5.18776C16.9381 4.52393 17.0805 3.86476 17.2998 3.26976C17.5215 2.6631 17.812 2.15326 18.155 1.7951C18.3466 1.58774 18.5811 1.42453 18.8421 1.31676C19.142 1.2001 19.4605 1.1791 19.7708 1.26776C20.2386 1.40076 20.64 1.6971 20.9561 2.1276C21.2455 2.52076 21.4625 3.02476 21.6106 3.6291C21.879 4.71876 21.9256 6.1526 21.7448 7.8816L21.8066 7.92826L21.837 7.95043C22.7201 8.62243 23.335 9.58026 23.6605 10.6921C24.168 12.4269 23.9125 14.3729 23.0375 15.4614L23.0165 15.4859L23.0188 15.4894C23.5053 16.3784 23.8005 17.3176 23.8635 18.2894L23.8658 18.3244C23.9405 19.5669 23.6325 20.8176 22.9161 22.0461L22.908 22.0578L22.9196 22.0858C23.4703 23.4356 23.643 24.7948 23.4306 26.1528L23.4236 26.1983C23.3907 26.3966 23.2805 26.5739 23.1171 26.6911C22.9538 26.8083 22.7506 26.856 22.5521 26.8236C22.4539 26.8083 22.3596 26.7737 22.2747 26.7218C22.1898 26.67 22.116 26.6019 22.0575 26.5215C21.999 26.4411 21.9569 26.3499 21.9336 26.2532C21.9104 26.1565 21.9065 26.0562 21.9221 25.9579C22.117 24.7528 21.9338 23.5441 21.3621 22.3144C21.3088 22.2002 21.2851 22.0744 21.2933 21.9485C21.3014 21.8227 21.3411 21.701 21.4088 21.5946L21.4135 21.5876C22.1181 20.5096 22.4098 19.4526 22.3468 18.4143C22.2931 17.5054 21.9676 16.6129 21.4135 15.7624C21.3057 15.5971 21.2673 15.396 21.3066 15.2026C21.3459 15.0091 21.4597 14.8389 21.6235 14.7288L21.634 14.7218C21.9175 14.5363 22.1788 14.0626 22.3106 13.4151C22.4561 12.6495 22.4181 11.8602 22.1998 11.1121C21.9606 10.2954 21.5231 9.6141 20.9106 9.1486C20.2165 8.61893 19.2971 8.36343 18.134 8.43693C17.9819 8.44682 17.8303 8.41086 17.6988 8.3337C17.5674 8.25654 17.4621 8.14172 17.3966 8.0041C17.0303 7.22826 16.496 6.67293 15.8298 6.32876C15.1902 6.00956 14.4742 5.87541 13.7625 5.94143C12.31 6.05693 11.029 6.87593 10.6475 7.90843C10.5935 8.05375 10.4964 8.17911 10.3692 8.26772C10.242 8.35634 10.0908 8.40398 9.93579 8.40426C8.69095 8.4066 7.72729 8.69826 7.02262 9.22443C6.41362 9.67943 5.99829 10.3153 5.77895 11.0771C5.58048 11.7942 5.5533 12.5479 5.69962 13.2774C5.83029 13.9284 6.08579 14.4674 6.37862 14.7579L6.38795 14.7661C6.63529 15.0076 6.68779 15.3844 6.51512 15.6819C6.09512 16.4076 5.78129 17.4891 5.72995 18.5286C5.67162 19.7163 5.94695 20.7476 6.56879 21.4873L6.58745 21.5094C6.68129 21.6188 6.74165 21.7529 6.76131 21.8956C6.78096 22.0384 6.75908 22.1838 6.69829 22.3144C6.02629 23.7564 5.81979 24.9418 6.04262 25.8751C6.08267 26.0692 6.04541 26.2712 5.93875 26.4382C5.8321 26.6053 5.66447 26.7241 5.47155 26.7694C5.27863 26.8147 5.07565 26.7829 4.9058 26.6808C4.73595 26.5787 4.61264 26.4144 4.56212 26.2228C4.27862 25.0351 4.47112 23.6748 5.11395 22.1418L5.13029 22.1009L5.12095 22.0869C4.80501 21.6203 4.56921 21.1041 4.42329 20.5598L4.41745 20.5376C4.24037 19.8585 4.17069 19.1558 4.21095 18.4551C4.26229 17.3934 4.53529 16.3061 4.93662 15.4334L4.95062 15.4031L4.94829 15.4008C4.60645 14.9131 4.35329 14.2889 4.21329 13.5983L4.20745 13.5703C4.01456 12.6069 4.05174 11.6116 4.31595 10.6653C4.62162 9.59776 5.22245 8.68076 6.10795 8.0181C6.17795 7.9656 6.25145 7.9131 6.32495 7.8641C6.13945 6.12226 6.18612 4.6791 6.45562 3.58243C6.60379 2.9781 6.82195 2.4741 7.11129 2.08093C7.42629 1.6516 7.82762 1.35526 8.29545 1.2211C8.60579 1.13243 8.92545 1.15226 9.22529 1.2701V1.27126ZM14.0273 11.8763C15.1193 11.8763 16.1273 12.2414 16.881 12.8738C17.616 13.4886 18.0535 14.3146 18.0535 15.1371C18.0535 16.1731 17.5798 16.9804 16.7316 17.4961C16.0083 17.9336 15.0388 18.1459 13.9281 18.1459C12.751 18.1459 11.7453 17.8438 11.0196 17.2896C10.2998 16.7413 9.89612 15.9713 9.89612 15.1371C9.89612 14.3123 10.3605 13.4839 11.1281 12.8668C11.9075 12.2403 12.9365 11.8763 14.0273 11.8763ZM14.0273 12.9216C13.2179 12.9145 12.43 13.1818 11.792 13.6799C11.2541 14.1116 10.9496 14.6541 10.9496 15.1383C10.9496 15.6376 11.1946 16.1054 11.6613 16.4613C12.1921 16.8661 12.9726 17.1006 13.9281 17.1006C14.8603 17.1006 15.6466 16.9291 16.1821 16.6036C16.7223 16.2769 16.9988 15.8033 16.9988 15.1371C16.9988 14.6436 16.7118 14.0988 16.202 13.6718C15.6373 13.1993 14.872 12.9216 14.0273 12.9216ZM14.7996 14.3333L14.8043 14.3379C14.9443 14.5141 14.9151 14.7696 14.739 14.9096L14.3983 15.1779V15.6983C14.3977 15.8141 14.3511 15.925 14.2689 16.0065C14.1867 16.0881 14.0755 16.1337 13.9596 16.1334C13.8438 16.1337 13.7326 16.0881 13.6503 16.0065C13.5681 15.925 13.5216 15.8141 13.521 15.6983V15.1616L13.2048 14.9073C13.1631 14.8738 13.1284 14.8325 13.1028 14.7856C13.0771 14.7387 13.061 14.6872 13.0554 14.6341C13.0497 14.5809 13.0547 14.5272 13.0699 14.476C13.0851 14.4247 13.1104 14.377 13.1441 14.3356C13.213 14.2518 13.3121 14.1985 13.4201 14.1874C13.528 14.1762 13.6359 14.2081 13.7205 14.2761L13.9713 14.4768L14.228 14.2738C14.3122 14.2072 14.4191 14.1762 14.5259 14.1873C14.6327 14.1984 14.7309 14.2508 14.7996 14.3333ZM8.91962 12.0944C9.47729 12.0944 9.93112 12.5494 9.93112 13.1106C9.93143 13.3796 9.82495 13.6377 9.63507 13.8282C9.44519 14.0188 9.18745 14.1261 8.91845 14.1268C8.64987 14.1258 8.39259 14.0185 8.203 13.8282C8.01341 13.638 7.90695 13.3804 7.90695 13.1118C7.90633 12.8428 8.01252 12.5845 8.20218 12.3938C8.39184 12.203 8.65063 12.0954 8.91962 12.0944ZM19.0766 12.0944C19.6366 12.0944 20.0893 12.5494 20.0893 13.1106C20.0896 13.3796 19.9831 13.6377 19.7932 13.8282C19.6034 14.0188 19.3456 14.1261 19.0766 14.1268C18.808 14.1258 18.5508 14.0185 18.3612 13.8282C18.1716 13.638 18.0651 13.3804 18.0651 13.1118C18.0645 12.8428 18.1707 12.5845 18.3603 12.3938C18.55 12.203 18.8076 12.0954 19.0766 12.0944ZM8.68279 2.68293L8.67929 2.68526C8.54413 2.74404 8.42872 2.84042 8.34679 2.96293L8.34095 2.96993C8.17995 3.19043 8.03995 3.51476 7.93495 3.9406C7.73662 4.74793 7.68295 5.84343 7.79029 7.18626C8.29195 7.03693 8.83912 6.9436 9.42829 6.90976L9.43995 6.9086L9.46212 6.86893C9.51579 6.77326 9.57295 6.6811 9.63479 6.5901C9.77829 5.6906 9.66045 4.6161 9.33962 3.73876C9.18329 3.3141 8.99312 2.98043 8.81112 2.79026C8.77355 2.75073 8.73168 2.71551 8.68629 2.68526L8.68279 2.68293ZM19.3858 2.7296L19.3835 2.73076C19.3381 2.76101 19.2962 2.79623 19.2586 2.83576C19.0766 3.02593 18.8853 3.36076 18.7301 3.78543C18.3918 4.71176 18.2786 5.85743 18.4618 6.7861L18.5295 6.89926L18.5388 6.9156H18.5738C19.1528 6.91575 19.7288 6.99904 20.2841 7.16293C20.3845 5.8516 20.3285 4.77943 20.1348 3.98726C20.0298 3.56143 19.8898 3.2371 19.7276 3.0166L19.723 3.0096C19.6412 2.88665 19.5258 2.78985 19.3905 2.73076H19.3858V2.7296Z",fill:"black"})}),mistral:(0,t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("path",{d:"M4 3.9668H8.0005V7.96613H4V3.9668ZM19.9997 3.9668H24.0013V7.96613H19.9997V3.9668Z",fill:"#FFD700"}),(0,t.jsx)("path",{d:"M4 7.9668H11.9998V11.9673H4.00117L4 7.9668ZM16.0003 7.9668H24.0002V11.9673H16.0003V7.9668Z",fill:"#FFAF00"}),(0,t.jsx)("path",{d:"M4 11.9668H24.0013V15.9661H4V11.9668Z",fill:"#FF8205"}),(0,t.jsx)("path",{d:"M4 15.9668H8.0005V19.9661H4V15.9668ZM12.001 15.9668H16.0015V19.9661H12.001V15.9668ZM19.9997 15.9668H24.0013V19.9661H19.9997V15.9668Z",fill:"#FA500F"}),(0,t.jsx)("path",{d:"M0 19.9668H12.0003V23.9673H0V19.9668ZM15.9997 19.9668H28V23.9673H15.9997V19.9668Z",fill:"#E10500"})]}),azure:(0,t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",xlinkHref:"http://www.w3.org/1999/xlink",children:[(0,t.jsx)("g",{"clip-path":"url(#clip0_2482_3252)",children:(0,t.jsx)("path",{d:"M28 0H0V28H28V0Z",fill:"url(#pattern0_2482_3252)"})}),(0,t.jsxs)("defs",{children:[(0,t.jsx)("pattern",{id:"pattern0_2482_3252",patternContentUnits:"objectBoundingBox",width:"1",height:"1",children:(0,t.jsx)("use",{xlinkHref:"#image0_2482_3252",transform:"scale(0.00166667)"})}),(0,t.jsx)("clipPath",{id:"clip0_2482_3252",children:(0,t.jsx)("rect",{width:"28",height:"28",fill:"white"})}),(0,t.jsx)("image",{id:"image0_2482_3252",width:"600",height:"600",preserveAspectRatio:"none",xlinkHref:"data:image/png;base64,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"})]})]})},eo={base_url:"",default_request_timeout_in_seconds:30,max_retries:0,retry_backoff_initial:1e3,retry_backoff_max:1e4},ec={concurrency:10,buffer_size:100},ed={connected:"bg-green-100 text-green-800",error:"bg-red-100 text-red-800",disconnected:"bg-gray-100 text-gray-800"},eg=(e,s)=>{let i=!e,t=(null==e?void 0:e.name)||s||"",r=!["vertex","ollama"].includes(t);return{selectedProvider:t,keys:i&&r?[{value:"",models:[],weight:1}]:!i&&r&&(null==e?void 0:e.keys)?e.keys:[],networkConfig:(null==e?void 0:e.network_config)||eo,performanceConfig:(null==e?void 0:e.concurrency_and_buffer_size)||ec,metaConfig:(null==e?void 0:e.meta_config)||{endpoint:"",deployments:{},api_version:""},proxyConfig:(null==e?void 0:e.proxy_config)||{type:"none",url:"",username:"",password:""}}};function eA(e){let{provider:s,onSave:i,onCancel:a,existingProviders:l}=e,n=s?void 0:j.xq.find(e=>!l.includes(e))||"",[o]=(0,r.useState)(eg(s,n)),[d,A]=(0,r.useState)({...o,isDirty:!1}),[w,h]=(0,r.useState)(!1),{selectedProvider:x,keys:W,networkConfig:v,performanceConfig:f,metaConfig:Y,proxyConfig:F,isDirty:p}=d,V="ollama"===x,y=!["vertex","ollama"].includes(x);y&&W.every(e=>""!==e.value.trim()),y&&W.length;let N=f.concurrency>0&&f.buffer_size>0&&f.concurrency{let e=!0,s="";if("azure"===x){let i=!!Y.endpoint&&""!==Y.endpoint.trim(),t=!!(Y.deployments&&"object"==typeof Y.deployments&&Object.keys(Y.deployments).length>0);(e=i&&t)||(s="Endpoint and at least one Deployment are required for Azure")}else if("bedrock"===x)(e=!!Y.region&&""!==Y.region.trim())||(s="Region is required for AWS Bedrock");else if("vertex"===x){let i=!!Y.project_id&&""!==Y.project_id.trim(),t=!!Y.auth_credentials&&""!==Y.auth_credentials.trim(),r=!!Y.region&&""!==Y.region.trim();(e=i&&t&&r)||(s="Project ID, Auth Credentials, and Region are required for Vertex AI")}return{valid:e,message:s}})(),q=!!s||""!==x;(0,r.useEffect)(()=>{let e={selectedProvider:x,keys:y?W:[],networkConfig:v,performanceConfig:f,metaConfig:Y,proxyConfig:F};A(s=>({...s,isDirty:!ei()(o,e)}))},[x,W,v,f,Y,F,o,y]);let R=(e,s)=>{A(i=>({...i,[e]:s}))},I=(e,s)=>{R("proxyConfig",{...F,[e]:s})},K=s?j.xq:j.xq.filter(e=>!l.includes(e)),k=async e=>{if(!U.isValid())return void g.o.error(U.getFirstError());e.preventDefault(),h(!0);let t=null;if(s){let e={keys:y?W.filter(e=>""!==e.value.trim()):[],network_config:v,concurrency_and_buffer_size:f,meta_config:Y,proxy_config:F};[,t]=await C.K.updateProvider(s.name,e)}else{let e={provider:x,keys:y?W.filter(e=>""!==e.value.trim()):[],network_config:v,concurrency_and_buffer_size:f,meta_config:Y,proxy_config:F};[,t]=await C.K.createProvider(e)}h(!1),t?g.o.error(t):(g.o.success("Provider ".concat(s?"updated":"added"," successfully")),i())},U=new el([el.required(x,"Please select a provider"),el.custom(p,"No changes to save"),...V?[el.required(v.base_url,"Base URL is required for Ollama provider"),el.pattern(v.base_url||"",/^https?:\/\/.+/,"Base URL must start with http:// or https://")]:[],...y?[el.minValue(W.length,1,"At least one API key is required"),el.custom(W.every(e=>""!==e.value.trim()),"API key value cannot be empty")]:[],el.minValue(v.default_request_timeout_in_seconds,1,"Timeout must be greater than 0 seconds"),el.minValue(v.max_retries,0,"Max retries cannot be negative"),el.minValue(f.concurrency,1,"Concurrency must be greater than 0"),el.minValue(f.buffer_size,1,"Buffer size must be greater than 0"),el.custom(f.concurrency{R("keys",W.filter((s,i)=>i!==e))},Z=(e,s,i)=>{let t=[...W],r={...t[e]};"models"===s&&Array.isArray(i)?r.models=i:"value"===s&&"string"==typeof i?r.value=i:"weight"===s&&"string"==typeof i&&(r.weight=parseFloat(i)||1),t[e]=r,R("keys",t)};return(0,t.jsx)(X.lG,{open:!0,onOpenChange:a,children:(0,t.jsxs)(X.Cf,{className:"max-h-[90vh] overflow-y-auto sm:max-w-3xl",children:[(0,t.jsxs)(X.c7,{children:[(0,t.jsx)(X.L3,{children:s?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:["Edit Provider"," ",(0,t.jsx)("span",{className:"font-semibold ".concat(j.RY[s.name]," rounded-md px-2 py-1"),children:j.oU[s.name]})]}):(0,t.jsx)("div",{className:"flex items-center gap-2",children:"Add Provider"})}),(0,t.jsx)(X.rr,{children:"Configure AI provider settings, API keys, and network options."})]}),(0,t.jsx)(T.Separator,{}),(0,t.jsxs)("form",{onSubmit:k,className:"space-y-6",children:[(0,t.jsxs)("div",{className:"space-y-8",children:[!s&&(0===K.length?(0,t.jsx)("div",{className:"text-muted-foreground py-8 text-center font-medium",children:"All providers have been configured."}):(0,t.jsx)("div",{className:"grid grid-cols-4 gap-4",children:j.xq.map(e=>(0,t.jsxs)("div",{className:(0,B.cn)("flex w-full items-center gap-2 rounded-lg border px-4 py-3 text-sm",j.RY[e],x===e?"border-primary/20 opacity-100 hover:opacity-100":K.includes(e)?"cursor-pointer border-transparent opacity-60 hover:opacity-80 hover:shadow-md":"cursor-not-allowed border-transparent opacity-30"),onClick:()=>{K.includes(e)&&R("selectedProvider",e)},children:[en[e],(0,t.jsx)("div",{className:"text-sm",children:j.oU[e]})]},e))})),q&&(0,t.jsxs)(t.Fragment,{children:[y&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(u.aR,{className:"mb-2 px-0",children:(0,t.jsxs)(u.ZB,{className:"flex items-center justify-between text-base",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(b.A,{className:"h-4 w-4"}),"API Keys",(0,t.jsx)(O.Bc,{children:(0,t.jsxs)(O.m_,{children:[(0,t.jsx)(O.k$,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(_.A,{className:"text-muted-foreground ml-1 h-3 w-3"})})}),(0,t.jsx)(O.ZI,{className:"max-w-fit",children:(0,t.jsxs)("p",{children:["Use ",(0,t.jsx)("code",{className:"rounded bg-neutral-100 px-1 py-0.5 text-neutral-800",children:"env."})," to read the value from an environment variable."]})})]})})]}),(0,t.jsxs)(H.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{R("keys",[...W,{value:"",models:[],weight:1}])},children:[(0,t.jsx)(Q.A,{className:"h-4 w-4"}),"Add Key"]})]})}),(0,t.jsx)("div",{className:"space-y-4",children:W.map((e,s)=>(0,t.jsxs)("div",{className:"space-y-4 rounded-md border p-4",children:[(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:"API Key"}),(0,t.jsx)(D.p,{placeholder:"API Key or env.MY_KEY",value:e.value,onChange:e=>Z(s,"value",e.target.value),type:"text",className:"flex-1 ".concat(y&&""===e.value.trim()?"border-destructive":"")})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Weight"}),(0,t.jsx)(O.Bc,{children:(0,t.jsxs)(O.m_,{children:[(0,t.jsx)(O.k$,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(_.A,{className:"text-muted-foreground h-3 w-3"})})}),(0,t.jsx)(O.ZI,{children:(0,t.jsx)("p",{children:"Determines traffic distribution between keys. Higher weights receive more requests."})})]})})]}),(0,t.jsx)(D.p,{placeholder:"1.0",value:e.weight,onChange:e=>Z(s,"weight",e.target.value),type:"number",step:"0.1",min:"0.1",className:"w-20"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Models (Optional)"}),(0,t.jsx)(O.Bc,{children:(0,t.jsxs)(O.m_,{children:[(0,t.jsx)(O.k$,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(_.A,{className:"text-muted-foreground h-3 w-3"})})}),(0,t.jsx)(O.ZI,{children:(0,t.jsx)("p",{children:"Comma-separated list of models this key applies to. Leave blank for all models."})})]})})]}),(0,t.jsx)(J,{placeholder:"e.g. gpt-4, gpt-3.5-turbo",value:e.models||[],onValueChange:e=>Z(s,"models",e)})]}),W.length>1&&(0,t.jsxs)(H.$,{type:"button",variant:"destructive",size:"sm",onClick:()=>M(s),className:"mt-2",children:[(0,t.jsx)(z.A,{className:"h-4 w-4"}),"Remove Key"]})]},s))})]}),(0,t.jsx)(ea,{provider:x,metaConfig:Y,onMetaConfigChange:(e,s)=>{R("metaConfig",{...Y,[e]:s})}}),(0,t.jsxs)("div",{children:[(0,t.jsx)(u.aR,{className:"mb-2 px-0",children:(0,t.jsxs)(u.ZB,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)($.A,{className:"h-4 w-4"}),"Network Configuration"]})}),(0,t.jsx)(u.Wu,{className:"space-y-4 px-0",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"text-sm font-medium",children:["Base URL ",V?"(Required)":"(Optional)"]}),(0,t.jsx)(D.p,{placeholder:"https://api.example.com",value:v.base_url||"",onChange:e=>R("networkConfig",{...v,base_url:e.target.value}),className:V&&!v.base_url?"border-destructive":""})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Timeout (seconds)"}),(0,t.jsx)(D.p,{type:"number",placeholder:"30",value:v.default_request_timeout_in_seconds,onChange:e=>R("networkConfig",{...v,default_request_timeout_in_seconds:parseInt(e.target.value)||30})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Max Retries"}),(0,t.jsx)(D.p,{type:"number",placeholder:"0",value:v.max_retries,onChange:e=>R("networkConfig",{...v,max_retries:parseInt(e.target.value)||0})})]})]})]})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(u.aR,{className:"mb-2 px-0",children:(0,t.jsxs)(u.ZB,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(c.A,{className:"h-4 w-4"}),"Performance Settings"]})}),E&&(0,t.jsxs)(L.Fc,{className:"mb-3",children:[(0,t.jsx)(m.A,{className:"h-4 w-4"}),(0,t.jsxs)(L.TN,{children:[(0,t.jsx)("strong",{children:"Heads up:"})," Changing concurrency or buffer size may temporarily affect request latency for this provider while the new settings are being applied."]})]}),(0,t.jsx)(u.Wu,{className:"space-y-4 px-0",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Concurrency"}),(0,t.jsx)(D.p,{type:"number",value:f.concurrency,onChange:e=>R("performanceConfig",{...f,concurrency:parseInt(e.target.value)||0}),className:N?"":"border-destructive"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Buffer Size"}),(0,t.jsx)(D.p,{type:"number",value:f.buffer_size,onChange:e=>R("performanceConfig",{...f,buffer_size:parseInt(e.target.value)||0}),className:N?"":"border-destructive"})]})]})})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(u.aR,{className:"mb-2 px-0",children:(0,t.jsxs)(u.ZB,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)($.A,{className:"h-4 w-4"}),"Proxy Settings"]})}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Proxy Type"}),(0,t.jsxs)(S.l6,{value:F.type,onValueChange:e=>I("type",e),children:[(0,t.jsx)(S.bq,{className:"w-48",children:(0,t.jsx)(S.yv,{placeholder:"Select type"})}),(0,t.jsxs)(S.gC,{children:[(0,t.jsx)(S.eb,{value:"none",children:"None"}),(0,t.jsx)(S.eb,{value:"http",children:"HTTP"}),(0,t.jsx)(S.eb,{value:"socks5",children:"SOCKS5"}),(0,t.jsx)(S.eb,{value:"environment",children:"Environment"})]})]})]}),"none"!==F.type&&"environment"!==F.type&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Proxy URL"}),(0,t.jsx)(D.p,{placeholder:"http://proxy.example.com:8080",value:F.url||"",onChange:e=>I("url",e.target.value)})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Username"}),(0,t.jsx)(D.p,{value:F.username||"",onChange:e=>I("username",e.target.value),placeholder:"Proxy username"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium",children:"Password"}),(0,t.jsx)(D.p,{type:"password",value:F.password||"",onChange:e=>I("password",e.target.value),placeholder:"Proxy password"})]})]})]})]})]})]})]}),K.length>0&&(0,t.jsxs)("div",{className:"flex justify-end space-x-3",children:[(0,t.jsx)(H.$,{type:"button",variant:"outline",onClick:a,children:"Cancel"}),(0,t.jsx)(O.Bc,{children:(0,t.jsxs)(O.m_,{children:[(0,t.jsx)(O.k$,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsxs)(H.$,{type:"submit",disabled:!U.isValid()||w,isLoading:w,children:[(0,t.jsx)(ee.A,{className:"h-4 w-4"}),w?"Saving...":"Save Provider"]})})}),(!U.isValid()||w)&&(0,t.jsx)(O.ZI,{children:(0,t.jsx)("p",{children:w?"Saving...":U.getFirstError()||"Please fix validation errors"})})]})})]})]})]})})}function eC(e){let{providers:s,onRefresh:i}=e,[a,l]=(0,r.useState)(!1),[o,c]=(0,r.useState)(null),[d,A]=(0,r.useState)(null),w=async e=>{A(e);let[,s]=await C.K.deleteProvider(e);A(null),s?g.o.error(s):(g.o.success("Provider deleted successfully"),i())},B=e=>{c(e),l(!0)};return(0,t.jsxs)(t.Fragment,{children:[a&&(0,t.jsx)(eA,{provider:o,onSave:()=>{l(!1),c(null),i()},onCancel:()=>l(!1),existingProviders:s.map(e=>e.name)}),(0,t.jsxs)(u.aR,{className:"mb-4 px-0",children:[(0,t.jsxs)(u.ZB,{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:"AI Providers"}),(0,t.jsxs)(H.$,{onClick:()=>{c(null),l(!0)},children:[(0,t.jsx)(Q.A,{className:"h-4 w-4"}),"Add Provider"]})]}),(0,t.jsx)(u.BT,{children:"Manage AI model providers, their API keys, and configuration settings."})]}),(0,t.jsx)("div",{className:"rounded-md border",children:(0,t.jsxs)(p.XI,{children:[(0,t.jsx)(p.A0,{children:(0,t.jsxs)(p.Hj,{children:[(0,t.jsx)(p.nd,{children:"Provider"}),(0,t.jsx)(p.nd,{children:"Concurrency"}),(0,t.jsx)(p.nd,{children:"Buffer Size"}),(0,t.jsx)(p.nd,{children:"Max Retries"}),(0,t.jsx)(p.nd,{children:"API Keys"}),(0,t.jsx)(p.nd,{className:"text-right",children:"Actions"})]})}),(0,t.jsxs)(p.BF,{children:[0===s.length&&(0,t.jsx)(p.Hj,{children:(0,t.jsx)(p.nA,{colSpan:6,className:"py-6 text-center",children:"No providers found."})}),s.map(e=>{var s,i,r,a;return(0,t.jsxs)(p.Hj,{children:[(0,t.jsx)(p.nA,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("div",{className:"h-3 w-3 rounded-full ".concat(j.RY[e.name]||"bg-gray-400")}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",children:j.oU[e.name]||e.name}),(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:e.name})]})]})}),(0,t.jsx)(p.nA,{children:(0,t.jsx)("div",{className:"flex items-center space-x-2",children:(0,t.jsx)(n.E,{variant:"outline",children:(null==(s=e.concurrency_and_buffer_size)?void 0:s.concurrency)||1})})}),(0,t.jsx)(p.nA,{children:(0,t.jsx)("div",{className:"flex items-center space-x-2",children:(0,t.jsx)(n.E,{variant:"outline",children:(null==(i=e.concurrency_and_buffer_size)?void 0:i.buffer_size)||10})})}),(0,t.jsx)(p.nA,{children:(0,t.jsx)("div",{className:"flex items-center space-x-2",children:(0,t.jsx)(n.E,{variant:"outline",children:(null==(r=e.network_config)?void 0:r.max_retries)||0})})}),(0,t.jsx)(p.nA,{children:(0,t.jsx)("div",{className:"flex items-center space-x-2",children:"vertex"!==e.name&&"ollama"!==e.name?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(b.A,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsxs)("span",{className:"text-sm",children:[(null==(a=e.keys)?void 0:a.length)||0," keys"]})]}):(0,t.jsx)("span",{className:"text-sm",children:"N/A"})})}),(0,t.jsx)(p.nA,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,t.jsx)(H.$,{variant:"outline",size:"sm",onClick:()=>B(e),children:(0,t.jsx)(V.A,{className:"h-4 w-4"})}),(0,t.jsxs)(E,{children:[(0,t.jsx)(P,{asChild:!0,children:(0,t.jsx)(H.$,{variant:"outline",size:"sm",disabled:d===e.name,children:d===e.name?(0,t.jsx)(x.A,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(y.A,{className:"h-4 w-4"})})}),(0,t.jsxs)(R,{children:[(0,t.jsxs)(I,{children:[(0,t.jsx)(k,{children:"Delete Provider"}),(0,t.jsxs)(U,{children:["Are you sure you want to delete provider ",e.name,"? This action cannot be undone."]})]}),(0,t.jsxs)(K,{children:[(0,t.jsx)(Z,{children:"Cancel"}),(0,t.jsx)(M,{onClick:()=>w(e.name),children:"Delete"})]})]})]})]})})]},e.name)})]})]})})]})}var eu=i(968);function ew(e){let{className:s,...i}=e;return(0,t.jsx)(eu.b,{"data-slot":"label",className:(0,B.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",s),...i})}let eB={name:"",connection_type:"http",connection_string:"",stdio_config:{command:"",args:[],envs:[]},tools_to_skip:[],tools_to_execute:[]},eh=e=>{var s,i,a,l,n,o;let{client:c,open:d,onClose:g,onSaved:u}=e,[w,B]=(0,r.useState)(eB),[h,x]=(0,r.useState)(!1),[W,F]=(0,r.useState)(""),[p,Q]=(0,r.useState)(""),[b,V]=(0,r.useState)(""),[y,j]=(0,r.useState)(""),{toast:N}=A();(0,r.useEffect)(()=>{if(c){var e,s,i,t,r;B({name:c.name,connection_type:c.config.connection_type,connection_string:c.config.connection_string||"",stdio_config:{command:(null==(e=c.config.stdio_config)?void 0:e.command)||"",args:(null==(s=c.config.stdio_config)?void 0:s.args)||[],envs:(null==(i=c.config.stdio_config)?void 0:i.envs)||[]},tools_to_skip:c.config.tools_to_skip||[],tools_to_execute:c.config.tools_to_execute||[]}),F(((null==(t=c.config.stdio_config)?void 0:t.args)||[]).join(", ")),Q(((null==(r=c.config.stdio_config)?void 0:r.envs)||[]).join(", ")),V((c.config.tools_to_skip||[]).join(", ")),j((c.config.tools_to_execute||[]).join(", "))}else B(eB),F(""),Q(""),V(""),j("")},[c]);let E=(e,s)=>{B(i=>({...i,[e]:s}))},P=(e,s)=>{B(i=>({...i,stdio_config:{...i.stdio_config,[e]:s}}))},G=new el([el.required(null==(s=w.name)?void 0:s.trim(),"Client name is required"),el.pattern(w.name||"",/^[a-zA-Z0-9-_]+$/,"Client name can only contain letters, numbers, hyphens and underscores"),el.minLength(w.name||"",3,"Client name must be at least 3 characters"),el.maxLength(w.name||"",50,"Client name cannot exceed 50 characters"),...("http"===w.connection_type||"sse"===w.connection_type)&&!c?[el.required(null==(i=w.connection_string)?void 0:i.trim(),"Connection URL is required"),el.pattern(w.connection_string||"",/^(http:\/\/|https:\/\/|env\.[A-Z_]+$)/,"Connection URL must start with http://, https://, or be an environment variable (env.VAR_NAME)")]:[],..."stdio"===w.connection_type&&!c?[el.required(null==(l=w.stdio_config)||null==(a=l.command)?void 0:a.trim(),"Command is required for STDIO connections"),...!c?[el.pattern((null==(n=w.stdio_config)?void 0:n.command)||"",/^[^<>|&;]+$/,"Command cannot contain special shell characters")]:[]]:[],...y.trim()?[el.pattern(y,/^[a-zA-Z0-9_,-\s]+$/,"Tools to execute can only contain letters, numbers, underscores, and commas")]:[],...b.trim()?[el.pattern(b,/^[a-zA-Z0-9_,-\s]+$/,"Tools to skip can only contain letters, numbers, underscores, and commas")]:[],...c?[el.custom(!Y(w.tools_to_execute||[],f(y))||!Y(w.tools_to_skip||[],f(b)),"No changes to save")]:[],el.custom(!((e,s)=>{let i=new Set(f(e)),t=new Set(f(s));return Array.from(i).some(e=>t.has(e))})(y,b),"Tools cannot appear in both execute and skip lists")]),q=async()=>{x(!0);let e=null,s={...w,stdio_config:"stdio"===w.connection_type?{...w.stdio_config,args:f(W),envs:f(p)}:void 0,tools_to_skip:f(b),tools_to_execute:f(y)};if(c){let i={tools_to_execute:s.tools_to_execute,tools_to_skip:s.tools_to_skip};[,e]=await C.K.updateMCPClient(c.name,i)}else[,e]=await C.K.createMCPClient(s);x(!1),e?N({title:"Error",description:e,variant:"destructive"}):(N({title:"Success",description:c?"Client updated":"Client created"}),u(),g())};return(0,t.jsx)(X.lG,{open:d,onOpenChange:g,children:(0,t.jsxs)(X.Cf,{className:"max-h-[90vh] max-w-2xl overflow-y-auto",children:[(0,t.jsx)(X.c7,{children:(0,t.jsx)(X.L3,{children:c?"Edit MCP Client Tools":"New MCP Client"})}),(0,t.jsxs)(L.Fc,{children:[(0,t.jsx)(m.A,{className:"h-4 w-4"}),(0,t.jsxs)(L.TN,{children:[(0,t.jsx)("strong",{children:"Performance Notice:"})," This operation may temporarily increase latency for incoming requests while being processed."]})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(ew,{children:"Name"}),(0,t.jsx)(D.p,{value:w.name,onChange:e=>E("name",e.target.value),placeholder:"Client name",disabled:!!c})]}),!c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"w-full space-y-2",children:[(0,t.jsx)(ew,{children:"Connection Type"}),(0,t.jsxs)(S.l6,{value:w.connection_type,onValueChange:e=>E("connection_type",e),children:[(0,t.jsx)(S.bq,{className:"w-full",children:(0,t.jsx)(S.yv,{placeholder:"Select connection type"})}),(0,t.jsxs)(S.gC,{children:[(0,t.jsx)(S.eb,{value:"http",children:"HTTP (Streamable)"}),(0,t.jsx)(S.eb,{value:"sse",children:"Server-Sent Events (SSE)"}),(0,t.jsx)(S.eb,{value:"stdio",children:"STDIO"})]})]})]}),("http"===w.connection_type||"sse"===w.connection_type)&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex w-fit items-center gap-1",children:[(0,t.jsx)(ew,{children:"Connection URL"}),(0,t.jsx)(O.Bc,{children:(0,t.jsxs)(O.m_,{children:[(0,t.jsx)(O.k$,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(_.A,{className:"text-muted-foreground ml-1 h-3 w-3"})})}),(0,t.jsx)(O.ZI,{className:"max-w-fit",children:(0,t.jsxs)("p",{children:["Use ",(0,t.jsx)("code",{className:"rounded bg-neutral-100 px-1 py-0.5 text-neutral-800",children:"env."})," to read the value from an environment variable."]})})]})})]}),(0,t.jsx)(D.p,{value:w.connection_string||"",onChange:e=>E("connection_string",e.target.value),placeholder:"http://your-mcp-server:3000 or env.MCP_SERVER_URL"})]}),"stdio"===w.connection_type&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(ew,{children:"Command"}),(0,t.jsx)(D.p,{value:(null==(o=w.stdio_config)?void 0:o.command)||"",onChange:e=>P("command",e.target.value),placeholder:"node, python, /path/to/executable"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(ew,{children:"Arguments (comma-separated)"}),(0,t.jsx)(D.p,{value:W,onChange:e=>F(e.target.value),placeholder:"--port, 3000, --config, config.json"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(ew,{children:"Environment Variables (comma-separated)"}),(0,t.jsx)(D.p,{value:p,onChange:e=>Q(e.target.value),placeholder:"API_KEY, DATABASE_URL"})]})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(ew,{children:"Tools to Execute (comma-separated, leave empty for all)"}),(0,t.jsx)(v,{value:y,onChange:e=>j(e.target.value),placeholder:"tool1, tool2, tool3",rows:2})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(ew,{children:"Tools to Skip (comma-separated)"}),(0,t.jsx)(v,{value:b,onChange:e=>V(e.target.value),placeholder:"skipTool1, skipTool2",rows:2})]})]}),(0,t.jsxs)(X.Es,{children:[(0,t.jsx)(H.$,{variant:"outline",onClick:g,disabled:h,children:"Cancel"}),(0,t.jsx)(O.Bc,{children:(0,t.jsxs)(O.m_,{children:[(0,t.jsx)(O.k$,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(H.$,{onClick:q,disabled:!G.isValid()||h,isLoading:h,children:c?"Save":"Create"})})}),!G.isValid()&&(0,t.jsx)(O.ZI,{children:G.getFirstError()||"Please fix validation errors"})]})})]})]})})};var ex=i(4109),em=i(9917);function eW(){let[e,s]=(0,r.useState)([]),[i,a]=(0,r.useState)(null),[l,o]=(0,r.useState)(!1),{toast:c}=A(),d=async()=>{let[e,i]=await C.K.getMCPClients();i?c({title:"Error",description:i,variant:"destructive"}):s(e||[])};(0,r.useEffect)(()=>{d()},[]);let g=e=>{a(e),o(!0)},w=async e=>{let[,s]=await C.K.reconnectMCPClient(e.name);s?c({title:"Error",description:s,variant:"destructive"}):(c({title:"Reconnected",description:"Client reconnected."}),d())},B=async e=>{let[,s]=await C.K.deleteMCPClient(e.name);s?c({title:"Error",description:s,variant:"destructive"}):(c({title:"Deleted",description:"Client removed."}),d())},h=e=>{if("stdio"===e.config.connection_type){var s,i;return(null==(s=e.config.stdio_config)?void 0:s.command)+" "+(null==(i=e.config.stdio_config)?void 0:i.args.join(" "))||"STDIO"}return e.config.connection_string||"".concat(e.config.connection_type.toUpperCase())},x=e=>{switch(e){case"http":return"HTTP";case"sse":return"SSE";case"stdio":return"STDIO";default:return e.toUpperCase()}};return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)(u.aR,{className:"mb-4 px-0",children:[(0,t.jsxs)(u.ZB,{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:"Registered Clients"}),(0,t.jsxs)(H.$,{onClick:()=>{a(null),o(!0)},children:[(0,t.jsx)(Q.A,{className:"h-4 w-4"})," New Client"]})]}),(0,t.jsx)(u.BT,{children:"Manage clients that can connect to the MCP Tools endpoint."})]}),(0,t.jsx)("div",{className:"rounded-md border",children:(0,t.jsxs)(p.XI,{children:[(0,t.jsx)(p.A0,{children:(0,t.jsxs)(p.Hj,{children:[(0,t.jsx)(p.nd,{children:"Name"}),(0,t.jsx)(p.nd,{children:"Connection Type"}),(0,t.jsx)(p.nd,{children:"Connection Info"}),(0,t.jsx)(p.nd,{children:"State"}),(0,t.jsx)(p.nd,{className:"text-right",children:"Actions"})]})}),(0,t.jsxs)(p.BF,{children:[0===e.length&&(0,t.jsx)(p.Hj,{children:(0,t.jsx)(p.nA,{colSpan:5,className:"py-6 text-center",children:"No clients found."})}),e.map(e=>(0,t.jsxs)(p.Hj,{children:[(0,t.jsx)(p.nA,{className:"font-medium",children:e.name}),(0,t.jsx)(p.nA,{children:x(e.config.connection_type)}),(0,t.jsx)(p.nA,{className:"max-w-72 overflow-hidden text-ellipsis whitespace-nowrap",children:h(e)}),(0,t.jsx)(p.nA,{children:(0,t.jsx)(n.E,{className:ed[e.state],children:e.state})}),(0,t.jsxs)(p.nA,{className:"space-x-2 text-right",children:["disconnected"===e.state?(0,t.jsx)(H.$,{variant:"ghost",size:"icon",onClick:()=>w(e),children:(0,t.jsx)(ex.A,{className:"h-4 w-4"})}):"connected"===e.state&&(0,t.jsx)(H.$,{variant:"ghost",size:"icon",onClick:()=>g(e),children:(0,t.jsx)(em.A,{className:"h-4 w-4"})}),(0,t.jsxs)(E,{children:[(0,t.jsx)(P,{asChild:!0,children:(0,t.jsx)(H.$,{variant:"ghost",size:"icon",disabled:"error"===e.state,children:(0,t.jsx)(y.A,{className:"h-4 w-4"})})}),(0,t.jsxs)(R,{children:[(0,t.jsxs)(I,{children:[(0,t.jsx)(k,{children:"Remove MCP Client"}),(0,t.jsxs)(U,{children:["Are you sure you want to remove MCP client ",e.name,"? You will need to reconnect the client to continue using it."]})]}),(0,t.jsxs)(K,{children:[(0,t.jsx)(Z,{children:"Cancel"}),(0,t.jsx)(M,{onClick:()=>B(e),children:"Delete"})]})]})]})]})]},e.name))]})]})}),l&&(0,t.jsx)(eh,{open:l,client:i,onClose:()=>o(!1),onSaved:()=>{o(!1),d()}})]})}var eL=i(2384);function eD(){let[e,s]=(0,r.useState)("providers"),[i,g]=(0,r.useState)(!0),[u,w]=(0,r.useState)(!0),[B,h]=(0,r.useState)([]),[x,m]=(0,r.useState)([]),{toast:W}=A();(0,r.useEffect)(()=>{L(),D()},[]);let L=async()=>{let[e,s]=await C.K.getProviders();if(g(!1),s)return void W({title:"Error",description:s,variant:"destructive"});h((null==e?void 0:e.providers)||[])},D=async()=>{let[e,s]=await C.K.getMCPClients();if(w(!1),s)return void W({title:"Error",description:s,variant:"destructive"});m(e||[])};return(0,t.jsxs)("div",{className:"bg-background",children:[(0,t.jsx)(a.A,{title:"Configuration"}),i||u?(0,t.jsx)(eL.A,{}):(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold",children:"Configuration"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-2",children:"Configure AI providers, API keys, and system settings for your Bifrost instance."})]}),(0,t.jsxs)(l.Tabs,{value:e,onValueChange:s,className:"space-y-6",children:[(0,t.jsxs)(l.TabsList,{className:"grid h-12 w-full grid-cols-3",children:[(0,t.jsxs)(l.TabsTrigger,{value:"providers",className:"flex items-center gap-2",children:[(0,t.jsx)(o.A,{className:"h-4 w-4"}),"Providers",(0,t.jsx)(n.E,{variant:"default",className:"ml-1",children:B.length})]}),(0,t.jsxs)(l.TabsTrigger,{value:"mcp",className:"flex items-center gap-2",children:[(0,t.jsx)(c.A,{className:"h-4 w-4"}),"MCP Clients",x.length>0&&(0,t.jsx)(n.E,{variant:"default",className:"ml-1",children:x.length})]}),(0,t.jsxs)(l.TabsTrigger,{value:"core",className:"flex items-center gap-2",children:[(0,t.jsx)(d.A,{className:"h-4 w-4"}),"Core Settings"]})]}),(0,t.jsx)(l.TabsContent,{value:"providers",className:"space-y-4",children:(0,t.jsx)(eC,{providers:B,onRefresh:L})}),(0,t.jsx)(l.TabsContent,{value:"mcp",className:"space-y-4",children:(0,t.jsx)(eW,{})}),(0,t.jsx)(l.TabsContent,{value:"core",className:"space-y-4",children:(0,t.jsx)(F,{})})]})]})]})}},7777:(e,s,i)=>{"use strict";i.d(s,{Bc:()=>l,ZI:()=>c,k$:()=>o,m_:()=>n});var t=i(5155);i(2115);var r=i(9613),a=i(3999);function l(e){let{delayDuration:s=0,...i}=e;return(0,t.jsx)(r.Kq,{"data-slot":"tooltip-provider",delayDuration:s,...i})}function n(e){let{...s}=e;return(0,t.jsx)(l,{children:(0,t.jsx)(r.bL,{"data-slot":"tooltip",...s})})}function o(e){let{...s}=e;return(0,t.jsx)(r.l9,{"data-slot":"tooltip-trigger",...s})}function c(e){let{className:s,sideOffset:i=0,children:l,...n}=e;return(0,t.jsx)(r.ZL,{children:(0,t.jsxs)(r.UC,{"data-slot":"tooltip-content",sideOffset:i,className:(0,a.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",s),...n,children:[l,(0,t.jsx)(r.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},8835:(e,s,i)=>{Promise.resolve().then(i.bind(i,6137))}},e=>{var s=s=>e(e.s=s);e.O(0,[867,519,678,866,273,529,341,441,684,358],()=>s(8835)),_N_E=e.O()}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/app/config/page-bf3c65256b3fc98b.js b/transports/bifrost-http/ui/_next/static/chunks/app/config/page-bf3c65256b3fc98b.js deleted file mode 100644 index fccae1a597..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/app/config/page-bf3c65256b3fc98b.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[653],{1059:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>ey});var n=t(5155),a=t(2115),r=t(9464),i=t(4964),l=t(7168),c=t(8145),o=t(4229),d=t(4213),u=t(1539),m=t(381),x=t(6671);function h(){return{toast:e=>{let{title:s,description:t,variant:n}=e,a=t?"".concat(s,": ").concat(t):s;"destructive"===n?x.o.error(a):x.o.success(a)}}}var p=t(1886),j=t(8482),f=t(4884),g=t(3999);let v=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,n.jsx)(f.bL,{className:(0,g.cn)("peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",t),...a,ref:s,children:(0,n.jsx)(f.zi,{className:(0,g.cn)("bg-background pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})})});v.displayName=f.bL.displayName;var y=t(1154),b=t(1243),N=t(7489),_=t(9026),C=t(9852);function w(e){let{className:s,...t}=e;return(0,n.jsx)("textarea",{"data-slot":"textarea",className:(0,g.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),...t})}function A(){let[e,s]=(0,a.useState)({drop_excess_requests:!1,initial_pool_size:300}),[t,r]=(0,a.useState)(!0),[i,l]=(0,a.useState)({initial_pool_size:"300",prometheus_labels:""}),c=(0,a.useRef)(void 0),o=(0,a.useRef)(void 0);(0,a.useEffect)(()=>{(async()=>{let[e,t]=await p.K.getCoreConfig();if(t)x.o.error(t);else if(e){var n;s(e),l({initial_pool_size:(null==(n=e.initial_pool_size)?void 0:n.toString())||"300",prometheus_labels:e.prometheus_labels||""})}r(!1)})()},[]);let d=(0,a.useCallback)(async(t,n)=>{let a={...e,[t]:n};s(a);let[,r]=await p.K.updateCoreConfig(a);r?x.o.error(r):x.o.success("Core setting updated successfully.")},[e]),u=async(e,s)=>{await d(e,s)},m=(0,a.useCallback)(e=>{l(s=>({...s,initial_pool_size:e})),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{let s=parseInt(e);!isNaN(s)&&s>0&&d("initial_pool_size",s)},1e3)},[d]),h=(0,a.useCallback)(e=>{l(s=>({...s,prometheus_labels:e})),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{d("prometheus_labels",e)},1e3)},[d]);return((0,a.useEffect)(()=>()=>{c.current&&clearTimeout(c.current),o.current&&clearTimeout(o.current)},[]),t)?(0,n.jsx)("div",{className:"flex h-64 items-center justify-center",children:(0,n.jsx)(y.A,{className:"h-4 w-4 animate-spin"})}):(0,n.jsxs)("div",{children:[(0,n.jsxs)(j.aR,{className:"mb-4 px-0",children:[(0,n.jsx)(j.ZB,{className:"flex items-center gap-2",children:"Core System Settings"}),(0,n.jsx)(j.BT,{children:"Configure core Bifrost settings like request handling, pool sizes, and system behavior."})]}),(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between space-x-2 rounded-lg border p-4",children:[(0,n.jsxs)("div",{className:"space-y-0.5",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Drop Excess Requests"}),(0,n.jsx)("p",{className:"text-muted-foreground text-sm",children:"If enabled, Bifrost will drop requests that exceed pool capacity."})]}),(0,n.jsx)(v,{checked:e.drop_excess_requests,onCheckedChange:e=>u("drop_excess_requests",e)})]}),(0,n.jsx)(N.w,{}),(0,n.jsxs)(_.Fc,{children:[(0,n.jsx)(b.A,{className:"h-4 w-4"}),(0,n.jsx)(_.TN,{children:"The settings below won't affect current connections. You will need to save the configuration for changes to take effect on the next restart."})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between space-x-2 rounded-lg border p-4",children:[(0,n.jsxs)("div",{className:"space-y-0.5",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Initial Pool Size"}),(0,n.jsx)("p",{className:"text-muted-foreground text-sm",children:"The initial connection pool size."})]}),(0,n.jsx)(C.p,{type:"number",className:"w-24",value:i.initial_pool_size,onChange:e=>m(e.target.value),min:"1"})]}),(0,n.jsxs)("div",{className:"space-y-2 rounded-lg border p-4",children:[(0,n.jsxs)("div",{className:"space-y-0.5",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Prometheus Labels"}),(0,n.jsx)("p",{className:"text-muted-foreground text-sm",children:"Comma-separated list of custom labels to add to the Prometheus metrics."})]}),(0,n.jsx)(w,{className:"h-24",placeholder:"teamId, projectId, environment",value:i.prometheus_labels,onChange:e=>h(e.target.value)})]})]})]})}var k=t(8524),S=t(4616),z=t(9803),P=t(3717),E=t(2525),V=t(7783),T=t(7649);function I(e){let{...s}=e;return(0,n.jsx)(T.bL,{"data-slot":"alert-dialog",...s})}function R(e){let{...s}=e;return(0,n.jsx)(T.l9,{"data-slot":"alert-dialog-trigger",...s})}function M(e){let{...s}=e;return(0,n.jsx)(T.ZL,{"data-slot":"alert-dialog-portal",...s})}function q(e){let{className:s,...t}=e;return(0,n.jsx)(T.hJ,{"data-slot":"alert-dialog-overlay",className:(0,g.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",s),...t})}function B(e){let{className:s,...t}=e;return(0,n.jsxs)(M,{children:[(0,n.jsx)(q,{}),(0,n.jsx)(T.UC,{"data-slot":"alert-dialog-content",className:(0,g.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",s),...t})]})}function D(e){let{className:s,...t}=e;return(0,n.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,g.cn)("flex flex-col gap-2 text-center sm:text-left",s),...t})}function L(e){let{className:s,...t}=e;return(0,n.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,g.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",s),...t})}function Z(e){let{className:s,...t}=e;return(0,n.jsx)(T.hE,{"data-slot":"alert-dialog-title",className:(0,g.cn)("text-lg font-semibold",s),...t})}function F(e){let{className:s,...t}=e;return(0,n.jsx)(T.VY,{"data-slot":"alert-dialog-description",className:(0,g.cn)("text-muted-foreground text-sm",s),...t})}function H(e){let{className:s,...t}=e;return(0,n.jsx)(T.rc,{className:(0,g.cn)((0,l.r)({variant:"destructive"}),s),...t})}function O(e){let{className:s,...t}=e;return(0,n.jsx)(T.ZD,{className:(0,g.cn)((0,l.r)({variant:"outline"}),s),...t})}var U=t(5784),$=t(9840),K=t(7777),Y=t(4416);let G=a.forwardRef((e,s)=>{let{className:t,value:r,onValueChange:i,...l}=e,[o,d]=a.useState(""),u=e=>{i(r.filter(s=>s!==e))};return(0,n.jsxs)("div",{className:(0,g.cn)("border-input flex flex-wrap items-center gap-2 rounded-md border p-2",t),children:[r.map(e=>(0,n.jsxs)(c.E,{variant:"secondary",className:"flex items-center gap-1",children:[e,(0,n.jsx)("button",{type:"button",className:"ring-offset-background focus:ring-ring cursor-pointer rounded-full outline-none focus:ring-2 focus:ring-offset-2",onClick:()=>u(e),children:(0,n.jsx)(Y.A,{className:"h-3 w-3"})})]},e)),(0,n.jsx)(C.p,{ref:s,type:"text",value:o,onChange:e=>{d(e.target.value)},onKeyDown:e=>{if("Enter"===e.key||","===e.key){e.preventDefault();let s=o.trim();s&&!r.includes(s)&&i([...r,s]),d("")}else"Backspace"===e.key&&""===o&&r.length>0&&i(r.slice(0,-1))},className:"flex-1 border-0 shadow-none focus-visible:ring-0",...l})]})});G.displayName="TagInput";var J=t(6037),W=t(1284),X=t(4869),Q=t(9231),ee=t.n(Q),es=t(8103);let et={azure:{title:"Azure OpenAI Meta Config",fields:[{name:"endpoint",label:"Endpoint",type:"text",placeholder:"https://your-resource.openai.azure.com or env.AZURE_ENDPOINT"},{name:"api_version",label:"API Version (Optional)",type:"text",placeholder:"YYYY-MM-DD or env.AZURE_VERSION"},{name:"deployments",label:"Deployments (JSON format)",type:"textarea",placeholder:'{ "gpt-4": "my-deployment" }',isJson:!0}]},bedrock:{title:"AWS Bedrock Meta Config",fields:[{name:"region",label:"Region",type:"text",placeholder:"us-east-1 or env.AWS_REGION"}]},vertex:{title:"Google Vertex AI Meta Config",fields:[{name:"project_id",label:"Project ID",type:"text",placeholder:"gcp-project-id or env.GCP_PROJECT"},{name:"region",label:"Region",type:"text",placeholder:"us-central1 or env.GCP_REGION"},{name:"auth_credentials",label:"Auth Credentials (JSON key)",type:"textarea",placeholder:"JSON key or env.GCP_CREDS"}]}},en=e=>{let{provider:s,metaConfig:t,onMetaConfigChange:a}=e,r=et[s];if(!r)return null;let i=e=>{let s=t[e.name];return"textarea"===e.type?(0,n.jsx)(w,{placeholder:e.placeholder,value:e.isJson?"string"==typeof s?s:JSON.stringify(s,null,2):s||"",onChange:s=>{a(e.name,s.target.value)},onBlur:s=>{if(e.isJson)try{let t=JSON.parse(s.target.value);a(e.name,t)}catch(e){}},rows:4,className:"max-w-full font-mono text-sm wrap-anywhere"}):(0,n.jsx)(C.p,{placeholder:e.placeholder,value:s||"",onChange:s=>a(e.name,s.target.value)})};return(0,n.jsxs)("div",{className:"",children:[(0,n.jsx)(j.aR,{className:"mb-2 px-0",children:(0,n.jsxs)(j.ZB,{className:"flex items-center gap-2 text-base",children:[(0,n.jsx)(es.A,{className:"h-4 w-4"}),r.title,(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(W.A,{className:"text-muted-foreground ml-1 h-3 w-3"})})}),(0,n.jsx)(K.ZI,{className:"max-w-fit",children:(0,n.jsxs)("p",{children:["Use ",(0,n.jsx)("code",{className:"rounded bg-neutral-100 px-1 py-0.5 text-neutral-800",children:"env."})," to read the value from an environment variable."]})})]})})]})}),(0,n.jsx)(j.Wu,{className:"space-y-4 px-0",children:r.fields.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"block text-sm font-medium",children:e.label}),i(e)]},e.name))})]})};class ea{isValid(){return!this.rules.some(e=>!e.isValid)}getErrors(){return this.rules.filter(e=>!e.isValid).map(e=>e.message)}getFirstError(){let e=this.rules.find(e=>!e.isValid);return null==e?void 0:e.message}static required(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"This field is required";return{isValid:null!=e&&""!==e&&0!==e,message:s}}static minValue(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at least ".concat(s);return{isValid:!isNaN(e)&&e>=s,message:t}}static maxValue(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at most ".concat(s);return{isValid:!isNaN(e)&&e<=s,message:t}}static pattern(e,s,t){return{isValid:s.test(e||""),message:t}}static email(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Must be a valid email";return this.pattern(e,/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,s)}static url(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Must be a valid URL";return this.pattern(e,/^https?:\/\/.+/,s)}static minLength(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at least ".concat(s," characters");return{isValid:(e||"").length>=s,message:t}}static maxLength(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must be at most ".concat(s," characters");return{isValid:(e||"").length<=s,message:t}}static arrayMinLength(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must have at least ".concat(s," items");return{isValid:(null==e?void 0:e.length)>=s,message:t}}static arrayMaxLength(e,s){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Must have at most ".concat(s," items");return{isValid:(null==e?void 0:e.length)<=s,message:t}}static custom(e,s){return{isValid:e,message:s}}static all(e){return e.find(e=>!e.isValid)||{isValid:!0,message:""}}constructor(e){this.rules=e.filter(e=>void 0!==e)}}var er=t(4432);let ei={base_url:"",default_request_timeout_in_seconds:30,max_retries:0,retry_backoff_initial:1e3,retry_backoff_max:1e4},el={concurrency:10,buffer_size:100},ec={connected:"bg-green-100 text-green-800",error:"bg-red-100 text-red-800",disconnected:"bg-gray-100 text-gray-800"},eo=(e,s)=>{let t=!e,n=(null==e?void 0:e.name)||s||"",a=!["vertex","ollama"].includes(n);return{selectedProvider:n,keys:t&&a?[{value:"",models:[],weight:1}]:!t&&a&&(null==e?void 0:e.keys)?e.keys:[],networkConfig:(null==e?void 0:e.network_config)||ei,performanceConfig:(null==e?void 0:e.concurrency_and_buffer_size)||el,metaConfig:(null==e?void 0:e.meta_config)||{endpoint:"",deployments:{},api_version:""},proxyConfig:(null==e?void 0:e.proxy_config)||{type:"none",url:"",username:"",password:""}}};function ed(e){let{provider:s,onSave:t,onCancel:r,existingProviders:i}=e,c=s?void 0:V.xq.find(e=>!i.includes(e))||"",[d]=(0,a.useState)(eo(s,c)),[m,h]=(0,a.useState)({...d,isDirty:!1}),[f,v]=(0,a.useState)(!1),{selectedProvider:y,keys:N,networkConfig:w,performanceConfig:A,metaConfig:k,proxyConfig:P,isDirty:E}=m,T="ollama"===y,I=!["vertex","ollama"].includes(y);I&&N.every(e=>""!==e.value.trim()),I&&N.length;let R=A.concurrency>0&&A.buffer_size>0&&A.concurrency{let e=!0,s="";if("azure"===y){let t=!!k.endpoint&&""!==k.endpoint.trim(),n=!!(k.deployments&&"object"==typeof k.deployments&&Object.keys(k.deployments).length>0);(e=t&&n)||(s="Endpoint and at least one Deployment are required for Azure")}else if("bedrock"===y)(e=!!k.region&&""!==k.region.trim())||(s="Region is required for AWS Bedrock");else if("vertex"===y){let t=!!k.project_id&&""!==k.project_id.trim(),n=!!k.auth_credentials&&""!==k.auth_credentials.trim(),a=!!k.region&&""!==k.region.trim();(e=t&&n&&a)||(s="Project ID, Auth Credentials, and Region are required for Vertex AI")}return{valid:e,message:s}})(),D=!!s||""!==y;(0,a.useEffect)(()=>{let e={selectedProvider:y,keys:I?N:[],networkConfig:w,performanceConfig:A,metaConfig:k,proxyConfig:P};h(s=>({...s,isDirty:!ee()(d,e)}))},[y,N,w,A,k,P,d,I]);let L=(e,s)=>{h(t=>({...t,[e]:s}))},Z=(e,s)=>{L("proxyConfig",{...P,[e]:s})},F=s?V.xq:V.xq.filter(e=>!i.includes(e)),H=async e=>{if(!O.isValid())return void x.o.error(O.getFirstError());e.preventDefault(),v(!0);let n=null;if(s){let e={keys:I?N.filter(e=>""!==e.value.trim()):[],network_config:w,concurrency_and_buffer_size:A,meta_config:k,proxy_config:P};[,n]=await p.K.updateProvider(s.name,e)}else{let e={provider:y,keys:I?N.filter(e=>""!==e.value.trim()):[],network_config:w,concurrency_and_buffer_size:A,meta_config:k,proxy_config:P};[,n]=await p.K.createProvider(e)}v(!1),n?x.o.error(n):(x.o.success("Provider ".concat(s?"updated":"added"," successfully")),t())},O=new ea([ea.required(y,"Please select a provider"),ea.custom(E,"No changes to save"),...T?[ea.required(w.base_url,"Base URL is required for Ollama provider"),ea.pattern(w.base_url||"",/^https?:\/\/.+/,"Base URL must start with http:// or https://")]:[],...I?[ea.minValue(N.length,1,"At least one API key is required"),ea.custom(N.every(e=>""!==e.value.trim()),"API key value cannot be empty")]:[],ea.minValue(w.default_request_timeout_in_seconds,1,"Timeout must be greater than 0 seconds"),ea.minValue(w.max_retries,0,"Max retries cannot be negative"),ea.minValue(A.concurrency,1,"Concurrency must be greater than 0"),ea.minValue(A.buffer_size,1,"Buffer size must be greater than 0"),ea.custom(A.concurrency{L("keys",N.filter((s,t)=>t!==e))},es=(e,s,t)=>{let n=[...N],a={...n[e]};"models"===s&&Array.isArray(t)?a.models=t:"value"===s&&"string"==typeof t?a.value=t:"weight"===s&&"string"==typeof t&&(a.weight=parseFloat(t)||1),n[e]=a,L("keys",n)};return(0,n.jsx)($.lG,{open:!0,onOpenChange:r,children:(0,n.jsxs)($.Cf,{className:"max-h-[90vh] overflow-y-auto sm:max-w-3xl",children:[(0,n.jsxs)($.c7,{children:[(0,n.jsx)($.L3,{children:s?(0,n.jsxs)("div",{className:"flex items-center gap-2",children:["Edit Provider"," ",(0,n.jsx)("span",{className:"font-semibold ".concat(V.RY[s.name]," rounded-md px-2 py-1"),children:V.oU[s.name]})]}):(0,n.jsx)("div",{className:"flex items-center gap-2",children:"Add Provider"})}),(0,n.jsx)($.rr,{children:"Configure AI provider settings, API keys, and network options."})]}),(0,n.jsx)(J.Separator,{}),(0,n.jsxs)("form",{onSubmit:H,className:"space-y-6",children:[(0,n.jsxs)("div",{className:"space-y-8",children:[!s&&(0===F.length?(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center font-medium",children:"All providers have been configured."}):(0,n.jsx)("div",{className:"grid grid-cols-4 gap-4",children:V.xq.map(e=>(0,n.jsxs)("div",{className:(0,g.cn)("flex w-full items-center gap-2 rounded-lg border px-4 py-3 text-sm",V.RY[e],y===e?"border-primary/20 opacity-100 hover:opacity-100":F.includes(e)?"cursor-pointer border-transparent opacity-60 hover:opacity-80 hover:shadow-md":"cursor-not-allowed border-transparent opacity-30"),onClick:()=>{F.includes(e)&&L("selectedProvider",e)},children:[er.F[e],(0,n.jsx)("div",{className:"text-sm",children:V.oU[e]})]},e))})),D&&(0,n.jsxs)(n.Fragment,{children:[I&&(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(j.aR,{className:"mb-2 px-0",children:(0,n.jsxs)(j.ZB,{className:"flex items-center justify-between text-base",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(z.A,{className:"h-4 w-4"}),"API Keys",(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(W.A,{className:"text-muted-foreground ml-1 h-3 w-3"})})}),(0,n.jsx)(K.ZI,{className:"max-w-fit",children:(0,n.jsxs)("p",{children:["Use ",(0,n.jsx)("code",{className:"rounded bg-neutral-100 px-1 py-0.5 text-neutral-800",children:"env."})," to read the value from an environment variable."]})})]})})]}),(0,n.jsxs)(l.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{L("keys",[...N,{value:"",models:[],weight:1}])},children:[(0,n.jsx)(S.A,{className:"h-4 w-4"}),"Add Key"]})]})}),(0,n.jsx)("div",{className:"space-y-4",children:N.map((e,s)=>(0,n.jsxs)("div",{className:"space-y-4 rounded-md border p-4",children:[(0,n.jsxs)("div",{className:"flex gap-4",children:[(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("div",{className:"text-sm font-medium",children:"API Key"}),(0,n.jsx)(C.p,{placeholder:"API Key or env.MY_KEY",value:e.value,onChange:e=>es(s,"value",e.target.value),type:"text",className:"flex-1 ".concat(I&&""===e.value.trim()?"border-destructive":"")})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Weight"}),(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(W.A,{className:"text-muted-foreground h-3 w-3"})})}),(0,n.jsx)(K.ZI,{children:(0,n.jsx)("p",{children:"Determines traffic distribution between keys. Higher weights receive more requests."})})]})})]}),(0,n.jsx)(C.p,{placeholder:"1.0",value:e.weight,onChange:e=>es(s,"weight",e.target.value),type:"number",step:"0.1",min:"0.1",className:"w-20"})]})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Models (Optional)"}),(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(W.A,{className:"text-muted-foreground h-3 w-3"})})}),(0,n.jsx)(K.ZI,{children:(0,n.jsx)("p",{children:"Comma-separated list of models this key applies to. Leave blank for all models."})})]})})]}),(0,n.jsx)(G,{placeholder:"e.g. gpt-4, gpt-3.5-turbo",value:e.models||[],onValueChange:e=>es(s,"models",e)})]}),N.length>1&&(0,n.jsxs)(l.$,{type:"button",variant:"destructive",size:"sm",onClick:()=>Q(s),className:"mt-2",children:[(0,n.jsx)(Y.A,{className:"h-4 w-4"}),"Remove Key"]})]},s))})]}),(0,n.jsx)(en,{provider:y,metaConfig:k,onMetaConfigChange:(e,s)=>{L("metaConfig",{...k,[e]:s})}}),(0,n.jsxs)("div",{children:[(0,n.jsx)(j.aR,{className:"mb-2 px-0",children:(0,n.jsxs)(j.ZB,{className:"flex items-center gap-2 text-base",children:[(0,n.jsx)(X.A,{className:"h-4 w-4"}),"Network Configuration"]})}),(0,n.jsx)(j.Wu,{className:"space-y-4 px-0",children:(0,n.jsxs)("div",{className:"grid grid-cols-1 gap-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("label",{className:"text-sm font-medium",children:["Base URL ",T?"(Required)":"(Optional)"]}),(0,n.jsx)(C.p,{placeholder:"https://api.example.com",value:w.base_url||"",onChange:e=>L("networkConfig",{...w,base_url:e.target.value}),className:T&&!w.base_url?"border-destructive":""})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Timeout (seconds)"}),(0,n.jsx)(C.p,{type:"number",placeholder:"30",value:w.default_request_timeout_in_seconds,onChange:e=>L("networkConfig",{...w,default_request_timeout_in_seconds:parseInt(e.target.value)||30})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Max Retries"}),(0,n.jsx)(C.p,{type:"number",placeholder:"0",value:w.max_retries,onChange:e=>L("networkConfig",{...w,max_retries:parseInt(e.target.value)||0})})]})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(j.aR,{className:"mb-2 px-0",children:(0,n.jsxs)(j.ZB,{className:"flex items-center gap-2 text-base",children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),"Performance Settings"]})}),M&&(0,n.jsxs)(_.Fc,{className:"mb-3",children:[(0,n.jsx)(b.A,{className:"h-4 w-4"}),(0,n.jsxs)(_.TN,{children:[(0,n.jsx)("strong",{children:"Heads up:"})," Changing concurrency or buffer size may temporarily affect request latency for this provider while the new settings are being applied."]})]}),(0,n.jsx)(j.Wu,{className:"space-y-4 px-0",children:(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Concurrency"}),(0,n.jsx)(C.p,{type:"number",value:A.concurrency,onChange:e=>L("performanceConfig",{...A,concurrency:parseInt(e.target.value)||0}),className:R?"":"border-destructive"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Buffer Size"}),(0,n.jsx)(C.p,{type:"number",value:A.buffer_size,onChange:e=>L("performanceConfig",{...A,buffer_size:parseInt(e.target.value)||0}),className:R?"":"border-destructive"})]})]})})]}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(j.aR,{className:"mb-2 px-0",children:(0,n.jsxs)(j.ZB,{className:"flex items-center gap-2 text-base",children:[(0,n.jsx)(X.A,{className:"h-4 w-4"}),"Proxy Settings"]})}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Proxy Type"}),(0,n.jsxs)(U.l6,{value:P.type,onValueChange:e=>Z("type",e),children:[(0,n.jsx)(U.bq,{className:"w-48",children:(0,n.jsx)(U.yv,{placeholder:"Select type"})}),(0,n.jsxs)(U.gC,{children:[(0,n.jsx)(U.eb,{value:"none",children:"None"}),(0,n.jsx)(U.eb,{value:"http",children:"HTTP"}),(0,n.jsx)(U.eb,{value:"socks5",children:"SOCKS5"}),(0,n.jsx)(U.eb,{value:"environment",children:"Environment"})]})]})]}),"none"!==P.type&&"environment"!==P.type&&(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Proxy URL"}),(0,n.jsx)(C.p,{placeholder:"http://proxy.example.com:8080",value:P.url||"",onChange:e=>Z("url",e.target.value)})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Username"}),(0,n.jsx)(C.p,{value:P.username||"",onChange:e=>Z("username",e.target.value),placeholder:"Proxy username"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Password"}),(0,n.jsx)(C.p,{type:"password",value:P.password||"",onChange:e=>Z("password",e.target.value),placeholder:"Proxy password"})]})]})]})]})]})]})]}),F.length>0&&(0,n.jsxs)("div",{className:"flex justify-end space-x-3",children:[(0,n.jsx)(l.$,{type:"button",variant:"outline",onClick:r,children:"Cancel"}),(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsxs)(l.$,{type:"submit",disabled:!O.isValid()||f,isLoading:f,children:[(0,n.jsx)(o.A,{className:"h-4 w-4"}),f?"Saving...":"Save Provider"]})})}),(!O.isValid()||f)&&(0,n.jsx)(K.ZI,{children:(0,n.jsx)("p",{children:f?"Saving...":O.getFirstError()||"Please fix validation errors"})})]})})]})]})]})})}function eu(e){let{providers:s,onRefresh:t}=e,[r,i]=(0,a.useState)(!1),[o,d]=(0,a.useState)(null),[u,m]=(0,a.useState)(null),h=async e=>{m(e);let[,s]=await p.K.deleteProvider(e);m(null),s?x.o.error(s):(x.o.success("Provider deleted successfully"),t())},f=e=>{d(e),i(!0)};return(0,n.jsxs)(n.Fragment,{children:[r&&(0,n.jsx)(ed,{provider:o,onSave:()=>{i(!1),d(null),t()},onCancel:()=>i(!1),existingProviders:s.map(e=>e.name)}),(0,n.jsxs)(j.aR,{className:"mb-4 px-0",children:[(0,n.jsxs)(j.ZB,{className:"flex items-center justify-between",children:[(0,n.jsx)("div",{className:"flex items-center gap-2",children:"AI Providers"}),(0,n.jsxs)(l.$,{onClick:()=>{d(null),i(!0)},children:[(0,n.jsx)(S.A,{className:"h-4 w-4"}),"Add Provider"]})]}),(0,n.jsx)(j.BT,{children:"Manage AI model providers, their API keys, and configuration settings."})]}),(0,n.jsx)("div",{className:"rounded-md border",children:(0,n.jsxs)(k.XI,{children:[(0,n.jsx)(k.A0,{children:(0,n.jsxs)(k.Hj,{children:[(0,n.jsx)(k.nd,{children:"Provider"}),(0,n.jsx)(k.nd,{children:"Concurrency"}),(0,n.jsx)(k.nd,{children:"Buffer Size"}),(0,n.jsx)(k.nd,{children:"Max Retries"}),(0,n.jsx)(k.nd,{children:"API Keys"}),(0,n.jsx)(k.nd,{className:"text-right",children:"Actions"})]})}),(0,n.jsxs)(k.BF,{children:[0===s.length&&(0,n.jsx)(k.Hj,{children:(0,n.jsx)(k.nA,{colSpan:5,className:"py-6 text-center",children:"No providers found."})}),s.map(e=>{var s,t,a,r;return(0,n.jsxs)(k.Hj,{children:[(0,n.jsx)(k.nA,{children:(0,n.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,n.jsx)("div",{className:"h-3 w-3 rounded-full ".concat(V.RY[e.name]||"bg-gray-400")}),(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"font-medium",children:V.oU[e.name]||e.name}),(0,n.jsx)("p",{className:"text-muted-foreground text-sm",children:e.name})]})]})}),(0,n.jsx)(k.nA,{children:(0,n.jsx)("div",{className:"flex items-center space-x-2",children:(0,n.jsx)(c.E,{variant:"outline",children:(null==(s=e.concurrency_and_buffer_size)?void 0:s.concurrency)||1})})}),(0,n.jsx)(k.nA,{children:(0,n.jsx)("div",{className:"flex items-center space-x-2",children:(0,n.jsx)(c.E,{variant:"outline",children:(null==(t=e.concurrency_and_buffer_size)?void 0:t.buffer_size)||10})})}),(0,n.jsx)(k.nA,{children:(0,n.jsx)("div",{className:"flex items-center space-x-2",children:(0,n.jsx)(c.E,{variant:"outline",children:(null==(a=e.network_config)?void 0:a.max_retries)||0})})}),(0,n.jsx)(k.nA,{children:(0,n.jsx)("div",{className:"flex items-center space-x-2",children:"vertex"!==e.name&&"ollama"!==e.name?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(z.A,{className:"text-muted-foreground h-4 w-4"}),(0,n.jsxs)("span",{className:"text-sm",children:[(null==(r=e.keys)?void 0:r.length)||0," keys"]})]}):(0,n.jsx)("span",{className:"text-sm",children:"N/A"})})}),(0,n.jsx)(k.nA,{className:"text-right",children:(0,n.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,n.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>f(e),children:(0,n.jsx)(P.A,{className:"h-4 w-4"})}),(0,n.jsxs)(I,{children:[(0,n.jsx)(R,{asChild:!0,children:(0,n.jsx)(l.$,{variant:"outline",size:"sm",disabled:u===e.name,children:u===e.name?(0,n.jsx)(y.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(E.A,{className:"h-4 w-4"})})}),(0,n.jsxs)(B,{children:[(0,n.jsxs)(D,{children:[(0,n.jsx)(Z,{children:"Delete Provider"}),(0,n.jsxs)(F,{children:["Are you sure you want to delete provider ",e.name,"? This action cannot be undone."]})]}),(0,n.jsxs)(L,{children:[(0,n.jsx)(O,{children:"Cancel"}),(0,n.jsx)(H,{onClick:()=>h(e.name),children:"Delete"})]})]})]})]})})]},e.name)})]})]})})]})}var em=t(968);function ex(e){let{className:s,...t}=e;return(0,n.jsx)(em.b,{"data-slot":"label",className:(0,g.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",s),...t})}let eh={name:"",connection_type:"http",connection_string:"",stdio_config:{command:"",args:[],envs:[]},tools_to_skip:[],tools_to_execute:[]},ep=e=>{var s,t,r,i,c,o;let{client:d,open:u,onClose:m,onSaved:x}=e,[j,f]=(0,a.useState)(eh),[g,v]=(0,a.useState)(!1),[y,N]=(0,a.useState)(""),[A,k]=(0,a.useState)(""),[S,z]=(0,a.useState)(""),[P,E]=(0,a.useState)(""),{toast:V}=h();(0,a.useEffect)(()=>{if(d){var e,s,t,n,a;f({name:d.name,connection_type:d.config.connection_type,connection_string:d.config.connection_string||"",stdio_config:{command:(null==(e=d.config.stdio_config)?void 0:e.command)||"",args:(null==(s=d.config.stdio_config)?void 0:s.args)||[],envs:(null==(t=d.config.stdio_config)?void 0:t.envs)||[]},tools_to_skip:d.config.tools_to_skip||[],tools_to_execute:d.config.tools_to_execute||[]}),N(((null==(n=d.config.stdio_config)?void 0:n.args)||[]).join(", ")),k(((null==(a=d.config.stdio_config)?void 0:a.envs)||[]).join(", ")),z((d.config.tools_to_skip||[]).join(", ")),E((d.config.tools_to_execute||[]).join(", "))}else f(eh),N(""),k(""),z(""),E("")},[d]);let T=(e,s)=>{f(t=>({...t,[e]:s}))},I=(e,s)=>{f(t=>({...t,stdio_config:{...t.stdio_config,[e]:s}}))},R=e=>e.split(",").map(e=>e.trim()).filter(e=>e.length>0),M=new ea([ea.required(null==(s=j.name)?void 0:s.trim(),"Client name is required"),ea.pattern(j.name||"",/^[a-zA-Z0-9-_]+$/,"Client name can only contain letters, numbers, hyphens and underscores"),ea.minLength(j.name||"",3,"Client name must be at least 3 characters"),ea.maxLength(j.name||"",50,"Client name cannot exceed 50 characters"),..."http"===j.connection_type||"sse"===j.connection_type?[ea.required(null==(t=j.connection_string)?void 0:t.trim(),"Connection URL is required"),ea.pattern(j.connection_string||"",/^(http:\/\/|https:\/\/|env\.[A-Z_]+$)/,"Connection URL must start with http://, https://, or be an environment variable (env.VAR_NAME)")]:[],..."stdio"===j.connection_type?[ea.required(null==(i=j.stdio_config)||null==(r=i.command)?void 0:r.trim(),"Command is required for STDIO connections"),...!d?[ea.pattern((null==(c=j.stdio_config)?void 0:c.command)||"",/^[^<>|&;]+$/,"Command cannot contain special shell characters")]:[]]:[],...P.trim()?[ea.pattern(P,/^[a-zA-Z0-9_,-\s]+$/,"Tools to execute can only contain letters, numbers, underscores, and commas")]:[],...S.trim()?[ea.pattern(S,/^[a-zA-Z0-9_,-\s]+$/,"Tools to skip can only contain letters, numbers, underscores, and commas")]:[],ea.custom(!((e,s)=>{let t=new Set(R(e)),n=new Set(R(s));return Array.from(t).some(e=>n.has(e))})(P,S),"Tools cannot appear in both execute and skip lists")]),q=async()=>{v(!0);let e=null,s={...j,stdio_config:"stdio"===j.connection_type?{...j.stdio_config,args:R(y),envs:R(A)}:void 0,tools_to_skip:R(S),tools_to_execute:R(P)};if(d){let t={tools_to_execute:s.tools_to_execute,tools_to_skip:s.tools_to_skip};[,e]=await p.K.updateMCPClient(d.name,t)}else[,e]=await p.K.createMCPClient(s);v(!1),e?V({title:"Error",description:e,variant:"destructive"}):(V({title:"Success",description:d?"Client updated":"Client created"}),x(),m())};return(0,n.jsx)($.lG,{open:u,onOpenChange:m,children:(0,n.jsxs)($.Cf,{className:"max-h-[90vh] max-w-2xl overflow-y-auto",children:[(0,n.jsx)($.c7,{children:(0,n.jsx)($.L3,{children:d?"Edit MCP Client Tools":"New MCP Client"})}),(0,n.jsxs)(_.Fc,{children:[(0,n.jsx)(b.A,{className:"h-4 w-4"}),(0,n.jsxs)(_.TN,{children:[(0,n.jsx)("strong",{children:"Performance Notice:"})," This operation may temporarily increase latency for incoming requests while being processed."]})]}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(ex,{children:"Name"}),(0,n.jsx)(C.p,{value:j.name,onChange:e=>T("name",e.target.value),placeholder:"Client name",disabled:!!d})]}),!d&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"w-full space-y-2",children:[(0,n.jsx)(ex,{children:"Connection Type"}),(0,n.jsxs)(U.l6,{value:j.connection_type,onValueChange:e=>T("connection_type",e),children:[(0,n.jsx)(U.bq,{className:"w-full",children:(0,n.jsx)(U.yv,{placeholder:"Select connection type"})}),(0,n.jsxs)(U.gC,{children:[(0,n.jsx)(U.eb,{value:"http",children:"HTTP (Streamable)"}),(0,n.jsx)(U.eb,{value:"sse",children:"Server-Sent Events (SSE)"}),(0,n.jsx)(U.eb,{value:"stdio",children:"STDIO"})]})]})]}),("http"===j.connection_type||"sse"===j.connection_type)&&(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsxs)("div",{className:"flex w-fit items-center gap-1",children:[(0,n.jsx)(ex,{children:"Connection URL"}),(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(W.A,{className:"text-muted-foreground ml-1 h-3 w-3"})})}),(0,n.jsx)(K.ZI,{className:"max-w-fit",children:(0,n.jsxs)("p",{children:["Use ",(0,n.jsx)("code",{className:"rounded bg-neutral-100 px-1 py-0.5 text-neutral-800",children:"env."})," to read the value from an environment variable."]})})]})})]}),(0,n.jsx)(C.p,{value:j.connection_string||"",onChange:e=>T("connection_string",e.target.value),placeholder:"http://your-mcp-server:3000 or env.MCP_SERVER_URL"})]}),"stdio"===j.connection_type&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(ex,{children:"Command"}),(0,n.jsx)(C.p,{value:(null==(o=j.stdio_config)?void 0:o.command)||"",onChange:e=>I("command",e.target.value),placeholder:"node, python, /path/to/executable"})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(ex,{children:"Arguments (comma-separated)"}),(0,n.jsx)(C.p,{value:y,onChange:e=>N(e.target.value),placeholder:"--port, 3000, --config, config.json"})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(ex,{children:"Environment Variables (comma-separated)"}),(0,n.jsx)(C.p,{value:A,onChange:e=>k(e.target.value),placeholder:"API_KEY, DATABASE_URL"})]})]})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(ex,{children:"Tools to Execute (comma-separated, leave empty for all)"}),(0,n.jsx)(w,{value:P,onChange:e=>E(e.target.value),placeholder:"tool1, tool2, tool3",rows:2})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(ex,{children:"Tools to Skip (comma-separated)"}),(0,n.jsx)(w,{value:S,onChange:e=>z(e.target.value),placeholder:"skipTool1, skipTool2",rows:2})]})]}),(0,n.jsxs)($.Es,{children:[(0,n.jsx)(l.$,{variant:"outline",onClick:m,disabled:g,children:"Cancel"}),(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(l.$,{onClick:q,disabled:!M.isValid()||g,isLoading:g,children:d?"Save":"Create"})})}),(!M.isValid()||g)&&(0,n.jsx)(K.ZI,{children:(0,n.jsx)("p",{children:g?"Saving...":M.getFirstError()||"Please fix validation errors"})})]})})]})]})})};var ej=t(4109),ef=t(9917);function eg(){let[e,s]=(0,a.useState)([]),[t,r]=(0,a.useState)(null),[i,o]=(0,a.useState)(!1),{toast:d}=h(),u=async()=>{let[e,t]=await p.K.getMCPClients();t?d({title:"Error",description:t,variant:"destructive"}):s(e||[])};(0,a.useEffect)(()=>{u()},[]);let m=e=>{r(e),o(!0)},x=async e=>{let[,s]=await p.K.reconnectMCPClient(e.name);s?d({title:"Error",description:s,variant:"destructive"}):(d({title:"Reconnected",description:"Client reconnected."}),u())},f=async e=>{let[,s]=await p.K.deleteMCPClient(e.name);s?d({title:"Error",description:s,variant:"destructive"}):(d({title:"Deleted",description:"Client removed."}),u())},g=e=>{if("stdio"===e.config.connection_type){var s,t;return(null==(s=e.config.stdio_config)?void 0:s.command)+" "+(null==(t=e.config.stdio_config)?void 0:t.args.join(" "))||"STDIO"}return e.config.connection_string||"".concat(e.config.connection_type.toUpperCase())},v=e=>{switch(e){case"http":return"HTTP";case"sse":return"SSE";case"stdio":return"STDIO";default:return e.toUpperCase()}};return(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)(j.aR,{className:"mb-4 px-0",children:[(0,n.jsxs)(j.ZB,{className:"flex items-center justify-between",children:[(0,n.jsx)("div",{className:"flex items-center gap-2",children:"Registered Clients"}),(0,n.jsxs)(l.$,{onClick:()=>{r(null),o(!0)},children:[(0,n.jsx)(S.A,{className:"h-4 w-4"})," New Client"]})]}),(0,n.jsx)(j.BT,{children:"Manage clients that can connect to the MCP Tools endpoint."})]}),(0,n.jsx)("div",{className:"rounded-md border",children:(0,n.jsxs)(k.XI,{children:[(0,n.jsx)(k.A0,{children:(0,n.jsxs)(k.Hj,{children:[(0,n.jsx)(k.nd,{children:"Name"}),(0,n.jsx)(k.nd,{children:"Connection Type"}),(0,n.jsx)(k.nd,{children:"Connection Info"}),(0,n.jsx)(k.nd,{children:"State"}),(0,n.jsx)(k.nd,{className:"text-right",children:"Actions"})]})}),(0,n.jsxs)(k.BF,{children:[0===e.length&&(0,n.jsx)(k.Hj,{children:(0,n.jsx)(k.nA,{colSpan:5,className:"py-6 text-center",children:"No clients found."})}),e.map(e=>(0,n.jsxs)(k.Hj,{children:[(0,n.jsx)(k.nA,{className:"font-medium",children:e.name}),(0,n.jsx)(k.nA,{children:v(e.config.connection_type)}),(0,n.jsx)(k.nA,{className:"max-w-72 overflow-hidden text-ellipsis whitespace-nowrap",children:g(e)}),(0,n.jsx)(k.nA,{children:(0,n.jsx)(c.E,{className:ec[e.state],children:e.state})}),(0,n.jsxs)(k.nA,{className:"space-x-2 text-right",children:["disconnected"===e.state?(0,n.jsx)(l.$,{variant:"ghost",size:"icon",onClick:()=>x(e),children:(0,n.jsx)(ej.A,{className:"h-4 w-4"})}):"connected"===e.state&&(0,n.jsx)(l.$,{variant:"ghost",size:"icon",onClick:()=>m(e),children:(0,n.jsx)(ef.A,{className:"h-4 w-4"})}),(0,n.jsxs)(I,{children:[(0,n.jsx)(R,{asChild:!0,children:(0,n.jsx)(l.$,{variant:"ghost",size:"icon",disabled:"error"===e.state,children:(0,n.jsx)(E.A,{className:"h-4 w-4"})})}),(0,n.jsxs)(B,{children:[(0,n.jsxs)(D,{children:[(0,n.jsx)(Z,{children:"Remove MCP Client"}),(0,n.jsxs)(F,{children:["Are you sure you want to remove MCP client ",e.name,"? You will need to reconnect the client to continue using it."]})]}),(0,n.jsxs)(L,{children:[(0,n.jsx)(O,{children:"Cancel"}),(0,n.jsx)(H,{onClick:()=>f(e),children:"Delete"})]})]})]})]})]},e.name))]})]})}),i&&(0,n.jsx)(ep,{open:i,client:t,onClose:()=>o(!1),onSaved:()=>{o(!1),u()}})]})}var ev=t(2384);function ey(){let[e,s]=(0,a.useState)("providers"),[t,x]=(0,a.useState)(!0),[j,f]=(0,a.useState)(!0),[g,v]=(0,a.useState)([]),[y,b]=(0,a.useState)([]),{toast:N}=h();(0,a.useEffect)(()=>{_(),C()},[]);let _=async()=>{let[e,s]=await p.K.getProviders();if(x(!1),s)return void N({title:"Error",description:s,variant:"destructive"});v((null==e?void 0:e.providers)||[])},C=async()=>{let[e,s]=await p.K.getMCPClients();if(f(!1),s)return void N({title:"Error",description:s,variant:"destructive"});b(e||[])},w=async()=>{let[,e]=await p.K.saveConfig();e?N({title:"Error",description:e,variant:"destructive"}):N({title:"Success",description:"Configuration saved successfully"})};return(0,n.jsxs)("div",{className:"bg-background",children:[(0,n.jsx)(r.A,{title:"Configuration"}),t||j?(0,n.jsx)(ev.A,{}):(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"text-3xl font-bold",children:"Configuration"}),(0,n.jsx)("p",{className:"text-muted-foreground mt-2",children:"Configure AI providers, API keys, and system settings for your Bifrost instance."})]}),(0,n.jsx)(K.Bc,{children:(0,n.jsxs)(K.m_,{children:[(0,n.jsx)(K.k$,{asChild:!0,children:(0,n.jsxs)(l.$,{onClick:w,variant:"outline",disabled:t||j,children:[(0,n.jsx)(o.A,{className:"h-4 w-4"}),"Save Config"]})}),(0,n.jsx)(K.ZI,{children:"Persist configuration for next server start."})]})})]}),(0,n.jsxs)(i.Tabs,{value:e,onValueChange:s,className:"space-y-6",children:[(0,n.jsxs)(i.TabsList,{className:"grid h-12 w-full grid-cols-3",children:[(0,n.jsxs)(i.TabsTrigger,{value:"providers",className:"flex items-center gap-2",children:[(0,n.jsx)(d.A,{className:"h-4 w-4"}),"Providers",(0,n.jsx)(c.E,{variant:"default",className:"ml-1",children:g.length})]}),(0,n.jsxs)(i.TabsTrigger,{value:"mcp",className:"flex items-center gap-2",children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),"MCP Clients",y.length>0&&(0,n.jsx)(c.E,{variant:"default",className:"ml-1",children:y.length})]}),(0,n.jsxs)(i.TabsTrigger,{value:"core",className:"flex items-center gap-2",children:[(0,n.jsx)(m.A,{className:"h-4 w-4"}),"Core Settings"]})]}),(0,n.jsx)(i.TabsContent,{value:"providers",className:"space-y-4",children:(0,n.jsx)(eu,{providers:g,onRefresh:_})}),(0,n.jsx)(i.TabsContent,{value:"mcp",className:"space-y-4",children:(0,n.jsx)(eg,{})}),(0,n.jsx)(i.TabsContent,{value:"core",className:"space-y-4",children:(0,n.jsx)(A,{})})]})]})]})}},4432:(e,s,t)=>{"use strict";t.d(s,{F:()=>u});var n=t(5155),a=t(4213),r=t(381),i=t(5487),l=t(5448),c=t(9803),o=t(4869),d=t(1154);let u={bifrost:(0,n.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 259 247",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("path",{d:"M126.157 20V67.2283L82.9686 182.152H20.0019L126.157 20Z",fill:"#D9D9D9"}),(0,n.jsx)("path",{d:"M126.157 20V67.2283L82.9686 182.152H20.0019L126.157 20Z",fill:"url(#paint0_linear_2477_3310)"}),(0,n.jsx)("path",{d:"M132.844 20V67.2283L176.033 182.152H239L132.844 20Z",fill:"#D9D9D9"}),(0,n.jsx)("path",{d:"M132.844 20V67.2283L176.033 182.152H239L132.844 20Z",fill:"url(#paint1_linear_2477_3310)"}),(0,n.jsx)("path",{d:"M20 191.963H82.6903V227H20V191.963Z",fill:"#D9D9D9"}),(0,n.jsx)("path",{d:"M20 191.963H82.6903V227H20V191.963Z",fill:"url(#paint2_linear_2477_3310)"}),(0,n.jsx)("path",{d:"M176.308 191.963H238.998V227H176.308V191.963Z",fill:"#D9D9D9"}),(0,n.jsx)("path",{d:"M176.308 191.963H238.998V227H176.308V191.963Z",fill:"url(#paint3_linear_2477_3310)"}),(0,n.jsxs)("defs",{children:[(0,n.jsxs)("linearGradient",{id:"paint0_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{stopColor:"#A3FFDC"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]}),(0,n.jsxs)("linearGradient",{id:"paint1_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{stopColor:"#A3FFDC"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]}),(0,n.jsxs)("linearGradient",{id:"paint2_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{stopColor:"#A3FFDC"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]}),(0,n.jsxs)("linearGradient",{id:"paint3_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,n.jsx)("stop",{stopColor:"#A3FFDC"}),(0,n.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]})]})]}),openai:(0,n.jsx)(a.A,{}),anthropic:(0,n.jsx)(r.A,{}),bedrock:(0,n.jsx)(i.A,{}),cohere:(0,n.jsx)(l.A,{}),vertex:(0,n.jsx)(c.A,{}),ollama:(0,n.jsx)(o.A,{}),mistral:(0,n.jsxs)("svg",{height:"1em",style:{flex:"none",lineHeight:"1"},viewBox:"0 0 24 24",width:"1em",xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("title",{children:"Mistral"}),(0,n.jsx)("path",{d:"M3.428 3.4h3.429v3.428H3.428V3.4zm13.714 0h3.43v3.428h-3.43V3.4z",fill:"gold"}),(0,n.jsx)("path",{d:"M3.428 6.828h6.857v3.429H3.429V6.828zm10.286 0h6.857v3.429h-6.857V6.828z",fill:"#FFAF00"}),(0,n.jsx)("path",{d:"M3.428 10.258h17.144v3.428H3.428v-3.428z",fill:"#FF8205"}),(0,n.jsx)("path",{d:"M3.428 13.686h3.429v3.428H3.428v-3.428zm6.858 0h3.429v3.428h-3.429v-3.428zm6.856 0h3.43v3.428h-3.43v-3.428z",fill:"#FA500F"}),(0,n.jsx)("path",{d:"M0 17.114h10.286v3.429H0v-3.429zm13.714 0H24v3.429H13.714v-3.429z",fill:"#E10500"})]}),azure:(0,n.jsx)(d.A,{})}},7777:(e,s,t)=>{"use strict";t.d(s,{Bc:()=>i,ZI:()=>o,k$:()=>c,m_:()=>l});var n=t(5155);t(2115);var a=t(9613),r=t(3999);function i(e){let{delayDuration:s=0,...t}=e;return(0,n.jsx)(a.Kq,{"data-slot":"tooltip-provider",delayDuration:s,...t})}function l(e){let{...s}=e;return(0,n.jsx)(i,{children:(0,n.jsx)(a.bL,{"data-slot":"tooltip",...s})})}function c(e){let{...s}=e;return(0,n.jsx)(a.l9,{"data-slot":"tooltip-trigger",...s})}function o(e){let{className:s,sideOffset:t=0,children:i,...l}=e;return(0,n.jsx)(a.ZL,{children:(0,n.jsxs)(a.UC,{"data-slot":"tooltip-content",sideOffset:t,className:(0,r.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",s),...l,children:[i,(0,n.jsx)(a.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},8835:(e,s,t)=>{Promise.resolve().then(t.bind(t,1059))}},e=>{var s=s=>e(e.s=s);e.O(0,[867,519,213,866,473,293,341,441,684,358],()=>s(8835)),_N_E=e.O()}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/app/layout-6acb57196bba0407.js b/transports/bifrost-http/ui/_next/static/chunks/app/layout-6acb57196bba0407.js new file mode 100644 index 0000000000..f15e989bd8 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/app/layout-6acb57196bba0407.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{193:(e,t,a)=>{"use strict";a.d(t,{Bx:()=>h,Yv:()=>m,CG:()=>x,Cn:()=>v,rQ:()=>j,jj:()=>w,Gh:()=>p,wZ:()=>y,Uj:()=>z,FX:()=>N,SidebarProvider:()=>f,GX:()=>g});var r=a(5155),i=a(2115),s=a(9708),n=a(2085),o=a(3999);a(7168),a(9852);var d=a(6037),l=a(1085),c=a(7777);let u=i.createContext(null);function b(){let e=i.useContext(u);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function f(e){let{defaultOpen:t=!0,open:a,onOpenChange:s,className:n,style:d,children:l,...b}=e,f=function(){let[e,t]=i.useState(void 0);return i.useEffect(()=>{let e=window.matchMedia("(max-width: ".concat(767,"px)")),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[h,p]=i.useState(!1),[x,g]=i.useState(t),m=null!=a?a:x,v=i.useCallback(e=>{let t="function"==typeof e?e(m):e;s?s(t):g(t),document.cookie="".concat("sidebar_state","=").concat(t,"; path=/; max-age=").concat(604800)},[s,m]),w=i.useCallback(()=>f?p(e=>!e):v(e=>!e),[f,v,p]);i.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),w())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[w]);let j=m?"expanded":"collapsed",y=i.useMemo(()=>({state:j,open:m,setOpen:v,isMobile:f,openMobile:h,setOpenMobile:p,toggleSidebar:w}),[j,m,v,f,h,p,w]);return(0,r.jsx)(u.Provider,{value:y,children:(0,r.jsx)(c.Bc,{delayDuration:0,children:(0,r.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...d},className:(0,o.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",n),...b,children:l})})})}function h(e){let{side:t="left",variant:a="sidebar",collapsible:i="offcanvas",className:s,children:n,...d}=e,{isMobile:c,state:u,openMobile:f,setOpenMobile:h}=b();return"none"===i?(0,r.jsx)("div",{"data-slot":"sidebar",className:(0,o.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",s),...d,children:n}):c?(0,r.jsx)(l.cj,{open:f,onOpenChange:h,...d,children:(0,r.jsxs)(l.h,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:t,children:[(0,r.jsxs)(l.Fm,{className:"sr-only",children:[(0,r.jsx)(l.qp,{children:"Sidebar"}),(0,r.jsx)(l.Qs,{children:"Displays the mobile sidebar."})]}),(0,r.jsx)("div",{className:"flex h-full w-full flex-col",children:n})]})}):(0,r.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":u,"data-collapsible":"collapsed"===u?i:"","data-variant":a,"data-side":t,"data-slot":"sidebar",children:[(0,r.jsx)("div",{"data-slot":"sidebar-gap",className:(0,o.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===a||"inset"===a?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,r.jsx)("div",{"data-slot":"sidebar-container",className:(0,o.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===t?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===a||"inset"===a?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",s),...d,children:(0,r.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:n})})]})}function p(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,o.cn)("flex flex-col gap-2 p-2",t),...a})}function x(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,o.cn)("flex flex-col gap-2 p-2",t),...a})}function g(e){let{className:t,...a}=e;return(0,r.jsx)(d.Separator,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,o.cn)("bg-sidebar-border mx-2 w-auto",t),...a})}function m(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,o.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",t),...a})}function v(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,o.cn)("relative flex w-full min-w-0 flex-col p-2",t),...a})}function w(e){let{className:t,asChild:a=!1,...i}=e,n=a?s.DX:"div";return(0,r.jsx)(n,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,o.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",t),...i})}function j(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,o.cn)("w-full text-sm",t),...a})}function y(e){let{className:t,...a}=e;return(0,r.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,o.cn)("flex w-full min-w-0 flex-col gap-1",t),...a})}function N(e){let{className:t,...a}=e;return(0,r.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,o.cn)("group/menu-item relative",t),...a})}let k=(0,n.F)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function z(e){let{asChild:t=!1,isActive:a=!1,variant:i="default",size:n="default",tooltip:d,className:l,...u}=e,f=t?s.DX:"button",{isMobile:h,state:p}=b(),x=(0,r.jsx)(f,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":n,"data-active":a,className:(0,o.cn)(k({variant:i,size:n}),l),...u});return d?("string"==typeof d&&(d={children:d}),(0,r.jsxs)(c.m_,{children:[(0,r.jsx)(c.k$,{asChild:!0,children:x}),(0,r.jsx)(c.ZI,{side:"right",align:"center",hidden:"collapsed"!==p||h,...d})]})):x}},1085:(e,t,a)=>{"use strict";a.d(t,{Fm:()=>u,Qs:()=>f,cj:()=>o,h:()=>c,qp:()=>b});var r=a(5155);a(2115);var i=a(5452),s=a(4416),n=a(3999);function o(e){let{...t}=e;return(0,r.jsx)(i.bL,{"data-slot":"sheet",...t})}function d(e){let{...t}=e;return(0,r.jsx)(i.ZL,{"data-slot":"sheet-portal",...t})}function l(e){let{className:t,...a}=e;return(0,r.jsx)(i.hJ,{"data-slot":"sheet-overlay",className:(0,n.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...a})}function c(e){let{className:t,children:a,side:o="right",...c}=e;return(0,r.jsxs)(d,{children:[(0,r.jsx)(l,{}),(0,r.jsxs)(i.UC,{"data-slot":"sheet-content",className:(0,n.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===o&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===o&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===o&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===o&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",t),...c,children:[a,(0,r.jsxs)(i.bm,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,r.jsx)(s.A,{className:"size-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function u(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sheet-header",className:(0,n.cn)("flex flex-col gap-1.5 p-4",t),...a})}function b(e){let{className:t,...a}=e;return(0,r.jsx)(i.hE,{"data-slot":"sheet-title",className:(0,n.cn)("text-foreground font-semibold",t),...a})}function f(e){let{className:t,...a}=e;return(0,r.jsx)(i.VY,{"data-slot":"sheet-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...a})}},3999:(e,t,a)=>{"use strict";a.d(t,{cn:()=>s});var r=a(2596),i=a(9688);function s(){for(var e=arguments.length,t=Array(e),a=0;a{"use strict";a.d(t,{Separator:()=>n,W:()=>o});var r=a(5155);a(2115);var i=a(7489),s=a(3999);function n(e){let{className:t,orientation:a="horizontal",decorative:n=!0,...o}=e;return(0,r.jsx)(i.b,{"data-slot":"separator",decorative:n,orientation:a,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...o})}function o(e){let{className:t}=e;return(0,r.jsx)("div",{className:(0,s.cn)("border-border h-[1px] w-full border-t border-dashed bg-transparent",{["".concat(t)]:void 0!==t})})}},6976:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,9324,23)),Promise.resolve().then(a.bind(a,7942)),Promise.resolve().then(a.bind(a,9685)),Promise.resolve().then(a.bind(a,9304)),Promise.resolve().then(a.bind(a,193)),Promise.resolve().then(a.t.bind(a,5688,23)),Promise.resolve().then(a.t.bind(a,9432,23)),Promise.resolve().then(a.bind(a,6671))},7168:(e,t,a)=>{"use strict";a.d(t,{$:()=>l,r:()=>d});var r=a(5155);a(2115);var i=a(9708),s=a(2085),n=a(3999),o=a(1154);let d=(0,s.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function l(e){let{className:t,variant:a,size:i,asChild:s=!1,children:n,isLoading:d=!1,...l}=e;return(0,r.jsx)(c,{className:t,variant:a,size:i,asChild:s,...l,children:d?(0,r.jsx)(o.A,{className:"size-4 animate-spin"}):n})}function c(e){let{className:t,variant:a,size:s,asChild:o=!1,...l}=e,c=o?i.DX:"button";return(0,r.jsx)(c,{"data-slot":"button",className:(0,n.cn)(d({variant:a,size:s,className:t}),"cursor-pointer"),...l})}},7777:(e,t,a)=>{"use strict";a.d(t,{Bc:()=>n,ZI:()=>l,k$:()=>d,m_:()=>o});var r=a(5155);a(2115);var i=a(9613),s=a(3999);function n(e){let{delayDuration:t=0,...a}=e;return(0,r.jsx)(i.Kq,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function o(e){let{...t}=e;return(0,r.jsx)(n,{children:(0,r.jsx)(i.bL,{"data-slot":"tooltip",...t})})}function d(e){let{...t}=e;return(0,r.jsx)(i.l9,{"data-slot":"tooltip-trigger",...t})}function l(e){let{className:t,sideOffset:a=0,children:n,...o}=e;return(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{"data-slot":"tooltip-content",sideOffset:a,className:(0,s.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",t),...o,children:[n,(0,r.jsx)(i.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},7942:(e,t,a)=>{"use strict";a.d(t,{default:()=>s});var r=a(5155),i=a(7109);let s=e=>{let{children:t}=e;return(0,r.jsx)(i.V,{height:"4px",color:"#33a9fd",options:{showSpinner:!1},shallowRouting:!0,children:t})}},8145:(e,t,a)=>{"use strict";a.d(t,{E:()=>d});var r=a(5155);a(2115);var i=a(9708),s=a(2085),n=a(3999);let o=(0,s.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",success:"border-transparent bg-green-700 text-white [a&]:hover:bg-green-700/90"}},defaultVariants:{variant:"default"}});function d(e){let{className:t,variant:a,asChild:s=!1,...d}=e,l=s?i.DX:"span";return(0,r.jsx)(l,{"data-slot":"badge",className:(0,n.cn)(o({variant:a}),t),...d})}},9304:(e,t,a)=>{"use strict";a.d(t,{ThemeProvider:()=>s});var r=a(5155);a(2115);var i=a(1362);function s(e){let{children:t,...a}=e;return(0,r.jsx)(i.N,{...a,children:t})}},9324:()=>{},9685:(e,t,a)=>{"use strict";a.d(t,{default:()=>j});var r=a(5155),i=a(7340),s=a(381),n=a(5040),o=a(7520),d=a(3786),l=a(3052),c=a(193),u=a(8145),b=a(5695),f=a(6874),h=a.n(f),p=a(3999),x=a(1362),g=a(2115),m=a(6766);let v=[{title:"Logs",url:"/",icon:i.A,description:"Request logs & monitoring",badge:"Live"},{title:"Config",url:"/config",icon:s.A,description:"Providers & MCP configuration"},{title:"Docs",url:"/docs",icon:n.A,description:"Documentation & guides"},{title:"Plugins",url:"/plugins",icon:o.A,description:"Extend Bifrost functionality",badge:"Beta"}],w=[{title:"GitHub Repository",url:"https://github.com/maximhq/bifrost",icon:d.A},{title:"Full Documentation",url:"https://github.com/maximhq/bifrost/tree/main/docs",icon:n.A}];function j(){let e=(0,b.usePathname)(),[t,a]=(0,g.useState)(!1),{resolvedTheme:i}=(0,x.D)();(0,g.useEffect)(()=>{a(!0)},[]);let s=t=>!!("/"===t&&"/"===e||"/"!==t&&e.startsWith(t));return(0,r.jsxs)(c.Bx,{className:"border-border border-r",children:[(0,r.jsx)(c.Gh,{className:"flex h-12 justify-center",children:(0,r.jsx)(h(),{href:"/",className:"group flex items-center gap-2 pl-1.5",children:(0,r.jsx)(m.default,{className:"h-10 w-auto",src:t&&"dark"===i?"/bifrost-logo-dark.png":"/bifrost-logo.png",alt:"Bifrost",width:100,height:100})})}),(0,r.jsx)(c.GX,{}),(0,r.jsxs)(c.Yv,{children:[(0,r.jsxs)(c.Cn,{children:[(0,r.jsx)(c.jj,{className:"text-muted-foreground px-3 py-2 text-xs font-semibold tracking-wider uppercase",children:"Navigation"}),(0,r.jsx)(c.rQ,{children:(0,r.jsx)(c.wZ,{className:"space-y-1",children:v.map(e=>{let t=s(e.url);return(0,r.jsx)(c.FX,{children:(0,r.jsx)(c.Uj,{asChild:!0,className:"relative h-16 rounded-lg border px-3 transition-all duration-200 ".concat(t?"bg-accent text-primary border-primary/20 shadow-sm":"hover:bg-accent hover:text-accent-foreground border-transparent"," "),children:(0,r.jsxs)(h(),{href:e.url,className:"flex w-full items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(e.icon,{className:"h-4 w-4 ".concat(t?"text-primary":"text-muted-foreground")}),(0,r.jsx)("span",{className:"text-sm font-medium",children:e.title})]}),(0,r.jsx)("span",{className:"text-muted-foreground overflow-hidden text-xs text-ellipsis whitespace-nowrap",children:e.description})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[e.badge&&(0,r.jsx)(u.E,{variant:"Live"===e.badge?"default":"secondary",className:(0,p.cn)("h-5 px-2 py-0.5 text-xs","Live"===e.badge&&"animate-pulse duration-200"),children:e.badge}),t&&(0,r.jsx)(l.A,{className:"text-primary h-3 w-3"})]})]})})},e.title)})})})]}),(0,r.jsx)(c.GX,{className:"my-4"}),(0,r.jsxs)(c.Cn,{children:[(0,r.jsx)(c.jj,{className:"text-muted-foreground px-3 py-2 text-xs font-semibold tracking-wider uppercase",children:"Resources"}),(0,r.jsx)(c.rQ,{children:(0,r.jsx)(c.wZ,{className:"space-y-1",children:w.map(e=>(0,r.jsx)(c.FX,{children:(0,r.jsx)(c.Uj,{asChild:!0,className:"hover:bg-accent hover:text-accent-foreground h-9 rounded-lg px-3 transition-all duration-200",children:(0,r.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"group flex w-full items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,r.jsx)(e.icon,{className:"text-muted-foreground group-hover:text-foreground h-4 w-4"}),(0,r.jsx)("span",{className:"text-sm",children:e.title})]}),(0,r.jsx)(d.A,{className:"text-muted-foreground h-3 w-3 opacity-0 transition-opacity group-hover:opacity-100"})]})})},e.title))})})]})]}),(0,r.jsx)(c.CG,{className:"border-border border-t px-6 py-4",children:(0,r.jsxs)("div",{className:"text-muted-foreground mx-auto flex w-fit items-center space-x-1 text-xs",children:[(0,r.jsx)("span",{children:"Made with ♥️ by"}),(0,r.jsx)("a",{href:"https://getmaxim.ai",target:"_blank",rel:"noopener noreferrer",className:"text-primary",children:"Maxim AI"})]})})]})}},9852:(e,t,a)=>{"use strict";a.d(t,{p:()=>n});var r=a(5155),i=a(2115),s=a(3999);let n=i.forwardRef((e,t)=>{let{className:a,type:i,...n}=e;return(0,r.jsx)("input",{type:i,ref:t,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...n})});n.displayName="Input"}},e=>{var t=t=>e(e.s=t);e.O(0,[261,867,678,874,273,825,441,684,358],()=>t(6976)),_N_E=e.O()}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/app/layout-e528237e8bb14184.js b/transports/bifrost-http/ui/_next/static/chunks/app/layout-e528237e8bb14184.js deleted file mode 100644 index 6424abf477..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/app/layout-e528237e8bb14184.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{193:(e,t,a)=>{"use strict";a.d(t,{Bx:()=>p,Yv:()=>m,CG:()=>b,Cn:()=>v,rQ:()=>w,jj:()=>j,Gh:()=>f,wZ:()=>y,Uj:()=>k,FX:()=>N,SidebarProvider:()=>h,GX:()=>g});var r=a(5155),i=a(2115),s=a(9708),n=a(2085),o=a(3999);a(7168),a(9852);var d=a(6037),l=a(1085),c=a(7777);let u=i.createContext(null);function x(){let e=i.useContext(u);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function h(e){let{defaultOpen:t=!0,open:a,onOpenChange:s,className:n,style:d,children:l,...x}=e,h=function(){let[e,t]=i.useState(void 0);return i.useEffect(()=>{let e=window.matchMedia("(max-width: ".concat(767,"px)")),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[p,f]=i.useState(!1),[b,g]=i.useState(t),m=null!=a?a:b,v=i.useCallback(e=>{let t="function"==typeof e?e(m):e;s?s(t):g(t),document.cookie="".concat("sidebar_state","=").concat(t,"; path=/; max-age=").concat(604800)},[s,m]),j=i.useCallback(()=>h?f(e=>!e):v(e=>!e),[h,v,f]);i.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),j())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[j]);let w=m?"expanded":"collapsed",y=i.useMemo(()=>({state:w,open:m,setOpen:v,isMobile:h,openMobile:p,setOpenMobile:f,toggleSidebar:j}),[w,m,v,h,p,f,j]);return(0,r.jsx)(u.Provider,{value:y,children:(0,r.jsx)(c.Bc,{delayDuration:0,children:(0,r.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...d},className:(0,o.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",n),...x,children:l})})})}function p(e){let{side:t="left",variant:a="sidebar",collapsible:i="offcanvas",className:s,children:n,...d}=e,{isMobile:c,state:u,openMobile:h,setOpenMobile:p}=x();return"none"===i?(0,r.jsx)("div",{"data-slot":"sidebar",className:(0,o.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",s),...d,children:n}):c?(0,r.jsx)(l.cj,{open:h,onOpenChange:p,...d,children:(0,r.jsxs)(l.h,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:t,children:[(0,r.jsxs)(l.Fm,{className:"sr-only",children:[(0,r.jsx)(l.qp,{children:"Sidebar"}),(0,r.jsx)(l.Qs,{children:"Displays the mobile sidebar."})]}),(0,r.jsx)("div",{className:"flex h-full w-full flex-col",children:n})]})}):(0,r.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":u,"data-collapsible":"collapsed"===u?i:"","data-variant":a,"data-side":t,"data-slot":"sidebar",children:[(0,r.jsx)("div",{"data-slot":"sidebar-gap",className:(0,o.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===a||"inset"===a?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,r.jsx)("div",{"data-slot":"sidebar-container",className:(0,o.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===t?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===a||"inset"===a?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",s),...d,children:(0,r.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:n})})]})}function f(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,o.cn)("flex flex-col gap-2 p-2",t),...a})}function b(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,o.cn)("flex flex-col gap-2 p-2",t),...a})}function g(e){let{className:t,...a}=e;return(0,r.jsx)(d.Separator,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,o.cn)("bg-sidebar-border mx-2 w-auto",t),...a})}function m(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,o.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",t),...a})}function v(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,o.cn)("relative flex w-full min-w-0 flex-col p-2",t),...a})}function j(e){let{className:t,asChild:a=!1,...i}=e,n=a?s.DX:"div";return(0,r.jsx)(n,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,o.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",t),...i})}function w(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,o.cn)("w-full text-sm",t),...a})}function y(e){let{className:t,...a}=e;return(0,r.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,o.cn)("flex w-full min-w-0 flex-col gap-1",t),...a})}function N(e){let{className:t,...a}=e;return(0,r.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,o.cn)("group/menu-item relative",t),...a})}let _=(0,n.F)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function k(e){let{asChild:t=!1,isActive:a=!1,variant:i="default",size:n="default",tooltip:d,className:l,...u}=e,h=t?s.DX:"button",{isMobile:p,state:f}=x(),b=(0,r.jsx)(h,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":n,"data-active":a,className:(0,o.cn)(_({variant:i,size:n}),l),...u});return d?("string"==typeof d&&(d={children:d}),(0,r.jsxs)(c.m_,{children:[(0,r.jsx)(c.k$,{asChild:!0,children:b}),(0,r.jsx)(c.ZI,{side:"right",align:"center",hidden:"collapsed"!==f||p,...d})]})):b}},1085:(e,t,a)=>{"use strict";a.d(t,{Fm:()=>u,Qs:()=>h,cj:()=>o,h:()=>c,qp:()=>x});var r=a(5155);a(2115);var i=a(5452),s=a(4416),n=a(3999);function o(e){let{...t}=e;return(0,r.jsx)(i.bL,{"data-slot":"sheet",...t})}function d(e){let{...t}=e;return(0,r.jsx)(i.ZL,{"data-slot":"sheet-portal",...t})}function l(e){let{className:t,...a}=e;return(0,r.jsx)(i.hJ,{"data-slot":"sheet-overlay",className:(0,n.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...a})}function c(e){let{className:t,children:a,side:o="right",...c}=e;return(0,r.jsxs)(d,{children:[(0,r.jsx)(l,{}),(0,r.jsxs)(i.UC,{"data-slot":"sheet-content",className:(0,n.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===o&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===o&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===o&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===o&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",t),...c,children:[a,(0,r.jsxs)(i.bm,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,r.jsx)(s.A,{className:"size-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function u(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"sheet-header",className:(0,n.cn)("flex flex-col gap-1.5 p-4",t),...a})}function x(e){let{className:t,...a}=e;return(0,r.jsx)(i.hE,{"data-slot":"sheet-title",className:(0,n.cn)("text-foreground font-semibold",t),...a})}function h(e){let{className:t,...a}=e;return(0,r.jsx)(i.VY,{"data-slot":"sheet-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...a})}},3999:(e,t,a)=>{"use strict";a.d(t,{cn:()=>s});var r=a(2596),i=a(9688);function s(){for(var e=arguments.length,t=Array(e),a=0;a{"use strict";a.d(t,{F:()=>u});var r=a(5155),i=a(4213),s=a(381),n=a(5487),o=a(5448),d=a(9803),l=a(4869),c=a(1154);let u={bifrost:(0,r.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 259 247",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("path",{d:"M126.157 20V67.2283L82.9686 182.152H20.0019L126.157 20Z",fill:"#D9D9D9"}),(0,r.jsx)("path",{d:"M126.157 20V67.2283L82.9686 182.152H20.0019L126.157 20Z",fill:"url(#paint0_linear_2477_3310)"}),(0,r.jsx)("path",{d:"M132.844 20V67.2283L176.033 182.152H239L132.844 20Z",fill:"#D9D9D9"}),(0,r.jsx)("path",{d:"M132.844 20V67.2283L176.033 182.152H239L132.844 20Z",fill:"url(#paint1_linear_2477_3310)"}),(0,r.jsx)("path",{d:"M20 191.963H82.6903V227H20V191.963Z",fill:"#D9D9D9"}),(0,r.jsx)("path",{d:"M20 191.963H82.6903V227H20V191.963Z",fill:"url(#paint2_linear_2477_3310)"}),(0,r.jsx)("path",{d:"M176.308 191.963H238.998V227H176.308V191.963Z",fill:"#D9D9D9"}),(0,r.jsx)("path",{d:"M176.308 191.963H238.998V227H176.308V191.963Z",fill:"url(#paint3_linear_2477_3310)"}),(0,r.jsxs)("defs",{children:[(0,r.jsxs)("linearGradient",{id:"paint0_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#A3FFDC"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]}),(0,r.jsxs)("linearGradient",{id:"paint1_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#A3FFDC"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]}),(0,r.jsxs)("linearGradient",{id:"paint2_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#A3FFDC"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]}),(0,r.jsxs)("linearGradient",{id:"paint3_linear_2477_3310",x1:"172.144",y1:"-22.4614",x2:"341.129",y2:"153.483",gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#A3FFDC"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#66E0B2"})]})]})]}),openai:(0,r.jsx)(i.A,{}),anthropic:(0,r.jsx)(s.A,{}),bedrock:(0,r.jsx)(n.A,{}),cohere:(0,r.jsx)(o.A,{}),vertex:(0,r.jsx)(d.A,{}),ollama:(0,r.jsx)(l.A,{}),mistral:(0,r.jsxs)("svg",{height:"1em",style:{flex:"none",lineHeight:"1"},viewBox:"0 0 24 24",width:"1em",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("title",{children:"Mistral"}),(0,r.jsx)("path",{d:"M3.428 3.4h3.429v3.428H3.428V3.4zm13.714 0h3.43v3.428h-3.43V3.4z",fill:"gold"}),(0,r.jsx)("path",{d:"M3.428 6.828h6.857v3.429H3.429V6.828zm10.286 0h6.857v3.429h-6.857V6.828z",fill:"#FFAF00"}),(0,r.jsx)("path",{d:"M3.428 10.258h17.144v3.428H3.428v-3.428z",fill:"#FF8205"}),(0,r.jsx)("path",{d:"M3.428 13.686h3.429v3.428H3.428v-3.428zm6.858 0h3.429v3.428h-3.429v-3.428zm6.856 0h3.43v3.428h-3.43v-3.428z",fill:"#FA500F"}),(0,r.jsx)("path",{d:"M0 17.114h10.286v3.429H0v-3.429zm13.714 0H24v3.429H13.714v-3.429z",fill:"#E10500"})]}),azure:(0,r.jsx)(c.A,{})}},6037:(e,t,a)=>{"use strict";a.d(t,{Separator:()=>n,W:()=>o});var r=a(5155);a(2115);var i=a(7489),s=a(3999);function n(e){let{className:t,orientation:a="horizontal",decorative:n=!0,...o}=e;return(0,r.jsx)(i.b,{"data-slot":"separator",decorative:n,orientation:a,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...o})}function o(e){let{className:t}=e;return(0,r.jsx)("div",{className:(0,s.cn)("border-border h-[1px] w-full border-t border-dashed bg-transparent",{["".concat(t)]:void 0!==t})})}},6976:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,9324,23)),Promise.resolve().then(a.bind(a,7942)),Promise.resolve().then(a.bind(a,9685)),Promise.resolve().then(a.bind(a,9304)),Promise.resolve().then(a.bind(a,193)),Promise.resolve().then(a.t.bind(a,5688,23)),Promise.resolve().then(a.t.bind(a,9432,23)),Promise.resolve().then(a.bind(a,6671))},7168:(e,t,a)=>{"use strict";a.d(t,{$:()=>l,r:()=>d});var r=a(5155);a(2115);var i=a(9708),s=a(2085),n=a(3999),o=a(1154);let d=(0,s.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function l(e){let{className:t,variant:a,size:i,asChild:s=!1,children:n,isLoading:d=!1,...l}=e;return(0,r.jsx)(c,{className:t,variant:a,size:i,asChild:s,...l,children:d?(0,r.jsx)(o.A,{className:"size-4 animate-spin"}):n})}function c(e){let{className:t,variant:a,size:s,asChild:o=!1,...l}=e,c=o?i.DX:"button";return(0,r.jsx)(c,{"data-slot":"button",className:(0,n.cn)(d({variant:a,size:s,className:t}),"cursor-pointer"),...l})}},7777:(e,t,a)=>{"use strict";a.d(t,{Bc:()=>n,ZI:()=>l,k$:()=>d,m_:()=>o});var r=a(5155);a(2115);var i=a(9613),s=a(3999);function n(e){let{delayDuration:t=0,...a}=e;return(0,r.jsx)(i.Kq,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function o(e){let{...t}=e;return(0,r.jsx)(n,{children:(0,r.jsx)(i.bL,{"data-slot":"tooltip",...t})})}function d(e){let{...t}=e;return(0,r.jsx)(i.l9,{"data-slot":"tooltip-trigger",...t})}function l(e){let{className:t,sideOffset:a=0,children:n,...o}=e;return(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{"data-slot":"tooltip-content",sideOffset:a,className:(0,s.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",t),...o,children:[n,(0,r.jsx)(i.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},7942:(e,t,a)=>{"use strict";a.d(t,{default:()=>s});var r=a(5155),i=a(7109);let s=e=>{let{children:t}=e;return(0,r.jsx)(i.V,{height:"4px",color:"#33a9fd",options:{showSpinner:!1},shallowRouting:!0,children:t})}},8145:(e,t,a)=>{"use strict";a.d(t,{E:()=>d});var r=a(5155);a(2115);var i=a(9708),s=a(2085),n=a(3999);let o=(0,s.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",success:"border-transparent bg-green-700 text-white [a&]:hover:bg-green-700/90"}},defaultVariants:{variant:"default"}});function d(e){let{className:t,variant:a,asChild:s=!1,...d}=e,l=s?i.DX:"span";return(0,r.jsx)(l,{"data-slot":"badge",className:(0,n.cn)(o({variant:a}),t),...d})}},9304:(e,t,a)=>{"use strict";a.d(t,{ThemeProvider:()=>s});var r=a(5155);a(2115);var i=a(1362);function s(e){let{children:t,...a}=e;return(0,r.jsx)(i.N,{...a,children:t})}},9324:()=>{},9685:(e,t,a)=>{"use strict";a.d(t,{default:()=>v});var r=a(5155),i=a(7340),s=a(381),n=a(5040),o=a(7520),d=a(3786),l=a(3052),c=a(193),u=a(8145),x=a(5695),h=a(6874),p=a.n(h),f=a(3999),b=a(4432);let g=[{title:"Logs",url:"/",icon:i.A,description:"Request logs & monitoring",badge:"Live"},{title:"Config",url:"/config",icon:s.A,description:"Providers & MCP configuration"},{title:"Docs",url:"/docs",icon:n.A,description:"Documentation & guides"},{title:"Plugins",url:"/plugins",icon:o.A,description:"Extend Bifrost functionality",badge:"Beta"}],m=[{title:"GitHub Repository",url:"https://github.com/maximhq/bifrost",icon:d.A},{title:"Full Documentation",url:"https://github.com/maximhq/bifrost/tree/main/docs",icon:n.A}];function v(){let e=(0,x.usePathname)(),t=t=>!!("/"===t&&"/"===e||"/"!==t&&e.startsWith(t));return(0,r.jsxs)(c.Bx,{className:"border-border border-r",children:[(0,r.jsx)(c.Gh,{className:"flex h-12 justify-center",children:(0,r.jsxs)(p(),{href:"/",className:"group flex items-center gap-2",children:[(0,r.jsx)("div",{className:"from-primary flex h-6 w-6 items-center justify-center",children:b.F.bifrost}),(0,r.jsx)("h1",{className:"text-foreground text-lg leading-none font-bold",children:"Bifrost"})]})}),(0,r.jsx)(c.GX,{}),(0,r.jsxs)(c.Yv,{children:[(0,r.jsxs)(c.Cn,{children:[(0,r.jsx)(c.jj,{className:"text-muted-foreground px-2 py-2 text-xs font-semibold tracking-wider uppercase",children:"Navigation"}),(0,r.jsx)(c.rQ,{children:(0,r.jsx)(c.wZ,{className:"space-y-1",children:g.map(e=>{let a=t(e.url);return(0,r.jsx)(c.FX,{children:(0,r.jsx)(c.Uj,{asChild:!0,className:"relative h-16 rounded-lg border px-3 transition-all duration-200 ".concat(a?"bg-accent text-primary border-primary/20 shadow-sm":"hover:bg-accent hover:text-accent-foreground border-transparent"," "),children:(0,r.jsxs)(p(),{href:e.url,className:"flex w-full items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(e.icon,{className:"h-4 w-4 ".concat(a?"text-primary":"text-muted-foreground")}),(0,r.jsx)("span",{className:"text-sm font-medium",children:e.title})]}),(0,r.jsx)("span",{className:"text-muted-foreground overflow-hidden text-xs text-ellipsis whitespace-nowrap",children:e.description})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[e.badge&&(0,r.jsx)(u.E,{variant:"Live"===e.badge?"default":"secondary",className:(0,f.cn)("h-5 px-2 py-0.5 text-xs","Live"===e.badge&&"animate-pulse duration-200"),children:e.badge}),a&&(0,r.jsx)(l.A,{className:"text-primary h-3 w-3"})]})]})})},e.title)})})})]}),(0,r.jsx)(c.GX,{className:"my-4"}),(0,r.jsxs)(c.Cn,{children:[(0,r.jsx)(c.jj,{className:"text-muted-foreground px-2 py-2 text-xs font-semibold tracking-wider uppercase",children:"Resources"}),(0,r.jsx)(c.rQ,{children:(0,r.jsx)(c.wZ,{className:"space-y-1",children:m.map(e=>(0,r.jsx)(c.FX,{children:(0,r.jsx)(c.Uj,{asChild:!0,className:"hover:bg-accent hover:text-accent-foreground h-9 rounded-lg px-3 transition-all duration-200",children:(0,r.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"group flex w-full items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,r.jsx)(e.icon,{className:"text-muted-foreground group-hover:text-foreground h-4 w-4"}),(0,r.jsx)("span",{className:"text-sm",children:e.title})]}),(0,r.jsx)(d.A,{className:"text-muted-foreground h-3 w-3 opacity-0 transition-opacity group-hover:opacity-100"})]})})},e.title))})})]})]}),(0,r.jsx)(c.CG,{className:"border-border border-t px-6 py-4",children:(0,r.jsxs)("div",{className:"text-muted-foreground mx-auto flex w-fit items-center space-x-1 text-xs",children:[(0,r.jsx)("span",{children:"Made with ♥️ by"}),(0,r.jsx)("a",{href:"https://getmaxim.ai",target:"_blank",rel:"noopener noreferrer",className:"text-primary",children:"Maxim AI"})]})})]})}},9852:(e,t,a)=>{"use strict";a.d(t,{p:()=>n});var r=a(5155),i=a(2115),s=a(3999);let n=i.forwardRef((e,t)=>{let{className:a,type:i,...n}=e;return(0,r.jsx)("input",{type:i,ref:t,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...n})});n.displayName="Input"}},e=>{var t=t=>e(e.s=t);e.O(0,[261,867,213,874,473,154,441,684,358],()=>t(6976)),_N_E=e.O()}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/app/page-3d9741bf5c7d7c6d.js b/transports/bifrost-http/ui/_next/static/chunks/app/page-3d9741bf5c7d7c6d.js new file mode 100644 index 0000000000..0214fb46b1 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/chunks/app/page-3d9741bf5c7d7c6d.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{1085:(e,t,s)=>{"use strict";s.d(t,{Fm:()=>u,Qs:()=>p,cj:()=>r,h:()=>d,qp:()=>m});var n=s(5155);s(2115);var a=s(5452),l=s(4416),o=s(3999);function r(e){let{...t}=e;return(0,n.jsx)(a.bL,{"data-slot":"sheet",...t})}function i(e){let{...t}=e;return(0,n.jsx)(a.ZL,{"data-slot":"sheet-portal",...t})}function c(e){let{className:t,...s}=e;return(0,n.jsx)(a.hJ,{"data-slot":"sheet-overlay",className:(0,o.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s})}function d(e){let{className:t,children:s,side:r="right",...d}=e;return(0,n.jsxs)(i,{children:[(0,n.jsx)(c,{}),(0,n.jsxs)(a.UC,{"data-slot":"sheet-content",className:(0,o.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===r&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===r&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===r&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===r&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",t),...d,children:[s,(0,n.jsxs)(a.bm,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,n.jsx)(l.A,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function u(e){let{className:t,...s}=e;return(0,n.jsx)("div",{"data-slot":"sheet-header",className:(0,o.cn)("flex flex-col gap-1.5 p-4",t),...s})}function m(e){let{className:t,...s}=e;return(0,n.jsx)(a.hE,{"data-slot":"sheet-title",className:(0,o.cn)("text-foreground font-semibold",t),...s})}function p(e){let{className:t,...s}=e;return(0,n.jsx)(a.VY,{"data-slot":"sheet-description",className:(0,o.cn)("text-muted-foreground text-sm",t),...s})}},5196:(e,t,s)=>{Promise.resolve().then(s.bind(s,6794))},6794:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ev});var n=s(5155),a=s(2115),l=s(9464),o=s(6268),r=s(1032),i=s(8524),c=s(7168),d=s(3904),u=s(4416),m=s(2355),p=s(3052),h=s(9852),x=s(7924),g=s(2815),f=s(7740),j=s(3999);function v(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB,{"data-slot":"command",className:(0,j.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",t),...s})}function y(e){let{className:t,...s}=e;return(0,n.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,n.jsx)(x.A,{className:"size-4 shrink-0 opacity-50"}),(0,n.jsx)(f.uB.Input,{"data-slot":"command-input",className:(0,j.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),...s})]})}function N(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB.List,{"data-slot":"command-list",className:(0,j.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...s})}function b(e){let{...t}=e;return(0,n.jsx)(f.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}function w(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB.Group,{"data-slot":"command-group",className:(0,j.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...s})}function _(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB.Item,{"data-slot":"command-item",className:(0,j.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s})}s(9840);var k=s(547);function S(e){let{...t}=e;return(0,n.jsx)(k.bL,{"data-slot":"popover",...t})}function A(e){let{...t}=e;return(0,n.jsx)(k.l9,{"data-slot":"popover-trigger",...t})}function C(e){let{className:t,align:s="center",sideOffset:a=4,...l}=e;return(0,n.jsx)(k.ZL,{children:(0,n.jsx)(k.UC,{"data-slot":"popover-content",align:s,sideOffset:a,className:(0,j.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...l})})}var L=s(7783);let H={Status:L.f,Providers:L.xq,Type:L.mG};function T(e){let{filters:t,onFiltersChange:s}=e,[l,o]=(0,a.useState)(!1),[r,i]=(0,a.useState)(t.content_search||""),d=(0,a.useRef)(void 0);(0,a.useEffect)(()=>()=>{d.current&&clearTimeout(d.current)},[]);let u=(0,a.useCallback)(e=>{i(e),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{s({...t,content_search:e})},500)},[t,s]),m=(e,n)=>{let a={Status:"status",Providers:"providers",Type:"objects"}[e],l=t[a]||[],o=l.includes(n)?l.filter(e=>e!==n):[...l,n];s({...t,[a]:o})},p=(e,s)=>{let n=t[({Status:"status",Providers:"providers",Type:"objects"})[e]];return Array.isArray(n)&&n.includes(s)},f=()=>Object.entries(t).reduce((e,t)=>{let[s,n]=t;return Array.isArray(n)?e+n.length:e+ +!!n},0);return(0,n.jsxs)("div",{className:"flex items-center justify-between space-x-4",children:[(0,n.jsxs)("div",{className:"flex flex-1 items-center gap-2",children:[(0,n.jsx)(x.A,{className:"size-5"}),(0,n.jsx)(h.p,{type:"text",className:"border-none shadow-none outline-none focus-visible:ring-0",placeholder:"Search logs",value:r,onChange:e=>u(e.target.value)})]}),(0,n.jsxs)(S,{open:l,onOpenChange:o,children:[(0,n.jsx)(A,{asChild:!0,children:(0,n.jsxs)(c.$,{variant:"outline",size:"sm",className:"h-9",children:["Filters",f()>0&&(0,n.jsx)("span",{className:"bg-primary/10 flex h-6 w-6 items-center justify-center rounded-full text-xs font-normal",children:f()})]})}),(0,n.jsx)(C,{className:"w-[200px] p-0",align:"end",children:(0,n.jsxs)(v,{children:[(0,n.jsx)(y,{placeholder:"Search filters..."}),(0,n.jsxs)(N,{children:[(0,n.jsx)(b,{children:"No filters found."}),Object.entries(H).map(e=>{let[t,s]=e;return(0,n.jsx)(w,{heading:t,children:s.map(e=>{let s=p(t,e);return(0,n.jsxs)(_,{onSelect:()=>m(t,e),children:[(0,n.jsx)("div",{className:(0,j.cn)("border-primary mr-2 flex h-4 w-4 items-center justify-center rounded-sm border",s?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:(0,n.jsx)(g.A,{className:"text-primary-foreground size-3"})}),(0,n.jsx)("span",{children:e})]},e)})},t)})]})]})})]})]})}function z(e){let{columns:t,data:s,totalItems:l,loading:h=!1,filters:x,pagination:g,onFiltersChange:f,onPaginationChange:j,onRowClick:v,isSocketConnected:y}=e,[N,b]=(0,a.useState)([{id:g.sort_by,desc:"desc"===g.order}]),w=(0,o.N4)({data:s,columns:t,getCoreRowModel:(0,r.HT)(),manualPagination:!0,manualSorting:!0,manualFiltering:!0,pageCount:Math.ceil(l/g.limit),state:{sorting:N},onSortingChange:e=>{let t="function"==typeof e?e(N):e;if(b(t),t.length>0){let{id:e,desc:s}=t[0];j({...g,sort_by:e,order:s?"desc":"asc"})}}}),_=Math.floor(g.offset/g.limit)+1,k=Math.ceil(l/g.limit),S=g.offset+1,A=Math.min(g.offset+g.limit,l),C=e=>{let t=(e-1)*g.limit;j({...g,offset:t})};return(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(T,{filters:x,onFiltersChange:f}),(0,n.jsx)("div",{className:"rounded-md border",children:(0,n.jsxs)(i.XI,{children:[(0,n.jsx)(i.A0,{children:w.getHeaderGroups().map(e=>(0,n.jsx)(i.Hj,{children:e.headers.map(e=>(0,n.jsx)(i.nd,{children:e.isPlaceholder?null:(0,o.Kv)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,n.jsx)(i.BF,{children:h?(0,n.jsx)(i.Hj,{children:(0,n.jsx)(i.nA,{colSpan:t.length,className:"h-24 text-center",children:(0,n.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}),"Loading logs..."]})})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.Hj,{className:"hover:bg-transparent",children:(0,n.jsx)(i.nA,{colSpan:t.length,className:"h-12 text-center",children:(0,n.jsx)("div",{className:"flex items-center justify-center gap-2",children:y?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}),"Listening for logs..."]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),"Not connected to socket, please refresh the page."]})})})}),w.getRowModel().rows.length?w.getRowModel().rows.map(e=>(0,n.jsx)(i.Hj,{className:"hover:bg-muted/50 cursor-pointer",onClick:()=>null==v?void 0:v(e.original),children:e.getVisibleCells().map(e=>(0,n.jsx)(i.nA,{children:(0,o.Kv)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,n.jsx)(i.Hj,{children:(0,n.jsx)(i.nA,{colSpan:t.length,className:"h-24 text-center",children:"No results found."})})]})})]})}),(0,n.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,n.jsxs)("div",{className:"text-muted-foreground flex items-center gap-2",children:[S.toLocaleString(),"-",A.toLocaleString()," of ",l.toLocaleString()," entries"]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>C(_-1),disabled:1===_,children:(0,n.jsx)(m.A,{className:"size-3"})}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("span",{children:"Page"}),(0,n.jsx)("span",{children:_}),(0,n.jsxs)("span",{children:["of ",k]})]}),(0,n.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>C(_+1),disabled:_===k,children:(0,n.jsx)(p.A,{className:"size-3"})})]})]})]})}var B=s(8145),M=s(1085),I=s(6561),O=s(7434),R=s(5868);function q(e){if(null===e.value)return null;let t=e.orientation||"vertical";return(0,n.jsx)("div",{className:(0,j.cn)("items-top flex flex-col gap-2",{["".concat(e.className)]:void 0!==e.className,"items-start":"left"===e.align||void 0===e.align,"items-end":"right"===e.align}),children:(0,n.jsxs)("div",{className:e.containerClassName,children:[""!==e.label&&(0,n.jsx)("div",{className:"text-muted-foreground flex shrink-0 flex-row items-center gap-2 text-xs font-medium",children:e.label.toUpperCase()}),(0,n.jsx)("div",{className:(0,j.cn)("text-md flex text-xs font-medium whitespace-nowrap transition-transform delay-75",{"w-full flex-col items-center gap-2":"horizontal"===t,"flex-row items-start gap-2":"vertical"===t,["".concat(e.valueClassName)]:void 0!==e.valueClassName,"text-end":"right"===e.align}),children:e.value})]})})}var E=s(2940),F=s.n(E),P=s(6037),D=s(1154),W=s(1362);let K=(0,s(5028).default)(()=>s.e(364).then(s.bind(s,1364)).then(e=>e.default),{loadableGenerated:{webpack:()=>[1364]},ssr:!1,loading:()=>(0,n.jsx)(D.A,{className:"h-4 w-4 animate-spin p-4"})});function G(e){var t,s,l,o,r,i,c,d,u,m,p,h,x,g,f,v;let{className:y,lang:N,code:b,onChange:w,height:_,minHeight:k}=e,S=(0,a.useRef)(null),[A,C]=(0,a.useState)(!1),[L,H]=(0,a.useState)(e.height||e.minHeight||200);(0,a.useEffect)(()=>{C(!0)},[]);let{theme:T,systemTheme:z}=(0,W.D)(),B={lineNumbers:(null==(t=e.options)?void 0:t.lineNumbers)||"off",readOnly:e.readonly,scrollBeyondLastLine:null!=(p=null==(s=e.options)?void 0:s.scrollBeyondLastLine)&&p,minimap:{enabled:!1},contextmenu:!1,fontFamily:"var(--font-geist-mono)",fontSize:e.fontSize||12.5,padding:{top:2,bottom:2},wordWrap:e.wrap?"on":"off",folding:null!=(h=null==(l=e.options)?void 0:l.collapsibleBlocks)&&h,glyphMargin:!1,lineNumbersMinChars:null!=(x=null==(o=e.options)?void 0:o.lineNumbersMinChars)?x:4,overviewRulerLanes:null!=(g=null==(r=e.options)?void 0:r.overviewRulerLanes)?g:0,renderLineHighlight:"none",cursorStyle:"line",cursorBlinking:"smooth",scrollbar:{vertical:(null==(i=e.options)?void 0:i.showVerticalScrollbar)?"auto":"hidden",horizontal:(null==(c=e.options)?void 0:c.showHorizontalScrollbar)?"auto":"hidden",alwaysConsumeMouseWheel:null!=(f=null==(d=e.options)?void 0:d.alwaysConsumeMouseWheel)&&f},guides:{indentation:null==(v=null==(u=e.options)?void 0:u.showIndentLines)||v},hover:{enabled:!(null==(m=e.options)?void 0:m.disableHover)},wordBasedSuggestions:"off",...e.options};return A?(0,n.jsx)("div",{id:e.id,ref:S,className:(0,j.cn)("group relative h-full w-full",e.containerClassName),onBlur:e.onBlur,children:(0,n.jsx)(K,{height:L,width:e.width,language:N||"javascript",value:b||"",theme:"dark"===T||"system"===T&&"dark"===z?"custom-dark":"light",options:B,loading:(0,n.jsx)(D.A,{className:"h-4 w-4 animate-spin"}),onChange:e=>{w&&w(e||"")},onMount:(t,s)=>{if(e.autoFocus&&t.focus(),e.shouldAdjustInitialHeight||e.autoResize){let s=()=>{try{let s=t.getContentHeight();e.minHeight&&se.maxHeight&&(s=e.maxHeight),H(s+15),t.layout()}catch(e){console.warn("Error updating editor height:",e)}};if(setTimeout(s,100),e.autoResize){let e=t.getModel();e&&e.onDidChangeContent(()=>{requestAnimationFrame(s)})}}if(e.autoFormat)try{var n;null==(n=t.getAction("editor.action.formatDocument"))||n.run()}catch(e){console.warn("Auto-format failed:",e)}},className:(0,j.cn)("code text-md w-full bg-transparent ring-offset-transparent outline-none",y),beforeMount:e=>{window.MonacoEnvironment={getWorker:()=>({postMessage:()=>{},terminate:()=>{},addEventListener:()=>{},removeEventListener:()=>{},dispatchEvent:()=>!1,onerror:null,onmessage:null,onmessageerror:null})},e.editor.defineTheme("custom-dark",{base:"vs-dark",inherit:!0,rules:[],colors:{"editor.background":"#00000000",focusBorder:"#00000000","editor.lineHighlightBorder":"#00000000","editor.selectionHighlightBorder":"#00000000","editorWidget.border":"#00000000","editorOverviewRuler.border":"#00000000"}})}})}):(0,n.jsx)("div",{className:(0,j.cn)("group relative flex h-24 w-full items-center justify-center",e.containerClassName),children:(0,n.jsx)(D.A,{className:"h-4 w-4 animate-spin"})})}let Y=e=>{try{return JSON.parse(e),!0}catch(e){return!1}},J=e=>{try{return JSON.parse(e)}catch(t){return e}};function U(e){let{message:t}=e;return(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium capitalize",children:t.role}),"string"==typeof t.content&&t.content.length>0&&!Y(t.content)?(0,n.jsx)("div",{className:"px-6 py-2 font-mono text-xs",children:t.content}):t.content.length>0&&(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:250,wrap:!0,code:JSON.stringify(J(t.content),null,2),lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}}),t.tool_calls&&t.tool_calls.length>0&&(0,n.jsx)("div",{className:"border-b last:border-b-0",children:(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:150,wrap:!0,code:JSON.stringify(J(t.tool_calls),null,2),lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}})})]})}function $(e){var t,s,a,l,o,r,i,c;let{log:d,open:u,onOpenChange:m}=e;if(!d)return null;d.latency;let p=d.token_usage;p&&(p.completion_tokens,p.total_tokens),p&&(p.prompt_tokens,p.completion_tokens,p.prompt_tokens,p.completion_tokens);let h=null;if(null==(t=d.params)?void 0:t.tools)try{h=JSON.stringify(d.params.tools,null,2)}catch(e){}let x=null;if(null==(s=d.params)?void 0:s.tool_choice)try{x=JSON.stringify(d.params.tool_choice,null,2)}catch(e){}return(0,n.jsx)(M.cj,{open:u,onOpenChange:m,children:(0,n.jsxs)(M.h,{className:"flex w-full flex-col overflow-x-hidden p-8 sm:max-w-2xl",children:[(0,n.jsx)(M.Fm,{className:"px-0",children:(0,n.jsxs)(M.qp,{className:"flex w-fit items-center gap-2 font-medium",children:["success"===d.status&&(0,n.jsxs)("p",{className:"text-md max-w-full truncate",children:["Request ID: ",d.id]}),(0,n.jsx)(B.E,{variant:"outline",className:L.Ez[d.status],children:d.status})]})}),(0,n.jsxs)("div",{className:"space-y-4 rounded-sm border px-6 py-4",children:[(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(V,{title:"Timings",icon:(0,n.jsx)(I.A,{className:"h-5 w-5 text-gray-600"})}),(0,n.jsxs)("div",{className:"grid w-full grid-cols-3 items-center justify-between gap-4",children:[(0,n.jsx)(q,{className:"w-full",label:"Start Timestamp",value:F()(d.timestamp).format("YYYY-MM-DD HH:mm:ss A")}),(0,n.jsx)(q,{className:"w-full",label:"End Timestamp",value:F()(d.timestamp).add(d.latency||0,"ms").format("YYYY-MM-DD HH:mm:ss A")}),(0,n.jsx)(q,{className:"w-full",label:"Latency",value:isNaN(d.latency||0)?"NA":(0,n.jsxs)("div",{children:[null==(a=d.latency||0)?void 0:a.toFixed(2),"ms"]})})]})]}),(0,n.jsx)(P.W,{}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(V,{title:"Request Details",icon:(0,n.jsx)(O.A,{className:"h-5 w-5 text-gray-600"})}),(0,n.jsxs)("div",{className:"grid w-full grid-cols-3 items-center justify-between gap-4",children:[(0,n.jsx)(q,{className:"w-full",label:"Provider",value:L.oU[d.provider]}),(0,n.jsx)(q,{className:"w-full",label:"Model",value:d.model}),(0,n.jsx)(q,{className:"w-full",label:"Type",value:(0,n.jsx)("div",{className:"".concat(L.wf[d.object]," rounded-md px-3 py-1"),children:L.tJ[d.object]})}),d.params&&Object.keys(d.params).length>0&&Object.entries(d.params).filter(e=>{let[t]=e;return"tools"!==t}).filter(e=>{let[t,s]=e;return"boolean"==typeof s||"number"==typeof s||"string"==typeof s}).map(e=>{let[t,s]=e;return(0,n.jsx)(q,{className:"w-full",label:t,value:s},t)})]})]}),"success"===d.status&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.W,{}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(V,{title:"Tokens",icon:(0,n.jsx)(R.A,{className:"h-5 w-5 text-gray-600"})}),(0,n.jsxs)("div",{className:"grid w-full grid-cols-3 items-center justify-between gap-4",children:[(0,n.jsx)(q,{className:"w-full",label:"Prompt Tokens",value:null==(l=d.token_usage)?void 0:l.prompt_tokens}),(0,n.jsx)(q,{className:"w-full",label:"Completion Tokens",value:null==(o=d.token_usage)?void 0:o.completion_tokens}),(0,n.jsx)(q,{className:"w-full",label:"Total Tokens",value:null==(r=d.token_usage)?void 0:r.total_tokens})]})]})]})]}),x&&(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium",children:"Tool Choice"}),(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:450,wrap:!0,code:x,lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}})]}),h&&(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium",children:"Tools"}),(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:450,wrap:!0,code:h,lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}})]}),(0,n.jsx)("div",{className:"mt-4 w-full text-center text-sm font-medium",children:"Conversation History"}),d.input_history&&d.input_history.map(e=>(0,n.jsx)(U,{message:e},e.content.toString())),(0,n.jsx)("div",{className:"mt-4 w-full text-center text-sm font-medium",children:"Response"}),"success"===d.status?d.output_message&&(0,n.jsx)(U,{message:d.output_message}):(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium",children:"Error"}),(0,n.jsx)("div",{className:"px-6 py-2 font-mono text-xs",children:null==(i=d.error_details)?void 0:i.error.message})]})]})})}let V=e=>{let{title:t,icon:s}=e;return(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsx)("div",{className:"text-sm font-medium",children:t})})};var Z=s(1492);let X=()=>[{accessorKey:"timestamp",header:e=>{let{column:t}=e;return(0,n.jsxs)(c.$,{variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Time",(0,n.jsx)(Z.A,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,s=t.original.timestamp;return(0,n.jsx)("div",{className:"font-mono text-sm",children:new Date(s).toLocaleString()})}},{accessorKey:"provider",header:"Provider",cell:e=>{let{row:t}=e,s=t.original.provider;return(0,n.jsx)(B.E,{variant:"secondary",className:"".concat(L.RY[s]," capitalize"),children:s})}},{accessorKey:"model",header:"Model",cell:e=>{let{row:t}=e;return(0,n.jsx)("div",{className:"max-w-[240px] truncate text-sm font-medium",children:t.original.model})}},{accessorKey:"status",header:"Status",cell:e=>{let{row:t}=e,s=t.original.status;return(0,n.jsx)(B.E,{variant:"secondary",className:L.Ez[s],children:s})}},{accessorKey:"latency",header:e=>{let{column:t}=e;return(0,n.jsxs)(c.$,{variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Latency",(0,n.jsx)(Z.A,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,s=t.original.latency;return(0,n.jsx)("div",{className:"font-mono text-sm",children:s?"".concat(s.toLocaleString(),"ms"):"N/A"})}},{accessorKey:"token_usage.total_tokens",header:e=>{let{column:t}=e;return(0,n.jsxs)(c.$,{variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Tokens",(0,n.jsx)(Z.A,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,s=t.original.token_usage;return s?(0,n.jsxs)("div",{className:"text-sm",children:[(0,n.jsx)("div",{className:"font-mono",children:s.total_tokens.toLocaleString()}),(0,n.jsxs)("div",{className:"text-muted-foreground text-xs",children:[s.prompt_tokens,"+",s.completion_tokens]})]}):(0,n.jsx)("div",{className:"font-mono text-sm",children:"N/A"})}},{id:"request_type",header:"Type",cell:e=>{let{row:t}=e;return(0,n.jsx)(B.E,{variant:"outline",className:"".concat(L.wf[t.original.object]," text-xs"),children:L.tJ[t.original.object]})}}];var Q=s(1886),ee=s(8482),et=s(9026),es=s(741),en=s(646),ea=s(4186),el=s(5448),eo=s(5339),er=s(9509),ei=s(4964),ec=s(4357),ed=s(2138),eu=s(6671),em=s(5784);let ep={curl:'curl -X POST http://localhost:8080/v1/chat/completions \\\n -H "Content-Type: application/json" \\\n -d \'{\n "model": "openai/gpt-4o-mini",\n "messages": [\n {"role": "user", "content": "Hello!"}\n ]\n }\'',sdk:{openai:{python:'import openai\n\nclient = openai.OpenAI(\n base_url="http://localhost:8080/openai",\n api_key="dummy-api-key" # Handled by Bifrost\n)\n\nresponse = client.chat.completions.create(\n model="gpt-4o-mini",\n messages=[{"role": "user", "content": "Hello!"}]\n)',typescript:'import OpenAI from "openai";\n\nconst openai = new OpenAI({\n baseURL: "http://localhost:8080/openai",\n apiKey: "dummy-api-key", // Handled by Bifrost\n});\n\nconst response = await openai.chat.completions.create({\n model: "gpt-4o-mini",\n messages: [{ role: "user", content: "Hello!" }],\n});'},anthropic:{python:'import anthropic\n\nclient = anthropic.Anthropic(\n base_url="http://localhost:8080/anthropic",\n api_key="dummy-api-key" # Handled by Bifrost\n)\n\nresponse = client.messages.create(\n model="claude-3-sonnet-20240229",\n max_tokens=1000,\n messages=[{"role": "user", "content": "Hello!"}]\n)',typescript:'import Anthropic from "@anthropic-ai/sdk";\n\nconst anthropic = new Anthropic({\n baseURL: "http://localhost:8080/anthropic",\n apiKey: "dummy-api-key", // Handled by Bifrost\n});\n\nconst response = await anthropic.messages.create({\n model: "claude-3-sonnet-20240229",\n max_tokens: 1000,\n messages: [{ role: "user", content: "Hello!" }],\n});'},genai:{python:'from google import genai\nfrom google.genai.types import HttpOptions\n\nclient = genai.Client(\n api_key="dummy-api-key", # Handled by Bifrost\n http_options=HttpOptions(base_url="http://localhost:8080/genai")\n)\n\nresponse = client.models.generate_content(\n model="gemini-pro",\n contents="Hello!"\n)',typescript:'import { GoogleGenerativeAI } from "@google/generative-ai";\n\nconst genAI = new GoogleGenerativeAI("dummy-api-key", { // Handled by Bifrost\n baseUrl: "http://localhost:8080/genai",\n});\n\nconst model = genAI.getGenerativeModel({ model: "gemini-pro" });\nconst response = await model.generateContent("Hello!");'}}},eh={scrollBeyondLastLine:!1,minimap:{enabled:!1},lineNumbers:"off",folding:!1,lineDecorationsWidth:0,lineNumbersMinChars:0,glyphMargin:!1};function ex(e){let{code:t,language:s,onLanguageChange:a,showLanguageSelect:l=!1,readonly:o=!0}=e;return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsxs)("div",{className:"absolute top-4 right-4 z-10 flex items-center gap-2",children:[l&&a&&(0,n.jsxs)(em.l6,{value:s,onValueChange:a,children:[(0,n.jsx)(em.bq,{className:"h-8 w-fit text-xs",children:(0,n.jsx)(em.yv,{})}),(0,n.jsxs)(em.gC,{children:[(0,n.jsx)(em.eb,{className:"text-xs",value:"python",children:"Python"}),(0,n.jsx)(em.eb,{className:"text-xs",value:"typescript",children:"TypeScript"})]})]}),(0,n.jsx)(c.$,{variant:"ghost",size:"icon",onClick:()=>{navigator.clipboard.writeText(t),eu.o.success("Copied to clipboard")},children:(0,n.jsx)(ec.A,{className:"size-4"})})]}),(0,n.jsx)(G,{className:"w-full",code:t,lang:s,readonly:o,height:300,fontSize:14,options:eh})]})}let eg=[{title:"What You'll See Here",description:"Real-time request logs from all your API calls",features:["Real-time request logs from all your API calls","Comprehensive request and error details","Token usage, latency, and cost metrics","Advanced filtering and search capabilities"]},{title:"Getting Started",description:"Use the examples below to get started",features:["Choose an example from below","Set Bifrost as your API endpoint","Send a test request","Monitor the response in real-time"]}];function ef(e){let{isSocketConnected:t}=e,[s,l]=(0,a.useState)("python");return(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center space-y-8",children:[(0,n.jsxs)("div",{className:"space-y-2 text-center",children:[(0,n.jsx)("h2",{className:"text-3xl font-bold",children:"Welcome to Request Logs"}),(0,n.jsx)("p",{className:"text-muted-foreground text-lg",children:"Monitor and analyze all your API requests in real-time"})]}),t&&(0,n.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm",children:[(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}),(0,n.jsx)("span",{children:"Listening for logs..."})]}),(0,n.jsx)("div",{className:"grid w-full max-w-4xl grid-cols-1 gap-6 px-4 md:grid-cols-2",children:eg.map(e=>(0,n.jsxs)(ee.Zp,{className:"p-6",children:[(0,n.jsx)("h3",{className:"text-lg font-semibold",children:e.title}),(0,n.jsx)("p",{className:"text-muted-foreground",children:e.description}),(0,n.jsx)("ul",{className:"text-muted-foreground space-y-3",children:e.features.map(e=>(0,n.jsxs)("li",{className:"flex items-start gap-2",children:[(0,n.jsx)(ed.A,{className:"mt-0.5 h-5 w-5 shrink-0"}),(0,n.jsx)("span",{children:e})]},e))})]},e.title))}),(0,n.jsxs)("div",{className:"w-full max-w-4xl px-4",children:[(0,n.jsx)("h3",{className:"mb-4 text-lg font-semibold",children:"Integration Examples"}),(0,n.jsxs)(ei.Tabs,{defaultValue:"curl",className:"w-full",children:[(0,n.jsxs)(ei.TabsList,{className:"h-10 w-full justify-start",children:[(0,n.jsx)(ei.TabsTrigger,{value:"curl",children:"cURL"}),(0,n.jsx)(ei.TabsTrigger,{value:"openai",children:"OpenAI SDK"}),(0,n.jsx)(ei.TabsTrigger,{value:"anthropic",children:"Anthropic SDK"}),(0,n.jsx)(ei.TabsTrigger,{value:"genai",children:"Google GenAI SDK"})]}),(0,n.jsx)(ei.TabsContent,{value:"curl",className:"p-4",children:(0,n.jsx)(ex,{code:ep.curl,language:"bash",readonly:!1})}),Object.keys(ep.sdk).map(e=>(0,n.jsx)(ei.TabsContent,{value:e,className:"space-y-4 p-4",children:(0,n.jsx)(ex,{code:ep.sdk[e][s],language:"typescript"===s?"typescript":"python",onLanguageChange:e=>l(e),showLanguageSelect:!0})},e))]})]})]})}var ej=s(2384);function ev(){let[e,t]=(0,a.useState)([]),[s,o]=(0,a.useState)(0),[r,i]=(0,a.useState)(null),[c,d]=(0,a.useState)(!0),[u,m]=(0,a.useState)(!1),[p,h]=(0,a.useState)(null),[x,g]=(0,a.useState)(!1),[f,j]=(0,a.useState)(null),[v,y]=(0,a.useState)({providers:[],models:[],status:[],content_search:""}),[N,b]=(0,a.useState)({limit:50,offset:0,sort_by:"timestamp",order:"desc"}),{ws:w,isConnected:_}=function(e){let{onMessage:t}=e,s=(0,a.useRef)(null),n=(0,a.useRef)(null),[l,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=er.env.NEXT_PUBLIC_BIFROST_PORT||"8080",a=()=>{var l;if((null==(l=s.current)?void 0:l.readyState)===WebSocket.OPEN)return;let r=new WebSocket("ws://localhost:".concat(e,"/ws/logs"));s.current=r,r.onopen=()=>{console.log("WebSocket connected"),o(!0),n.current&&(clearTimeout(n.current),n.current=null)},r.onmessage=e=>{try{let s=JSON.parse(e.data);"log"===s.type&&t(s.payload)}catch(e){console.error("Failed to parse WebSocket message:",e)}},r.onclose=()=>{console.log("WebSocket disconnected, attempting to reconnect..."),o(!1),n.current=setTimeout(a,5e3)},r.onerror=e=>{o(!1),r.close()}};return a(),()=>{s.current&&(s.current.close(),s.current=null),n.current&&(clearTimeout(n.current),n.current=null),o(!1)}},[t]),{ws:s,isConnected:l}}({onMessage:(0,a.useCallback)(e=>{x&&g(!1),0===N.offset&&"timestamp"===N.sort_by&&"desc"===N.order&&(t(t=>{if(!A(e,v))return t;let s=[e,...t];return s.length>N.limit&&s.pop(),s}),o(e=>e+1),i(t=>{if(!t)return t;let s={...t};s.total_requests+=1;let n=t.success_rate/100*t.total_requests;return s.success_rate=("success"===e.status?n+1:n)/s.total_requests*100,e.latency&&(s.average_latency=(t.average_latency*t.total_requests+e.latency)/s.total_requests),e.token_usage&&(s.total_tokens+=e.token_usage.total_tokens),s}))},[N.offset,N.sort_by,N.order,N.limit,v,x])}),k=(0,a.useCallback)(async()=>{m(!0),h(null);try{let[e,s]=await Q.K.getLogs(v,N);s?(h(s),t([]),o(0)):e&&(t(e.logs||[]),o(e.stats.total_requests),i(e.stats),c&&g(0===e.stats.total_requests))}catch(e){h("Failed to fetch logs. Please try again."),t([]),o(0)}finally{m(!1)}},[v,N,c]);(0,a.useEffect)(()=>{c||k()},[k,c]),(0,a.useEffect)(()=>{k(),d(!1)},[]);let S=e=>"string"==typeof e?e:Array.isArray(e)?e.reduce((e,t)=>"text"===t.type&&t.text?e+t.text:e,""):"",A=(e,t)=>{var s,n,a;if((null==(s=t.providers)?void 0:s.length)&&!t.providers.includes(e.provider)||(null==(n=t.models)?void 0:n.length)&&!t.models.includes(e.model)||(null==(a=t.status)?void 0:a.length)&&!t.status.includes(e.status)||t.start_time&&new Date(e.timestamp)new Date(t.end_time)||t.min_latency&&(!e.latency||e.latencyt.max_latency)||t.min_tokens&&(!e.token_usage||e.token_usage.total_tokenst.max_tokens))return!1;if(t.content_search){let s=t.content_search.toLowerCase();if(![...(e.input_history||[]).map(e=>S(e.content)),e.output_message?S(e.output_message.content):""].join(" ").toLowerCase().includes(s))return!1}return!0},C=(0,a.useMemo)(()=>[{title:"Total Requests",value:(null==r?void 0:r.total_requests.toLocaleString())||"-",icon:(0,n.jsx)(es.A,{className:"size-4"})},{title:"Success Rate",value:r?"".concat(r.success_rate.toFixed(2),"%"):"-",icon:(0,n.jsx)(en.A,{className:"size-4"})},{title:"Avg Latency",value:r?"".concat(r.average_latency.toFixed(2),"ms"):"-",icon:(0,n.jsx)(ea.A,{className:"size-4"})},{title:"Total Tokens",value:(null==r?void 0:r.total_tokens.toLocaleString())||"-",icon:(0,n.jsx)(el.A,{className:"size-4"})}],[r]),L=X();return(0,n.jsxs)("div",{className:"bg-background",children:[(0,n.jsx)(l.A,{title:"Request Logs"}),c?(0,n.jsx)(ej.A,{}):x?(0,n.jsx)(ef,{isSocketConnected:_}):(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"mb-2 text-3xl font-bold",children:"Request Logs"}),(0,n.jsx)("p",{className:"text-muted-foreground",children:"Monitor and analyze all API requests and responses"})]}),(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-4",children:C.map(e=>(0,n.jsx)(ee.Zp,{className:"py-4",children:(0,n.jsx)(ee.Wu,{className:"flex items-center justify-between px-4",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"text-muted-foreground text-xs",children:e.title}),(0,n.jsx)("div",{className:"text-2xl font-bold",children:e.value})]})})},e.title))}),p&&(0,n.jsxs)(et.Fc,{variant:"destructive",children:[(0,n.jsx)(eo.A,{className:"h-4 w-4"}),(0,n.jsx)(et.TN,{children:p})]}),(0,n.jsx)(z,{columns:L,data:e,totalItems:s,loading:u,filters:v,pagination:N,onFiltersChange:y,onPaginationChange:b,onRowClick:j,isSocketConnected:_})]}),(0,n.jsx)($,{log:f,open:null!==f,onOpenChange:e=>!e&&j(null)})]})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[586,867,519,678,866,272,341,441,684,358],()=>t(5196)),_N_E=e.O()}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/chunks/app/page-9c52c1dd03452de9.js b/transports/bifrost-http/ui/_next/static/chunks/app/page-9c52c1dd03452de9.js deleted file mode 100644 index 5b4727194a..0000000000 --- a/transports/bifrost-http/ui/_next/static/chunks/app/page-9c52c1dd03452de9.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{1085:(e,t,s)=>{"use strict";s.d(t,{Fm:()=>m,Qs:()=>p,cj:()=>r,h:()=>d,qp:()=>u});var n=s(5155);s(2115);var a=s(5452),l=s(4416),o=s(3999);function r(e){let{...t}=e;return(0,n.jsx)(a.bL,{"data-slot":"sheet",...t})}function i(e){let{...t}=e;return(0,n.jsx)(a.ZL,{"data-slot":"sheet-portal",...t})}function c(e){let{className:t,...s}=e;return(0,n.jsx)(a.hJ,{"data-slot":"sheet-overlay",className:(0,o.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s})}function d(e){let{className:t,children:s,side:r="right",...d}=e;return(0,n.jsxs)(i,{children:[(0,n.jsx)(c,{}),(0,n.jsxs)(a.UC,{"data-slot":"sheet-content",className:(0,o.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===r&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===r&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===r&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===r&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",t),...d,children:[s,(0,n.jsxs)(a.bm,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,n.jsx)(l.A,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function m(e){let{className:t,...s}=e;return(0,n.jsx)("div",{"data-slot":"sheet-header",className:(0,o.cn)("flex flex-col gap-1.5 p-4",t),...s})}function u(e){let{className:t,...s}=e;return(0,n.jsx)(a.hE,{"data-slot":"sheet-title",className:(0,o.cn)("text-foreground font-semibold",t),...s})}function p(e){let{className:t,...s}=e;return(0,n.jsx)(a.VY,{"data-slot":"sheet-description",className:(0,o.cn)("text-muted-foreground text-sm",t),...s})}},5196:(e,t,s)=>{Promise.resolve().then(s.bind(s,6794))},6794:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>ev});var n=s(5155),a=s(2115),l=s(9464),o=s(6268),r=s(1032),i=s(8524),c=s(7168),d=s(3904),m=s(4416),u=s(2355),p=s(3052),h=s(9852),x=s(7924),g=s(2815),f=s(7740),j=s(3999);function v(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB,{"data-slot":"command",className:(0,j.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",t),...s})}function y(e){let{className:t,...s}=e;return(0,n.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,n.jsx)(x.A,{className:"size-4 shrink-0 opacity-50"}),(0,n.jsx)(f.uB.Input,{"data-slot":"command-input",className:(0,j.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),...s})]})}function N(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB.List,{"data-slot":"command-list",className:(0,j.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...s})}function b(e){let{...t}=e;return(0,n.jsx)(f.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}function w(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB.Group,{"data-slot":"command-group",className:(0,j.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...s})}function _(e){let{className:t,...s}=e;return(0,n.jsx)(f.uB.Item,{"data-slot":"command-item",className:(0,j.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s})}s(9840);var k=s(547);function S(e){let{...t}=e;return(0,n.jsx)(k.bL,{"data-slot":"popover",...t})}function A(e){let{...t}=e;return(0,n.jsx)(k.l9,{"data-slot":"popover-trigger",...t})}function C(e){let{className:t,align:s="center",sideOffset:a=4,...l}=e;return(0,n.jsx)(k.ZL,{children:(0,n.jsx)(k.UC,{"data-slot":"popover-content",align:s,sideOffset:a,className:(0,j.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...l})})}var L=s(7783);let H={Status:L.f,Providers:L.xq,Type:L.mG};function T(e){let{filters:t,onFiltersChange:s}=e,[l,o]=(0,a.useState)(!1),r=(e,n)=>{let a={Status:"status",Providers:"providers",Type:"objects"}[e],l=t[a]||[],o=l.includes(n)?l.filter(e=>e!==n):[...l,n];s({...t,[a]:o})},i=(e,s)=>{let n=t[({Status:"status",Providers:"providers",Type:"objects"})[e]];return Array.isArray(n)&&n.includes(s)},d=()=>Object.entries(t).reduce((e,t)=>{let[s,n]=t;return Array.isArray(n)?e+n.length:e+ +!!n},0);return(0,n.jsxs)("div",{className:"flex items-center justify-between space-x-4",children:[(0,n.jsxs)("div",{className:"flex flex-1 items-center gap-2",children:[(0,n.jsx)(x.A,{className:"size-5"}),(0,n.jsx)(h.p,{type:"text",className:"border-none shadow-none outline-none focus-visible:ring-0",placeholder:"Search logs",value:t.content_search||"",onChange:e=>s({...t,content_search:e.target.value})})]}),(0,n.jsxs)(S,{open:l,onOpenChange:o,children:[(0,n.jsx)(A,{asChild:!0,children:(0,n.jsxs)(c.$,{variant:"outline",size:"sm",className:"h-9",children:["Filters",d()>0&&(0,n.jsx)("span",{className:"bg-primary/10 flex h-6 w-6 items-center justify-center rounded-full text-xs font-normal",children:d()})]})}),(0,n.jsx)(C,{className:"w-[200px] p-0",align:"end",children:(0,n.jsxs)(v,{children:[(0,n.jsx)(y,{placeholder:"Search filters..."}),(0,n.jsxs)(N,{children:[(0,n.jsx)(b,{children:"No filters found."}),Object.entries(H).map(e=>{let[t,s]=e;return(0,n.jsx)(w,{heading:t,children:s.map(e=>{let s=i(t,e);return(0,n.jsxs)(_,{onSelect:()=>r(t,e),children:[(0,n.jsx)("div",{className:(0,j.cn)("border-primary mr-2 flex h-4 w-4 items-center justify-center rounded-sm border",s?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:(0,n.jsx)(g.A,{className:"text-primary-foreground size-3"})}),(0,n.jsx)("span",{children:e})]},e)})},t)})]})]})})]})]})}function z(e){let{columns:t,data:s,totalItems:l,loading:h=!1,filters:x,pagination:g,onFiltersChange:f,onPaginationChange:j,onRowClick:v,isSocketConnected:y}=e,[N,b]=(0,a.useState)([{id:g.sort_by,desc:"desc"===g.order}]),w=(0,o.N4)({data:s,columns:t,getCoreRowModel:(0,r.HT)(),manualPagination:!0,manualSorting:!0,manualFiltering:!0,pageCount:Math.ceil(l/g.limit),state:{sorting:N},onSortingChange:e=>{let t="function"==typeof e?e(N):e;if(b(t),t.length>0){let{id:e,desc:s}=t[0];j({...g,sort_by:e,order:s?"desc":"asc"})}}}),_=Math.floor(g.offset/g.limit)+1,k=Math.ceil(l/g.limit),S=g.offset+1,A=Math.min(g.offset+g.limit,l),C=e=>{let t=(e-1)*g.limit;j({...g,offset:t})};return(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(T,{filters:x,onFiltersChange:f}),(0,n.jsx)("div",{className:"rounded-md border",children:(0,n.jsxs)(i.XI,{children:[(0,n.jsx)(i.A0,{children:w.getHeaderGroups().map(e=>(0,n.jsx)(i.Hj,{children:e.headers.map(e=>(0,n.jsx)(i.nd,{children:e.isPlaceholder?null:(0,o.Kv)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,n.jsx)(i.BF,{children:h?(0,n.jsx)(i.Hj,{children:(0,n.jsx)(i.nA,{colSpan:t.length,className:"h-24 text-center",children:(0,n.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}),"Loading logs..."]})})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.Hj,{className:"hover:bg-transparent",children:(0,n.jsx)(i.nA,{colSpan:t.length,className:"h-12 text-center",children:(0,n.jsx)("div",{className:"flex items-center justify-center gap-2",children:y?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}),"Listening for logs..."]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(m.A,{className:"h-4 w-4"}),"Not connected to socket, please refresh the page."]})})})}),w.getRowModel().rows.length?w.getRowModel().rows.map(e=>(0,n.jsx)(i.Hj,{className:"hover:bg-muted/50 cursor-pointer",onClick:()=>null==v?void 0:v(e.original),children:e.getVisibleCells().map(e=>(0,n.jsx)(i.nA,{children:(0,o.Kv)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,n.jsx)(i.Hj,{children:(0,n.jsx)(i.nA,{colSpan:t.length,className:"h-24 text-center",children:"No results found."})})]})})]})}),(0,n.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,n.jsxs)("div",{className:"text-muted-foreground flex items-center gap-2",children:[S.toLocaleString(),"-",A.toLocaleString()," of ",l.toLocaleString()," entries"]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>C(_-1),disabled:1===_,children:(0,n.jsx)(u.A,{className:"size-3"})}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("span",{children:"Page"}),(0,n.jsx)("span",{children:_}),(0,n.jsxs)("span",{children:["of ",k]})]}),(0,n.jsx)(c.$,{variant:"outline",size:"sm",onClick:()=>C(_+1),disabled:_===k,children:(0,n.jsx)(p.A,{className:"size-3"})})]})]})]})}var B=s(8145),M=s(1085),I=s(6561),O=s(7434),R=s(5868);function q(e){if(null===e.value)return null;let t=e.orientation||"vertical";return(0,n.jsx)("div",{className:(0,j.cn)("items-top flex flex-col gap-2",{["".concat(e.className)]:void 0!==e.className,"items-start":"left"===e.align||void 0===e.align,"items-end":"right"===e.align}),children:(0,n.jsxs)("div",{className:e.containerClassName,children:[""!==e.label&&(0,n.jsx)("div",{className:"text-muted-foreground flex shrink-0 flex-row items-center gap-2 text-xs font-medium",children:e.label.toUpperCase()}),(0,n.jsx)("div",{className:(0,j.cn)("text-md flex text-xs font-medium whitespace-nowrap transition-transform delay-75",{"w-full flex-col items-center gap-2":"horizontal"===t,"flex-row items-start gap-2":"vertical"===t,["".concat(e.valueClassName)]:void 0!==e.valueClassName,"text-end":"right"===e.align}),children:e.value})]})})}var E=s(2940),F=s.n(E),P=s(6037),D=s(1154),W=s(1362);let K=(0,s(5028).default)(()=>s.e(364).then(s.bind(s,1364)).then(e=>e.default),{loadableGenerated:{webpack:()=>[1364]},ssr:!1,loading:()=>(0,n.jsx)(D.A,{className:"h-4 w-4 animate-spin p-4"})});function G(e){var t,s,l,o,r,i,c,d,m,u,p,h,x,g,f,v;let{className:y,lang:N,code:b,onChange:w,height:_,minHeight:k}=e,S=(0,a.useRef)(null),[A,C]=(0,a.useState)(!1),[L,H]=(0,a.useState)(e.height||e.minHeight||200);(0,a.useEffect)(()=>{C(!0)},[]);let{theme:T,systemTheme:z}=(0,W.D)(),B={lineNumbers:(null==(t=e.options)?void 0:t.lineNumbers)||"off",readOnly:e.readonly,scrollBeyondLastLine:null!=(p=null==(s=e.options)?void 0:s.scrollBeyondLastLine)&&p,minimap:{enabled:!1},contextmenu:!1,fontFamily:"var(--font-geist-mono)",fontSize:e.fontSize||12.5,padding:{top:2,bottom:2},wordWrap:e.wrap?"on":"off",folding:null!=(h=null==(l=e.options)?void 0:l.collapsibleBlocks)&&h,glyphMargin:!1,lineNumbersMinChars:null!=(x=null==(o=e.options)?void 0:o.lineNumbersMinChars)?x:4,overviewRulerLanes:null!=(g=null==(r=e.options)?void 0:r.overviewRulerLanes)?g:0,renderLineHighlight:"none",cursorStyle:"line",cursorBlinking:"smooth",scrollbar:{vertical:(null==(i=e.options)?void 0:i.showVerticalScrollbar)?"auto":"hidden",horizontal:(null==(c=e.options)?void 0:c.showHorizontalScrollbar)?"auto":"hidden",alwaysConsumeMouseWheel:null!=(f=null==(d=e.options)?void 0:d.alwaysConsumeMouseWheel)&&f},guides:{indentation:null==(v=null==(m=e.options)?void 0:m.showIndentLines)||v},hover:{enabled:!(null==(u=e.options)?void 0:u.disableHover)},wordBasedSuggestions:"off",...e.options};return A?(0,n.jsx)("div",{id:e.id,ref:S,className:(0,j.cn)("group relative h-full w-full",e.containerClassName),onBlur:e.onBlur,children:(0,n.jsx)(K,{height:L,width:e.width,language:N||"javascript",value:b||"",theme:"dark"===T||"system"===T&&"dark"===z?"custom-dark":"light",options:B,loading:(0,n.jsx)(D.A,{className:"h-4 w-4 animate-spin"}),onChange:e=>{w&&w(e||"")},onMount:(t,s)=>{if(e.autoFocus&&t.focus(),e.shouldAdjustInitialHeight||e.autoResize){let s=()=>{try{let s=t.getContentHeight();e.minHeight&&se.maxHeight&&(s=e.maxHeight),H(s+15),t.layout()}catch(e){console.warn("Error updating editor height:",e)}};if(setTimeout(s,100),e.autoResize){let e=t.getModel();e&&e.onDidChangeContent(()=>{requestAnimationFrame(s)})}}if(e.autoFormat)try{var n;null==(n=t.getAction("editor.action.formatDocument"))||n.run()}catch(e){console.warn("Auto-format failed:",e)}},className:(0,j.cn)("code text-md w-full bg-transparent ring-offset-transparent outline-none",y),beforeMount:e=>{window.MonacoEnvironment={getWorker:()=>({postMessage:()=>{},terminate:()=>{},addEventListener:()=>{},removeEventListener:()=>{},dispatchEvent:()=>!1,onerror:null,onmessage:null,onmessageerror:null})},e.editor.defineTheme("custom-dark",{base:"vs-dark",inherit:!0,rules:[],colors:{"editor.background":"#00000000",focusBorder:"#00000000","editor.lineHighlightBorder":"#00000000","editor.selectionHighlightBorder":"#00000000","editorWidget.border":"#00000000","editorOverviewRuler.border":"#00000000"}})}})}):(0,n.jsx)("div",{className:(0,j.cn)("group relative flex h-24 w-full items-center justify-center",e.containerClassName),children:(0,n.jsx)(D.A,{className:"h-4 w-4 animate-spin"})})}let Y=e=>{try{return JSON.parse(e),!0}catch(e){return!1}},J=e=>{try{return JSON.parse(e)}catch(t){return e}};function U(e){let{message:t}=e;return(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium capitalize",children:t.role}),"string"==typeof t.content&&t.content.length>0&&!Y(t.content)?(0,n.jsx)("div",{className:"px-6 py-2 font-mono text-xs",children:t.content}):t.content.length>0&&(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:250,wrap:!0,code:JSON.stringify(J(t.content),null,2),lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}}),t.tool_calls&&t.tool_calls.length>0&&(0,n.jsx)("div",{className:"border-b last:border-b-0",children:(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:150,wrap:!0,code:JSON.stringify(J(t.tool_calls),null,2),lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}})})]})}function $(e){var t,s,a,l,o,r,i,c;let{log:d,open:m,onOpenChange:u}=e;if(!d)return null;d.latency;let p=d.token_usage;p&&(p.completion_tokens,p.total_tokens),p&&(p.prompt_tokens,p.completion_tokens,p.prompt_tokens,p.completion_tokens);let h=null;if(null==(t=d.params)?void 0:t.tools)try{h=JSON.stringify(d.params.tools,null,2)}catch(e){}let x=null;if(null==(s=d.params)?void 0:s.tool_choice)try{x=JSON.stringify(d.params.tool_choice,null,2)}catch(e){}return(0,n.jsx)(M.cj,{open:m,onOpenChange:u,children:(0,n.jsxs)(M.h,{className:"flex w-full flex-col overflow-x-hidden p-8 sm:max-w-2xl",children:[(0,n.jsx)(M.Fm,{className:"px-0",children:(0,n.jsxs)(M.qp,{className:"flex w-fit items-center gap-2 font-medium",children:["success"===d.status&&(0,n.jsxs)("p",{className:"text-md max-w-full truncate",children:["Request ID: ",d.id]}),(0,n.jsx)(B.E,{variant:"outline",className:L.Ez[d.status],children:d.status})]})}),(0,n.jsxs)("div",{className:"space-y-4 rounded-sm border px-6 py-4",children:[(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(V,{title:"Timings",icon:(0,n.jsx)(I.A,{className:"h-5 w-5 text-gray-600"})}),(0,n.jsxs)("div",{className:"grid w-full grid-cols-3 items-center justify-between gap-4",children:[(0,n.jsx)(q,{className:"w-full",label:"Start Timestamp",value:F()(d.timestamp).format("YYYY-MM-DD HH:mm:ss A")}),(0,n.jsx)(q,{className:"w-full",label:"End Timestamp",value:F()(d.timestamp).add(d.latency||0,"ms").format("YYYY-MM-DD HH:mm:ss A")}),(0,n.jsx)(q,{className:"w-full",label:"Latency",value:isNaN(d.latency||0)?"NA":(0,n.jsxs)("div",{children:[null==(a=d.latency||0)?void 0:a.toFixed(2),"ms"]})})]})]}),(0,n.jsx)(P.W,{}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(V,{title:"Request Details",icon:(0,n.jsx)(O.A,{className:"h-5 w-5 text-gray-600"})}),(0,n.jsxs)("div",{className:"grid w-full grid-cols-3 items-center justify-between gap-4",children:[(0,n.jsx)(q,{className:"w-full",label:"Provider",value:L.oU[d.provider]}),(0,n.jsx)(q,{className:"w-full",label:"Model",value:d.model}),(0,n.jsx)(q,{className:"w-full",label:"Type",value:(0,n.jsx)("div",{className:"".concat(L.wf[d.object]," rounded-md px-3 py-1"),children:L.tJ[d.object]})}),d.params&&Object.keys(d.params).length>0&&Object.entries(d.params).filter(e=>{let[t]=e;return"tools"!==t}).filter(e=>{let[t,s]=e;return"boolean"==typeof s||"number"==typeof s||"string"==typeof s}).map(e=>{let[t,s]=e;return(0,n.jsx)(q,{className:"w-full",label:t,value:s},t)})]})]}),"success"===d.status&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(P.W,{}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(V,{title:"Tokens",icon:(0,n.jsx)(R.A,{className:"h-5 w-5 text-gray-600"})}),(0,n.jsxs)("div",{className:"grid w-full grid-cols-3 items-center justify-between gap-4",children:[(0,n.jsx)(q,{className:"w-full",label:"Prompt Tokens",value:null==(l=d.token_usage)?void 0:l.prompt_tokens}),(0,n.jsx)(q,{className:"w-full",label:"Completion Tokens",value:null==(o=d.token_usage)?void 0:o.completion_tokens}),(0,n.jsx)(q,{className:"w-full",label:"Total Tokens",value:null==(r=d.token_usage)?void 0:r.total_tokens})]})]})]})]}),x&&(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium",children:"Tool Choice"}),(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:450,wrap:!0,code:x,lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}})]}),h&&(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium",children:"Tools"}),(0,n.jsx)(G,{className:"z-0 w-full",shouldAdjustInitialHeight:!0,maxHeight:450,wrap:!0,code:h,lang:"json",readonly:!0,options:{scrollBeyondLastLine:!1,collapsibleBlocks:!0,lineNumbers:"off",alwaysConsumeMouseWheel:!1}})]}),(0,n.jsx)("div",{className:"mt-4 w-full text-center text-sm font-medium",children:"Conversation History"}),d.input_history&&d.input_history.map(e=>(0,n.jsx)(U,{message:e},e.content.toString())),(0,n.jsx)("div",{className:"mt-4 w-full text-center text-sm font-medium",children:"Response"}),"success"===d.status?d.output_message&&(0,n.jsx)(U,{message:d.output_message}):(0,n.jsxs)("div",{className:"w-full rounded-sm border",children:[(0,n.jsx)("div",{className:"border-b px-6 py-2 text-sm font-medium",children:"Error"}),(0,n.jsx)("div",{className:"px-6 py-2 font-mono text-xs",children:null==(i=d.error_details)?void 0:i.error.message})]})]})})}let V=e=>{let{title:t,icon:s}=e;return(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsx)("div",{className:"text-sm font-medium",children:t})})};var Z=s(1492);let X=()=>[{accessorKey:"timestamp",header:e=>{let{column:t}=e;return(0,n.jsxs)(c.$,{variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Time",(0,n.jsx)(Z.A,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,s=t.original.timestamp;return(0,n.jsx)("div",{className:"font-mono text-sm",children:new Date(s).toLocaleString()})}},{accessorKey:"provider",header:"Provider",cell:e=>{let{row:t}=e,s=t.original.provider;return(0,n.jsx)(B.E,{variant:"secondary",className:"".concat(L.RY[s]," capitalize"),children:s})}},{accessorKey:"model",header:"Model",cell:e=>{let{row:t}=e;return(0,n.jsx)("div",{className:"max-w-[240px] truncate text-sm font-medium",children:t.original.model})}},{accessorKey:"status",header:"Status",cell:e=>{let{row:t}=e,s=t.original.status;return(0,n.jsx)(B.E,{variant:"secondary",className:L.Ez[s],children:s})}},{accessorKey:"latency",header:e=>{let{column:t}=e;return(0,n.jsxs)(c.$,{variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Latency",(0,n.jsx)(Z.A,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,s=t.original.latency;return(0,n.jsx)("div",{className:"font-mono text-sm",children:s?"".concat(s.toLocaleString(),"ms"):"N/A"})}},{accessorKey:"token_usage.total_tokens",header:e=>{let{column:t}=e;return(0,n.jsxs)(c.$,{variant:"ghost",onClick:()=>t.toggleSorting("asc"===t.getIsSorted()),children:["Tokens",(0,n.jsx)(Z.A,{className:"ml-2 h-4 w-4"})]})},cell:e=>{let{row:t}=e,s=t.original.token_usage;return s?(0,n.jsxs)("div",{className:"text-sm",children:[(0,n.jsx)("div",{className:"font-mono",children:s.total_tokens.toLocaleString()}),(0,n.jsxs)("div",{className:"text-muted-foreground text-xs",children:[s.prompt_tokens,"+",s.completion_tokens]})]}):(0,n.jsx)("div",{className:"font-mono text-sm",children:"N/A"})}},{id:"request_type",header:"Type",cell:e=>{let{row:t}=e;return(0,n.jsx)(B.E,{variant:"outline",className:"".concat(L.wf[t.original.object]," text-xs"),children:L.tJ[t.original.object]})}}];var Q=s(1886),ee=s(8482),et=s(9026),es=s(741),en=s(646),ea=s(4186),el=s(5448),eo=s(5339),er=s(9509),ei=s(4964),ec=s(4357),ed=s(2138),em=s(6671),eu=s(5784);let ep={curl:'curl -X POST http://localhost:8080/v1/chat/completions \\\n -H "Content-Type: application/json" \\\n -d \'{\n "provider": "openai",\n "model": "gpt-4o-mini",\n "messages": [\n {"role": "user", "content": "Hello!"}\n ]\n }\'',sdk:{openai:{python:'import openai\n\nclient = openai.OpenAI(\n base_url="http://localhost:8080/openai",\n api_key="dummy-api-key" # Handled by Bifrost\n)\n\nresponse = client.chat.completions.create(\n model="gpt-4o-mini",\n messages=[{"role": "user", "content": "Hello!"}]\n)',typescript:'import OpenAI from "openai";\n\nconst openai = new OpenAI({\n baseURL: "http://localhost:8080/openai",\n apiKey: "dummy-api-key", // Handled by Bifrost\n});\n\nconst response = await openai.chat.completions.create({\n model: "gpt-4o-mini",\n messages: [{ role: "user", content: "Hello!" }],\n});'},anthropic:{python:'import anthropic\n\nclient = anthropic.Anthropic(\n base_url="http://localhost:8080/anthropic",\n api_key="dummy-api-key" # Handled by Bifrost\n)\n\nresponse = client.messages.create(\n model="claude-3-sonnet-20240229",\n max_tokens=1000,\n messages=[{"role": "user", "content": "Hello!"}]\n)',typescript:'import Anthropic from "@anthropic-ai/sdk";\n\nconst anthropic = new Anthropic({\n baseURL: "http://localhost:8080/anthropic",\n apiKey: "dummy-api-key", // Handled by Bifrost\n});\n\nconst response = await anthropic.messages.create({\n model: "claude-3-sonnet-20240229",\n max_tokens: 1000,\n messages: [{ role: "user", content: "Hello!" }],\n});'},genai:{python:'from google import genai\nfrom google.genai.types import HttpOptions\n\nclient = genai.Client(\n api_key="dummy-api-key", # Handled by Bifrost\n http_options=HttpOptions(base_url="http://localhost:8080/genai")\n)\n\nresponse = client.models.generate_content(\n model="gemini-pro",\n contents="Hello!"\n)',typescript:'import { GoogleGenerativeAI } from "@google/generative-ai";\n\nconst genAI = new GoogleGenerativeAI("dummy-api-key", { // Handled by Bifrost\n baseUrl: "http://localhost:8080/genai",\n});\n\nconst model = genAI.getGenerativeModel({ model: "gemini-pro" });\nconst response = await model.generateContent("Hello!");'}}},eh={scrollBeyondLastLine:!1,minimap:{enabled:!1},lineNumbers:"off",folding:!1,lineDecorationsWidth:0,lineNumbersMinChars:0,glyphMargin:!1};function ex(e){let{code:t,language:s,onLanguageChange:a,showLanguageSelect:l=!1,readonly:o=!0}=e;return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsxs)("div",{className:"absolute top-4 right-4 z-10 flex items-center gap-2",children:[l&&a&&(0,n.jsxs)(eu.l6,{value:s,onValueChange:a,children:[(0,n.jsx)(eu.bq,{className:"h-8 w-fit text-xs",children:(0,n.jsx)(eu.yv,{})}),(0,n.jsxs)(eu.gC,{children:[(0,n.jsx)(eu.eb,{className:"text-xs",value:"python",children:"Python"}),(0,n.jsx)(eu.eb,{className:"text-xs",value:"typescript",children:"TypeScript"})]})]}),(0,n.jsx)(c.$,{variant:"ghost",size:"icon",onClick:()=>{navigator.clipboard.writeText(t),em.o.success("Copied to clipboard")},children:(0,n.jsx)(ec.A,{className:"size-4"})})]}),(0,n.jsx)(G,{className:"w-full",code:t,lang:s,readonly:o,height:300,fontSize:14,options:eh})]})}let eg=[{title:"What You'll See Here",description:"Real-time request logs from all your API calls",features:["Real-time request logs from all your API calls","Comprehensive request and error details","Token usage, latency, and cost metrics","Advanced filtering and search capabilities"]},{title:"Getting Started",description:"Use the examples below to get started",features:["Choose an example from below","Set Bifrost as your API endpoint","Send a test request","Monitor the response in real-time"]}];function ef(e){let{isSocketConnected:t}=e,[s,l]=(0,a.useState)("python");return(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center space-y-8",children:[(0,n.jsxs)("div",{className:"space-y-2 text-center",children:[(0,n.jsx)("h2",{className:"text-3xl font-bold",children:"Welcome to Request Logs"}),(0,n.jsx)("p",{className:"text-muted-foreground text-lg",children:"Monitor and analyze all your API requests in real-time"})]}),t&&(0,n.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm",children:[(0,n.jsx)(d.A,{className:"h-4 w-4 animate-spin"}),(0,n.jsx)("span",{children:"Listening for logs..."})]}),(0,n.jsx)("div",{className:"grid w-full max-w-4xl grid-cols-1 gap-6 px-4 md:grid-cols-2",children:eg.map(e=>(0,n.jsxs)(ee.Zp,{className:"p-6",children:[(0,n.jsx)("h3",{className:"text-lg font-semibold",children:e.title}),(0,n.jsx)("p",{className:"text-muted-foreground",children:e.description}),(0,n.jsx)("ul",{className:"text-muted-foreground space-y-3",children:e.features.map(e=>(0,n.jsxs)("li",{className:"flex items-start gap-2",children:[(0,n.jsx)(ed.A,{className:"mt-0.5 h-5 w-5 shrink-0"}),(0,n.jsx)("span",{children:e})]},e))})]},e.title))}),(0,n.jsxs)("div",{className:"w-full max-w-4xl px-4",children:[(0,n.jsx)("h3",{className:"mb-4 text-lg font-semibold",children:"Integration Examples"}),(0,n.jsxs)(ei.Tabs,{defaultValue:"curl",className:"w-full",children:[(0,n.jsxs)(ei.TabsList,{className:"h-10 w-full justify-start",children:[(0,n.jsx)(ei.TabsTrigger,{value:"curl",children:"cURL"}),(0,n.jsx)(ei.TabsTrigger,{value:"openai",children:"OpenAI SDK"}),(0,n.jsx)(ei.TabsTrigger,{value:"anthropic",children:"Anthropic SDK"}),(0,n.jsx)(ei.TabsTrigger,{value:"genai",children:"Google GenAI SDK"})]}),(0,n.jsx)(ei.TabsContent,{value:"curl",className:"p-4",children:(0,n.jsx)(ex,{code:ep.curl,language:"bash",readonly:!1})}),Object.keys(ep.sdk).map(e=>(0,n.jsx)(ei.TabsContent,{value:e,className:"space-y-4 p-4",children:(0,n.jsx)(ex,{code:ep.sdk[e][s],language:"typescript"===s?"typescript":"python",onLanguageChange:e=>l(e),showLanguageSelect:!0})},e))]})]})]})}var ej=s(2384);function ev(){let[e,t]=(0,a.useState)([]),[s,o]=(0,a.useState)(0),[r,i]=(0,a.useState)(null),[c,d]=(0,a.useState)(!0),[m,u]=(0,a.useState)(!1),[p,h]=(0,a.useState)(null),[x,g]=(0,a.useState)(!1),[f,j]=(0,a.useState)(null),[v,y]=(0,a.useState)({providers:[],models:[],status:[],content_search:""}),[N,b]=(0,a.useState)({limit:50,offset:0,sort_by:"timestamp",order:"desc"}),{ws:w,isConnected:_}=function(e){let{onMessage:t}=e,s=(0,a.useRef)(null),n=(0,a.useRef)(null),[l,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=er.env.NEXT_PUBLIC_BIFROST_PORT||"8080",a=()=>{var l;if((null==(l=s.current)?void 0:l.readyState)===WebSocket.OPEN)return;let r=new WebSocket("ws://localhost:".concat(e,"/ws/logs"));s.current=r,r.onopen=()=>{console.log("WebSocket connected"),o(!0),n.current&&(clearTimeout(n.current),n.current=null)},r.onmessage=e=>{try{let s=JSON.parse(e.data);"log"===s.type&&t(s.payload)}catch(e){console.error("Failed to parse WebSocket message:",e)}},r.onclose=()=>{console.log("WebSocket disconnected, attempting to reconnect..."),o(!1),n.current=setTimeout(a,5e3)},r.onerror=e=>{o(!1),r.close()}};return a(),()=>{s.current&&(s.current.close(),s.current=null),n.current&&(clearTimeout(n.current),n.current=null),o(!1)}},[t]),{ws:s,isConnected:l}}({onMessage:(0,a.useCallback)(e=>{0===N.offset&&"timestamp"===N.sort_by&&"desc"===N.order&&(t(t=>{if(!A(e,v))return t;let s=[e,...t];return s.length>N.limit&&s.pop(),s}),o(e=>e+1),i(t=>{if(!t)return t;let s={...t};s.total_requests+=1;let n=t.success_rate/100*t.total_requests;return s.success_rate=("success"===e.status?n+1:n)/s.total_requests*100,e.latency&&(s.average_latency=(t.average_latency*t.total_requests+e.latency)/s.total_requests),e.token_usage&&(s.total_tokens+=e.token_usage.total_tokens),s}))},[N.offset,N.sort_by,N.order,N.limit,v])}),k=(0,a.useCallback)(async()=>{var e,s,n;let a=!!(v.content_search||(null==(e=v.providers)?void 0:e.length)||(null==(s=v.models)?void 0:s.length)||(null==(n=v.status)?void 0:n.length)||v.start_time||v.end_time||v.min_latency||v.max_latency||v.min_tokens||v.max_tokens);u(!0),0===N.offset&&d(!0),h(null);try{let[e,s]=await Q.K.getLogs(v,N);s?(h(s),t([]),o(0)):e&&(t(e.logs||[]),o(e.stats.total_requests),i(e.stats),a||0!==N.offset?g(!1):g(0===e.stats.total_requests))}catch(e){h("Failed to fetch logs. Please try again."),t([]),o(0)}finally{d(!1),u(!1)}},[v,N]);(0,a.useEffect)(()=>{k()},[k]);let S=e=>"string"==typeof e?e:Array.isArray(e)?e.reduce((e,t)=>"text"===t.type&&t.text?e+t.text:e,""):"",A=(e,t)=>{var s,n,a;if((null==(s=t.providers)?void 0:s.length)&&!t.providers.includes(e.provider)||(null==(n=t.models)?void 0:n.length)&&!t.models.includes(e.model)||(null==(a=t.status)?void 0:a.length)&&!t.status.includes(e.status)||t.start_time&&new Date(e.timestamp)new Date(t.end_time)||t.min_latency&&(!e.latency||e.latencyt.max_latency)||t.min_tokens&&(!e.token_usage||e.token_usage.total_tokenst.max_tokens))return!1;if(t.content_search){let s=t.content_search.toLowerCase();if(![...(e.input_history||[]).map(e=>S(e.content)),e.output_message?S(e.output_message.content):""].join(" ").toLowerCase().includes(s))return!1}return!0},C=(0,a.useMemo)(()=>[{title:"Total Requests",value:(null==r?void 0:r.total_requests.toLocaleString())||"-",icon:(0,n.jsx)(es.A,{className:"size-4"})},{title:"Success Rate",value:r?"".concat(r.success_rate.toFixed(2),"%"):"-",icon:(0,n.jsx)(en.A,{className:"size-4"})},{title:"Avg Latency",value:r?"".concat(r.average_latency.toFixed(2),"ms"):"-",icon:(0,n.jsx)(ea.A,{className:"size-4"})},{title:"Total Tokens",value:(null==r?void 0:r.total_tokens.toLocaleString())||"-",icon:(0,n.jsx)(el.A,{className:"size-4"})}],[r]),L=X();return(0,n.jsxs)("div",{className:"bg-background",children:[(0,n.jsx)(l.A,{title:"Request Logs"}),c?(0,n.jsx)(ej.A,{}):m||!x||0!==s||p?(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"mb-2 text-3xl font-bold",children:"Request Logs"}),(0,n.jsx)("p",{className:"text-muted-foreground",children:"Monitor and analyze all API requests and responses"})]}),(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-4",children:C.map(e=>(0,n.jsx)(ee.Zp,{className:"py-4",children:(0,n.jsx)(ee.Wu,{className:"flex items-center justify-between px-4",children:(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"text-muted-foreground text-xs",children:e.title}),(0,n.jsx)("div",{className:"text-2xl font-bold",children:e.value})]})})},e.title))}),p&&(0,n.jsxs)(et.Fc,{variant:"destructive",children:[(0,n.jsx)(eo.A,{className:"h-4 w-4"}),(0,n.jsx)(et.TN,{children:p})]}),(0,n.jsx)(z,{columns:L,data:e,totalItems:s,loading:m,filters:v,pagination:N,onFiltersChange:y,onPaginationChange:b,onRowClick:j,isSocketConnected:_})]}),(0,n.jsx)($,{log:f,open:null!==f,onOpenChange:e=>!e&&j(null)})]}):(0,n.jsx)(ef,{isSocketConnected:_})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[586,867,519,213,866,443,341,441,684,358],()=>t(5196)),_N_E=e.O()}]); \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/css/0290f827d14417a0.css b/transports/bifrost-http/ui/_next/static/css/0290f827d14417a0.css new file mode 100644 index 0000000000..644de16510 --- /dev/null +++ b/transports/bifrost-http/ui/_next/static/css/0290f827d14417a0.css @@ -0,0 +1 @@ +/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:host,:root{--color-red-100:oklch(93.6% .032 17.717);--color-red-800:oklch(44.4% .177 26.899);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-800:oklch(47% .157 37.304);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-800:oklch(45% .085 224.283);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-800:oklch(39.8% .195 277.366);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-800:oklch(45.9% .187 3.815);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-neutral-100:oklch(97% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-3\.5{top:calc(var(--spacing)*3.5)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-\(--sidebar-width\){left:var(--sidebar-width)}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-4{margin-block:calc(var(--spacing)*4)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.h-64{height:calc(var(--spacing)*64)}.h-\[1\.2rem\]{height:1.2rem}.h-\[1px\]{height:1px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-base{height:calc(100vh - 6rem)}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[90vh\]{max-height:90vh}.max-h-\[300px\]{max-height:300px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-5xl{width:var(--container-5xl)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-\[1\.2rem\]{width:1.2rem}.w-\[200px\]{width:200px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-72{max-width:calc(var(--spacing)*72)}.max-w-\[240px\]{max-width:240px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1)}.-translate-x-1\/2,.-translate-x-px{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-x-px{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5)}.translate-y-0\.5,.translate-y-\[-50\%\]{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%}.scale-0,.scale-100{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%}.rotate-0{rotate:none}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-border{border-color:var(--border)}.border-destructive{border-color:var(--destructive)}.border-green-200{border-color:var(--color-green-200)}.border-input{border-color:var(--input)}.border-muted-foreground\/30{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/30{border-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--accent)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-destructive{background-color:var(--destructive)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-700{background-color:var(--color-green-700)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--primary)5%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-100{background-color:var(--color-red-100)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-transparent{background-color:#0000}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-primary{--tw-gradient-from:var(--primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/5{--tw-gradient-from:var(--primary)}@supports (color:color-mix(in lab,red,red)){.from-primary\/5{--tw-gradient-from:color-mix(in oklab,var(--primary)5%,transparent)}}.from-primary\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-green-600{--tw-gradient-to:var(--color-green-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-green-600\/5{--tw-gradient-to:#00a5440d}@supports (color:color-mix(in lab,red,red)){.to-green-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-green-600)5%,transparent)}}.to-green-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-24{padding-top:calc(var(--spacing)*24)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-24{padding-bottom:calc(var(--spacing)*24)}.pl-1\.5{padding-left:calc(var(--spacing)*1.5)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.wrap-anywhere{overflow-wrap:anywhere}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-card-foreground{color:var(--card-foreground)}.text-cyan-800{color:var(--color-cyan-800)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-800{color:var(--color-indigo-800)}.text-muted-foreground{color:var(--muted-foreground)}.text-neutral-800{color:var(--color-neutral-800)}.text-orange-800{color:var(--color-orange-800)}.text-pink-800{color:var(--color-pink-800)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-red-800{color:var(--color-red-800)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)))}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\],.shadow-lg{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-md,.shadow-none{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-sm,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.ring-offset-transparent{--tw-ring-offset-color:transparent}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-75{transition-delay:75ms}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.delay-75{--tw-animation-delay:75ms;animation-delay:75ms}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.running{animation-play-state:running}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media (hover:hover){.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--primary)}.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *),.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-primary\/50:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)))}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.hover\:shadow-md:hover,.hover\:shadow-xl:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))ease-out}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))ease-out}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media (hover:hover){.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-3xl{max-width:var(--container-3xl)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.dark\:border-amber-800:is(.dark *){border-color:var(--color-amber-800)}.dark\:border-blue-800:is(.dark *){border-color:var(--color-blue-800)}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-purple-800:is(.dark *){border-color:var(--color-purple-800)}.dark\:bg-amber-950\/20:is(.dark *){background-color:#46190133}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-950)20%,transparent)}}.dark\:bg-blue-900:is(.dark *){background-color:var(--color-blue-900)}.dark\:bg-blue-950\/20:is(.dark *){background-color:#16245633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-950)20%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-green-900:is(.dark *){background-color:var(--color-green-900)}.dark\:bg-green-950\/20:is(.dark *){background-color:#032e1533}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-green-950)20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-purple-900:is(.dark *){background-color:var(--color-purple-900)}.dark\:bg-purple-950\/20:is(.dark *){background-color:#3c036633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-950)20%,transparent)}}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-blue-200:is(.dark *){color:var(--color-blue-200)}.dark\:text-blue-300:is(.dark *){color:var(--color-blue-300)}.dark\:text-green-200:is(.dark *){color:var(--color-green-200)}.dark\:text-green-300:is(.dark *){color:var(--color-green-300)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-purple-200:is(.dark *){color:var(--color-purple-200)}.dark\:text-purple-300:is(.dark *){color:var(--color-purple-300)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing)*12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-green-700\/90:hover{background-color:#008138e6}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-green-700\/90:hover{background-color:color-mix(in oklab,var(--color-green-700)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.1% .005 285.823);--sidebar-primary:oklch(21% .006 285.885);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(96.7% .001 286.375);--sidebar-accent-foreground:oklch(21% .006 285.885);--sidebar-border:oklch(92% .004 286.32);--sidebar-ring:oklch(70.5% .015 286.067)}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(21% .006 285.885);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(27.4% .006 286.033);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.2% .016 285.938)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))))}to{height:0}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"} \ No newline at end of file diff --git a/transports/bifrost-http/ui/_next/static/css/0451d03ec40c67fa.css b/transports/bifrost-http/ui/_next/static/css/0451d03ec40c67fa.css deleted file mode 100644 index ad1cd1eea7..0000000000 --- a/transports/bifrost-http/ui/_next/static/css/0451d03ec40c67fa.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:host,:root{--color-red-100:oklch(93.6% .032 17.717);--color-red-800:oklch(44.4% .177 26.899);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-800:oklch(47% .157 37.304);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-800:oklch(45% .085 224.283);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-800:oklch(39.8% .195 277.366);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-800:oklch(45.9% .187 3.815);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-neutral-100:oklch(97% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-3\.5{top:calc(var(--spacing)*3.5)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-\(--sidebar-width\){left:var(--sidebar-width)}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-4{margin-block:calc(var(--spacing)*4)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.h-64{height:calc(var(--spacing)*64)}.h-\[1\.2rem\]{height:1.2rem}.h-\[1px\]{height:1px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-base{height:calc(100vh - 6rem)}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[90vh\]{max-height:90vh}.max-h-\[300px\]{max-height:300px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-5xl{width:var(--container-5xl)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-\[1\.2rem\]{width:1.2rem}.w-\[200px\]{width:200px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-72{max-width:calc(var(--spacing)*72)}.max-w-\[240px\]{max-width:240px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1)}.-translate-x-1\/2,.-translate-x-px{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-x-px{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing)*.5)}.translate-y-0\.5,.translate-y-\[-50\%\]{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%}.scale-0,.scale-100{scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%}.rotate-0{rotate:none}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-border{border-color:var(--border)}.border-destructive{border-color:var(--destructive)}.border-green-200{border-color:var(--color-green-200)}.border-input{border-color:var(--input)}.border-muted-foreground\/30{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/30{border-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--accent)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-destructive{background-color:var(--destructive)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-700{background-color:var(--color-green-700)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--primary)5%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-100{background-color:var(--color-red-100)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-transparent{background-color:#0000}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-primary{--tw-gradient-from:var(--primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/5{--tw-gradient-from:var(--primary)}@supports (color:color-mix(in lab,red,red)){.from-primary\/5{--tw-gradient-from:color-mix(in oklab,var(--primary)5%,transparent)}}.from-primary\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-600\/5{--tw-gradient-to:#155dfc0d}@supports (color:color-mix(in lab,red,red)){.to-blue-600\/5{--tw-gradient-to:color-mix(in oklab,var(--color-blue-600)5%,transparent)}}.to-blue-600\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-green-600{--tw-gradient-to:var(--color-green-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-24{padding-top:calc(var(--spacing)*24)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-24{padding-bottom:calc(var(--spacing)*24)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.wrap-anywhere{overflow-wrap:anywhere}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-card-foreground{color:var(--card-foreground)}.text-cyan-800{color:var(--color-cyan-800)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-gray-600{color:var(--color-gray-600)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-800{color:var(--color-indigo-800)}.text-muted-foreground{color:var(--muted-foreground)}.text-neutral-800{color:var(--color-neutral-800)}.text-orange-800{color:var(--color-orange-800)}.text-pink-800{color:var(--color-pink-800)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-red-800{color:var(--color-red-800)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)))}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\],.shadow-lg{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-md,.shadow-none{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-sm,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.ring-offset-transparent{--tw-ring-offset-color:transparent}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-75{transition-delay:75ms}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.delay-75{--tw-animation-delay:75ms;animation-delay:75ms}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.running{animation-play-state:running}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media (hover:hover){.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--primary)}.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *),.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-primary\/50:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)))}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.hover\:shadow-md:hover,.hover\:shadow-xl:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))ease-out}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))ease-out}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media (hover:hover){.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-3xl{max-width:var(--container-3xl)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.dark\:border-amber-800:is(.dark *){border-color:var(--color-amber-800)}.dark\:border-blue-800:is(.dark *){border-color:var(--color-blue-800)}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-purple-800:is(.dark *){border-color:var(--color-purple-800)}.dark\:bg-amber-950\/20:is(.dark *){background-color:#46190133}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-950)20%,transparent)}}.dark\:bg-blue-900:is(.dark *){background-color:var(--color-blue-900)}.dark\:bg-blue-950\/20:is(.dark *){background-color:#16245633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-950)20%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-green-900:is(.dark *){background-color:var(--color-green-900)}.dark\:bg-green-950\/20:is(.dark *){background-color:#032e1533}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-green-950)20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-purple-900:is(.dark *){background-color:var(--color-purple-900)}.dark\:bg-purple-950\/20:is(.dark *){background-color:#3c036633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-950\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-purple-950)20%,transparent)}}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-blue-200:is(.dark *){color:var(--color-blue-200)}.dark\:text-blue-300:is(.dark *){color:var(--color-blue-300)}.dark\:text-green-200:is(.dark *){color:var(--color-green-200)}.dark\:text-green-300:is(.dark *){color:var(--color-green-300)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-purple-200:is(.dark *){color:var(--color-purple-200)}.dark\:text-purple-300:is(.dark *){color:var(--color-purple-300)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing)*12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-green-700\/90:hover{background-color:#008138e6}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-green-700\/90:hover{background-color:color-mix(in oklab,var(--color-green-700)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.1% .005 285.823);--sidebar-primary:oklch(21% .006 285.885);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(96.7% .001 286.375);--sidebar-accent-foreground:oklch(21% .006 285.885);--sidebar-border:oklch(92% .004 286.32);--sidebar-ring:oklch(70.5% .015 286.067)}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(21% .006 285.885);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(27.4% .006 286.033);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.2% .016 285.938)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))))}to{height:0}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"} \ No newline at end of file diff --git a/transports/bifrost-http/ui/bifrost-logo-dark.png b/transports/bifrost-http/ui/bifrost-logo-dark.png new file mode 100644 index 0000000000..5049cb85f6 Binary files /dev/null and b/transports/bifrost-http/ui/bifrost-logo-dark.png differ diff --git a/transports/bifrost-http/ui/bifrost-logo.png b/transports/bifrost-http/ui/bifrost-logo.png new file mode 100644 index 0000000000..b47319dc46 Binary files /dev/null and b/transports/bifrost-http/ui/bifrost-logo.png differ diff --git a/transports/bifrost-http/ui/config/index.html b/transports/bifrost-http/ui/config/index.html index 769a59f75c..40dc0d8794 100644 --- a/transports/bifrost-http/ui/config/index.html +++ b/transports/bifrost-http/ui/config/index.html @@ -1,4 +1,4 @@ -Bifrost UI - AI Gateway Dashboard
\ No newline at end of file +
\ No newline at end of file diff --git a/transports/bifrost-http/ui/config/index.txt b/transports/bifrost-http/ui/config/index.txt index 35f5f9ca69..55258ffabd 100644 --- a/transports/bifrost-http/ui/config/index.txt +++ b/transports/bifrost-http/ui/config/index.txt @@ -1,13 +1,13 @@ 1:"$Sreact.fragment" -2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] -3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"ThemeProvider"] -4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"Toaster"] -5:I[193,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"SidebarProvider"] -6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] +2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] +3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"ThemeProvider"] +4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"Toaster"] +5:I[193,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"SidebarProvider"] +6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] 7:I[7555,[],""] 8:I[1295,[],""] 9:I[894,[],"ClientPageRoot"] -a:I[1059,["867","static/chunks/867-ee04be25d0141432.js","519","static/chunks/519-45533824b2718864.js","213","static/chunks/213-672494f56acc68a6.js","866","static/chunks/866-b29a8568c4caa97e.js","473","static/chunks/473-3e3a48663e3561da.js","293","static/chunks/293-d2734c4726406a0e.js","341","static/chunks/341-5aa9f869e119bce4.js","653","static/chunks/app/config/page-bf3c65256b3fc98b.js"],"default"] +a:I[6137,["867","static/chunks/867-ee04be25d0141432.js","519","static/chunks/519-45533824b2718864.js","678","static/chunks/678-56244c2aeff7b5e2.js","866","static/chunks/866-b29a8568c4caa97e.js","273","static/chunks/273-9756261fec6bc01b.js","529","static/chunks/529-26467b76604e8781.js","341","static/chunks/341-3971b040aed697e5.js","653","static/chunks/app/config/page-6aaabc7109379e54.js"],"default"] d:I[9665,[],"OutletBoundary"] 10:I[4911,[],"AsyncMetadataOutlet"] 12:I[9665,[],"ViewportBoundary"] @@ -15,8 +15,8 @@ d:I[9665,[],"OutletBoundary"] 16:I[6614,[],""] :HL["/_next/static/media/569ce4b8f30dc480-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] -:HL["/_next/static/css/0451d03ec40c67fa.css","style"] -0:{"P":null,"b":"build","p":"","c":["","config",""],"i":false,"f":[[["",{"children":["config",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0451d03ec40c67fa.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["config",["$","$1","c",{"children":[null,["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","searchParams":{},"params":{},"promises":["$@b","$@c"]}],null,["$","$Ld",null,{"children":["$Le","$Lf",["$","$L10",null,{"promise":"$@11"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","kdKH7aKHS0abFv4X46HVrv",{"children":[["$","$L12",null,{"children":"$L13"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L14",null,{"children":"$L15"}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/0290f827d14417a0.css","style"] +0:{"P":null,"b":"build","p":"","c":["","config",""],"i":false,"f":[[["",{"children":["config",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0290f827d14417a0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24 pb-12","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["config",["$","$1","c",{"children":[null,["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","searchParams":{},"params":{},"promises":["$@b","$@c"]}],null,["$","$Ld",null,{"children":["$Le","$Lf",["$","$L10",null,{"promise":"$@11"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","pUtxHiM2w6_9i2lxR3H2zv",{"children":[["$","$L12",null,{"children":"$L13"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L14",null,{"children":"$L15"}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 17:"$Sreact.suspense" 18:I[4911,[],"AsyncMetadata"] b:{} @@ -25,5 +25,5 @@ c:{} f:null 13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] e:null -11:{"metadata":[["$","title","0",{"children":"Bifrost UI - AI Gateway Dashboard"}],["$","meta","1",{"name":"description","content":"Production-ready AI gateway that connects to 8+ providers through a single API. Get automatic failover, intelligent load balancing, and zero-downtime deployments."}]],"error":null,"digest":"$undefined"} +11:{"metadata":[["$","title","0",{"children":"Bifrost - The fastest LLM gateway"}],["$","meta","1",{"name":"description","content":"Production-ready fastest LLM gateway that connects to 8+ providers through a single API. Get automatic failover, load balancing, mcp support and zero-downtime deployments."}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"} 19:{"metadata":"$11:metadata","error":null,"digest":"$undefined"} diff --git a/transports/bifrost-http/ui/docs/index.html b/transports/bifrost-http/ui/docs/index.html index 7271494bc1..b267534464 100644 --- a/transports/bifrost-http/ui/docs/index.html +++ b/transports/bifrost-http/ui/docs/index.html @@ -1,4 +1,4 @@ -Bifrost UI - AI Gateway Dashboard
Documentation
Documentation
Power Up Your Bifrost Stack

Everything you need to know about building production AI applications with Bifrost

Popular
Quick Start
Get Bifrost running in under 30 seconds
  • HTTP Transport Setup
  • Go Package Usage
  • Docker Guide
Read More
Architecture
Deep dive into Bifrost's design and performance
  • System Overview
  • Request Flow
  • Concurrency Model
  • Design Decisions
Read More
Comprehensive
Usage Guides
Complete API reference and configuration guides
  • Providers Setup
  • Key Management
  • Error Handling
  • Memory & Networking
Read More
Contributing
Help improve Bifrost for everyone
  • Contributing Guide
  • Adding Providers
  • Plugin Development
  • Code Conventions
Read More
Integration Examples
Practical examples and testing code
  • OpenAI Integration
  • Anthropic Integration
  • GenAI Integration
  • Migration Guides
Read More
Benchmarks
Performance metrics and guides
  • 5K RPS Test Results
  • Performance Metrics
  • Configuration Tuning
  • Hardware Comparisons
Read More
MCP Documentation
Comprehensive guide to Model Context Protocol integration

Learn how to build sophisticated AI agents with MCP support, tool calling, and external integrations.

View MCP Guide
Configuration Reference
Complete reference for all configuration options

Detailed documentation on provider setup, key management, and advanced configuration options.

Configuration Docs
\ No newline at end of file +
Documentation
Documentation
Power Up Your Bifrost Stack

Everything you need to know about building production AI applications with Bifrost

Popular
Quick Start
Get Bifrost running in under 30 seconds
  • HTTP Transport Setup
  • Go Package Usage
  • Docker Guide
Read More
Architecture
Deep dive into Bifrost's design and performance
  • System Overview
  • Request Flow
  • Concurrency Model
  • Design Decisions
Read More
Comprehensive
Usage Guides
Complete API reference and configuration guides
  • Providers Setup
  • Key Management
  • Error Handling
  • Memory & Networking
Read More
Contributing
Help improve Bifrost for everyone
  • Contributing Guide
  • Adding Providers
  • Plugin Development
  • Code Conventions
Read More
Integration Examples
Practical examples and testing code
  • OpenAI Integration
  • Anthropic Integration
  • GenAI Integration
  • Migration Guides
Read More
Benchmarks
Performance metrics and guides
  • 5K RPS Test Results
  • Performance Metrics
  • Configuration Tuning
  • Hardware Comparisons
Read More
MCP Documentation
Comprehensive guide to Model Context Protocol integration

Learn how to build sophisticated AI agents with MCP support, tool calling, and external integrations.

View MCP Guide
Configuration Reference
Complete reference for all configuration options

Detailed documentation on provider setup, key management, and advanced configuration options.

Configuration Docs
\ No newline at end of file diff --git a/transports/bifrost-http/ui/docs/index.txt b/transports/bifrost-http/ui/docs/index.txt index 0dca93e335..9163b8cd2d 100644 --- a/transports/bifrost-http/ui/docs/index.txt +++ b/transports/bifrost-http/ui/docs/index.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" -2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] -3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"ThemeProvider"] -4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"Toaster"] -5:I[193,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"SidebarProvider"] -6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] +2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] +3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"ThemeProvider"] +4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"Toaster"] +5:I[193,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"SidebarProvider"] +6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] 7:I[7555,[],""] 8:I[1295,[],""] 9:I[1225,["867","static/chunks/867-ee04be25d0141432.js","519","static/chunks/519-45533824b2718864.js","874","static/chunks/874-37fb0661d0af7eec.js","40","static/chunks/app/docs/page-437689869a33f8e2.js"],"ThemeToggle"] @@ -16,13 +16,13 @@ f:I[4911,[],"AsyncMetadataOutlet"] 15:I[6614,[],""] :HL["/_next/static/media/569ce4b8f30dc480-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] -:HL["/_next/static/css/0451d03ec40c67fa.css","style"] -0:{"P":null,"b":"build","p":"","c":["","docs",""],"i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0451d03ec40c67fa.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["docs",["$","$1","c",{"children":[null,["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"bg-background","children":[["$","div",null,{"className":"bg-background fixed top-0 right-0 left-(--sidebar-width) z-10","children":[["$","div",null,{"className":"flex items-center justify-between px-3","children":[["$","div",null,{"className":"p-3 font-semibold","children":"Documentation"}],["$","$L9",null,{}]]}],["$","$La",null,{"className":"w-full"}]]}],["$","div",null,{"className":"mx-auto max-w-7xl p-8 pt-0","children":["$","div",null,{"className":"space-y-8","children":[["$","div",null,{"className":"space-y-4 text-center","children":[["$","div",null,{"className":"bg-primary/10 text-primary inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-book-open h-4 w-4","aria-hidden":"true","children":[["$","path","1akyts",{"d":"M12 7v14"}],["$","path","ruj8y",{"d":"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}],"$undefined"]}],["$","span",null,{"className":"font-semibold","children":"Documentation"}]]}],["$","div",null,{"className":"from-primary bg-gradient-to-r to-green-600 bg-clip-text pb-2 text-5xl font-bold text-transparent","children":"Power Up Your Bifrost Stack"}],["$","p",null,{"className":"text-muted-foreground mx-auto max-w-2xl text-lg","children":"Everything you need to know about building production AI applications with Bifrost"}],["$","div",null,{"className":"flex justify-center gap-4","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link mr-2 h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}],"View Full Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-9 px-4 py-2 has-[>svg]:px-3 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/quickstart","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-play mr-2 h-4 w-4","aria-hidden":"true","children":[["$","polygon","1oa8hb",{"points":"6 3 20 12 6 21 6 3"}],"$undefined"]}],"Quick Start Guide"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 cursor-pointer","ref":null}]]}]]}],["$","div",null,{"className":"grid gap-6 md:grid-cols-2 lg:grid-cols-3","children":[["$","div","Quick Start",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-play text-primary h-6 w-6","aria-hidden":"true","children":[["$","polygon","1oa8hb",{"points":"6 3 20 12 6 21 6 3"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs","children":"Popular"}]]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Quick Start"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Get Bifrost running in under 30 seconds"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"HTTP Transport Setup"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Go Package Usage"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Docker Guide"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/quickstart","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Architecture",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-git-branch text-primary h-6 w-6","aria-hidden":"true","children":[["$","line","17qcm7",{"x1":"6","x2":"6","y1":"3","y2":"15"}],["$","circle","1h7g24",{"cx":"18","cy":"6","r":"3"}],["$","circle","fqmcym",{"cx":"6","cy":"18","r":"3"}],["$","path","n2h4wq",{"d":"M18 9a9 9 0 0 1-9 9"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Architecture"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Deep dive into Bifrost's design and performance"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"System Overview"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Request Flow"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Concurrency Model"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Design Decisions"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/architecture","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Usage Guides",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-book-open text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","1akyts",{"d":"M12 7v14"}],["$","path","ruj8y",{"d":"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs","children":"Comprehensive"}]]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Usage Guides"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Complete API reference and configuration guides"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Providers Setup"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Key Management"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Error Handling"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Memory & Networking"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/usage","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Contributing",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-users text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","1yyitq",{"d":"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"}],["$","path","16gr8j",{"d":"M16 3.128a4 4 0 0 1 0 7.744"}],["$","path","kshegd",{"d":"M22 21v-2a4 4 0 0 0-3-3.87"}],["$","circle","nufk8",{"cx":"9","cy":"7","r":"4"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Contributing"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Help improve Bifrost for everyone"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Contributing Guide"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Adding Providers"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Plugin Development"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Code Conventions"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/contributing","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Integration Examples",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Integration Examples"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Practical examples and testing code"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"OpenAI Integration"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Anthropic Integration"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"GenAI Integration"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Migration Guides"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/usage/http-transport/integrations","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Benchmarks",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-zap text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","1xq2db",{"d":"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Benchmarks"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Performance metrics and guides"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"5K RPS Test Results"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Performance Metrics"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Configuration Tuning"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Hardware Comparisons"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/blob/main/docs/benchmarks.md","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}]]}],["$","div",null,{"className":"grid gap-6 pt-8 md:grid-cols-2","children":[["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-primary/20 bg-primary/5","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-file-text text-primary h-5 w-5","aria-hidden":"true","children":[["$","path","1rqfz7",{"d":"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}],["$","path","tnqrlb",{"d":"M14 2v4a2 2 0 0 0 2 2h4"}],["$","path","b1mrlr",{"d":"M10 9H8"}],["$","path","t4e002",{"d":"M16 13H8"}],["$","path","z1uh3a",{"d":"M16 17H8"}],"$undefined"]}],"MCP Documentation"]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm","children":"Comprehensive guide to Model Context Protocol integration"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6","children":[["$","p",null,{"className":"text-muted-foreground mb-4 text-sm","children":"Learn how to build sophisticated AI agents with MCP support, tool calling, and external integrations."}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/blob/main/docs/mcp.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-book-open mr-2 h-4 w-4","aria-hidden":"true","children":[["$","path","1akyts",{"d":"M12 7v14"}],["$","path","ruj8y",{"d":"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}],"$undefined"]}],"View MCP Guide"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}],["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-green-200 bg-green-50 dark:border-green-800 dark:bg-green-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-settings h-5 w-5 text-green-600","aria-hidden":"true","children":[["$","path","1qme2f",{"d":"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}],["$","circle","1v7zrd",{"cx":"12","cy":"12","r":"3"}],"$undefined"]}],"Configuration Reference"]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm","children":"Complete reference for all configuration options"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6","children":[["$","p",null,{"className":"text-muted-foreground mb-4 text-sm","children":"Detailed documentation on provider setup, key management, and advanced configuration options."}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/usage/http-transport/configuration","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-settings mr-2 h-4 w-4","aria-hidden":"true","children":[["$","path","1qme2f",{"d":"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}],["$","circle","1v7zrd",{"cx":"12","cy":"12","r":"3"}],"$undefined"]}],"Configuration Docs"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}]]}]}]]}],null,["$","$Lc",null,{"children":["$Ld","$Le",["$","$Lf",null,{"promise":"$@10"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","nvClKtoIu5rd6dy6D3Eakv",{"children":[["$","$L11",null,{"children":"$L12"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L13",null,{"children":"$L14"}]]}],false]],"m":"$undefined","G":["$15","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/0290f827d14417a0.css","style"] +0:{"P":null,"b":"build","p":"","c":["","docs",""],"i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0290f827d14417a0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24 pb-12","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["docs",["$","$1","c",{"children":[null,["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"bg-background","children":[["$","div",null,{"className":"bg-background fixed top-0 right-0 left-(--sidebar-width) z-10","children":[["$","div",null,{"className":"flex items-center justify-between px-3","children":[["$","div",null,{"className":"p-3 font-semibold","children":"Documentation"}],["$","$L9",null,{}]]}],["$","$La",null,{"className":"w-full"}]]}],["$","div",null,{"className":"mx-auto max-w-7xl","children":["$","div",null,{"className":"space-y-8","children":[["$","div",null,{"className":"space-y-4 text-center","children":[["$","div",null,{"className":"bg-primary/10 text-primary inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-book-open h-4 w-4","aria-hidden":"true","children":[["$","path","1akyts",{"d":"M12 7v14"}],["$","path","ruj8y",{"d":"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}],"$undefined"]}],["$","span",null,{"className":"font-semibold","children":"Documentation"}]]}],["$","div",null,{"className":"from-primary bg-gradient-to-r to-green-600 bg-clip-text pb-2 text-5xl font-bold text-transparent","children":"Power Up Your Bifrost Stack"}],["$","p",null,{"className":"text-muted-foreground mx-auto max-w-2xl text-lg","children":"Everything you need to know about building production AI applications with Bifrost"}],["$","div",null,{"className":"flex justify-center gap-4","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link mr-2 h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}],"View Full Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-9 px-4 py-2 has-[>svg]:px-3 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/quickstart","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-play mr-2 h-4 w-4","aria-hidden":"true","children":[["$","polygon","1oa8hb",{"points":"6 3 20 12 6 21 6 3"}],"$undefined"]}],"Quick Start Guide"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 cursor-pointer","ref":null}]]}]]}],["$","div",null,{"className":"grid gap-6 md:grid-cols-2 lg:grid-cols-3","children":[["$","div","Quick Start",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-play text-primary h-6 w-6","aria-hidden":"true","children":[["$","polygon","1oa8hb",{"points":"6 3 20 12 6 21 6 3"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs","children":"Popular"}]]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Quick Start"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Get Bifrost running in under 30 seconds"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"HTTP Transport Setup"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Go Package Usage"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Docker Guide"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/quickstart","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Architecture",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-git-branch text-primary h-6 w-6","aria-hidden":"true","children":[["$","line","17qcm7",{"x1":"6","x2":"6","y1":"3","y2":"15"}],["$","circle","1h7g24",{"cx":"18","cy":"6","r":"3"}],["$","circle","fqmcym",{"cx":"6","cy":"18","r":"3"}],["$","path","n2h4wq",{"d":"M18 9a9 9 0 0 1-9 9"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Architecture"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Deep dive into Bifrost's design and performance"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"System Overview"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Request Flow"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Concurrency Model"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Design Decisions"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/architecture","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Usage Guides",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-book-open text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","1akyts",{"d":"M12 7v14"}],["$","path","ruj8y",{"d":"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs","children":"Comprehensive"}]]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Usage Guides"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Complete API reference and configuration guides"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Providers Setup"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Key Management"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Error Handling"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Memory & Networking"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/usage","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Contributing",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-users text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","1yyitq",{"d":"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"}],["$","path","16gr8j",{"d":"M16 3.128a4 4 0 0 1 0 7.744"}],["$","path","kshegd",{"d":"M22 21v-2a4 4 0 0 0-3-3.87"}],["$","circle","nufk8",{"cx":"9","cy":"7","r":"4"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Contributing"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Help improve Bifrost for everyone"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Contributing Guide"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Adding Providers"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Plugin Development"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Code Conventions"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/contributing","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Integration Examples",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Integration Examples"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Practical examples and testing code"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"OpenAI Integration"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Anthropic Integration"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"GenAI Integration"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Migration Guides"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/usage/http-transport/integrations","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}],["$","div","Benchmarks",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm group transition-all duration-200 hover:shadow-lg","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"bg-primary/10 group-hover:bg-primary/20 mb-4 flex h-12 w-12 items-center justify-center rounded-lg transition-colors","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-zap text-primary h-6 w-6","aria-hidden":"true","children":[["$","path","1xq2db",{"d":"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"}],"$undefined"]}]}],"$undefined"]}],["$","div",null,{"data-slot":"card-title","className":"font-semibold text-xl","children":"Benchmarks"}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm leading-relaxed","children":"Performance metrics and guides"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-8","children":[["$","div",null,{"className":"space-y-4","children":["$","ul",null,{"className":"space-y-2","children":[["$","li","0",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"5K RPS Test Results"]}],["$","li","1",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Performance Metrics"]}],["$","li","2",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Configuration Tuning"]}],["$","li","3",{"className":"text-muted-foreground flex items-center gap-2 text-sm","children":[["$","div",null,{"className":"bg-primary h-1.5 w-1.5 rounded-full"}],"Hardware Comparisons"]}]]}]}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/blob/main/docs/benchmarks.md","target":"_blank","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer flex items-center justify-center gap-2","children":["Read More",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-external-link h-4 w-4","aria-hidden":"true","children":[["$","path","1q9fwt",{"d":"M15 3h6v6"}],["$","path","gplh6r",{"d":"M10 14 21 3"}],["$","path","a6xqqp",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}],"$undefined"]}]],"data-slot":"button","ref":null}]]}]]}]]}],["$","div",null,{"className":"grid gap-6 pt-8 md:grid-cols-2","children":[["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-primary/20 bg-primary/5","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-file-text text-primary h-5 w-5","aria-hidden":"true","children":[["$","path","1rqfz7",{"d":"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}],["$","path","tnqrlb",{"d":"M14 2v4a2 2 0 0 0 2 2h4"}],["$","path","b1mrlr",{"d":"M10 9H8"}],["$","path","t4e002",{"d":"M16 13H8"}],["$","path","z1uh3a",{"d":"M16 17H8"}],"$undefined"]}],"MCP Documentation"]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm","children":"Comprehensive guide to Model Context Protocol integration"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6","children":[["$","p",null,{"className":"text-muted-foreground mb-4 text-sm","children":"Learn how to build sophisticated AI agents with MCP support, tool calling, and external integrations."}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/blob/main/docs/mcp.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-book-open mr-2 h-4 w-4","aria-hidden":"true","children":[["$","path","1akyts",{"d":"M12 7v14"}],["$","path","ruj8y",{"d":"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}],"$undefined"]}],"View MCP Guide"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}],["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-green-200 bg-green-50 dark:border-green-800 dark:bg-green-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-settings h-5 w-5 text-green-600","aria-hidden":"true","children":[["$","path","1qme2f",{"d":"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}],["$","circle","1v7zrd",{"cx":"12","cy":"12","r":"3"}],"$undefined"]}],"Configuration Reference"]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-sm","children":"Complete reference for all configuration options"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6","children":[["$","p",null,{"className":"text-muted-foreground mb-4 text-sm","children":"Detailed documentation on provider setup, key management, and advanced configuration options."}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/usage/http-transport/configuration","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-settings mr-2 h-4 w-4","aria-hidden":"true","children":[["$","path","1qme2f",{"d":"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}],["$","circle","1v7zrd",{"cx":"12","cy":"12","r":"3"}],"$undefined"]}],"Configuration Docs"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}]]}]}]]}],null,["$","$Lc",null,{"children":["$Ld","$Le",["$","$Lf",null,{"promise":"$@10"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","RvEeBBLPOa0Gn231DkIDav",{"children":[["$","$L11",null,{"children":"$L12"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L13",null,{"children":"$L14"}]]}],false]],"m":"$undefined","G":["$15","$undefined"],"s":false,"S":true} 16:"$Sreact.suspense" 17:I[4911,[],"AsyncMetadata"] 14:["$","div",null,{"hidden":true,"children":["$","$16",null,{"fallback":null,"children":["$","$L17",null,{"promise":"$@18"}]}]}] e:null 12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] d:null -10:{"metadata":[["$","title","0",{"children":"Bifrost UI - AI Gateway Dashboard"}],["$","meta","1",{"name":"description","content":"Production-ready AI gateway that connects to 8+ providers through a single API. Get automatic failover, intelligent load balancing, and zero-downtime deployments."}]],"error":null,"digest":"$undefined"} +10:{"metadata":[["$","title","0",{"children":"Bifrost - The fastest LLM gateway"}],["$","meta","1",{"name":"description","content":"Production-ready fastest LLM gateway that connects to 8+ providers through a single API. Get automatic failover, load balancing, mcp support and zero-downtime deployments."}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"} 18:{"metadata":"$10:metadata","error":null,"digest":"$undefined"} diff --git a/transports/bifrost-http/ui/favicon.ico b/transports/bifrost-http/ui/favicon.ico new file mode 100644 index 0000000000..30e09b22d5 Binary files /dev/null and b/transports/bifrost-http/ui/favicon.ico differ diff --git a/transports/bifrost-http/ui/index.html b/transports/bifrost-http/ui/index.html index 23bf480319..5f575db8b6 100644 --- a/transports/bifrost-http/ui/index.html +++ b/transports/bifrost-http/ui/index.html @@ -1,4 +1,4 @@ -Bifrost UI - AI Gateway Dashboard
\ No newline at end of file +
\ No newline at end of file diff --git a/transports/bifrost-http/ui/index.txt b/transports/bifrost-http/ui/index.txt index a51e7e6992..73c426eec2 100644 --- a/transports/bifrost-http/ui/index.txt +++ b/transports/bifrost-http/ui/index.txt @@ -1,13 +1,13 @@ 1:"$Sreact.fragment" -2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] -3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"ThemeProvider"] -4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"Toaster"] -5:I[193,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"SidebarProvider"] -6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] +2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] +3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"ThemeProvider"] +4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"Toaster"] +5:I[193,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"SidebarProvider"] +6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] 7:I[7555,[],""] 8:I[1295,[],""] 9:I[894,[],"ClientPageRoot"] -a:I[6794,["586","static/chunks/13b76428-4be7d9456b47e491.js","867","static/chunks/867-ee04be25d0141432.js","519","static/chunks/519-45533824b2718864.js","213","static/chunks/213-672494f56acc68a6.js","866","static/chunks/866-b29a8568c4caa97e.js","443","static/chunks/443-5702d24d72c89eac.js","341","static/chunks/341-5aa9f869e119bce4.js","974","static/chunks/app/page-9c52c1dd03452de9.js"],"default"] +a:I[6794,["586","static/chunks/13b76428-4be7d9456b47e491.js","867","static/chunks/867-ee04be25d0141432.js","519","static/chunks/519-45533824b2718864.js","678","static/chunks/678-56244c2aeff7b5e2.js","866","static/chunks/866-b29a8568c4caa97e.js","272","static/chunks/272-ea143f89da3f8b1f.js","341","static/chunks/341-3971b040aed697e5.js","974","static/chunks/app/page-3d9741bf5c7d7c6d.js"],"default"] d:I[9665,[],"OutletBoundary"] 10:I[4911,[],"AsyncMetadataOutlet"] 12:I[9665,[],"ViewportBoundary"] @@ -15,8 +15,8 @@ d:I[9665,[],"OutletBoundary"] 16:I[6614,[],""] :HL["/_next/static/media/569ce4b8f30dc480-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] -:HL["/_next/static/css/0451d03ec40c67fa.css","style"] -0:{"P":null,"b":"build","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0451d03ec40c67fa.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","searchParams":{},"params":{},"promises":["$@b","$@c"]}],null,["$","$Ld",null,{"children":["$Le","$Lf",["$","$L10",null,{"promise":"$@11"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","2STqmFDe5vJeB4yOICqS_v",{"children":[["$","$L12",null,{"children":"$L13"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L14",null,{"children":"$L15"}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/0290f827d14417a0.css","style"] +0:{"P":null,"b":"build","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0290f827d14417a0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24 pb-12","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","searchParams":{},"params":{},"promises":["$@b","$@c"]}],null,["$","$Ld",null,{"children":["$Le","$Lf",["$","$L10",null,{"promise":"$@11"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","sw1dLFK05H70YDLCl_SsCv",{"children":[["$","$L12",null,{"children":"$L13"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L14",null,{"children":"$L15"}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 17:"$Sreact.suspense" 18:I[4911,[],"AsyncMetadata"] b:{} @@ -25,5 +25,5 @@ c:{} f:null 13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] e:null -11:{"metadata":[["$","title","0",{"children":"Bifrost UI - AI Gateway Dashboard"}],["$","meta","1",{"name":"description","content":"Production-ready AI gateway that connects to 8+ providers through a single API. Get automatic failover, intelligent load balancing, and zero-downtime deployments."}]],"error":null,"digest":"$undefined"} +11:{"metadata":[["$","title","0",{"children":"Bifrost - The fastest LLM gateway"}],["$","meta","1",{"name":"description","content":"Production-ready fastest LLM gateway that connects to 8+ providers through a single API. Get automatic failover, load balancing, mcp support and zero-downtime deployments."}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"} 19:{"metadata":"$11:metadata","error":null,"digest":"$undefined"} diff --git a/transports/bifrost-http/ui/plugins/index.html b/transports/bifrost-http/ui/plugins/index.html index 25531a92ae..8184aa291d 100644 --- a/transports/bifrost-http/ui/plugins/index.html +++ b/transports/bifrost-http/ui/plugins/index.html @@ -1,4 +1,4 @@ -Bifrost UI - AI Gateway Dashboard
Plugins
Plugin EcosystemBeta
Supercharge Bifrost

Extend Bifrost with powerful plugins for observability, testing, security, and custom business logic. Full support in Go SDK, with HTTP transport integration in active development.

Featured Plugins

Production-ready plugins with varying levels of HTTP transport support

Production
Maxim Logger
Observability
Advanced LLM observability, tracing, and analytics platform integration

Key Features

Real-time LLM tracing
Performance analytics
Cost tracking
Command Line
bifrost-http --plugins maxim
Production
Response Mocker
Development
Mock AI responses for testing, development, and cost-effective prototyping

Key Features

Configurable mock responses
Request pattern matching
Development environment support
HTTP transport support coming soon
Available
Circuit Breaker
Reliability
Resilience patterns for handling provider failures and preventing cascade errors

Key Features

Automatic failure detection
Fallback mechanisms
Rate limiting
HTTP transport support coming soon

Usage Patterns

Multiple ways to integrate plugins into your workflow

HTTP Transport
Maxim plugin only (for now)
bifrost-http --plugins maxim

Additional plugins coming soon

Docker Deployment
Environment variables
docker run -e APP_PLUGINS=maxim

Additional plugins coming soon

Go SDK
Full plugin ecosystem
Plugins: []schemas.Plugin{...}

All plugins available

Coming Soon

Exciting plugins currently in development

Redis Cache
Coming Soon
High-performance caching layer with Redis backend
Auth Guard
Coming Soon
Enterprise authentication and authorization middleware
Rate Limiter
Coming Soon
Advanced rate limiting with multiple strategies

Join the Plugin Ecosystem

Contribute to the growing collection of Bifrost plugins or build your own custom solutions

\ No newline at end of file +
Plugins
Plugin EcosystemBeta
Supercharge Bifrost

Extend Bifrost with powerful plugins for observability, testing, security, and custom business logic. Full support in Go SDK, with HTTP transport integration in active development.

Featured Plugins

Production-ready plugins with varying levels of HTTP transport support

Production
Maxim Logger
Observability
Advanced LLM observability, tracing, and analytics platform integration

Key Features

Real-time LLM tracing
Performance analytics
Cost tracking
Command Line
bifrost-http --plugins maxim
Production
Response Mocker
Development
Mock AI responses for testing, development, and cost-effective prototyping

Key Features

Configurable mock responses
Request pattern matching
Development environment support
HTTP transport support coming soon
Available
Circuit Breaker
Reliability
Resilience patterns for handling provider failures and preventing cascade errors

Key Features

Automatic failure detection
Fallback mechanisms
Rate limiting
HTTP transport support coming soon

Usage Patterns

Multiple ways to integrate plugins into your workflow

HTTP Transport
Maxim plugin only (for now)
bifrost-http --plugins maxim

Additional plugins coming soon

Docker Deployment
Environment variables
docker run -e APP_PLUGINS=maxim

Additional plugins coming soon

Go SDK
Full plugin ecosystem
Plugins: []schemas.Plugin{...}

All plugins available

Coming Soon

Exciting plugins currently in development

Redis Cache
Coming Soon
High-performance caching layer with Redis backend
Auth Guard
Coming Soon
Enterprise authentication and authorization middleware
Rate Limiter
Coming Soon
Advanced rate limiting with multiple strategies

Join the Plugin Ecosystem

Contribute to the growing collection of Bifrost plugins or build your own custom solutions

\ No newline at end of file diff --git a/transports/bifrost-http/ui/plugins/index.txt b/transports/bifrost-http/ui/plugins/index.txt index db2f1d5c2b..f88bb48dcf 100644 --- a/transports/bifrost-http/ui/plugins/index.txt +++ b/transports/bifrost-http/ui/plugins/index.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" -2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] -3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"ThemeProvider"] -4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"Toaster"] -5:I[193,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"SidebarProvider"] -6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","213","static/chunks/213-672494f56acc68a6.js","874","static/chunks/874-37fb0661d0af7eec.js","473","static/chunks/473-3e3a48663e3561da.js","154","static/chunks/154-7b9dae231ea16969.js","177","static/chunks/app/layout-e528237e8bb14184.js"],"default"] +2:I[7942,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] +3:I[9304,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"ThemeProvider"] +4:I[6671,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"Toaster"] +5:I[193,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"SidebarProvider"] +6:I[9685,["867","static/chunks/867-ee04be25d0141432.js","678","static/chunks/678-56244c2aeff7b5e2.js","874","static/chunks/874-37fb0661d0af7eec.js","273","static/chunks/273-9756261fec6bc01b.js","825","static/chunks/825-aee0522b5fc044c3.js","177","static/chunks/app/layout-6acb57196bba0407.js"],"default"] 7:I[7555,[],""] 8:I[1295,[],""] 9:I[1225,["867","static/chunks/867-ee04be25d0141432.js","519","static/chunks/519-45533824b2718864.js","874","static/chunks/874-37fb0661d0af7eec.js","153","static/chunks/app/plugins/page-3f0f710f3ac21f25.js"],"ThemeToggle"] @@ -20,13 +20,13 @@ f:I[4964,["867","static/chunks/867-ee04be25d0141432.js","519","static/chunks/519 19:I[6614,[],""] :HL["/_next/static/media/569ce4b8f30dc480-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] -:HL["/_next/static/css/0451d03ec40c67fa.css","style"] -0:{"P":null,"b":"build","p":"","c":["","plugins",""],"i":false,"f":[[["",{"children":["plugins",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0451d03ec40c67fa.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["plugins",["$","$1","c",{"children":[null,["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"bg-background min-h-screen","children":[["$","div",null,{"className":"bg-background fixed top-0 right-0 left-(--sidebar-width) z-10","children":[["$","div",null,{"className":"flex items-center justify-between px-3","children":[["$","div",null,{"className":"p-3 font-semibold","children":"Plugins"}],["$","$L9",null,{}]]}],["$","$La",null,{"className":"w-full"}]]}],["$","div",null,{"className":"mx-auto max-w-7xl p-8 pt-0","children":["$","div",null,{"className":"space-y-12","children":[["$","div",null,{"className":"space-y-4 text-center","children":[["$","div",null,{"className":"bg-primary/10 text-primary inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-puzzle h-4 w-4","aria-hidden":"true","children":[["$","path","w46dr5",{"d":"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"}],"$undefined"]}],["$","span",null,{"className":"font-semibold","children":"Plugin Ecosystem"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90 ml-1 text-xs","children":"Beta"}]]}],["$","div",null,{"className":"from-primary bg-gradient-to-r to-green-600 bg-clip-text pb-2 text-5xl font-bold text-transparent","children":"Supercharge Bifrost"}],["$","p",null,{"className":"text-muted-foreground mx-auto max-w-3xl text-lg leading-relaxed","children":"Extend Bifrost with powerful plugins for observability, testing, security, and custom business logic. Full support in Go SDK, with HTTP transport integration in active development."}],["$","div",null,{"className":"flex flex-col items-center justify-center gap-4 sm:flex-row","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}],"Browse All Plugins"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/contributing/plugin.md","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Build Your Own"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}]]}]]}],["$","div",null,{"data-slot":"alert","role":"alert","className":"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current text-card-foreground border-amber-200 bg-amber-50 dark:border-amber-800 dark:bg-amber-950/20","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-triangle-alert h-4 w-4 text-amber-600","aria-hidden":"true","children":[["$","path","wmoenq",{"d":"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}],["$","path","juzpu7",{"d":"M12 9v4"}],["$","path","p32p05",{"d":"M12 17h.01"}],"$undefined"]}],["$","div",null,{"data-slot":"alert-description","className":"col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed text-amber-800 dark:text-amber-200","children":"HTTP transport support for custom and third party plugins is currently in active development and will be available soon."}]]}],["$","section",null,{"className":"space-y-8","children":[["$","div",null,{"className":"text-center","children":[["$","h2",null,{"className":"mb-4 text-3xl font-bold","children":"Featured Plugins"}],["$","p",null,{"className":"text-muted-foreground text-lg","children":"Production-ready plugins with varying levels of HTTP transport support"}]]}],["$","div",null,{"className":"grid gap-8 lg:grid-cols-3","children":[["$","div","maxim",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm group hover:border-primary/50 border-2 transition-all duration-300 hover:shadow-xl","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-start justify-between","children":[["$","div",null,{"className":"rounded-xl p-3 bg-blue-500 bg-opacity-10","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-monitor h-8 w-8 text-blue-500","aria-hidden":"true","children":[["$","rect","48i651",{"width":"20","height":"14","x":"2","y":"3","rx":"2"}],["$","line","1svkeh",{"x1":"8","x2":"16","y1":"21","y2":"21"}],["$","line","vw1qmm",{"x1":"12","x2":"12","y1":"17","y2":"21"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90 text-xs","children":"Production"}]]}],["$","div",null,{"className":"space-y-2","children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold group-hover:text-primary text-xl transition-colors","children":"Maxim Logger"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground w-fit text-xs","children":"Observability"}]]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-base leading-relaxed","children":"Advanced LLM observability, tracing, and analytics platform integration"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-6","children":[["$","div",null,{"className":"space-y-6","children":[["$","div",null,{"className":"space-y-3","children":[["$","h4",null,{"className":"text-muted-foreground text-sm font-semibold tracking-wide uppercase","children":"Key Features"}],["$","div",null,{"className":"grid gap-2","children":[["$","div","Real-time LLM tracing",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Real-time LLM tracing"]}],["$","div","Performance analytics",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Performance analytics"]}],["$","div","Cost tracking",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Cost tracking"]}]]}]]}],["$","$Lc",null,{"defaultValue":"http","className":"w-full","children":[["$","$Ld",null,{"className":"grid w-full grid-cols-2","children":[["$","$Le",null,{"value":"http","className":"text-xs","children":"HTTP"}],["$","$Le",null,{"value":"docker","className":"text-xs","children":"Docker"}]]}],["$","$Lf",null,{"value":"http","className":"mt-3","children":["$","div",null,{"className":"bg-muted rounded-md p-3","children":[["$","div",null,{"className":"mb-2 flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-terminal h-3 w-3","aria-hidden":"true","children":[["$","path","baeox8",{"d":"M12 19h8"}],["$","path","1yngyt",{"d":"m4 17 6-6-6-6"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"Command Line"}]]}],["$","code",null,{"className":"block font-mono text-xs","children":"bifrost-http --plugins maxim"}]]}]}],["$","$Lf",null,{"value":"docker","className":"mt-3","children":["$","div",null,{"className":"bg-muted rounded-md p-3","children":[["$","div",null,{"className":"mb-2 flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-container h-3 w-3","aria-hidden":"true","children":[["$","path","1t2lqe",{"d":"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"}],["$","path","o7czzq",{"d":"M10 21.9V14L2.1 9.1"}],["$","path","zm5e20",{"d":"m10 14 11.9-6.9"}],["$","path","159ecu",{"d":"M14 19.8v-8.1"}],["$","path","11uown",{"d":"M18 17.5V9.4"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"Docker Environment"}]]}],["$","code",null,{"className":"block font-mono text-xs","children":"docker run -e APP_PLUGINS=maxim bifrost-transport"}]]}]}]]}]]}],["$","div",null,{"className":"space-y-2","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/maxim","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-1 h-4 w-4","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Source Code"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/maxim/README.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info mr-1 h-4 w-4","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],"Plugin Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}],["$","div","mocker",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm group hover:border-primary/50 border-2 transition-all duration-300 hover:shadow-xl","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-start justify-between","children":[["$","div",null,{"className":"rounded-xl p-3 bg-green-500 bg-opacity-10","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code h-8 w-8 text-green-500","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90 text-xs","children":"Production"}]]}],["$","div",null,{"className":"space-y-2","children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold group-hover:text-primary text-xl transition-colors","children":"Response Mocker"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground w-fit text-xs","children":"Development"}]]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-base leading-relaxed","children":"Mock AI responses for testing, development, and cost-effective prototyping"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-6","children":[["$","div",null,{"className":"space-y-6","children":[["$","div",null,{"className":"space-y-3","children":[["$","h4",null,{"className":"text-muted-foreground text-sm font-semibold tracking-wide uppercase","children":"Key Features"}],["$","div",null,{"className":"grid gap-2","children":[["$","div","Configurable mock responses",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Configurable mock responses"]}],["$","div","Request pattern matching",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Request pattern matching"]}],["$","div","Development environment support",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Development environment support"]}]]}]]}],["$","div",null,{"className":"mt-3 rounded-md border border-amber-200 bg-amber-50 p-3 dark:border-amber-800 dark:bg-amber-950/20","children":["$","div",null,{"className":"flex items-center gap-2 text-amber-700 dark:text-amber-300","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info h-3 w-3","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"HTTP transport support coming soon"}]]}]}]]}],["$","div",null,{"className":"space-y-2","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/mocker","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-1 h-4 w-4","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Source Code"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/mocker/README.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info mr-1 h-4 w-4","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],"Plugin Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}],["$","div","circuit-breaker",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm group hover:border-primary/50 border-2 transition-all duration-300 hover:shadow-xl","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-start justify-between","children":[["$","div",null,{"className":"rounded-xl p-3 bg-orange-500 bg-opacity-10","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-shield h-8 w-8 text-orange-500","aria-hidden":"true","children":[["$","path","oel41y",{"d":"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs","children":"Available"}]]}],["$","div",null,{"className":"space-y-2","children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold group-hover:text-primary text-xl transition-colors","children":"Circuit Breaker"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground w-fit text-xs","children":"Reliability"}]]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-base leading-relaxed","children":"Resilience patterns for handling provider failures and preventing cascade errors"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-6","children":[["$","div",null,{"className":"space-y-6","children":[["$","div",null,{"className":"space-y-3","children":[["$","h4",null,{"className":"text-muted-foreground text-sm font-semibold tracking-wide uppercase","children":"Key Features"}],["$","div",null,{"className":"grid gap-2","children":[["$","div","Automatic failure detection",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Automatic failure detection"]}],["$","div","Fallback mechanisms",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Fallback mechanisms"]}],["$","div","Rate limiting",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Rate limiting"]}]]}]]}],["$","div",null,{"className":"mt-3 rounded-md border border-amber-200 bg-amber-50 p-3 dark:border-amber-800 dark:bg-amber-950/20","children":["$","div",null,{"className":"flex items-center gap-2 text-amber-700 dark:text-amber-300","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info h-3 w-3","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"HTTP transport support coming soon"}]]}]}]]}],["$","div",null,{"className":"space-y-2","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/circuitbreaker","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-1 h-4 w-4","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Source Code"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/circuitbreaker/README.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info mr-1 h-4 w-4","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],"Plugin Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}]]}]]}],["$","section",null,{"className":"space-y-8","children":[["$","div",null,{"className":"text-center","children":[["$","h2",null,{"className":"mb-4 text-3xl font-bold","children":"Usage Patterns"}],["$","p",null,{"className":"text-muted-foreground text-lg","children":"Multiple ways to integrate plugins into your workflow"}]]}],["$","div",null,{"className":"grid gap-6 md:grid-cols-3","children":[["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-blue-200 bg-blue-50 dark:border-blue-800 dark:bg-blue-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-terminal h-8 w-8 text-blue-600","aria-hidden":"true","children":[["$","path","baeox8",{"d":"M12 19h8"}],["$","path","1yngyt",{"d":"m4 17 6-6-6-6"}],"$undefined"]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold text-blue-800 dark:text-blue-200","children":"HTTP Transport"}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-blue-700 dark:text-blue-300","children":"Maxim plugin only (for now)"}]]}]]}]}],["$","div",null,{"data-slot":"card-content","className":"px-6 space-y-3","children":[["$","div",null,{"className":"rounded-md bg-blue-100 p-3 dark:bg-blue-900","children":["$","code",null,{"className":"font-mono text-sm text-blue-800 dark:text-blue-200","children":"bifrost-http --plugins maxim"}]}],["$","p",null,{"className":"text-sm text-blue-700 dark:text-blue-300","children":"Additional plugins coming soon"}]]}]]}],["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-purple-200 bg-purple-50 dark:border-purple-800 dark:bg-purple-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-container h-8 w-8 text-purple-600","aria-hidden":"true","children":[["$","path","1t2lqe",{"d":"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"}],["$","path","o7czzq",{"d":"M10 21.9V14L2.1 9.1"}],["$","path","zm5e20",{"d":"m10 14 11.9-6.9"}],["$","path","159ecu",{"d":"M14 19.8v-8.1"}],["$","path","11uown",{"d":"M18 17.5V9.4"}],"$undefined"]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold text-purple-800 dark:text-purple-200","children":"Docker Deployment"}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-purple-700 dark:text-purple-300","children":"Environment variables"}]]}]]}]}],["$","div",null,{"data-slot":"card-content","className":"px-6 space-y-3","children":[["$","div",null,{"className":"rounded-md bg-purple-100 p-3 dark:bg-purple-900","children":["$","code",null,{"className":"font-mono text-sm text-purple-800 dark:text-purple-200","children":"docker run -e APP_PLUGINS=maxim"}]}],["$","p",null,{"className":"text-sm text-purple-700 dark:text-purple-300","children":"Additional plugins coming soon"}]]}]]}],["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-green-200 bg-green-50 dark:border-green-800 dark:bg-green-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code h-8 w-8 text-green-600","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold text-green-800 dark:text-green-200","children":"Go SDK"}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-green-700 dark:text-green-300","children":"Full plugin ecosystem"}]]}]]}]}],["$","div",null,{"data-slot":"card-content","className":"px-6 space-y-3","children":[["$","div",null,{"className":"rounded-md bg-green-100 p-3 dark:bg-green-900","children":["$","code",null,{"className":"font-mono text-sm text-green-800 dark:text-green-200","children":["Plugins: []schemas.Plugin","{...}"]}]}],["$","p",null,{"className":"text-sm text-green-700 dark:text-green-300","children":"All plugins available"}]]}]]}]]}]]}],["$","section",null,{"className":"space-y-8","children":[["$","div",null,{"className":"text-center","children":[["$","h2",null,{"className":"mb-4 text-3xl font-bold","children":"Coming Soon"}],["$","p",null,{"className":"text-muted-foreground text-lg","children":"Exciting plugins currently in development"}]]}],["$","div",null,{"className":"grid gap-6 md:grid-cols-3","children":[["$","div","Redis Cache",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm border-muted-foreground/30 border-2 border-dashed","children":["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","div",null,{"className":"bg-muted rounded-lg p-2","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-database text-muted-foreground h-6 w-6","aria-hidden":"true","children":[["$","ellipse","msslwz",{"cx":"12","cy":"5","rx":"9","ry":"3"}],["$","path","1wlel7",{"d":"M3 5V19A9 3 0 0 0 21 19V5"}],["$","path","mv7ke4",{"d":"M3 12A9 3 0 0 0 21 12"}],"$undefined"]}]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold text-muted-foreground text-lg","children":"Redis Cache"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 mt-1 text-xs","children":"Coming Soon"}]]}]]}]}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-muted-foreground","children":"High-performance caching layer with Redis backend"}]]}]}],["$","div","Auth Guard",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm border-muted-foreground/30 border-2 border-dashed","children":["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","div",null,{"className":"bg-muted rounded-lg p-2","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-shield text-muted-foreground h-6 w-6","aria-hidden":"true","children":[["$","path","oel41y",{"d":"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],"$undefined"]}]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold text-muted-foreground text-lg","children":"Auth Guard"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 mt-1 text-xs","children":"Coming Soon"}]]}]]}]}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-muted-foreground","children":"Enterprise authentication and authorization middleware"}]]}]}],["$","div","Rate Limiter",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm border-muted-foreground/30 border-2 border-dashed","children":["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","div",null,{"className":"bg-muted rounded-lg p-2","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-zap text-muted-foreground h-6 w-6","aria-hidden":"true","children":[["$","path","1xq2db",{"d":"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"}],"$undefined"]}]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold text-muted-foreground text-lg","children":"Rate Limiter"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 mt-1 text-xs","children":"Coming Soon"}]]}]]}]}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-muted-foreground","children":"Advanced rate limiting with multiple strategies"}]]}]}]]}]]}],["$","section",null,{"className":"from-primary/5 rounded-2xl bg-gradient-to-r to-blue-600/5 p-8","children":["$","div",null,{"className":"space-y-6 text-center","children":[["$","h2",null,{"className":"text-3xl font-bold","children":"Join the Plugin Ecosystem"}],["$","p",null,{"className":"text-muted-foreground mx-auto max-w-2xl text-lg","children":"Contribute to the growing collection of Bifrost plugins or build your own custom solutions"}],["$","div",null,{"className":"flex flex-col justify-center gap-4 sm:flex-row","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}],"Plugin Repository"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/contributing/plugin.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-rocket mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","m3kijz",{"d":"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"}],["$","path","1fmvmk",{"d":"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"}],["$","path","1f8sc4",{"d":"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"}],["$","path","qeys4",{"d":"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"}],"$undefined"]}],"Development Guide"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/architecture/plugins.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-puzzle mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","w46dr5",{"d":"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"}],"$undefined"]}],"Architecture Docs"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}]]}]]}]}]]}]}]]}],null,["$","$L10",null,{"children":["$L11","$L12",["$","$L13",null,{"promise":"$@14"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","DPBgTxBHsmdvLkdBW6i9Kv",{"children":[["$","$L15",null,{"children":"$L16"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L17",null,{"children":"$L18"}]]}],false]],"m":"$undefined","G":["$19","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/0290f827d14417a0.css","style"] +0:{"P":null,"b":"build","p":"","c":["","plugins",""],"i":false,"f":[[["",{"children":["plugins",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0290f827d14417a0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_5cfdac __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","$L4",null,{}],["$","$L5",null,{"children":[["$","$L6",null,{}],["$","main",null,{"className":"relative mx-auto flex min-h-screen w-5xl flex-col pt-24 pb-12","children":["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]}]]}],{"children":["plugins",["$","$1","c",{"children":[null,["$","$L7",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L8",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"bg-background min-h-screen","children":[["$","div",null,{"className":"bg-background fixed top-0 right-0 left-(--sidebar-width) z-10","children":[["$","div",null,{"className":"flex items-center justify-between px-3","children":[["$","div",null,{"className":"p-3 font-semibold","children":"Plugins"}],["$","$L9",null,{}]]}],["$","$La",null,{"className":"w-full"}]]}],["$","div",null,{"className":"mx-auto max-w-7xl","children":["$","div",null,{"className":"space-y-12","children":[["$","div",null,{"className":"space-y-4 text-center","children":[["$","div",null,{"className":"bg-primary/10 text-primary inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-puzzle h-4 w-4","aria-hidden":"true","children":[["$","path","w46dr5",{"d":"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"}],"$undefined"]}],["$","span",null,{"className":"font-semibold","children":"Plugin Ecosystem"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90 ml-1 text-xs","children":"Beta"}]]}],["$","div",null,{"className":"from-primary bg-gradient-to-r to-green-600 bg-clip-text pb-2 text-5xl font-bold text-transparent","children":"Supercharge Bifrost"}],["$","p",null,{"className":"text-muted-foreground mx-auto max-w-3xl text-lg leading-relaxed","children":"Extend Bifrost with powerful plugins for observability, testing, security, and custom business logic. Full support in Go SDK, with HTTP transport integration in active development."}],["$","div",null,{"className":"flex flex-col items-center justify-center gap-4 sm:flex-row","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}],"Browse All Plugins"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/contributing/plugin.md","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Build Your Own"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}]]}]]}],["$","div",null,{"data-slot":"alert","role":"alert","className":"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current text-card-foreground border-amber-200 bg-amber-50 dark:border-amber-800 dark:bg-amber-950/20","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-triangle-alert h-4 w-4 text-amber-600","aria-hidden":"true","children":[["$","path","wmoenq",{"d":"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}],["$","path","juzpu7",{"d":"M12 9v4"}],["$","path","p32p05",{"d":"M12 17h.01"}],"$undefined"]}],["$","div",null,{"data-slot":"alert-description","className":"col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed text-amber-800 dark:text-amber-200","children":"HTTP transport support for custom and third party plugins is currently in active development and will be available soon."}]]}],["$","section",null,{"className":"space-y-8","children":[["$","div",null,{"className":"text-center","children":[["$","h2",null,{"className":"mb-4 text-3xl font-bold","children":"Featured Plugins"}],["$","p",null,{"className":"text-muted-foreground text-lg","children":"Production-ready plugins with varying levels of HTTP transport support"}]]}],["$","div",null,{"className":"grid gap-8 lg:grid-cols-3","children":[["$","div","maxim",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm group hover:border-primary/50 border-2 transition-all duration-300 hover:shadow-xl","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-start justify-between","children":[["$","div",null,{"className":"rounded-xl p-3 bg-blue-500 bg-opacity-10","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-monitor h-8 w-8 text-blue-500","aria-hidden":"true","children":[["$","rect","48i651",{"width":"20","height":"14","x":"2","y":"3","rx":"2"}],["$","line","1svkeh",{"x1":"8","x2":"16","y1":"21","y2":"21"}],["$","line","vw1qmm",{"x1":"12","x2":"12","y1":"17","y2":"21"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90 text-xs","children":"Production"}]]}],["$","div",null,{"className":"space-y-2","children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold group-hover:text-primary text-xl transition-colors","children":"Maxim Logger"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground w-fit text-xs","children":"Observability"}]]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-base leading-relaxed","children":"Advanced LLM observability, tracing, and analytics platform integration"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-6","children":[["$","div",null,{"className":"space-y-6","children":[["$","div",null,{"className":"space-y-3","children":[["$","h4",null,{"className":"text-muted-foreground text-sm font-semibold tracking-wide uppercase","children":"Key Features"}],["$","div",null,{"className":"grid gap-2","children":[["$","div","Real-time LLM tracing",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Real-time LLM tracing"]}],["$","div","Performance analytics",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Performance analytics"]}],["$","div","Cost tracking",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Cost tracking"]}]]}]]}],["$","$Lc",null,{"defaultValue":"http","className":"w-full","children":[["$","$Ld",null,{"className":"grid w-full grid-cols-2","children":[["$","$Le",null,{"value":"http","className":"text-xs","children":"HTTP"}],["$","$Le",null,{"value":"docker","className":"text-xs","children":"Docker"}]]}],["$","$Lf",null,{"value":"http","className":"mt-3","children":["$","div",null,{"className":"bg-muted rounded-md p-3","children":[["$","div",null,{"className":"mb-2 flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-terminal h-3 w-3","aria-hidden":"true","children":[["$","path","baeox8",{"d":"M12 19h8"}],["$","path","1yngyt",{"d":"m4 17 6-6-6-6"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"Command Line"}]]}],["$","code",null,{"className":"block font-mono text-xs","children":"bifrost-http --plugins maxim"}]]}]}],["$","$Lf",null,{"value":"docker","className":"mt-3","children":["$","div",null,{"className":"bg-muted rounded-md p-3","children":[["$","div",null,{"className":"mb-2 flex items-center gap-2","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-container h-3 w-3","aria-hidden":"true","children":[["$","path","1t2lqe",{"d":"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"}],["$","path","o7czzq",{"d":"M10 21.9V14L2.1 9.1"}],["$","path","zm5e20",{"d":"m10 14 11.9-6.9"}],["$","path","159ecu",{"d":"M14 19.8v-8.1"}],["$","path","11uown",{"d":"M18 17.5V9.4"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"Docker Environment"}]]}],["$","code",null,{"className":"block font-mono text-xs","children":"docker run -e APP_PLUGINS=maxim bifrost-transport"}]]}]}]]}]]}],["$","div",null,{"className":"space-y-2","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/maxim","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-1 h-4 w-4","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Source Code"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/maxim/README.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info mr-1 h-4 w-4","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],"Plugin Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}],["$","div","mocker",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm group hover:border-primary/50 border-2 transition-all duration-300 hover:shadow-xl","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-start justify-between","children":[["$","div",null,{"className":"rounded-xl p-3 bg-green-500 bg-opacity-10","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code h-8 w-8 text-green-500","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90 text-xs","children":"Production"}]]}],["$","div",null,{"className":"space-y-2","children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold group-hover:text-primary text-xl transition-colors","children":"Response Mocker"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground w-fit text-xs","children":"Development"}]]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-base leading-relaxed","children":"Mock AI responses for testing, development, and cost-effective prototyping"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-6","children":[["$","div",null,{"className":"space-y-6","children":[["$","div",null,{"className":"space-y-3","children":[["$","h4",null,{"className":"text-muted-foreground text-sm font-semibold tracking-wide uppercase","children":"Key Features"}],["$","div",null,{"className":"grid gap-2","children":[["$","div","Configurable mock responses",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Configurable mock responses"]}],["$","div","Request pattern matching",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Request pattern matching"]}],["$","div","Development environment support",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Development environment support"]}]]}]]}],["$","div",null,{"className":"mt-3 rounded-md border border-amber-200 bg-amber-50 p-3 dark:border-amber-800 dark:bg-amber-950/20","children":["$","div",null,{"className":"flex items-center gap-2 text-amber-700 dark:text-amber-300","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info h-3 w-3","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"HTTP transport support coming soon"}]]}]}]]}],["$","div",null,{"className":"space-y-2","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/mocker","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-1 h-4 w-4","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Source Code"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/mocker/README.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info mr-1 h-4 w-4","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],"Plugin Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}],["$","div","circuit-breaker",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm group hover:border-primary/50 border-2 transition-all duration-300 hover:shadow-xl","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-start justify-between","children":[["$","div",null,{"className":"rounded-xl p-3 bg-orange-500 bg-opacity-10","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-shield h-8 w-8 text-orange-500","aria-hidden":"true","children":[["$","path","oel41y",{"d":"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],"$undefined"]}]}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 text-xs","children":"Available"}]]}],["$","div",null,{"className":"space-y-2","children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold group-hover:text-primary text-xl transition-colors","children":"Circuit Breaker"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground w-fit text-xs","children":"Reliability"}]]}],["$","div",null,{"data-slot":"card-description","className":"text-muted-foreground text-base leading-relaxed","children":"Resilience patterns for handling provider failures and preventing cascade errors"}]]}],["$","div",null,{"data-slot":"card-content","className":"px-6 flex h-full flex-col justify-between gap-6","children":[["$","div",null,{"className":"space-y-6","children":[["$","div",null,{"className":"space-y-3","children":[["$","h4",null,{"className":"text-muted-foreground text-sm font-semibold tracking-wide uppercase","children":"Key Features"}],["$","div",null,{"className":"grid gap-2","children":[["$","div","Automatic failure detection",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Automatic failure detection"]}],["$","div","Fallback mechanisms",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Fallback mechanisms"]}],["$","div","Rate limiting",{"className":"flex items-center gap-2 text-sm","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chevron-right text-primary h-3 w-3","aria-hidden":"true","children":[["$","path","mthhwq",{"d":"m9 18 6-6-6-6"}],"$undefined"]}],"Rate limiting"]}]]}]]}],["$","div",null,{"className":"mt-3 rounded-md border border-amber-200 bg-amber-50 p-3 dark:border-amber-800 dark:bg-amber-950/20","children":["$","div",null,{"className":"flex items-center gap-2 text-amber-700 dark:text-amber-300","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info h-3 w-3","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],["$","span",null,{"className":"text-xs font-semibold","children":"HTTP transport support coming soon"}]]}]}]]}],["$","div",null,{"className":"space-y-2","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/circuitbreaker","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code mr-1 h-4 w-4","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],"Source Code"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins/circuitbreaker/README.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-info mr-1 h-4 w-4","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","1dtifu",{"d":"M12 16v-4"}],["$","path","e9boi3",{"d":"M12 8h.01"}],"$undefined"]}],"Plugin Documentation"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 px-4 py-2 has-[>svg]:px-3 w-full cursor-pointer","ref":null}]]}]]}]]}]]}]]}],["$","section",null,{"className":"space-y-8","children":[["$","div",null,{"className":"text-center","children":[["$","h2",null,{"className":"mb-4 text-3xl font-bold","children":"Usage Patterns"}],["$","p",null,{"className":"text-muted-foreground text-lg","children":"Multiple ways to integrate plugins into your workflow"}]]}],["$","div",null,{"className":"grid gap-6 md:grid-cols-3","children":[["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-blue-200 bg-blue-50 dark:border-blue-800 dark:bg-blue-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-terminal h-8 w-8 text-blue-600","aria-hidden":"true","children":[["$","path","baeox8",{"d":"M12 19h8"}],["$","path","1yngyt",{"d":"m4 17 6-6-6-6"}],"$undefined"]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold text-blue-800 dark:text-blue-200","children":"HTTP Transport"}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-blue-700 dark:text-blue-300","children":"Maxim plugin only (for now)"}]]}]]}]}],["$","div",null,{"data-slot":"card-content","className":"px-6 space-y-3","children":[["$","div",null,{"className":"rounded-md bg-blue-100 p-3 dark:bg-blue-900","children":["$","code",null,{"className":"font-mono text-sm text-blue-800 dark:text-blue-200","children":"bifrost-http --plugins maxim"}]}],["$","p",null,{"className":"text-sm text-blue-700 dark:text-blue-300","children":"Additional plugins coming soon"}]]}]]}],["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-purple-200 bg-purple-50 dark:border-purple-800 dark:bg-purple-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-container h-8 w-8 text-purple-600","aria-hidden":"true","children":[["$","path","1t2lqe",{"d":"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"}],["$","path","o7czzq",{"d":"M10 21.9V14L2.1 9.1"}],["$","path","zm5e20",{"d":"m10 14 11.9-6.9"}],["$","path","159ecu",{"d":"M14 19.8v-8.1"}],["$","path","11uown",{"d":"M18 17.5V9.4"}],"$undefined"]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold text-purple-800 dark:text-purple-200","children":"Docker Deployment"}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-purple-700 dark:text-purple-300","children":"Environment variables"}]]}]]}]}],["$","div",null,{"data-slot":"card-content","className":"px-6 space-y-3","children":[["$","div",null,{"className":"rounded-md bg-purple-100 p-3 dark:bg-purple-900","children":["$","code",null,{"className":"font-mono text-sm text-purple-800 dark:text-purple-200","children":"docker run -e APP_PLUGINS=maxim"}]}],["$","p",null,{"className":"text-sm text-purple-700 dark:text-purple-300","children":"Additional plugins coming soon"}]]}]]}],["$","div",null,{"data-slot":"card","className":"text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm border-green-200 bg-green-50 dark:border-green-800 dark:bg-green-950/20","children":[["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-code h-8 w-8 text-green-600","aria-hidden":"true","children":[["$","path","eg8j8",{"d":"m16 18 6-6-6-6"}],["$","path","ppft3o",{"d":"m8 6-6 6 6 6"}],"$undefined"]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"leading-none font-semibold text-green-800 dark:text-green-200","children":"Go SDK"}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-green-700 dark:text-green-300","children":"Full plugin ecosystem"}]]}]]}]}],["$","div",null,{"data-slot":"card-content","className":"px-6 space-y-3","children":[["$","div",null,{"className":"rounded-md bg-green-100 p-3 dark:bg-green-900","children":["$","code",null,{"className":"font-mono text-sm text-green-800 dark:text-green-200","children":["Plugins: []schemas.Plugin","{...}"]}]}],["$","p",null,{"className":"text-sm text-green-700 dark:text-green-300","children":"All plugins available"}]]}]]}]]}]]}],["$","section",null,{"className":"space-y-8","children":[["$","div",null,{"className":"text-center","children":[["$","h2",null,{"className":"mb-4 text-3xl font-bold","children":"Coming Soon"}],["$","p",null,{"className":"text-muted-foreground text-lg","children":"Exciting plugins currently in development"}]]}],["$","div",null,{"className":"grid gap-6 md:grid-cols-3","children":[["$","div","Redis Cache",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm border-muted-foreground/30 border-2 border-dashed","children":["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","div",null,{"className":"bg-muted rounded-lg p-2","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-database text-muted-foreground h-6 w-6","aria-hidden":"true","children":[["$","ellipse","msslwz",{"cx":"12","cy":"5","rx":"9","ry":"3"}],["$","path","1wlel7",{"d":"M3 5V19A9 3 0 0 0 21 19V5"}],["$","path","mv7ke4",{"d":"M3 12A9 3 0 0 0 21 12"}],"$undefined"]}]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold text-muted-foreground text-lg","children":"Redis Cache"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 mt-1 text-xs","children":"Coming Soon"}]]}]]}]}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-muted-foreground","children":"High-performance caching layer with Redis backend"}]]}]}],["$","div","Auth Guard",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm border-muted-foreground/30 border-2 border-dashed","children":["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","div",null,{"className":"bg-muted rounded-lg p-2","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-shield text-muted-foreground h-6 w-6","aria-hidden":"true","children":[["$","path","oel41y",{"d":"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],"$undefined"]}]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold text-muted-foreground text-lg","children":"Auth Guard"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 mt-1 text-xs","children":"Coming Soon"}]]}]]}]}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-muted-foreground","children":"Enterprise authentication and authorization middleware"}]]}]}],["$","div","Rate Limiter",{"data-slot":"card","className":"bg-card text-card-foreground flex flex-col gap-6 rounded-xl py-6 shadow-sm border-muted-foreground/30 border-2 border-dashed","children":["$","div",null,{"data-slot":"card-header","className":"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6","children":[["$","div",null,{"className":"flex items-center justify-between","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","div",null,{"className":"bg-muted rounded-lg p-2","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-zap text-muted-foreground h-6 w-6","aria-hidden":"true","children":[["$","path","1xq2db",{"d":"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"}],"$undefined"]}]}],["$","div",null,{"children":[["$","div",null,{"data-slot":"card-title","className":"font-semibold text-muted-foreground text-lg","children":"Rate Limiter"}],["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 mt-1 text-xs","children":"Coming Soon"}]]}]]}]}],["$","div",null,{"data-slot":"card-description","className":"text-sm text-muted-foreground","children":"Advanced rate limiting with multiple strategies"}]]}]}]]}]]}],["$","section",null,{"className":"from-primary/5 rounded-2xl bg-gradient-to-r to-green-600/5 p-8","children":["$","div",null,{"className":"space-y-6 text-center","children":[["$","h2",null,{"className":"text-3xl font-bold","children":"Join the Plugin Ecosystem"}],["$","p",null,{"className":"text-muted-foreground mx-auto max-w-2xl text-lg","children":"Contribute to the growing collection of Bifrost plugins or build your own custom solutions"}],["$","div",null,{"className":"flex flex-col justify-center gap-4 sm:flex-row","children":[["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/plugins","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}],"Plugin Repository"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/contributing/plugin.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-rocket mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","m3kijz",{"d":"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"}],["$","path","1fmvmk",{"d":"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"}],["$","path","1f8sc4",{"d":"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"}],["$","path","qeys4",{"d":"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"}],"$undefined"]}],"Development Guide"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}],["$","$Lb",null,{"href":"https://github.com/maximhq/bifrost/tree/main/docs/architecture/plugins.md","target":"_blank","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-puzzle mr-2 h-5 w-5","aria-hidden":"true","children":[["$","path","w46dr5",{"d":"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"}],"$undefined"]}],"Architecture Docs"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4 cursor-pointer","ref":null}]]}]]}]}]]}]}]]}],null,["$","$L10",null,{"children":["$L11","$L12",["$","$L13",null,{"promise":"$@14"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","8hAJlBYTUKfohD1aShFMtv",{"children":[["$","$L15",null,{"children":"$L16"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L17",null,{"children":"$L18"}]]}],false]],"m":"$undefined","G":["$19","$undefined"],"s":false,"S":true} 1a:"$Sreact.suspense" 1b:I[4911,[],"AsyncMetadata"] 18:["$","div",null,{"hidden":true,"children":["$","$1a",null,{"fallback":null,"children":["$","$L1b",null,{"promise":"$@1c"}]}]}] 12:null 16:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 11:null -14:{"metadata":[["$","title","0",{"children":"Bifrost UI - AI Gateway Dashboard"}],["$","meta","1",{"name":"description","content":"Production-ready AI gateway that connects to 8+ providers through a single API. Get automatic failover, intelligent load balancing, and zero-downtime deployments."}]],"error":null,"digest":"$undefined"} +14:{"metadata":[["$","title","0",{"children":"Bifrost - The fastest LLM gateway"}],["$","meta","1",{"name":"description","content":"Production-ready fastest LLM gateway that connects to 8+ providers through a single API. Get automatic failover, load balancing, mcp support and zero-downtime deployments."}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"} 1c:{"metadata":"$14:metadata","error":null,"digest":"$undefined"} diff --git a/transports/go.mod b/transports/go.mod index 68d090bba6..e437da7a92 100644 --- a/transports/go.mod +++ b/transports/go.mod @@ -14,8 +14,6 @@ require ( google.golang.org/genai v1.4.0 ) -replace github.com/maximhq/bifrost/core => ../core - require ( cloud.google.com/go v0.121.0 // indirect cloud.google.com/go/auth v0.16.0 // indirect diff --git a/ui/app/config/page.tsx b/ui/app/config/page.tsx index 33dc0998e9..210d46861f 100644 --- a/ui/app/config/page.tsx +++ b/ui/app/config/page.tsx @@ -2,11 +2,9 @@ import { useState, useEffect } from "react"; import Header from "@/components/header"; -import { CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; -import { Settings, Database, Zap, Save, RefreshCw } from "lucide-react"; +import { Settings, Database, Zap } from "lucide-react"; import { useToast } from "@/hooks/use-toast"; import { ProviderResponse } from "@/lib/types/config"; import { apiService } from "@/lib/api"; @@ -15,7 +13,6 @@ import ProvidersList from "@/components/config/providers-list"; import MCPClientsList from "@/components/config/mcp-clients-lists"; import { MCPClient } from "@/lib/types/mcp"; import FullPageLoader from "@/components/full-page-loader"; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; export default function ConfigPage() { const [activeTab, setActiveTab] = useState("providers"); @@ -63,23 +60,6 @@ export default function ConfigPage() { setMcpClients(data || []); }; - const handleSaveConfig = async () => { - const [, error] = await apiService.saveConfig(); - - if (error) { - toast({ - title: "Error", - description: error, - variant: "destructive", - }); - } else { - toast({ - title: "Success", - description: "Configuration saved successfully", - }); - } - }; - return (
@@ -88,23 +68,9 @@ export default function ConfigPage() { ) : (
{/* Page Header */} -
-
-

Configuration

-

Configure AI providers, API keys, and system settings for your Bifrost instance.

-
- - - - - - - Persist configuration for next server start. - - +
+

Configuration

+

Configure AI providers, API keys, and system settings for your Bifrost instance.

{/* Configuration Tabs */} diff --git a/ui/app/docs/page.tsx b/ui/app/docs/page.tsx index c5ef9ecb53..7eb7203e06 100644 --- a/ui/app/docs/page.tsx +++ b/ui/app/docs/page.tsx @@ -57,7 +57,7 @@ export default function DocsPage() { return (
-
+
{/* Header */}
diff --git a/ui/app/favicon.ico b/ui/app/favicon.ico new file mode 100644 index 0000000000..30e09b22d5 Binary files /dev/null and b/ui/app/favicon.ico differ diff --git a/ui/app/layout.tsx b/ui/app/layout.tsx index 1f2325f9fa..9e0a7f1698 100644 --- a/ui/app/layout.tsx +++ b/ui/app/layout.tsx @@ -18,9 +18,9 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "Bifrost UI - AI Gateway Dashboard", + title: "Bifrost - The fastest LLM gateway", description: - "Production-ready AI gateway that connects to 8+ providers through a single API. Get automatic failover, intelligent load balancing, and zero-downtime deployments.", + "Production-ready fastest LLM gateway that connects to 8+ providers through a single API. Get automatic failover, load balancing, mcp support and zero-downtime deployments.", }; export default function RootLayout({ children }: { children: React.ReactNode }) { @@ -32,7 +32,7 @@ export default function RootLayout({ children }: { children: React.ReactNode }) -
{children}
+
{children}
diff --git a/ui/app/plugins/page.tsx b/ui/app/plugins/page.tsx index 7c1d7099c8..1166c1b7c5 100644 --- a/ui/app/plugins/page.tsx +++ b/ui/app/plugins/page.tsx @@ -104,7 +104,7 @@ export default function PluginsPage() { return (
-
+
{/* Hero Section */}
@@ -354,7 +354,7 @@ export default function PluginsPage() { {/* Community & Resources */} -
+

Join the Plugin Ecosystem

diff --git a/ui/components/config/core-settings-list.tsx b/ui/components/config/core-settings-list.tsx index 00240ad561..d746aeabbe 100644 --- a/ui/components/config/core-settings-list.tsx +++ b/ui/components/config/core-settings-list.tsx @@ -17,19 +17,36 @@ export default function CoreSettingsList() { const [config, setConfig] = useState({ drop_excess_requests: false, initial_pool_size: 300, + log_queue_size: 1000, }); + const [droppedRequests, setDroppedRequests] = useState(0); const [isLoading, setIsLoading] = useState(true); const [localValues, setLocalValues] = useState<{ initial_pool_size: string; prometheus_labels: string; + log_queue_size: string; }>({ initial_pool_size: "300", prometheus_labels: "", + log_queue_size: "1000", }); + useEffect(() => { + const fetchDroppedRequests = async () => { + const [response, error] = await apiService.getDroppedRequests(); + if (error) { + toast.error(error); + } else if (response) { + setDroppedRequests(response.dropped_requests); + } + }; + fetchDroppedRequests(); + }, []); + // Use refs to store timeout IDs const poolSizeTimeoutRef = useRef(undefined); const prometheusLabelsTimeoutRef = useRef(undefined); + const logQueueSizeTimeoutRef = useRef(undefined); useEffect(() => { const fetchConfig = async () => { @@ -41,6 +58,7 @@ export default function CoreSettingsList() { setLocalValues({ initial_pool_size: coreConfig.initial_pool_size?.toString() || "300", prometheus_labels: coreConfig.prometheus_labels || "", + log_queue_size: coreConfig.log_queue_size?.toString() || "1000", }); } setIsLoading(false); @@ -78,7 +96,7 @@ export default function CoreSettingsList() { // Set new timeout poolSizeTimeoutRef.current = setTimeout(() => { - const numValue = parseInt(value); + const numValue = Number.parseInt(value); if (!isNaN(numValue) && numValue > 0) { updateConfig("initial_pool_size", numValue); } @@ -104,6 +122,26 @@ export default function CoreSettingsList() { [updateConfig], ); + const handleLogQueueSizeChange = useCallback( + (value: string) => { + setLocalValues((prev) => ({ ...prev, log_queue_size: value })); + + // Clear existing timeout + if (logQueueSizeTimeoutRef.current) { + clearTimeout(logQueueSizeTimeoutRef.current); + } + + // Set new timeout + logQueueSizeTimeoutRef.current = setTimeout(() => { + const numValue = Number.parseInt(value); + if (!isNaN(numValue) && numValue > 0) { + updateConfig("log_queue_size", numValue); + } + }, 1000); + }, + [updateConfig], + ); + // Cleanup timeouts on unmount useEffect(() => { return () => { @@ -113,6 +151,9 @@ export default function CoreSettingsList() { if (prometheusLabelsTimeoutRef.current) { clearTimeout(prometheusLabelsTimeoutRef.current); } + if (logQueueSizeTimeoutRef.current) { + clearTimeout(logQueueSizeTimeoutRef.current); + } }; }, []); @@ -134,10 +175,13 @@ export default function CoreSettingsList() { {/* Drop Excess Requests */}

- +

If enabled, Bifrost will drop requests that exceed pool capacity.

handleConfigChange("drop_excess_requests", checked)} /> @@ -148,17 +192,20 @@ export default function CoreSettingsList() { - The settings below won't affect current connections. You will need to save the configuration for changes to take effect on the - next restart. + The settings below require a Bifrost service restart to take effect. Current connections will continue with existing settings + until restart.
- +

The initial connection pool size.

+
+
+ +

+ Additional logs will be dropped if the queue is full. Bifrost has dropped{" "} + {droppedRequests} logs so far. +

+
+ handleLogQueueSizeChange(e.target.value)} + min="1" + /> +
+
- +

Comma-separated list of custom labels to add to the Prometheus metrics.